Lines Matching refs:imm

64 #define IMM3(imm) (imm << 6)  argument
65 #define IMM8(imm) (imm) argument
83 #define IMM5(imm) \ argument
84 (COPY_BITS(imm, 2, 12, 3) | ((imm & 0x3) << 6))
85 #define IMM12(imm) \ argument
86 (COPY_BITS(imm, 11, 26, 1) | COPY_BITS(imm, 8, 12, 3) | (imm & 0xff))
222 …JIT_INLINE sljit_s32 emit_imm32_const(struct sljit_compiler *compiler, sljit_s32 dst, sljit_uw imm) in emit_imm32_const() argument
225 …| COPY_BITS(imm, 12, 16, 4) | COPY_BITS(imm, 11, 26, 1) | COPY_BITS(imm, 8, 12, 3) | (imm & 0xff))… in emit_imm32_const()
227 …| COPY_BITS(imm, 12 + 16, 16, 4) | COPY_BITS(imm, 11 + 16, 26, 1) | COPY_BITS(imm, 8 + 16, 12, 3) … in emit_imm32_const()
498 static sljit_uw get_imm(sljit_uw imm) in get_imm() argument
503 if (imm <= 0xff) in get_imm()
504 return imm; in get_imm()
506 if ((imm & 0xffff) == (imm >> 16)) { in get_imm()
508 if (!(imm & 0xff00)) in get_imm()
509 return (1 << 12) | (imm & 0xff); in get_imm()
510 if (!(imm & 0xff)) in get_imm()
511 return (2 << 12) | ((imm >> 8) & 0xff); in get_imm()
512 if ((imm & 0xff00) == ((imm & 0xff) << 8)) in get_imm()
513 return (3 << 12) | (imm & 0xff); in get_imm()
518 if (!(imm & 0xffff0000)) { in get_imm()
520 imm <<= 16; in get_imm()
522 if (!(imm & 0xff000000)) { in get_imm()
524 imm <<= 8; in get_imm()
526 if (!(imm & 0xf0000000)) { in get_imm()
528 imm <<= 4; in get_imm()
530 if (!(imm & 0xc0000000)) { in get_imm()
532 imm <<= 2; in get_imm()
534 if (!(imm & 0x80000000)) { in get_imm()
536 imm <<= 1; in get_imm()
541 if (imm & 0x00ffffff) in get_imm()
544 …return ((imm >> 24) & 0x7f) | COPY_BITS(counter, 4, 26, 1) | COPY_BITS(counter, 1, 12, 3) | COPY_B… in get_imm()
547 static sljit_s32 load_immediate(struct sljit_compiler *compiler, sljit_s32 dst, sljit_uw imm) in load_immediate() argument
553 if (imm >= 0x10000) { in load_immediate()
554 tmp = get_imm(imm); in load_immediate()
557 tmp = get_imm(~imm); in load_immediate()
564 …| COPY_BITS(imm, 12, 16, 4) | COPY_BITS(imm, 11, 26, 1) | COPY_BITS(imm, 8, 12, 3) | (imm & 0xff))… in load_immediate()
567 if (imm >= 0x10000) in load_immediate()
569 …| COPY_BITS(imm, 12 + 16, 16, 4) | COPY_BITS(imm, 11 + 16, 26, 1) | COPY_BITS(imm, 8 + 16, 12, 3) … in load_immediate()
585 sljit_uw imm, nimm; in emit_op_imm() local
596 imm = (flags & ARG2_IMM) ? arg2 : arg1; in emit_op_imm()
605 return load_immediate(compiler, dst, imm); in emit_op_imm()
608 return load_immediate(compiler, dst, ~imm); in emit_op_imm()
614 nimm = -(sljit_sw)imm; in emit_op_imm()
616 if (imm <= 0x7) in emit_op_imm()
617 return push_inst16(compiler, ADDSI3 | IMM3(imm) | RD3(dst) | RN3(reg)); in emit_op_imm()
621 if (imm <= 0xff) in emit_op_imm()
622 return push_inst16(compiler, ADDSI8 | IMM8(imm) | RDN3(dst)); in emit_op_imm()
628 if (imm <= 0xfff) in emit_op_imm()
629 return push_inst32(compiler, ADDWI | RD4(dst) | RN4(reg) | IMM12(imm)); in emit_op_imm()
633 nimm = get_imm(imm); in emit_op_imm()
636 nimm = get_imm(-(sljit_sw)imm); in emit_op_imm()
641 imm = get_imm(imm); in emit_op_imm()
642 if (imm != INVALID_IMM) in emit_op_imm()
643 return push_inst32(compiler, ADCI | (flags & SET_FLAGS) | RD4(dst) | RN4(reg) | imm); in emit_op_imm()
649 if (imm == 0 && IS_2_LO_REGS(reg, dst)) in emit_op_imm()
651 imm = get_imm(imm); in emit_op_imm()
652 if (imm != INVALID_IMM) in emit_op_imm()
653 return push_inst32(compiler, RSB_WI | (flags & SET_FLAGS) | RD4(dst) | RN4(reg) | imm); in emit_op_imm()
657 if (imm <= 0xff && reg_map[reg] <= 7) in emit_op_imm()
658 return push_inst16(compiler, CMPI | IMM8(imm) | RDN3(reg)); in emit_op_imm()
659 nimm = get_imm(imm); in emit_op_imm()
662 nimm = get_imm(-(sljit_sw)imm); in emit_op_imm()
666 nimm = -(sljit_sw)imm; in emit_op_imm()
668 if (imm <= 0x7) in emit_op_imm()
669 return push_inst16(compiler, SUBSI3 | IMM3(imm) | RD3(dst) | RN3(reg)); in emit_op_imm()
673 if (imm <= 0xff) in emit_op_imm()
674 return push_inst16(compiler, SUBSI8 | IMM8(imm) | RDN3(dst)); in emit_op_imm()
680 if (imm <= 0xfff) in emit_op_imm()
681 return push_inst32(compiler, SUBWI | RD4(dst) | RN4(reg) | IMM12(imm)); in emit_op_imm()
685 nimm = get_imm(imm); in emit_op_imm()
688 nimm = get_imm(-(sljit_sw)imm); in emit_op_imm()
695 imm = get_imm(imm); in emit_op_imm()
696 if (imm != INVALID_IMM) in emit_op_imm()
697 return push_inst32(compiler, SBCI | (flags & SET_FLAGS) | RD4(dst) | RN4(reg) | imm); in emit_op_imm()
700 nimm = get_imm(imm); in emit_op_imm()
703 imm = get_imm(imm); in emit_op_imm()
704 if (imm != INVALID_IMM) in emit_op_imm()
705 return push_inst32(compiler, BICI | (flags & SET_FLAGS) | RD4(dst) | RN4(reg) | imm); in emit_op_imm()
708 nimm = get_imm(imm); in emit_op_imm()
711 imm = get_imm(imm); in emit_op_imm()
712 if (imm != INVALID_IMM) in emit_op_imm()
713 return push_inst32(compiler, ORNI | (flags & SET_FLAGS) | RD4(dst) | RN4(reg) | imm); in emit_op_imm()
716 imm = get_imm(imm); in emit_op_imm()
717 if (imm != INVALID_IMM) in emit_op_imm()
718 return push_inst32(compiler, EORI | (flags & SET_FLAGS) | RD4(dst) | RN4(reg) | imm); in emit_op_imm()
725 imm &= 0x1f; in emit_op_imm()
726 if (imm == 0) { in emit_op_imm()
736 return push_inst16(compiler, LSLSI | RD3(dst) | RN3(reg) | (imm << 6)); in emit_op_imm()
737 return push_inst32(compiler, LSL_WI | (flags & SET_FLAGS) | RD4(dst) | RM4(reg) | IMM5(imm)); in emit_op_imm()
740 return push_inst16(compiler, LSRSI | RD3(dst) | RN3(reg) | (imm << 6)); in emit_op_imm()
741 return push_inst32(compiler, LSR_WI | (flags & SET_FLAGS) | RD4(dst) | RM4(reg) | IMM5(imm)); in emit_op_imm()
744 return push_inst16(compiler, ASRSI | RD3(dst) | RN3(reg) | (imm << 6)); in emit_op_imm()
745 return push_inst32(compiler, ASR_WI | (flags & SET_FLAGS) | RD4(dst) | RM4(reg) | IMM5(imm)); in emit_op_imm()
753 imm = arg2; in emit_op_imm()
755 FAIL_IF(load_immediate(compiler, arg2, imm)); in emit_op_imm()
758 imm = arg1; in emit_op_imm()
760 FAIL_IF(load_immediate(compiler, arg1, imm)); in emit_op_imm()
879 #define OFFSET_CHECK(imm, shift) (!(argw & ~(imm << shift))) argument
1071 sljit_uw imm; in sljit_emit_enter() local
1097 imm = get_imm(4096); in sljit_emit_enter()
1099 imm = get_imm(local_size & ~0xff); in sljit_emit_enter()
1101 SLJIT_ASSERT(imm != INVALID_IMM); in sljit_emit_enter()
1102 FAIL_IF(push_inst32(compiler, SUB_WI | RD4(TMP_REG1) | RN4(SLJIT_SP) | imm)); in sljit_emit_enter()
1125 imm = get_imm(4096); in sljit_emit_enter()
1126 SLJIT_ASSERT(imm != INVALID_IMM); in sljit_emit_enter()
1131 FAIL_IF(push_inst32(compiler, SUB_WI | RD4(TMP_REG1) | RN4(TMP_REG1) | imm)); in sljit_emit_enter()
1137 FAIL_IF(push_inst32(compiler, SUB_WI | RD4(TMP_REG1) | RN4(TMP_REG1) | imm)); in sljit_emit_enter()
1149 FAIL_IF(push_inst32(compiler, SUB_WI | RD4(TMP_REG1) | RN4(TMP_REG1) | imm)); in sljit_emit_enter()
1161 imm = get_imm(local_size & ~0xff); in sljit_emit_enter()
1162 SLJIT_ASSERT(imm != INVALID_IMM); in sljit_emit_enter()
1164 FAIL_IF(push_inst32(compiler, SUB_WI | RD4(TMP_REG1) | RN4(TMP_REG1) | imm)); in sljit_emit_enter()
1542 sljit_uw imm; in emit_fop_mem() local
1566 imm = get_imm(argw & ~0x3fc); in emit_fop_mem()
1567 if (imm != INVALID_IMM) { in emit_fop_mem()
1568 FAIL_IF(push_inst32(compiler, ADD_WI | RD4(TMP_REG1) | RN4(arg & REG_MASK) | imm)); in emit_fop_mem()
1571 imm = get_imm(-argw & ~0x3fc); in emit_fop_mem()
1572 if (imm != INVALID_IMM) { in emit_fop_mem()
1574 FAIL_IF(push_inst32(compiler, SUB_WI | RD4(TMP_REG1) | RN4(arg & REG_MASK) | imm)); in emit_fop_mem()