The range of a singed byte is -128 <= x < 128, not -127 <= x and x <= 128.
[libfirm] / ir / be / ia32 / ia32_emitter.c
index 7f4ee33..bbef146 100644 (file)
@@ -2376,7 +2376,7 @@ static unsigned get_unsigned_imm_size(unsigned offset)
  */
 static unsigned get_signed_imm_size(int offset)
 {
-       if (offset >= -127 && offset < 128) {
+       if (-128 <= offset && offset < 128) {
                return 1;
        } else if (offset >= -32768 && offset < 32767) {
                return 2;
@@ -2457,7 +2457,7 @@ static void bemit_mod_am(unsigned reg, const ir_node *node)
        } else if (offs == 0) {
                modrm |= MOD_IND;
                emitoffs = 0;
-       } else if (offs >= -127 && offs <= 128) {
+       } else if (-128 <= offs && offs < 128) {
                modrm |= MOD_IND_BYTE_OFS;
                emitoffs = 8;
        } else {
@@ -2542,7 +2542,7 @@ static void bemit_binop_2(const ir_node *node, unsigned code)
        switch (am_type) {
        case ia32_AddrModeS:
                d = 2;
-               /*fallthrough*/
+               /* FALLTHROUGH */
        case ia32_AddrModeD:
                bemit8(code | d);
                bemit_mod_am(reg_gp_map[out->index], node);