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()
496 static sljit_uw get_imm(sljit_uw imm) in get_imm() argument
501 if (imm <= 0xff) in get_imm()
502 return imm; in get_imm()
504 if ((imm & 0xffff) == (imm >> 16)) { in get_imm()
506 if (!(imm & 0xff00)) in get_imm()
507 return (1 << 12) | (imm & 0xff); in get_imm()
508 if (!(imm & 0xff)) in get_imm()
509 return (2 << 12) | ((imm >> 8) & 0xff); in get_imm()
510 if ((imm & 0xff00) == ((imm & 0xff) << 8)) in get_imm()
511 return (3 << 12) | (imm & 0xff); in get_imm()
516 if (!(imm & 0xffff0000)) { in get_imm()
518 imm <<= 16; in get_imm()
520 if (!(imm & 0xff000000)) { in get_imm()
522 imm <<= 8; in get_imm()
524 if (!(imm & 0xf0000000)) { in get_imm()
526 imm <<= 4; in get_imm()
528 if (!(imm & 0xc0000000)) { in get_imm()
530 imm <<= 2; in get_imm()
532 if (!(imm & 0x80000000)) { in get_imm()
534 imm <<= 1; in get_imm()
539 if (imm & 0x00ffffff) in get_imm()
542 …return ((imm >> 24) & 0x7f) | COPY_BITS(counter, 4, 26, 1) | COPY_BITS(counter, 1, 12, 3) | COPY_B… in get_imm()
545 static sljit_s32 load_immediate(struct sljit_compiler *compiler, sljit_s32 dst, sljit_uw imm) in load_immediate() argument
551 if (imm >= 0x10000) { in load_immediate()
552 tmp = get_imm(imm); in load_immediate()
555 tmp = get_imm(~imm); in load_immediate()
562 …| COPY_BITS(imm, 12, 16, 4) | COPY_BITS(imm, 11, 26, 1) | COPY_BITS(imm, 8, 12, 3) | (imm & 0xff))… in load_immediate()
565 if (imm >= 0x10000) in load_immediate()
567 …| COPY_BITS(imm, 12 + 16, 16, 4) | COPY_BITS(imm, 11 + 16, 26, 1) | COPY_BITS(imm, 8 + 16, 12, 3) … in load_immediate()
583 sljit_uw imm, nimm; in emit_op_imm() local
594 imm = (flags & ARG2_IMM) ? arg2 : arg1; in emit_op_imm()
603 return load_immediate(compiler, dst, imm); in emit_op_imm()
606 return load_immediate(compiler, dst, ~imm); in emit_op_imm()
611 nimm = -imm; in emit_op_imm()
613 if (imm <= 0x7) in emit_op_imm()
614 return push_inst16(compiler, ADDSI3 | IMM3(imm) | RD3(dst) | RN3(reg)); in emit_op_imm()
618 if (imm <= 0xff) in emit_op_imm()
619 return push_inst16(compiler, ADDSI8 | IMM8(imm) | RDN3(dst)); in emit_op_imm()
625 if (imm <= 0xfff) in emit_op_imm()
626 return push_inst32(compiler, ADDWI | RD4(dst) | RN4(reg) | IMM12(imm)); in emit_op_imm()
630 nimm = get_imm(imm); in emit_op_imm()
633 nimm = get_imm(-imm); in emit_op_imm()
638 imm = get_imm(imm); in emit_op_imm()
639 if (imm != INVALID_IMM) in emit_op_imm()
640 return push_inst32(compiler, ADCI | (flags & SET_FLAGS) | RD4(dst) | RN4(reg) | imm); in emit_op_imm()
645 if (imm == 0 && IS_2_LO_REGS(reg, dst)) in emit_op_imm()
647 imm = get_imm(imm); in emit_op_imm()
648 if (imm != INVALID_IMM) in emit_op_imm()
649 return push_inst32(compiler, RSB_WI | (flags & SET_FLAGS) | RD4(dst) | RN4(reg) | imm); in emit_op_imm()
653 if (imm <= 0xff && reg_map[reg] <= 7) in emit_op_imm()
654 return push_inst16(compiler, CMPI | IMM8(imm) | RDN3(reg)); in emit_op_imm()
655 nimm = get_imm(imm); in emit_op_imm()
658 nimm = get_imm(-imm); in emit_op_imm()
662 nimm = -imm; in emit_op_imm()
664 if (imm <= 0x7) in emit_op_imm()
665 return push_inst16(compiler, SUBSI3 | IMM3(imm) | RD3(dst) | RN3(reg)); in emit_op_imm()
669 if (imm <= 0xff) in emit_op_imm()
670 return push_inst16(compiler, SUBSI8 | IMM8(imm) | RDN3(dst)); in emit_op_imm()
676 if (imm <= 0xfff) in emit_op_imm()
677 return push_inst32(compiler, SUBWI | RD4(dst) | RN4(reg) | IMM12(imm)); in emit_op_imm()
681 nimm = get_imm(imm); in emit_op_imm()
684 nimm = get_imm(-imm); in emit_op_imm()
691 imm = get_imm(imm); in emit_op_imm()
692 if (imm != INVALID_IMM) in emit_op_imm()
693 return push_inst32(compiler, SBCI | (flags & SET_FLAGS) | RD4(dst) | RN4(reg) | imm); in emit_op_imm()
696 nimm = get_imm(imm); in emit_op_imm()
699 imm = get_imm(imm); in emit_op_imm()
700 if (imm != INVALID_IMM) in emit_op_imm()
701 return push_inst32(compiler, BICI | (flags & SET_FLAGS) | RD4(dst) | RN4(reg) | imm); in emit_op_imm()
704 nimm = get_imm(imm); in emit_op_imm()
707 imm = get_imm(imm); in emit_op_imm()
708 if (imm != INVALID_IMM) in emit_op_imm()
709 return push_inst32(compiler, ORNI | (flags & SET_FLAGS) | RD4(dst) | RN4(reg) | imm); in emit_op_imm()
712 imm = get_imm(imm); in emit_op_imm()
713 if (imm != INVALID_IMM) in emit_op_imm()
714 return push_inst32(compiler, EORI | (flags & SET_FLAGS) | RD4(dst) | RN4(reg) | imm); in emit_op_imm()
721 imm &= 0x1f; in emit_op_imm()
722 if (imm == 0) { in emit_op_imm()
732 return push_inst16(compiler, LSLSI | RD3(dst) | RN3(reg) | (imm << 6)); in emit_op_imm()
733 return push_inst32(compiler, LSL_WI | (flags & SET_FLAGS) | RD4(dst) | RM4(reg) | IMM5(imm)); in emit_op_imm()
736 return push_inst16(compiler, LSRSI | RD3(dst) | RN3(reg) | (imm << 6)); in emit_op_imm()
737 return push_inst32(compiler, LSR_WI | (flags & SET_FLAGS) | RD4(dst) | RM4(reg) | IMM5(imm)); in emit_op_imm()
740 return push_inst16(compiler, ASRSI | RD3(dst) | RN3(reg) | (imm << 6)); in emit_op_imm()
741 return push_inst32(compiler, ASR_WI | (flags & SET_FLAGS) | RD4(dst) | RM4(reg) | IMM5(imm)); in emit_op_imm()
749 imm = arg2; in emit_op_imm()
751 FAIL_IF(load_immediate(compiler, arg2, imm)); in emit_op_imm()
754 imm = arg1; in emit_op_imm()
756 FAIL_IF(load_immediate(compiler, arg1, imm)); in emit_op_imm()
872 #define OFFSET_CHECK(imm, shift) (!(argw & ~(imm << shift))) argument
1064 sljit_uw imm; in sljit_emit_enter() local
1090 imm = get_imm(4096); in sljit_emit_enter()
1092 imm = get_imm(local_size & ~0xff); in sljit_emit_enter()
1094 SLJIT_ASSERT(imm != INVALID_IMM); in sljit_emit_enter()
1095 FAIL_IF(push_inst32(compiler, SUB_WI | RD4(TMP_REG1) | RN4(SLJIT_SP) | imm)); in sljit_emit_enter()
1118 imm = get_imm(4096); in sljit_emit_enter()
1119 SLJIT_ASSERT(imm != INVALID_IMM); in sljit_emit_enter()
1124 FAIL_IF(push_inst32(compiler, SUB_WI | RD4(TMP_REG1) | RN4(TMP_REG1) | imm)); in sljit_emit_enter()
1130 FAIL_IF(push_inst32(compiler, SUB_WI | RD4(TMP_REG1) | RN4(TMP_REG1) | imm)); in sljit_emit_enter()
1142 FAIL_IF(push_inst32(compiler, SUB_WI | RD4(TMP_REG1) | RN4(TMP_REG1) | imm)); in sljit_emit_enter()
1154 imm = get_imm(local_size & ~0xff); in sljit_emit_enter()
1155 SLJIT_ASSERT(imm != INVALID_IMM); in sljit_emit_enter()
1157 FAIL_IF(push_inst32(compiler, SUB_WI | RD4(TMP_REG1) | RN4(TMP_REG1) | imm)); in sljit_emit_enter()
1535 sljit_uw imm; in emit_fop_mem() local
1559 imm = get_imm(argw & ~0x3fc); in emit_fop_mem()
1560 if (imm != INVALID_IMM) { in emit_fop_mem()
1561 FAIL_IF(push_inst32(compiler, ADD_WI | RD4(TMP_REG1) | RN4(arg & REG_MASK) | imm)); in emit_fop_mem()
1564 imm = get_imm(-argw & ~0x3fc); in emit_fop_mem()
1565 if (imm != INVALID_IMM) { in emit_fop_mem()
1567 FAIL_IF(push_inst32(compiler, SUB_WI | RD4(TMP_REG1) | RN4(arg & REG_MASK) | imm)); in emit_fop_mem()