Lines Matching refs:jump

431 static sljit_u8* generate_far_jump_code(struct sljit_jump *jump, sljit_u8 *code_ptr, sljit_sw execu…
433 static sljit_u8* generate_far_jump_code(struct sljit_jump *jump, sljit_u8 *code_ptr);
437 static sljit_u8* generate_near_jump_code(struct sljit_jump *jump, sljit_u8 *code_ptr, sljit_u8 *cod… in generate_near_jump_code() argument
439 sljit_s32 type = jump->flags >> TYPE_SHIFT; in generate_near_jump_code()
443 if (jump->flags & JUMP_LABEL) in generate_near_jump_code()
444 label_addr = (sljit_uw)(code + jump->u.label->size); in generate_near_jump_code()
446 label_addr = jump->u.target - executable_offset; in generate_near_jump_code()
448 …short_jump = (sljit_sw)(label_addr - (jump->addr + 2)) >= -128 && (sljit_sw)(label_addr - (jump->a… in generate_near_jump_code()
451 …if ((sljit_sw)(label_addr - (jump->addr + 1)) > HALFWORD_MAX || (sljit_sw)(label_addr - (jump->add… in generate_near_jump_code()
452 return generate_far_jump_code(jump, code_ptr); in generate_near_jump_code()
460 jump->addr++; in generate_near_jump_code()
465 jump->addr++; in generate_near_jump_code()
469 jump->addr++; in generate_near_jump_code()
474 jump->addr += 2; in generate_near_jump_code()
478 jump->flags |= PATCH_MB; in generate_near_jump_code()
481 jump->flags |= PATCH_MW; in generate_near_jump_code()
500 struct sljit_jump *jump; in sljit_generate_code() local
515 jump = compiler->jumps; in sljit_generate_code()
539 jump->addr = (sljit_uw)code_ptr; in sljit_generate_code()
540 if (!(jump->flags & SLJIT_REWRITABLE_JUMP)) in sljit_generate_code()
541 code_ptr = generate_near_jump_code(jump, code_ptr, code, executable_offset); in sljit_generate_code()
544 code_ptr = generate_far_jump_code(jump, code_ptr, executable_offset); in sljit_generate_code()
546 code_ptr = generate_far_jump_code(jump, code_ptr); in sljit_generate_code()
549 jump = jump->next; in sljit_generate_code()
573 SLJIT_ASSERT(!jump); in sljit_generate_code()
578 jump = compiler->jumps; in sljit_generate_code()
579 while (jump) { in sljit_generate_code()
580 jump_addr = jump->addr + executable_offset; in sljit_generate_code()
582 if (jump->flags & PATCH_MB) { in sljit_generate_code()
583 …SLJIT_ASSERT((sljit_sw)(jump->u.label->addr - (jump_addr + sizeof(sljit_s8))) >= -128 && (sljit_sw… in sljit_generate_code()
584 *(sljit_u8*)jump->addr = (sljit_u8)(jump->u.label->addr - (jump_addr + sizeof(sljit_s8))); in sljit_generate_code()
585 } else if (jump->flags & PATCH_MW) { in sljit_generate_code()
586 if (jump->flags & JUMP_LABEL) { in sljit_generate_code()
588 …sljit_unaligned_store_sw((void*)jump->addr, (sljit_sw)(jump->u.label->addr - (jump_addr + sizeof(s… in sljit_generate_code()
590 …SLJIT_ASSERT((sljit_sw)(jump->u.label->addr - (jump_addr + sizeof(sljit_s32))) >= HALFWORD_MIN && … in sljit_generate_code()
591 …sljit_unaligned_store_s32((void*)jump->addr, (sljit_s32)(jump->u.label->addr - (jump_addr + sizeof… in sljit_generate_code()
596 …sljit_unaligned_store_sw((void*)jump->addr, (sljit_sw)(jump->u.target - (jump_addr + sizeof(sljit_… in sljit_generate_code()
598 …SLJIT_ASSERT((sljit_sw)(jump->u.target - (jump_addr + sizeof(sljit_s32))) >= HALFWORD_MIN && (slji… in sljit_generate_code()
599 …sljit_unaligned_store_s32((void*)jump->addr, (sljit_s32)(jump->u.target - (jump_addr + sizeof(slji… in sljit_generate_code()
604 else if (jump->flags & PATCH_MD) in sljit_generate_code()
605 sljit_unaligned_store_sw((void*)jump->addr, jump->u.label->addr); in sljit_generate_code()
608 jump = jump->next; in sljit_generate_code()
2707 struct sljit_jump *jump; local
2712 jump = (struct sljit_jump*)ensure_abuf(compiler, sizeof(struct sljit_jump));
2713 PTR_FAIL_IF_NULL(jump);
2714 set_jump(jump, compiler, (type & SLJIT_REWRITABLE_JUMP) | ((type & 0xff) << TYPE_SHIFT));
2729 return jump;
2735 struct sljit_jump *jump; local
2744 jump = (struct sljit_jump*)ensure_abuf(compiler, sizeof(struct sljit_jump));
2745 FAIL_IF_NULL(jump);
2746 set_jump(jump, compiler, JUMP_ADDR | (type << TYPE_SHIFT));
2747 jump->u.target = srcw;