Lines Matching refs:jump

526 static sljit_u8* generate_far_jump_code(struct sljit_jump *jump, sljit_u8 *code_ptr, sljit_sw execu…
528 static sljit_u8* generate_far_jump_code(struct sljit_jump *jump, sljit_u8 *code_ptr);
532 static sljit_u8* generate_near_jump_code(struct sljit_jump *jump, sljit_u8 *code_ptr, sljit_u8 *cod… in generate_near_jump_code() argument
534 sljit_uw type = jump->flags >> TYPE_SHIFT; in generate_near_jump_code()
538 if (jump->flags & JUMP_LABEL) in generate_near_jump_code()
539 label_addr = (sljit_uw)(code + jump->u.label->size); in generate_near_jump_code()
541 label_addr = jump->u.target - (sljit_uw)executable_offset; in generate_near_jump_code()
544 …if ((sljit_sw)(label_addr - (jump->addr + 1)) > HALFWORD_MAX || (sljit_sw)(label_addr - (jump->add… in generate_near_jump_code()
545 return generate_far_jump_code(jump, code_ptr); in generate_near_jump_code()
548 …short_jump = (sljit_sw)(label_addr - (jump->addr + 2)) >= -128 && (sljit_sw)(label_addr - (jump->a… in generate_near_jump_code()
555 jump->addr++; in generate_near_jump_code()
560 jump->addr++; in generate_near_jump_code()
564 jump->addr++; in generate_near_jump_code()
569 jump->addr += 2; in generate_near_jump_code()
573 jump->flags |= PATCH_MB; in generate_near_jump_code()
576 jump->flags |= PATCH_MW; in generate_near_jump_code()
595 struct sljit_jump *jump; in sljit_generate_code() local
610 jump = compiler->jumps; in sljit_generate_code()
634 jump->addr = (sljit_uw)code_ptr; in sljit_generate_code()
635 if (!(jump->flags & SLJIT_REWRITABLE_JUMP)) in sljit_generate_code()
636 code_ptr = generate_near_jump_code(jump, code_ptr, code, executable_offset); in sljit_generate_code()
639 code_ptr = generate_far_jump_code(jump, code_ptr, executable_offset); in sljit_generate_code()
641 code_ptr = generate_far_jump_code(jump, code_ptr); in sljit_generate_code()
644 jump = jump->next; in sljit_generate_code()
668 SLJIT_ASSERT(!jump); in sljit_generate_code()
673 jump = compiler->jumps; in sljit_generate_code()
674 while (jump) { in sljit_generate_code()
675 if (jump->flags & (PATCH_MB | PATCH_MW)) { in sljit_generate_code()
676 if (jump->flags & JUMP_LABEL) in sljit_generate_code()
677 jump_addr = jump->u.label->addr; in sljit_generate_code()
679 jump_addr = jump->u.target; in sljit_generate_code()
681 jump_addr -= jump->addr + (sljit_uw)executable_offset; in sljit_generate_code()
683 if (jump->flags & PATCH_MB) { in sljit_generate_code()
686 *(sljit_u8*)jump->addr = U8(jump_addr); in sljit_generate_code()
690 sljit_unaligned_store_sw((void*)jump->addr, (sljit_sw)jump_addr); in sljit_generate_code()
693 sljit_unaligned_store_s32((void*)jump->addr, (sljit_s32)jump_addr); in sljit_generate_code()
698 else if (jump->flags & PATCH_MD) { in sljit_generate_code()
699 SLJIT_ASSERT(jump->flags & JUMP_LABEL); in sljit_generate_code()
700 sljit_unaligned_store_sw((void*)jump->addr, (sljit_sw)jump->u.label->addr); in sljit_generate_code()
704 jump = jump->next; in sljit_generate_code()
2993 struct sljit_jump *jump; local
2998 jump = (struct sljit_jump*)ensure_abuf(compiler, sizeof(struct sljit_jump));
2999 PTR_FAIL_IF_NULL(jump);
3000 …set_jump(jump, compiler, (sljit_u32)((type & SLJIT_REWRITABLE_JUMP) | ((type & 0xff) << TYPE_SHIFT…
3015 return jump;
3021 struct sljit_jump *jump; local
3030 jump = (struct sljit_jump*)ensure_abuf(compiler, sizeof(struct sljit_jump));
3031 FAIL_IF_NULL(jump);
3032 set_jump(jump, compiler, (sljit_u32)(JUMP_ADDR | (type << TYPE_SHIFT)));
3033 jump->u.target = (sljit_uw)srcw;