This is due to mistreat 0xff as -1, actually 0xffff is.
in line 3291, sdcc/src/stm8/gen.c
Sorry, in line 3294, not 3291, change the last parameter 0x00ff to 0xffff ( 16-bit minus one).
Philipp Klaus Krause
No problem. I already noticed and fixed it; the fix will be comitted later today. Currently I'm running the regression tests for the other ports, to check if any other port is broken in a similar way.
Bug #2252 has been fixed.