Lines Matching refs:code_ptr

42 static sljit_u8* generate_far_jump_code(struct sljit_jump *jump, sljit_u8 *code_ptr)  in generate_far_jump_code()  argument
53 *code_ptr++ = get_jump_code(type ^ 0x1) - 0x10; in generate_far_jump_code()
54 *code_ptr++ = short_addr ? (6 + 3) : (10 + 3); in generate_far_jump_code()
57 *code_ptr++ = short_addr ? REX_B : (REX_W | REX_B); in generate_far_jump_code()
58 *code_ptr++ = MOV_r_i32 | reg_lmap[TMP_REG2]; in generate_far_jump_code()
59 jump->addr = (sljit_uw)code_ptr; in generate_far_jump_code()
64 sljit_unaligned_store_s32(code_ptr, (sljit_s32)jump->u.target); in generate_far_jump_code()
66 sljit_unaligned_store_sw(code_ptr, jump->u.target); in generate_far_jump_code()
68 code_ptr += short_addr ? sizeof(sljit_s32) : sizeof(sljit_sw); in generate_far_jump_code()
70 *code_ptr++ = REX_B; in generate_far_jump_code()
71 *code_ptr++ = GROUP_FF; in generate_far_jump_code()
72 *code_ptr++ = MOD_REG | (type >= SLJIT_FAST_CALL ? CALL_rm : JMP_rm) | reg_lmap[TMP_REG2]; in generate_far_jump_code()
74 return code_ptr; in generate_far_jump_code()
77 static sljit_u8* generate_put_label_code(struct sljit_put_label *put_label, sljit_u8 *code_ptr, slj… in generate_put_label_code() argument
82 return code_ptr; in generate_put_label_code()
87 code_ptr = (sljit_u8*)put_label->addr - 2 - sizeof(sljit_uw); in generate_put_label_code()
89 SLJIT_ASSERT((code_ptr[0] & 0xf8) == REX_W); in generate_put_label_code()
90 SLJIT_ASSERT((code_ptr[1] & 0xf8) == MOV_r_i32); in generate_put_label_code()
92 if ((code_ptr[0] & 0x07) != 0) { in generate_put_label_code()
93 code_ptr[0] = (sljit_u8)(code_ptr[0] & ~0x08); in generate_put_label_code()
94 code_ptr += 2 + sizeof(sljit_s32); in generate_put_label_code()
97 code_ptr[0] = code_ptr[1]; in generate_put_label_code()
98 code_ptr += 1 + sizeof(sljit_s32); in generate_put_label_code()
101 put_label->addr = (sljit_uw)code_ptr; in generate_put_label_code()
102 return code_ptr; in generate_put_label_code()
105 code_ptr -= put_label->flags + (2 + sizeof(sljit_uw)); in generate_put_label_code()
106 SLJIT_MEMMOVE(code_ptr, code_ptr + (2 + sizeof(sljit_uw)), put_label->flags); in generate_put_label_code()
108 SLJIT_ASSERT((code_ptr[0] & 0xf8) == REX_W); in generate_put_label_code()
110 if ((code_ptr[1] & 0xf8) == MOV_r_i32) { in generate_put_label_code()
111 code_ptr += 2 + sizeof(sljit_uw); in generate_put_label_code()
112 SLJIT_ASSERT((code_ptr[0] & 0xf8) == REX_W); in generate_put_label_code()
115 SLJIT_ASSERT(code_ptr[1] == MOV_rm_r); in generate_put_label_code()
117 code_ptr[0] = (sljit_u8)(code_ptr[0] & ~0x4); in generate_put_label_code()
118 code_ptr[1] = MOV_rm_i32; in generate_put_label_code()
119 code_ptr[2] = (sljit_u8)(code_ptr[2] & ~(0x7 << 3)); in generate_put_label_code()
121 code_ptr = (sljit_u8*)(put_label->addr - (2 + sizeof(sljit_uw)) + sizeof(sljit_s32)); in generate_put_label_code()
122 put_label->addr = (sljit_uw)code_ptr; in generate_put_label_code()
124 return code_ptr; in generate_put_label_code()