• Home
  • Raw
  • Download

Lines Matching refs:jump

404 static SLJIT_INLINE sljit_s32 detect_jump_type(struct sljit_jump *jump, sljit_uw *code_ptr, sljit_u…  in detect_jump_type()  argument
408 if (jump->flags & SLJIT_REWRITABLE_JUMP) in detect_jump_type()
412 if (jump->flags & IS_BL) in detect_jump_type()
415 if (jump->flags & JUMP_ADDR) in detect_jump_type()
416 diff = ((sljit_sw)jump->u.target - (sljit_sw)(code_ptr + 2) - executable_offset); in detect_jump_type()
418 SLJIT_ASSERT(jump->flags & JUMP_LABEL); in detect_jump_type()
419 diff = ((sljit_sw)(code + jump->u.label->size) - (sljit_sw)(code_ptr + 2)); in detect_jump_type()
426 if (jump->flags & IS_BL) { in detect_jump_type()
429 jump->flags |= PATCH_B; in detect_jump_type()
436 jump->flags |= PATCH_B; in detect_jump_type()
440 if (jump->flags & JUMP_ADDR) in detect_jump_type()
441 diff = ((sljit_sw)jump->u.target - (sljit_sw)code_ptr - executable_offset); in detect_jump_type()
443 SLJIT_ASSERT(jump->flags & JUMP_LABEL); in detect_jump_type()
444 diff = ((sljit_sw)(code + jump->u.label->size) - (sljit_sw)code_ptr); in detect_jump_type()
453 …*code_ptr = ((jump->flags & IS_BL) ? (BL - CONDITIONAL) : (B - CONDITIONAL)) | (code_ptr[2] & COND… in detect_jump_type()
454 jump->flags |= PATCH_B; in detect_jump_type()
598 struct sljit_jump *jump; in sljit_generate_code() local
631 jump = compiler->jumps; in sljit_generate_code()
674 SLJIT_ASSERT(!jump || jump->addr >= word_count); in sljit_generate_code()
676 if (jump && jump->addr == word_count) { in sljit_generate_code()
678 if (detect_jump_type(jump, code_ptr, code, executable_offset)) in sljit_generate_code()
680 jump->addr = (sljit_uw)code_ptr; in sljit_generate_code()
682 jump->addr = (sljit_uw)(code_ptr - 2); in sljit_generate_code()
683 if (detect_jump_type(jump, code_ptr, code, executable_offset)) in sljit_generate_code()
686 jump = jump->next; in sljit_generate_code()
726 SLJIT_ASSERT(!jump); in sljit_generate_code()
753 jump = compiler->jumps; in sljit_generate_code()
754 while (jump) { in sljit_generate_code()
755 buf_ptr = (sljit_uw *)jump->addr; in sljit_generate_code()
757 if (jump->flags & PATCH_B) { in sljit_generate_code()
759 if (!(jump->flags & JUMP_ADDR)) { in sljit_generate_code()
760 SLJIT_ASSERT(jump->flags & JUMP_LABEL); in sljit_generate_code()
761 …SLJIT_ASSERT(((sljit_sw)jump->u.label->addr - jump_addr) <= 0x01ffffff && ((sljit_sw)jump->u.label… in sljit_generate_code()
762 *buf_ptr |= (((sljit_sw)jump->u.label->addr - jump_addr) >> 2) & 0x00ffffff; in sljit_generate_code()
765 …SLJIT_ASSERT(((sljit_sw)jump->u.target - jump_addr) <= 0x01ffffff && ((sljit_sw)jump->u.target - j… in sljit_generate_code()
766 *buf_ptr |= (((sljit_sw)jump->u.target - jump_addr) >> 2) & 0x00ffffff; in sljit_generate_code()
769 else if (jump->flags & SLJIT_REWRITABLE_JUMP) { in sljit_generate_code()
771 jump->addr = (sljit_uw)code_ptr; in sljit_generate_code()
774 …ump_addr((sljit_uw)code_ptr, executable_offset, (jump->flags & JUMP_LABEL) ? jump->u.label->addr :… in sljit_generate_code()
777 …jump_addr((sljit_uw)buf_ptr, executable_offset, (jump->flags & JUMP_LABEL) ? jump->u.label->addr :… in sljit_generate_code()
782 if (jump->flags & IS_BL) in sljit_generate_code()
788 *buf_ptr = (jump->flags & JUMP_LABEL) ? jump->u.label->addr : jump->u.target; in sljit_generate_code()
790 …jump_addr((sljit_uw)buf_ptr, executable_offset, (jump->flags & JUMP_LABEL) ? jump->u.label->addr :… in sljit_generate_code()
793 jump = jump->next; in sljit_generate_code()
2106 struct sljit_jump *jump; in sljit_emit_jump() local
2111 jump = (struct sljit_jump*)ensure_abuf(compiler, sizeof(struct sljit_jump)); in sljit_emit_jump()
2112 PTR_FAIL_IF(!jump); in sljit_emit_jump()
2113 set_jump(jump, compiler, type & SLJIT_REWRITABLE_JUMP); in sljit_emit_jump()
2124 if (jump->flags & SLJIT_REWRITABLE_JUMP) { in sljit_emit_jump()
2125 jump->addr = compiler->size; in sljit_emit_jump()
2130 jump->flags |= IS_BL; in sljit_emit_jump()
2134 if (!(jump->flags & SLJIT_REWRITABLE_JUMP)) in sljit_emit_jump()
2135 jump->addr = compiler->size; in sljit_emit_jump()
2138 jump->flags |= IS_BL; in sljit_emit_jump()
2141 jump->addr = compiler->size; in sljit_emit_jump()
2143 return jump; in sljit_emit_jump()
2350 struct sljit_jump *jump; in sljit_emit_call() local
2364 jump = sljit_emit_jump(compiler, type); in sljit_emit_call()
2365 PTR_FAIL_IF(jump == NULL); in sljit_emit_call()
2368 return jump; in sljit_emit_call()
2383 struct sljit_jump *jump; in sljit_emit_ijump() local
2403 jump = (struct sljit_jump*)ensure_abuf(compiler, sizeof(struct sljit_jump)); in sljit_emit_ijump()
2404 FAIL_IF(!jump); in sljit_emit_ijump()
2405 set_jump(jump, compiler, JUMP_ADDR | ((type >= SLJIT_FAST_CALL) ? IS_BL : 0)); in sljit_emit_ijump()
2406 jump->u.target = srcw; in sljit_emit_ijump()
2418 jump->addr = compiler->size; in sljit_emit_ijump()