32 #if defined(__LINUX__)
35 extern "C" unsigned long ieee_get_fp_control();
36 extern "C" void ieee_set_fp_control(
unsigned long fp_control);
60 #if defined(__LINUX__)
61 unsigned long int fpcw;
68 #if defined(__LINUX__)
76 fpcw = ieee_get_fp_control();
79 & ~IEEE_TRAP_ENABLE_INV
80 & ~IEEE_TRAP_ENABLE_DZE
83 & ~IEEE_TRAP_ENABLE_OVF;
93 ieee_set_fp_control(fpcw);
135 pc = ((uint32_t *) ra) - 2;
155 pa = ((uint8_t *) pv) + disp;
167 pa = ((uint8_t *) mptr) + disp;
179 vm_abort(
"md_jit_method_patch_address: IMPLEMENT ME!");
205 uint32_t mcode = *((uint32_t*) xpc);
257 #if defined(ENABLE_REPLACEMENT)
258 void md_patch_replacement_point(
u1 *
pc,
u1 *savedmcode,
bool revert)
264 *(
u4*)(pc) = *(
u4*)(savedmcode);
268 *(
u4*)(savedmcode) = *(
u4*)(pc);
intptr_t value
Value (numeric or address) passed with the trap.
#define M_MEM_GET_Opcode(x)
Contains information about a decoded trap instruction.
void vm_abort(const char *text,...)
int type
Specific trap type (see md-trap.h).
#define M_MEM_GET_Memory_disp(x)
void * md_jit_method_patch_address(void *pv, void *ra, void *mptr)
bool md_trap_decode(trapinfo_t *trp, int sig, void *xpc, executionstate_t *es)
Decode the trap instruction at the given PC.
uintptr_t intregs[INT_REG_CNT]
void vm_abort_disassemble(void *pc, int count, const char *text,...)
#define M_OP3_GET_Opcode(x)
static void md_icacheflush(void *addr, int nbytes)