47 #define IS_SETHI(instr) \
48 (((instr & 0xc1c00000) == 0x01000000) \
49 && ((instr & 0x3fffff) != 0x0))
51 #define IS_LDX_IMM(instr) \
52 (((instr >> 13) & 0x60fc1) == 0x602c1)
54 #define IS_SUB(instr) \
55 (((instr >> 13) & 0x60fc0) == 0x40100)
61 imm = instr & 0x00001fff;
122 uint32_t mcode, mcode_sethi, mcode_masked;
130 pc = ((uint32_t *) ra) - 3;
139 u4 mcode_sub, mcode_ldx;
151 disp = (int32_t) (mcode_sethi & 0x3fffff);
157 assert(
IS_SUB(mcode_sub));
166 pa = ((uint8_t *) pv) + disp;
179 mcode_masked = (mcode >> 13) & 0x060fff;
187 if (mcode_masked == 0x0602c5) {
195 pa = ((uint8_t *) mptr) + disp;
200 assert(mcode_masked == 0x0602fb);
204 pa = ((uint8_t *) pv) + disp;
217 #if defined(ENABLE_REPLACEMENT)
218 void md_patch_replacement_point(
u1 *
pc,
u1 *savedmcode,
bool revert)
224 *(
u4*)(pc) = *(
u4*)(savedmcode);
228 *(
u4*)(savedmcode) = *(
u4*)(pc);
235 *(
u4*)(pc) = (
u4) mcode;
void asm_store_fp_state_reg(u8 *mem)
s2 decode_13bit_imm(u4 instr)
void asm_load_fp_state_reg(u8 *mem)
#define IS_LDX_IMM(instr)
void * md_jit_method_patch_address(void *pv, void *ra, void *mptr)