Fix fit16i() for systems with 64-bit long.
authorGeorge Koehler <xkernigh@netscape.net>
Sun, 16 Sep 2012 23:57:07 +0000 (19:57 -0400)
committerGeorge Koehler <xkernigh@netscape.net>
Sun, 16 Sep 2012 23:57:07 +0000 (19:57 -0400)
(long)0xFFFF8000 had expanded to 0x00000000FFFF8000.
With (long)(-0x8000), the compiler now extends the negative sign.

modules/src/em_code/k/em.c

index 7526072..73f0c68 100644 (file)
@@ -26,7 +26,7 @@ C_magic()
 }
 
 /***    the compact code generating routines   ***/
-#define        fit16i(x)       ((x) >= (long)0xFFFF8000 && (x) <= (long)0x00007FFF)
+#define        fit16i(x)       ((x) >= (long)(-0x8000) && (x) <= (long)0x7FFF)
 #define        fit8u(x)        ((x) <= 0xFF)           /* x is already unsigned */
 
 C_pt_ilb(l)