Lines Matching refs:op

462 #define SLJIT_S390X_INSTRUCTION(op, ...) \  argument
463 static SLJIT_INLINE sljit_ins op(__VA_ARGS__)
863 static sljit_s32 update_zero_overflow(struct sljit_compiler *compiler, sljit_s32 op, sljit_gpr dst_… in update_zero_overflow() argument
871 FAIL_IF(push_inst(compiler, brc(0xc, 2 + 2 + ((op & SLJIT_32) ? 1 : 2) + 2 + 3 + 1))); in update_zero_overflow()
873 FAIL_IF(push_inst(compiler, (op & SLJIT_32) ? or(dst_r, dst_r) : ogr(dst_r, dst_r))); in update_zero_overflow()
984 #define EVAL(op, r, addr) op(r, addr.offset, addr.index, addr.base) argument
1299 sljit_ins op; member
1316 ins12 = forms->op; in emit_commutative()
1399 ins12 = forms->op; in emit_non_commutative()
1573 sljit_ins op, arg; in sljit_generate_code() local
1591 op = (ins >> 32) & 0xf; in sljit_generate_code()
1593 switch (op) { in sljit_generate_code()
1915 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op0(struct sljit_compiler *compiler, sljit_s32 op) in sljit_emit_op0() argument
1921 CHECK(check_sljit_emit_op0(compiler, op)); in sljit_emit_op0()
1923 op = GET_OPCODE(op) | (op & SLJIT_32); in sljit_emit_op0()
1924 switch (op) { in sljit_emit_op0()
1953 if (op == SLJIT_DIVMOD_U32) in sljit_emit_op0()
1963 if (op == SLJIT_DIVMOD_S32) in sljit_emit_op0()
1973 if (op == SLJIT_DIVMOD_UW) in sljit_emit_op0()
1982 if (op == SLJIT_DIVMOD_SW) in sljit_emit_op0()
1999 static sljit_s32 sljit_emit_clz_ctz(struct sljit_compiler *compiler, sljit_s32 op, sljit_gpr dst_r,… in sljit_emit_clz_ctz() argument
2001 sljit_s32 is_ctz = (GET_OPCODE(op) == SLJIT_CTZ); in sljit_emit_clz_ctz()
2003 if ((op & SLJIT_32) && src_r != tmp0) { in sljit_emit_clz_ctz()
2009 …FAIL_IF(push_inst(compiler, ((op & SLJIT_32) ? 0x1300 /* lcr */ : 0xb9030000 /* lcgr */) | R4A(tmp… in sljit_emit_clz_ctz()
2012 …FAIL_IF(push_inst(compiler, ((op & SLJIT_32) ? 0x1400 /* nr */ : 0xb9800000 /* ngr */) | R4A(tmp0)… in sljit_emit_clz_ctz()
2024 if (op & SLJIT_32) { in sljit_emit_clz_ctz()
2032 …/ | R36A(tmp0) | R32A(tmp1) | ((sljit_ins)((op & SLJIT_32) ? 59 : 58) << 24) | (63 << 16) | ((slji… in sljit_emit_clz_ctz()
2037 …return push_inst(compiler, ((op & SLJIT_32) ? 0x1800 /* lr */ : 0xb9040000 /* lgr */) | R4A(dst_r)… in sljit_emit_clz_ctz()
2040 static sljit_s32 sljit_emit_rev(struct sljit_compiler *compiler, sljit_s32 op, in sljit_emit_rev() argument
2047 sljit_s32 opcode = GET_OPCODE(op); in sljit_emit_rev()
2052 …FAIL_IF(load_store_op(compiler, tmp0, src, srcw, op & SLJIT_32, is_16bit ? load_halfword_forms : l… in sljit_emit_rev()
2062 ins = (op & SLJIT_32) ? 0xe3000000003e /* strv */ : 0xe3000000002f /* strvg */; in sljit_emit_rev()
2075 ins = (op & SLJIT_32) ? 0xe3000000001e /* lrv */ : 0xe3000000000f /* lrvg */; in sljit_emit_rev()
2083 if (op & SLJIT_32) in sljit_emit_rev()
2093 ins = (op & SLJIT_32) ? 0xb91f0000 /* lrvr */ : 0xb90f0000 /* lrvgr */; in sljit_emit_rev()
2104 if (op & SLJIT_32) { in sljit_emit_rev()
2116 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op1(struct sljit_compiler *compiler, sljit_s32 op, in sljit_emit_op1() argument
2124 sljit_s32 opcode = GET_OPCODE(op); in sljit_emit_op1()
2127 CHECK(check_sljit_emit_op1(compiler, op, dst, dstw, src, srcw)); in sljit_emit_op1()
2136 switch (opcode | (op & SLJIT_32)) { in sljit_emit_op1()
2221 switch (opcode | (op & SLJIT_32)) { in sljit_emit_op1()
2347 compiler->status_flags_state = op & (VARIABLE_FLAG_MASK | SLJIT_SET_Z); in sljit_emit_op1()
2354 FAIL_IF(load_unsigned_word(compiler, src_r, src, srcw, op & SLJIT_32)); in sljit_emit_op1()
2356 FAIL_IF(sljit_emit_clz_ctz(compiler, op, dst_r, src_r)); in sljit_emit_op1()
2360 op |= SLJIT_32; in sljit_emit_op1()
2365 return sljit_emit_rev(compiler, op, dst, dstw, src, srcw); in sljit_emit_op1()
2371 return store_word(compiler, dst_r, dst, dstw, op & SLJIT_32); in sljit_emit_op1()
2376 static SLJIT_INLINE int is_commutative(sljit_s32 op) in is_commutative() argument
2378 switch (GET_OPCODE(op)) { in is_commutative()
2410 static sljit_s32 sljit_emit_add(struct sljit_compiler *compiler, sljit_s32 op, in sljit_emit_add() argument
2415 int sets_overflow = (op & VARIABLE_FLAG_MASK) == SLJIT_SET_OVERFLOW; in sljit_emit_add()
2416 …int sets_zero_overflow = (op & (SLJIT_SET_Z | VARIABLE_FLAG_MASK)) == (SLJIT_SET_Z | SLJIT_SET_OVE… in sljit_emit_add()
2423 ins = (op & SLJIT_32) ? 0xeb000000006a /* asi */ : 0xeb000000007a /* agsi */; in sljit_emit_add()
2425 ins = (op & SLJIT_32) ? 0xeb000000006e /* alsi */ : 0xeb000000007e /* algsi */; in sljit_emit_add()
2431 ins = (op & SLJIT_32) ? 0xec00000000d8 /* ahik */ : 0xec00000000d9 /* aghik */; in sljit_emit_add()
2433 ins = (op & SLJIT_32) ? 0xec00000000da /* alhsik */ : 0xec00000000db /* alghsik */; in sljit_emit_add()
2439 if ((op & SLJIT_32) || is_u32(src2w)) { in sljit_emit_add()
2440 ins = (op & SLJIT_32) ? 0xc20b00000000 /* alfi */ : 0xc20a00000000 /* algfi */; in sljit_emit_add()
2449 else if ((op & SLJIT_32) || is_s32(src2w)) { in sljit_emit_add()
2450 ins = (op & SLJIT_32) ? 0xc20900000000 /* afi */ : 0xc20800000000 /* agfi */; in sljit_emit_add()
2461 FAIL_IF(update_zero_overflow(compiler, op, FAST_IS_REG(dst) ? gpr(dst & REG_MASK) : tmp0)); in sljit_emit_add()
2464 return store_word(compiler, tmp0, dst, dstw, op & SLJIT_32); in sljit_emit_add()
2489 static sljit_s32 sljit_emit_sub(struct sljit_compiler *compiler, sljit_s32 op, in sljit_emit_sub() argument
2494 sljit_s32 flag_type = GET_FLAG_TYPE(op); in sljit_emit_sub()
2496 …int sets_zero_overflow = (op & (SLJIT_SET_Z | VARIABLE_FLAG_MASK)) == (SLJIT_SET_Z | SLJIT_SET_OVE… in sljit_emit_sub()
2506 if (compare_signed || ((op & VARIABLE_FLAG_MASK) == 0 && is_s32(src2w))) { in sljit_emit_sub()
2507 if ((op & SLJIT_32) || is_s32(src2w)) { in sljit_emit_sub()
2508 ins = (op & SLJIT_32) ? 0xc20d00000000 /* cfi */ : 0xc20c00000000 /* cgfi */; in sljit_emit_sub()
2513 if ((op & SLJIT_32) || is_u32(src2w)) { in sljit_emit_sub()
2514 ins = (op & SLJIT_32) ? 0xc20f00000000 /* clfi */ : 0xc20e00000000 /* clgfi */; in sljit_emit_sub()
2522 if ((op & SLJIT_32) && ((src2 & OFFS_REG_MASK) || is_u12(src2w))) { in sljit_emit_sub()
2528 ins = (op & SLJIT_32) ? 0xe30000000059 /* cy */ : 0xe30000000020 /* cg */; in sljit_emit_sub()
2530 ins = (op & SLJIT_32) ? 0xe30000000055 /* cly */ : 0xe30000000021 /* clg */; in sljit_emit_sub()
2535 ins = (op & SLJIT_32) ? 0x1900 /* cr */ : 0xb9200000 /* cgr */; in sljit_emit_sub()
2537 ins = (op & SLJIT_32) ? 0x1500 /* clr */ : 0xb9210000 /* clgr */; in sljit_emit_sub()
2542 ins = (op & SLJIT_32) ? 0x1300 /* lcr */ : 0xb9030000 /* lcgr */; in sljit_emit_sub()
2550 if (sets_signed || neg_src2w != 0 || (op & (SLJIT_SET_Z | VARIABLE_FLAG_MASK)) == 0) { in sljit_emit_sub()
2553 ins = (op & SLJIT_32) ? 0xeb000000006a /* asi */ : 0xeb000000007a /* agsi */; in sljit_emit_sub()
2555 ins = (op & SLJIT_32) ? 0xeb000000006e /* alsi */ : 0xeb000000007e /* algsi */; in sljit_emit_sub()
2561 ins = (op & SLJIT_32) ? 0xec00000000d8 /* ahik */ : 0xec00000000d9 /* aghik */; in sljit_emit_sub()
2563 ins = (op & SLJIT_32) ? 0xec00000000da /* alhsik */ : 0xec00000000db /* alghsik */; in sljit_emit_sub()
2570 if ((op & SLJIT_32) || is_u32(src2w)) { in sljit_emit_sub()
2571 ins = (op & SLJIT_32) ? 0xc20500000000 /* slfi */ : 0xc20400000000 /* slgfi */; in sljit_emit_sub()
2580 else if ((op & SLJIT_32) || is_s32(neg_src2w)) { in sljit_emit_sub()
2581 ins = (op & SLJIT_32) ? 0xc20900000000 /* afi */ : 0xc20800000000 /* agfi */; in sljit_emit_sub()
2594 if ((op & VARIABLE_FLAG_MASK) != SLJIT_SET_OVERFLOW) { in sljit_emit_sub()
2601 FAIL_IF(push_inst(compiler, (op & SLJIT_32) ? lcr(tmp1, dst_r) : lcgr(tmp1, dst_r))); in sljit_emit_sub()
2603 else if (op & SLJIT_SET_Z) in sljit_emit_sub()
2604 FAIL_IF(update_zero_overflow(compiler, op, dst_r)); in sljit_emit_sub()
2608 return store_word(compiler, tmp0, dst, dstw, op & SLJIT_32); in sljit_emit_sub()
2633 static sljit_s32 sljit_emit_multiply(struct sljit_compiler *compiler, sljit_s32 op, in sljit_emit_multiply() argument
2640 if (HAS_FLAGS(op)) { in sljit_emit_multiply()
2657 ins = (op & SLJIT_32) ? 0xa70c0000 /* mhi */ : 0xa70d0000 /* mghi */; in sljit_emit_multiply()
2662 ins = (op & SLJIT_32) ? 0xc20100000000 /* msfi */ : 0xc20000000000 /* msgfi */; in sljit_emit_multiply()
2754 static sljit_s32 sljit_emit_bitwise(struct sljit_compiler *compiler, sljit_s32 op, in sljit_emit_bitwise() argument
2759 sljit_s32 type = GET_OPCODE(op); in sljit_emit_bitwise()
2762 if (src2 == SLJIT_IMM && (!(op & SLJIT_SET_Z) || (type == SLJIT_AND && dst == (sljit_s32)tmp0))) { in sljit_emit_bitwise()
2766 if (op & SLJIT_32) in sljit_emit_bitwise()
2795 if (!(op & SLJIT_SET_Z)) in sljit_emit_bitwise()
2809 static sljit_s32 sljit_emit_shift(struct sljit_compiler *compiler, sljit_s32 op, in sljit_emit_shift() argument
2814 sljit_s32 type = GET_OPCODE(op); in sljit_emit_shift()
2834 if ((op & SLJIT_32) && (type == SLJIT_MSHL || type == SLJIT_MLSHR || type == SLJIT_MASHR)) { in sljit_emit_shift()
2842 imm = (sljit_ins)(src2w & ((op & SLJIT_32) ? 0x1f : 0x3f)); in sljit_emit_shift()
2844 if ((op & SLJIT_32) && dst_r == src_r) { in sljit_emit_shift()
2855 ins = (op & SLJIT_32) ? 0xeb00000000df /* sllk */ : 0xeb000000000d /* sllg */; in sljit_emit_shift()
2857 ins = (op & SLJIT_32) ? 0xeb00000000de /* srlk */ : 0xeb000000000c /* srlg */; in sljit_emit_shift()
2859 ins = (op & SLJIT_32) ? 0xeb00000000dc /* srak */ : 0xeb000000000a /* srag */; in sljit_emit_shift()
2864 if ((op & SLJIT_SET_Z) && type != SLJIT_ASHR) in sljit_emit_shift()
2865 return push_inst(compiler, (op & SLJIT_32) ? or(dst_r, dst_r) : ogr(dst_r, dst_r)); in sljit_emit_shift()
2870 static sljit_s32 sljit_emit_rotate(struct sljit_compiler *compiler, sljit_s32 op, in sljit_emit_rotate() argument
2895 if (GET_OPCODE(op) == SLJIT_ROTR) { in sljit_emit_rotate()
2897 ins = (op & SLJIT_32) ? 0x1300 /* lcr */ : 0xb9030000 /* lcgr */; in sljit_emit_rotate()
2905 imm = (sljit_ins)(src2w & ((op & SLJIT_32) ? 0x1f : 0x3f)); in sljit_emit_rotate()
2907 ins = (op & SLJIT_32) ? 0xeb000000001d /* rll */ : 0xeb000000001c /* rllg */; in sljit_emit_rotate()
2931 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op2(struct sljit_compiler *compiler, sljit_s32 op, in sljit_emit_op2() argument
2937 CHECK(check_sljit_emit_op2(compiler, op, 0, dst, dstw, src1, src1w, src2, src2w)); in sljit_emit_op2()
2942 compiler->mode = op & SLJIT_32; in sljit_emit_op2()
2943 compiler->status_flags_state = op & (VARIABLE_FLAG_MASK | SLJIT_SET_Z); in sljit_emit_op2()
2945 if (is_commutative(op) && src1 == SLJIT_IMM && src2 != SLJIT_IMM) { in sljit_emit_op2()
2955 switch (GET_OPCODE(op)) { in sljit_emit_op2()
2958 return sljit_emit_add(compiler, op, dst, dstw, src1, src1w, src2, src2w); in sljit_emit_op2()
2963 return store_word(compiler, tmp0, dst, dstw, op & SLJIT_32); in sljit_emit_op2()
2967 return sljit_emit_sub(compiler, op, dst, dstw, src1, src1w, src2, src2w); in sljit_emit_op2()
2972 return store_word(compiler, tmp0, dst, dstw, op & SLJIT_32); in sljit_emit_op2()
2975 FAIL_IF(sljit_emit_multiply(compiler, op, dst, src1, src1w, src2, src2w)); in sljit_emit_op2()
2980 FAIL_IF(sljit_emit_bitwise(compiler, op, dst, src1, src1w, src2, src2w)); in sljit_emit_op2()
2988 FAIL_IF(sljit_emit_shift(compiler, op, dst, src1, src1w, src2, src2w)); in sljit_emit_op2()
2992 FAIL_IF(sljit_emit_rotate(compiler, op, dst, src1, src1w, src2, src2w)); in sljit_emit_op2()
2997 return store_word(compiler, tmp0, dst, dstw, op & SLJIT_32); in sljit_emit_op2()
3001 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op2u(struct sljit_compiler *compiler, sljit_s32 op, in sljit_emit_op2u() argument
3006 CHECK(check_sljit_emit_op2(compiler, op, 1, 0, 0, src1, src1w, src2, src2w)); in sljit_emit_op2u()
3009 return sljit_emit_op2(compiler, op, (sljit_s32)tmp0, 0, src1, src1w, src2, src2w); in sljit_emit_op2u()
3012 …T_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_shift_into(struct sljit_compiler *compiler, sljit_s32 op, in sljit_emit_shift_into() argument
3019 sljit_sw bit_length = (op & SLJIT_32) ? 32 : 64; in sljit_emit_shift_into()
3027 CHECK(check_sljit_emit_shift_into(compiler, op, dst_reg, src1_reg, src2_reg, src3, src3w)); in sljit_emit_shift_into()
3029 is_right = (GET_OPCODE(op) == SLJIT_LSHR || GET_OPCODE(op) == SLJIT_MLSHR); in sljit_emit_shift_into()
3033 …return sljit_emit_op2(compiler, (is_right ? SLJIT_ROTR : SLJIT_ROTL) | (op & SLJIT_32), dst_reg, 0… in sljit_emit_shift_into()
3044 if (op & SLJIT_32) { in sljit_emit_shift_into()
3076 FAIL_IF(load_word(compiler, tmp1, src3, src3w, op & SLJIT_32)); in sljit_emit_shift_into()
3078 if (op & SLJIT_32) { in sljit_emit_shift_into()
3079 if (GET_OPCODE(op) == SLJIT_MSHL || GET_OPCODE(op) == SLJIT_MLSHR) { in sljit_emit_shift_into()
3112 if (!(op & SLJIT_SHIFT_INTO_NON_ZERO)) { in sljit_emit_shift_into()
3130 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op_src(struct sljit_compiler *compiler, sljit_s32 op, in sljit_emit_op_src() argument
3137 CHECK(check_sljit_emit_op_src(compiler, op, src, srcw)); in sljit_emit_op_src()
3140 switch (op) { in sljit_emit_op_src()
3162 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op_dst(struct sljit_compiler *compiler, sljit_s32 op, in sljit_emit_op_dst() argument
3169 CHECK(check_sljit_emit_op_dst(compiler, op, dst, dstw)); in sljit_emit_op_dst()
3172 switch (op) { in sljit_emit_op_dst()
3223 static sljit_s32 float_mem(struct sljit_compiler *compiler, sljit_s32 op, in float_mem() argument
3235 if (op & FLOAT_STORE) in float_mem()
3236 ins = (op & SLJIT_32) ? 0x70000000 /* ste */ : 0x60000000 /* std */; in float_mem()
3238 ins = (op & SLJIT_32) ? 0x78000000 /* le */ : 0x68000000 /* ld */; in float_mem()
3245 if (op & FLOAT_STORE) in float_mem()
3246 ins = (op & SLJIT_32) ? 0xed0000000066 /* stey */ : 0xed0000000067 /* stdy */; in float_mem()
3248 ins = (op & SLJIT_32) ? 0xed0000000064 /* ley */ : 0xed0000000065 /* ldy */; in float_mem()
3266 …IT_INLINE sljit_s32 sljit_emit_fop1_conv_sw_from_f64(struct sljit_compiler *compiler, sljit_s32 op, in sljit_emit_fop1_conv_sw_from_f64() argument
3274 FAIL_IF(float_mem(compiler, FLOAT_LOAD | (op & SLJIT_32), TMP_FREG1, src, srcw)); in sljit_emit_fop1_conv_sw_from_f64()
3279 if (GET_OPCODE(op) == SLJIT_CONV_SW_FROM_F64) in sljit_emit_fop1_conv_sw_from_f64()
3280 ins = (op & SLJIT_32) ? 0xb3a85000 /* cgebr */ : 0xb3a95000 /* cgdbr */; in sljit_emit_fop1_conv_sw_from_f64()
3282 ins = (op & SLJIT_32) ? 0xb3985000 /* cfebr */ : 0xb3995000 /* cfdbr */; in sljit_emit_fop1_conv_sw_from_f64()
3287 return store_word(compiler, dst_r, dst, dstw, GET_OPCODE(op) >= SLJIT_CONV_S32_FROM_F64); in sljit_emit_fop1_conv_sw_from_f64()
3315 …IT_INLINE sljit_s32 sljit_emit_fop1_conv_f64_from_sw(struct sljit_compiler *compiler, sljit_s32 op, in sljit_emit_fop1_conv_f64_from_sw() argument
3321 if (src == SLJIT_IMM && GET_OPCODE(op) == SLJIT_CONV_F64_FROM_S32) in sljit_emit_fop1_conv_f64_from_sw()
3324 if (GET_OPCODE(op) == SLJIT_CONV_F64_FROM_SW) in sljit_emit_fop1_conv_f64_from_sw()
3325 ins = (op & SLJIT_32) ? 0xb3a40000 /* cegbr */ : 0xb3a50000 /* cdgbr */; in sljit_emit_fop1_conv_f64_from_sw()
3327 ins = (op & SLJIT_32) ? 0xb3940000 /* cefbr */ : 0xb3950000 /* cdfbr */; in sljit_emit_fop1_conv_f64_from_sw()
3332 …IT_INLINE sljit_s32 sljit_emit_fop1_conv_f64_from_uw(struct sljit_compiler *compiler, sljit_s32 op, in sljit_emit_fop1_conv_f64_from_uw() argument
3338 if (src == SLJIT_IMM && GET_OPCODE(op) == SLJIT_CONV_F64_FROM_U32) in sljit_emit_fop1_conv_f64_from_uw()
3341 if (GET_OPCODE(op) == SLJIT_CONV_F64_FROM_UW) in sljit_emit_fop1_conv_f64_from_uw()
3342 ins = (op & SLJIT_32) ? 0xb3a00000 /* celgbr */ : 0xb3a10000 /* cdlgbr */; in sljit_emit_fop1_conv_f64_from_uw()
3344 ins = (op & SLJIT_32) ? 0xb3900000 /* celfbr */ : 0xb3910000 /* cdlfbr */; in sljit_emit_fop1_conv_f64_from_uw()
3349 static SLJIT_INLINE sljit_s32 sljit_emit_fop1_cmp(struct sljit_compiler *compiler, sljit_s32 op, in sljit_emit_fop1_cmp() argument
3356 FAIL_IF(float_mem(compiler, FLOAT_LOAD | (op & SLJIT_32), TMP_FREG1, src1, src1w)); in sljit_emit_fop1_cmp()
3360 if (op & SLJIT_32) { in sljit_emit_fop1_cmp()
3371 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_fop1(struct sljit_compiler *compiler, sljit_s32 op, in sljit_emit_fop1() argument
3380 SELECT_FOP1_OPERATION_WITH_CHECKS(compiler, op, dst, dstw, src, srcw); in sljit_emit_fop1()
3384 if (op == SLJIT_CONV_F64_FROM_F32) in sljit_emit_fop1()
3388 …FAIL_IF(float_mem(compiler, FLOAT_LOAD | (op == SLJIT_CONV_F32_FROM_F64 ? 0 : (op & SLJIT_32)), ds… in sljit_emit_fop1()
3392 switch (GET_OPCODE(op)) { in sljit_emit_fop1()
3398 ins = (op & SLJIT_32) ? 0x3800 /* ler */ : 0x2800 /* ldr */; in sljit_emit_fop1()
3401 return float_mem(compiler, FLOAT_STORE | (op & SLJIT_32), src, dst, dstw); in sljit_emit_fop1()
3407 ins = (op & SLJIT_32) ? 0xb3030000 /* lcebr */ : 0xb3130000 /* lcdbr */; in sljit_emit_fop1()
3410 SLJIT_ASSERT(GET_OPCODE(op) == SLJIT_ABS_F64); in sljit_emit_fop1()
3411 ins = (op & SLJIT_32) ? 0xb3000000 /* lpebr */ : 0xb3100000 /* lpdbr */; in sljit_emit_fop1()
3423 return float_mem(compiler, FLOAT_STORE | (op & SLJIT_32), TMP_FREG1, dst, dstw); in sljit_emit_fop1()
3426 #define FLOAT_MOV(op, dst_r, src_r) \ argument
3427 (((op & SLJIT_32) ? 0x3800 /* ler */ : 0x2800 /* ldr */) | F4(dst_r) | F0(src_r))
3429 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_fop2(struct sljit_compiler *compiler, sljit_s32 op, in sljit_emit_fop2() argument
3438 CHECK(check_sljit_emit_fop2(compiler, op, dst, dstw, src1, src1w, src2, src2w)); in sljit_emit_fop2()
3451 if (GET_OPCODE(op) == SLJIT_ADD_F64 || GET_OPCODE(op) == SLJIT_MUL_F64) { in sljit_emit_fop2()
3458 FAIL_IF(push_inst(compiler, FLOAT_MOV(op, TMP_FREG1, src2))); in sljit_emit_fop2()
3464 FAIL_IF(float_mem(compiler, FLOAT_LOAD | (op & SLJIT_32), dst_r, src1, src1w)); in sljit_emit_fop2()
3466 FAIL_IF(push_inst(compiler, FLOAT_MOV(op, dst_r, src1))); in sljit_emit_fop2()
3469 switch (GET_OPCODE(op)) { in sljit_emit_fop2()
3471 ins_r = (op & SLJIT_32) ? 0xb30a0000 /* aebr */ : 0xb31a0000 /* adbr */; in sljit_emit_fop2()
3472 ins = (op & SLJIT_32) ? 0xed000000000a /* aeb */ : 0xed000000001a /* adb */; in sljit_emit_fop2()
3475 ins_r = (op & SLJIT_32) ? 0xb30b0000 /* sebr */ : 0xb31b0000 /* sdbr */; in sljit_emit_fop2()
3476 ins = (op & SLJIT_32) ? 0xed000000000b /* seb */ : 0xed000000001b /* sdb */; in sljit_emit_fop2()
3479 ins_r = (op & SLJIT_32) ? 0xb3170000 /* meebr */ : 0xb31c0000 /* mdbr */; in sljit_emit_fop2()
3480 ins = (op & SLJIT_32) ? 0xed0000000017 /* meeb */ : 0xed000000001c /* mdb */; in sljit_emit_fop2()
3483 SLJIT_ASSERT(GET_OPCODE(op) == SLJIT_DIV_F64); in sljit_emit_fop2()
3484 ins_r = (op & SLJIT_32) ? 0xb30d0000 /* debr */ : 0xb31d0000 /* ddbr */; in sljit_emit_fop2()
3485 ins = (op & SLJIT_32) ? 0xed000000000d /* deb */ : 0xed000000001d /* ddb */; in sljit_emit_fop2()
3492 return float_mem(compiler, FLOAT_STORE | (op & SLJIT_32), TMP_FREG1, dst, dstw); in sljit_emit_fop2()
3498 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_fop2r(struct sljit_compiler *compiler, sljit_s32 op, in sljit_emit_fop2r() argument
3506 CHECK(check_sljit_emit_fop2r(compiler, op, dst_freg, src1, src1w, src2, src2w)); in sljit_emit_fop2r()
3511 FAIL_IF(float_mem(compiler, FLOAT_LOAD | (op & SLJIT_32), TMP_FREG1, src2, src2w)); in sljit_emit_fop2r()
3517 FAIL_IF(float_mem(compiler, FLOAT_LOAD | (op & SLJIT_32), reg, src1, src1w)); in sljit_emit_fop2r()
3558 SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_fcopy(struct sljit_compiler *compiler, sljit_s32 op, in sljit_emit_fcopy() argument
3564 CHECK(check_sljit_emit_fcopy(compiler, op, freg, reg)); in sljit_emit_fcopy()
3568 if (GET_OPCODE(op) == SLJIT_COPY_TO_F64) { in sljit_emit_fcopy()
3569 if (op & SLJIT_32) { in sljit_emit_fcopy()
3579 if (!(op & SLJIT_32)) in sljit_emit_fcopy()
3701 …JIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op_flags(struct sljit_compiler *compiler, sljit_s32 op, in sljit_emit_op_flags() argument
3710 CHECK(check_sljit_emit_op_flags(compiler, op, dst, dstw, type)); in sljit_emit_op_flags()
3712 switch (GET_OPCODE(op)) { in sljit_emit_op_flags()
3716 compiler->status_flags_state = op & SLJIT_SET_Z; in sljit_emit_op_flags()
3720 FAIL_IF(load_word(compiler, dst_r, dst, dstw, op & SLJIT_32)); in sljit_emit_op_flags()
3724 op |= SLJIT_32; in sljit_emit_op_flags()
3739 WHEN2(op & SLJIT_32, lochi, locghi))); in sljit_emit_op_flags()
3747 switch (GET_OPCODE(op)) { in sljit_emit_op_flags()
3751 WHEN2(op & SLJIT_32, nr, ngr))); in sljit_emit_op_flags()
3755 WHEN2(op & SLJIT_32, or, ogr))); in sljit_emit_op_flags()
3759 WHEN2(op & SLJIT_32, xr, xgr))); in sljit_emit_op_flags()
3766 return store_word(compiler, dst_r, dst, dstw, (op & SLJIT_32)); in sljit_emit_op_flags()
4391 …_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_atomic_load(struct sljit_compiler *compiler, sljit_s32 op, in sljit_emit_atomic_load() argument
4396 CHECK(check_sljit_emit_atomic_load(compiler, op, dst_reg, mem_reg)); in sljit_emit_atomic_load()
4399 return sljit_emit_op1(compiler, op, dst_reg, 0, SLJIT_MEM1(mem_reg), 0); in sljit_emit_atomic_load()
4402 …API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_atomic_store(struct sljit_compiler *compiler, sljit_s32 op, in sljit_emit_atomic_store() argument
4412 CHECK(check_sljit_emit_atomic_store(compiler, op, src_reg, mem_reg, temp_reg)); in sljit_emit_atomic_store()
4414 switch (GET_OPCODE(op)) { in sljit_emit_atomic_store()