Lines Matching refs:freg

2654 #define EMIT_FPU_DATA_TRANSFER(inst, add, base, freg, offs) \  argument
2655 ((inst) | (sljit_ins)((add) << 23) | RN(base) | VD(freg) | (sljit_ins)(offs))
2887 sljit_s32 freg, sljit_f32 value) in sljit_emit_fset32() argument
2899 CHECK(check_sljit_emit_fset32(compiler, freg, value)); in sljit_emit_fset32()
2909 … return push_inst(compiler, (VMOV_F32 ^ (1 << 6)) | ((ins & 0xf0) << 12) | VD(freg) | (ins & 0xf)); in sljit_emit_fset32()
2915 return push_inst(compiler, VMOV | VN(freg) | RD(TMP_REG1)); in sljit_emit_fset32()
2919 sljit_s32 freg, sljit_f64 value) in sljit_emit_fset64() argument
2931 CHECK(check_sljit_emit_fset64(compiler, freg, value)); in sljit_emit_fset64()
2941 …return push_inst(compiler, (VMOV_F32 ^ (1 << 6)) | (1 << 8) | ((ins & 0xf0) << 12) | VD(freg) | (i… in sljit_emit_fset64()
2948 return push_inst(compiler, VMOV2 | RN(TMP_REG1) | RD(TMP_REG1) | VM(freg)); in sljit_emit_fset64()
2951 return push_inst(compiler, VMOV2 | RN(TMP_REG2) | RD(TMP_REG1) | VM(freg)); in sljit_emit_fset64()
2955 sljit_s32 freg, sljit_s32 reg) in sljit_emit_fcopy() argument
2961 CHECK(check_sljit_emit_fcopy(compiler, op, freg, reg)); in sljit_emit_fcopy()
2967 inst = VMOV2 | RN(reg) | RD(reg2) | VM(freg); in sljit_emit_fcopy()
2969 inst = VMOV | VN(freg) | RD(reg); in sljit_emit_fcopy()
3827 sljit_s32 freg, in sljit_emit_fmem() argument
3831 CHECK(check_sljit_emit_fmem(compiler, type, freg, mem, memw)); in sljit_emit_fmem()
3834 …iler, ((type ^ SLJIT_32) & SLJIT_32) | ((type & SLJIT_MEM_STORE) ? 0 : FPU_LOAD), freg, mem, memw); in sljit_emit_fmem()
3837 FAIL_IF(push_inst(compiler, VMOV | (1 << 20) | VN(freg) | RD(TMP_REG2))); in sljit_emit_fmem()
3846 FAIL_IF(push_inst(compiler, VMOV | (1 << 20) | VN(freg) | 0x80 | RD(TMP_REG2))); in sljit_emit_fmem()
3852 return push_inst(compiler, VMOV | VN(freg) | RD(TMP_REG2)); in sljit_emit_fmem()
3860 return push_inst(compiler, VMOV2 | VM(freg) | RD(TMP_REG2) | RN(TMP_REG1)); in sljit_emit_fmem()
3895 static SLJIT_INLINE sljit_s32 simd_get_quad_reg_index(sljit_s32 freg) in simd_get_quad_reg_index() argument
3897 freg += freg & 0x1; in simd_get_quad_reg_index()
3899 SLJIT_ASSERT((freg_map[freg] & 0x1) == (freg <= SLJIT_NUMBER_OF_SCRATCH_FLOAT_REGISTERS)); in simd_get_quad_reg_index()
3901 if (freg <= SLJIT_NUMBER_OF_SCRATCH_FLOAT_REGISTERS) in simd_get_quad_reg_index()
3902 freg--; in simd_get_quad_reg_index()
3904 return freg; in simd_get_quad_reg_index()
3907 #define SLJIT_QUAD_OTHER_HALF(freg) ((((freg) & 0x1) << 1) - 1) argument
3910 sljit_s32 freg, in sljit_emit_simd_mov() argument
3919 CHECK(check_sljit_emit_simd_mov(compiler, type, freg, srcdst, srcdstw)); in sljit_emit_simd_mov()
3933 freg = simd_get_quad_reg_index(freg); in sljit_emit_simd_mov()
3940 ins = VD(srcdst) | VN(freg) | VM(freg); in sljit_emit_simd_mov()
3942 ins = VD(freg) | VN(srcdst) | VM(srcdst); in sljit_emit_simd_mov()
3955 ins = ((type & SLJIT_SIMD_STORE) ? VST1 : VLD1) | VD(freg) in sljit_emit_simd_mov()
4063 sljit_s32 freg, in sljit_emit_simd_replicate() argument
4071 CHECK(check_sljit_emit_simd_replicate(compiler, type, freg, src, srcw)); in sljit_emit_simd_replicate()
4085 freg = simd_get_quad_reg_index(freg); in sljit_emit_simd_replicate()
4088 return push_inst(compiler, VMOV_i | ((reg_size == 4) ? (1 << 6) : 0) | VD(freg)); in sljit_emit_simd_replicate()
4094 FAIL_IF(emit_fop_mem(compiler, FPU_LOAD | SLJIT_32, freg, src, srcw)); in sljit_emit_simd_replicate()
4095 src = freg; in sljit_emit_simd_replicate()
4096 } else if (freg != src) in sljit_emit_simd_replicate()
4097 FAIL_IF(push_inst(compiler, VORR | VD(freg) | VN(src) | VM(src))); in sljit_emit_simd_replicate()
4099 freg += SLJIT_QUAD_OTHER_HALF(freg); in sljit_emit_simd_replicate()
4101 if (freg != src) in sljit_emit_simd_replicate()
4102 return push_inst(compiler, VORR | VD(freg) | VN(src) | VM(src)); in sljit_emit_simd_replicate()
4114 return push_inst(compiler, VLD1_r | ins | VD(freg) | RN(src) | 0xf); in sljit_emit_simd_replicate()
4124 return push_inst(compiler, VDUP_s | ins | VD(freg) | (sljit_ins)freg_map[src]); in sljit_emit_simd_replicate()
4137 return push_inst(compiler, VMOV_i | imm | VD(freg)); in sljit_emit_simd_replicate()
4159 return push_inst(compiler, VDUP | ins | VN(freg) | RD(src)); in sljit_emit_simd_replicate()
4163 sljit_s32 freg, sljit_s32 lane_index, in sljit_emit_simd_lane_mov() argument
4171 CHECK(check_sljit_emit_simd_lane_mov(compiler, type, freg, lane_index, srcdst, srcdstw)); in sljit_emit_simd_lane_mov()
4185 freg = simd_get_quad_reg_index(freg); in sljit_emit_simd_lane_mov()
4193 freg += SLJIT_QUAD_OTHER_HALF(freg); in sljit_emit_simd_lane_mov()
4195 if (srcdst != freg) in sljit_emit_simd_lane_mov()
4196 FAIL_IF(push_inst(compiler, VORR | VD(freg) | VN(srcdst) | VM(srcdst))); in sljit_emit_simd_lane_mov()
4198 freg += SLJIT_QUAD_OTHER_HALF(freg); in sljit_emit_simd_lane_mov()
4199 return push_inst(compiler, VMOV_i | VD(freg)); in sljit_emit_simd_lane_mov()
4202 if (srcdst == freg || (elem_size == 3 && srcdst == (freg + SLJIT_QUAD_OTHER_HALF(freg)))) { in sljit_emit_simd_lane_mov()
4203 FAIL_IF(push_inst(compiler, VORR | ins | VD(TMP_FREG2) | VN(freg) | VM(freg))); in sljit_emit_simd_lane_mov()
4209 FAIL_IF(push_inst(compiler, VMOV_i | ins | VD(freg))); in sljit_emit_simd_lane_mov()
4214 freg += SLJIT_QUAD_OTHER_HALF(freg); in sljit_emit_simd_lane_mov()
4219 …return emit_fop_mem(compiler, ((type & SLJIT_SIMD_STORE) ? 0 : FPU_LOAD) | SLJIT_32, freg, srcdst,… in sljit_emit_simd_lane_mov()
4225 …return push_inst(compiler, ((type & SLJIT_SIMD_STORE) ? VST1_s : VLD1_s) | ins | VD(freg) | RN(src… in sljit_emit_simd_lane_mov()
4231 return push_inst(compiler, VORR | VD(srcdst) | VN(freg) | VM(freg)); in sljit_emit_simd_lane_mov()
4232 return push_inst(compiler, VMOV_F32 | SLJIT_32 | VD(freg) | VM(srcdst)); in sljit_emit_simd_lane_mov()
4236 if (freg_ebit_map[freg] == 0) { in sljit_emit_simd_lane_mov()
4238 freg = SLJIT_F64_SECOND(freg); in sljit_emit_simd_lane_mov()
4240 return push_inst(compiler, VMOV_F32 | VD(srcdst) | VM(freg)); in sljit_emit_simd_lane_mov()
4243 …FAIL_IF(push_inst(compiler, VMOV_s | (1 << 20) | ((sljit_ins)lane_index << 21) | VN(freg) | RD(TMP… in sljit_emit_simd_lane_mov()
4248 return push_inst(compiler, VMOV_s | ((sljit_ins)lane_index << 21) | VN(freg) | RD(TMP_REG1)); in sljit_emit_simd_lane_mov()
4276 return push_inst(compiler, VMOV_s | ins | VN(freg) | RD(srcdst)); in sljit_emit_simd_lane_mov()
4280 sljit_s32 freg, in sljit_emit_simd_lane_replicate() argument
4288 CHECK(check_sljit_emit_simd_lane_replicate(compiler, type, freg, src, src_lane_index)); in sljit_emit_simd_lane_replicate()
4300 freg = simd_get_quad_reg_index(freg); in sljit_emit_simd_lane_replicate()
4310 if (freg != src) in sljit_emit_simd_lane_replicate()
4311 FAIL_IF(push_inst(compiler, VORR | VD(freg) | VN(src) | VM(src))); in sljit_emit_simd_lane_replicate()
4313 freg += SLJIT_QUAD_OTHER_HALF(freg); in sljit_emit_simd_lane_replicate()
4315 if (freg != src) in sljit_emit_simd_lane_replicate()
4316 return push_inst(compiler, VORR | VD(freg) | VN(src) | VM(src)); in sljit_emit_simd_lane_replicate()
4325 return push_inst(compiler, VDUP_s | ins | VD(freg) | VM(src)); in sljit_emit_simd_lane_replicate()
4329 sljit_s32 freg, in sljit_emit_simd_extend() argument
4338 CHECK(check_sljit_emit_simd_extend(compiler, type, freg, src, srcw)); in sljit_emit_simd_extend()
4352 freg = simd_get_quad_reg_index(freg); in sljit_emit_simd_extend()
4357 FAIL_IF(push_inst(compiler, VLD1 | (0x7 << 8) | VD(freg) | RN(src) | 0xf)); in sljit_emit_simd_extend()
4359 …iler, VLD1_s | (sljit_ins)((reg_size - elem2_size + elem_size) << 10) | VD(freg) | RN(src) | 0xf)); in sljit_emit_simd_extend()
4360 src = freg; in sljit_emit_simd_extend()
4365 dst_reg = (reg_size == 4) ? freg : TMP_FREG2; in sljit_emit_simd_extend()
4374 return push_inst(compiler, VORR | VD(freg) | VN(TMP_FREG2) | VM(TMP_FREG2)); in sljit_emit_simd_extend()
4381 if (freg == src) { in sljit_emit_simd_extend()
4382 freg += SLJIT_QUAD_OTHER_HALF(freg); in sljit_emit_simd_extend()
4383 FAIL_IF(push_inst(compiler, VCVT_F64_F32 | VD(freg) | VM(src) | 0x20)); in sljit_emit_simd_extend()
4384 freg += SLJIT_QUAD_OTHER_HALF(freg); in sljit_emit_simd_extend()
4385 return push_inst(compiler, VCVT_F64_F32 | VD(freg) | VM(src)); in sljit_emit_simd_extend()
4388 FAIL_IF(push_inst(compiler, VCVT_F64_F32 | VD(freg) | VM(src))); in sljit_emit_simd_extend()
4389 freg += SLJIT_QUAD_OTHER_HALF(freg); in sljit_emit_simd_extend()
4390 return push_inst(compiler, VCVT_F64_F32 | VD(freg) | VM(src) | 0x20); in sljit_emit_simd_extend()
4394 sljit_s32 freg, in sljit_emit_simd_sign() argument
4403 CHECK(check_sljit_emit_simd_sign(compiler, type, freg, dst, dstw)); in sljit_emit_simd_sign()
4436 freg = simd_get_quad_reg_index(freg); in sljit_emit_simd_sign()
4441 FAIL_IF(push_inst(compiler, ins | VD(TMP_FREG2) | VM(freg))); in sljit_emit_simd_sign()