Lines Matching refs:code_ptr

288 static sljit_u8* generate_far_jump_code(struct sljit_jump *jump, sljit_u8 *code_ptr)  in generate_far_jump_code()  argument
299 *code_ptr++ = U8(get_jump_code(type ^ 0x1) - 0x10); in generate_far_jump_code()
300 *code_ptr++ = short_addr ? (6 + 3) : (10 + 3); in generate_far_jump_code()
303 *code_ptr++ = short_addr ? REX_B : (REX_W | REX_B); in generate_far_jump_code()
304 *code_ptr++ = MOV_r_i32 | reg_lmap[TMP_REG2]; in generate_far_jump_code()
305 jump->addr = (sljit_uw)code_ptr; in generate_far_jump_code()
310 sljit_unaligned_store_s32(code_ptr, (sljit_s32)jump->u.target); in generate_far_jump_code()
312 sljit_unaligned_store_sw(code_ptr, (sljit_sw)jump->u.target); in generate_far_jump_code()
314 code_ptr += short_addr ? sizeof(sljit_s32) : sizeof(sljit_sw); in generate_far_jump_code()
316 *code_ptr++ = REX_B; in generate_far_jump_code()
317 *code_ptr++ = GROUP_FF; in generate_far_jump_code()
318 *code_ptr++ = U8(MOD_REG | (type >= SLJIT_FAST_CALL ? CALL_rm : JMP_rm) | reg_lmap[TMP_REG2]); in generate_far_jump_code()
320 return code_ptr; in generate_far_jump_code()
323 static sljit_u8* generate_put_label_code(struct sljit_put_label *put_label, sljit_u8 *code_ptr, slj… in generate_put_label_code() argument
328 return code_ptr; in generate_put_label_code()
333 code_ptr = (sljit_u8*)put_label->addr - 2 - sizeof(sljit_uw); in generate_put_label_code()
335 SLJIT_ASSERT((code_ptr[0] & 0xf8) == REX_W); in generate_put_label_code()
336 SLJIT_ASSERT((code_ptr[1] & 0xf8) == MOV_r_i32); in generate_put_label_code()
338 if ((code_ptr[0] & 0x07) != 0) { in generate_put_label_code()
339 code_ptr[0] = U8(code_ptr[0] & ~0x08); in generate_put_label_code()
340 code_ptr += 2 + sizeof(sljit_s32); in generate_put_label_code()
343 code_ptr[0] = code_ptr[1]; in generate_put_label_code()
344 code_ptr += 1 + sizeof(sljit_s32); in generate_put_label_code()
347 put_label->addr = (sljit_uw)code_ptr; in generate_put_label_code()
348 return code_ptr; in generate_put_label_code()
351 code_ptr -= put_label->flags + (2 + sizeof(sljit_uw)); in generate_put_label_code()
352 SLJIT_MEMMOVE(code_ptr, code_ptr + (2 + sizeof(sljit_uw)), put_label->flags); in generate_put_label_code()
354 SLJIT_ASSERT((code_ptr[0] & 0xf8) == REX_W); in generate_put_label_code()
356 if ((code_ptr[1] & 0xf8) == MOV_r_i32) { in generate_put_label_code()
357 code_ptr += 2 + sizeof(sljit_uw); in generate_put_label_code()
358 SLJIT_ASSERT((code_ptr[0] & 0xf8) == REX_W); in generate_put_label_code()
361 SLJIT_ASSERT(code_ptr[1] == MOV_rm_r); in generate_put_label_code()
363 code_ptr[0] = U8(code_ptr[0] & ~0x4); in generate_put_label_code()
364 code_ptr[1] = MOV_rm_i32; in generate_put_label_code()
365 code_ptr[2] = U8(code_ptr[2] & ~(0x7 << 3)); in generate_put_label_code()
367 code_ptr = (sljit_u8*)(put_label->addr - (2 + sizeof(sljit_uw)) + sizeof(sljit_s32)); in generate_put_label_code()
368 put_label->addr = (sljit_uw)code_ptr; in generate_put_label_code()
370 return code_ptr; in generate_put_label_code()