64 typedef unsigned char byte;
73 #define rhs_value_is_symbol(rv) ((((uint64_t)(rv)) & 3)==0)
74 #define rhs_value_is_funcall(rv) ((((uint64_t)(rv)) & 3)==1)
75 #define rhs_value_is_reteloc(rv) ((((uint64_t)(rv)) & 3)==2)
76 #define rhs_value_is_unboundvar(rv) ((((uint64_t)(rv)) & 3)==3)
80 #define symbol_to_rhs_value(sym) ((rhs_value) (sym))
81 #define funcall_list_to_rhs_value(fl) ((rhs_value) (((char *)(fl))+1))
82 #define reteloc_to_rhs_value(field_num,levels_up) \
83 ((rhs_value) ( (levels_up)<<4) + ((field_num)<<2) + 2 )
84 #define unboundvar_to_rhs_value(n) ((rhs_value) (((n)<<2) + 3))
86 #define rhs_value_to_symbol(rv) ((Symbol *)(rv))
87 #define rhs_value_to_funcall_list(rv) ((list *) (((char *)(rv))-1))
88 #define rhs_value_to_reteloc_field_num(rv) ((((uint64_t)(rv))>>2) & 3)
89 #define rhs_value_to_reteloc_levels_up(rv) ((((uint64_t)(rv))>>4)& 0xFFFF)
90 #define rhs_value_to_unboundvar(rv) (((uint64_t)(rv))>>2)
97 return (reinterpret_cast<uintptr_t>(rv) & 3) == 0;
103 return (reinterpret_cast<uintptr_t>(rv) & 3) == 1;
109 return (reinterpret_cast<uintptr_t>(rv) & 3) == 2;
115 return (reinterpret_cast<uintptr_t>(rv) & 3) == 3;
129 return reinterpret_cast<rhs_value>(
reinterpret_cast<char *
>(fl) + 1);
135 return reinterpret_cast<rhs_value>(levels_up << 4) + (field_num << 2) + 2;
141 return reinterpret_cast<rhs_value>((n << 2) + 3);
147 return reinterpret_cast<Symbol *
>(rv);
153 return reinterpret_cast< ::
list *
>(
reinterpret_cast<char *
>(rv) - 1);
159 return static_cast<uint8_t
>((
reinterpret_cast<uintptr_t
>(rv) >> 2) & 3);
165 return static_cast<uint16_t
>((
reinterpret_cast<uintptr_t
>(rv) >> 4) & 0xFFFF);
171 return static_cast<uint64_t
>((
reinterpret_cast<uintptr_t
>(rv) >> 2));
206 #define MAKE_ACTION 0
207 #define FUNCALL_ACTION 1
209 #define UNKNOWN_SUPPORT 0
214 typedef unsigned char byte;