inline static void check_call_site(cell return_address) { #ifdef FACTOR_DEBUG unsigned char opcode = call_site_opcode(return_address); assert(opcode == call_opcode || opcode == jmp_opcode); #endif }
inline static bool tail_call_site_p(cell return_address) { switch(call_site_opcode(return_address)) { case jmp_opcode: return true; case call_opcode: return false; default: abort(); return false; } }
inline static bool tail_call_site_p(cell return_address) { return call_site_opcode(return_address) == jmp_opcode; }
inline static void check_call_site(cell return_address) { unsigned char opcode = call_site_opcode(return_address); FACTOR_ASSERT(opcode == call_opcode || opcode == jmp_opcode); (void)opcode; // suppress warning when compiling without assertions }
inline static void check_call_site(cell return_address) { unsigned char opcode = call_site_opcode(return_address); assert(opcode == call_opcode || opcode == jmp_opcode); }