Looking at the avg-gcc source, the "M" constraint that you are using only allows unsigned values (0..255). There does not appear to be a constraint that would allow values in the signed range (-128..127).
That suggests that instruction takes a signed byte offset, so the value cannot be more than 127. Replace "byte" by "char" and 128 by -128 (unless you want +128 in which case perhaps a different instruction sequence is needed?)