1 #define FIXNUM_MAX (LONG_MAX >> TAG_BITS)
2 #define FIXNUM_MIN (LONG_MIN >> TAG_BITS)
4 #define FIXNUM long int /* unboxed */
6 INLINE FIXNUM untag_fixnum_fast(CELL tagged)
8 return ((FIXNUM)tagged) >> TAG_BITS;
11 INLINE CELL tag_fixnum(FIXNUM untagged)
13 return RETAG(untagged << TAG_BITS,FIXNUM_TYPE);
16 void primitive_fixnump(void);
17 void primitive_not(void);
19 FIXNUM to_fixnum(CELL tagged);
20 void primitive_to_fixnum(void);
22 CELL number_eq_fixnum(CELL x, CELL y);
23 CELL add_fixnum(CELL x, CELL y);
24 CELL subtract_fixnum(CELL x, CELL y);
25 CELL multiply_fixnum(CELL x, CELL y);
26 FIXNUM gcd_fixnum(FIXNUM x, FIXNUM y);
27 CELL divide_fixnum(CELL x, CELL y);
28 CELL divint_fixnum(CELL x, CELL y);
29 CELL divfloat_fixnum(CELL x, CELL y);
30 CELL divmod_fixnum(CELL x, CELL y);
31 CELL mod_fixnum(CELL x, CELL y);
32 CELL and_fixnum(CELL x, CELL y);
33 CELL or_fixnum(CELL x, CELL y);
34 CELL xor_fixnum(CELL x, CELL y);
35 CELL shiftleft_fixnum(CELL x, CELL y);
36 CELL shiftright_fixnum(CELL x, CELL y);
37 CELL less_fixnum(CELL x, CELL y);
38 CELL lesseq_fixnum(CELL x, CELL y);
39 CELL greater_fixnum(CELL x, CELL y);
40 CELL greatereq_fixnum(CELL x, CELL y);