Lines Matching refs:writable

32         reg::{Reg, RegClass, WritableReg, writable},
122 .mov_rr(stack_pointer, writable!(frame_pointer), OperandSize::S64); in frame_setup()
133 scratch.writable(), in check_stack()
141 scratch.writable(), in check_stack()
203 .sub_ir(bytes as i32, writable!(rsp()), OperandSize::S64); in reserve_stack()
214 .add_ir(bytes as i32, writable!(rsp()), OperandSize::S64); in free_stack()
407 masm.load_impl(src, byte_tmp.writable(), size, UNTRUSTED_FLAGS)?; in wasm_load()
416 masm.load_impl(src, scratch.writable(), size, UNTRUSTED_FLAGS)?; in wasm_load()
472 masm.load_constant(&imm, scratch.writable(), size)?; in add()
501 writable!(rhs), in add_uextend()
533 masm.load_constant(&imm, scratch.writable(), size)?; in sub()
556 masm.load_constant(&imm, scratch.writable(), size)?; in mul()
625 masm.load_constant(&sign_mask, scratch_gpr.writable(), size)?; in float_copysign()
627 .gpr_to_xmm(scratch_gpr.inner(), scratch_xmm.writable(), size); in float_copysign()
631 .xmm_and_rr(scratch_xmm.inner(), writable!(rhs), size); in float_copysign()
636 .xmm_andn_rr(dst.to_reg(), scratch_xmm.writable(), size); in float_copysign()
657 masm.load_constant(&mask, scratch_gpr.writable(), size)?; in float_neg()
659 .gpr_to_xmm(scratch_gpr.inner(), scratch_xmm.writable(), size); in float_neg()
678 masm.load_constant(&mask, scratch_gpr.writable(), size)?; in float_abs()
681 .gpr_to_xmm(scratch_gpr.inner(), scratch_xmm.writable(), size); in float_abs()
701 .xmm_rounds_rr(src.into(), writable!(src.into()), mode, size); in float_round()
722 masm.load_constant(&imm, scratch.writable(), size)?; in and()
745 masm.load_constant(&imm, scratch.writable(), size)?; in or()
768 masm.load_constant(&imm, scratch.writable(), size)?; in xor()
808 .shift_rr(src.into(), writable!(dst.into()), kind, size); in shift()
875 self.asm.pop_r(writable!(rbp())); in frame_restore()
899 masm.load_constant(&imm, scratch.writable(), size)?; in cmp()
960 masm.asm.setnp(scratch.writable()); in float_cmp_with_set()
968 masm.asm.setp(scratch.writable()); in float_cmp_with_set()
986 masm.asm.setcc(IntCmpKind::Ne, scratch.writable()); in clz()
1008 masm.asm.setcc(IntCmpKind::Eq, scratch.writable()); in ctz()
1010 .shift_ir(size.log2(), scratch.writable(), ShiftKind::Shl, size); in ctz()
1064 self.asm.popcnt(src.into(), writable!(src.into()), size); in popcnt()
1071 let tmp = writable!(context.any_gpr(self)?); in popcnt()
1072 let dst = writable!(src.into()); in popcnt()
1096 self.and(writable!(lhs), lhs, RegImm::i64(masks[0]), size)?; in popcnt()
1105 masm.load_constant(&I::i64(masks[1]), scratch.writable(), size)?; in popcnt()
1118 self.and(writable!(lhs), lhs, RegImm::i64(masks[2]), size)?; in popcnt()
1122 self.mul(writable!(lhs), lhs, RegImm::i64(masks[3]), size)?; in popcnt()
1196 writable!(dst), in unsigned_truncate()
1233 writable!(src), in unsigned_convert()
1308 self.asm.mov_ir(max as u64, writable!(tmp), size); in jmp_table()
1310 self.asm.cmov(tmp, writable!(index), IntCmpKind::LtU, size); in jmp_table()
1385 writable!(rax), in mul_wide()
1386 writable!(rdx), in mul_wide()
1411 (RegImm::reg(reg), writable!(reg)) in splat()
1416 let dst = writable!(context.any_fpr(self)?); in splat()
1499 masm.asm.xmm_vpshufb_rrm(scratch.writable(), rhs, &mask_rhs);
1515 .xmm_vpaddus_rrm(writable!(rhs), rhs, &clamp, OperandSize::S8); in swizzle()
1536 .lock_xadd(addr, writable!(operand.reg), size, flags); in atomic_rmw()
1541 self.asm.neg(operand.reg, writable!(operand.reg), size); in atomic_rmw()
1543 .lock_xadd(addr, writable!(operand.reg), size, flags); in atomic_rmw()
1548 self.asm.xchg(addr, writable!(operand.reg), size, flags); in atomic_rmw()
1567 writable!(dst), in atomic_rmw()
1568 scratch.writable(), in atomic_rmw()
1584 self.asm.movzx_rr(res, writable!(res), ext); in atomic_rmw()
1697 masm.asm.xmm_vmovsd_rm(scratch.writable(), &address); in replace_lane()
1729 .cmpxchg(addr, replacement.reg, writable!(expected.reg), size, flags); in atomic_cas()
1735 .movzx_rr(expected.reg, writable!(expected.reg), extend); in atomic_cas()
1785 .xmm_vpcmpeq_rrr(writable!(lhs), lhs, rhs, kind.lane_size()); in v128_ne()
1787 .xmm_vpcmpeq_rrr(writable!(rhs), rhs, rhs, kind.lane_size()); in v128_ne()
1822 .xmm_vpminu_rrr(writable!(lhs), lhs, rhs, kind.lane_size()); in v128_lt()
1824 .xmm_vpcmpeq_rrr(writable!(lhs), lhs, rhs, kind.lane_size()); in v128_lt()
1826 .xmm_vpcmpeq_rrr(writable!(rhs), rhs, rhs, kind.lane_size()); in v128_lt()
1851 .xmm_vpmins_rrr(writable!(rhs), lhs, rhs, kind.lane_size()); in v128_le()
1857 .xmm_vpcmpgt_rrr(writable!(lhs), lhs, rhs, kind.lane_size()); in v128_le()
1859 .xmm_vpcmpeq_rrr(writable!(rhs), rhs, rhs, kind.lane_size()); in v128_le()
1866 .xmm_vpminu_rrr(writable!(rhs), lhs, rhs, kind.lane_size()); in v128_le()
1900 .xmm_vpmaxu_rrr(writable!(lhs), lhs, rhs, kind.lane_size()); in v128_gt()
1902 .xmm_vpcmpeq_rrr(writable!(lhs), lhs, rhs, kind.lane_size()); in v128_gt()
1904 .xmm_vpcmpeq_rrr(writable!(rhs), rhs, rhs, kind.lane_size()); in v128_gt()
1929 .xmm_vpmaxs_rrr(writable!(rhs), lhs, rhs, kind.lane_size()); in v128_ge()
1936 .xmm_vpcmpgt_rrr(writable!(rhs), rhs, lhs, kind.lane_size()); in v128_ge()
1943 .xmm_vpmaxu_rrr(writable!(rhs), lhs, rhs, kind.lane_size()); in v128_ge()
1968 .xmm_vpcmpeq_rrr(tmp.writable(), tmp.inner(), tmp.inner(), OperandSize::S32); in v128_not()
2003 masm.v128_and(src1, mask, tmp.writable())?; in v128_bitselect()
2028 .xmm_vpsll_rri(src, scratch.writable(), 0x10, kind.src_lane_size()); in v128_convert()
2031 scratch.writable(), in v128_convert()
2040 .xmm_vcvt_rr(scratch.inner(), scratch.writable(), VcvtKind::I32ToF32); in v128_convert()
2137 .xmm_vpxor_rrr(scratch.inner(), scratch.inner(), scratch.writable()); in v128_extend()
2156 scratch.writable(), in v128_extend()
2213 this.asm.vpmullq(lhs.reg, rhs.reg, writable!(lhs.reg)); in v128_mul()
2248 .xmm_vpsrl_rri(lhs.reg, tmp1.writable(), 32, OperandSize::S64); in v128_mul()
2252 .xmm_vpmuldq_rrr(tmp1.inner(), rhs.reg, writable!(tmp2)); in v128_mul()
2256 .xmm_vpsrl_rri(rhs.reg, tmp1.writable(), 32, OperandSize::S64); in v128_mul()
2260 .xmm_vpmuludq_rrr(tmp1.inner(), lhs.reg, tmp1.writable()); in v128_mul()
2264 .xmm_vpadd_rrr(tmp1.inner(), tmp2, tmp1.writable(), OperandSize::S64); in v128_mul()
2268 .xmm_vpsll_rri(tmp1.inner(), tmp1.writable(), 32, OperandSize::S64); in v128_mul()
2271 this.asm.xmm_vpmuludq_rrr(lhs.reg, rhs.reg, writable!(tmp2)); in v128_mul()
2276 .xmm_vpadd_rrr(tmp1.inner(), tmp2, writable!(lhs.reg), OperandSize::S64); in v128_mul()
2287 .xmm_vmulp_rrr(lhs.reg, rhs.reg, writable!(lhs.reg), OperandSize::S32) in v128_mul()
2291 .xmm_vmulp_rrr(lhs.reg, rhs.reg, writable!(lhs.reg), OperandSize::S64) in v128_mul()
2295 .xmm_vpmull_rrr(lhs.reg, rhs.reg, writable!(lhs.reg), OperandSize::S16) in v128_mul()
2299 .xmm_vpmull_rrr(lhs.reg, rhs.reg, writable!(lhs.reg), OperandSize::S32) in v128_mul()
2331 .xmm_vpsra_rri(src, scratch.writable(), 0x1f, OperandSize::S32); in v128_abs()
2336 scratch.writable(), in v128_abs()
2354 scratch.writable(), in v128_abs()
2363 scratch.writable(), in v128_abs()
2383 masm.v128_xor(tmp.inner(), tmp.inner(), tmp.writable())?; in v128_neg()
2392 tmp.writable(), in v128_neg()
2401 tmp.writable(), in v128_neg()
2426 writable!(shift_amount), in v128_shift()
2434 .avx_gpr_to_xmm(shift_amount, tmp_xmm.writable(), OperandSize::S32); in v128_shift()
2465 .avx_gpr_to_xmm(shift_amount, tmp_xmm.writable(), OperandSize::S32); in v128_shift()
2472 writable!(operand), in v128_shift()
2478 writable!(operand), in v128_shift()
2488 this.asm.lea(&masks_addr, tmp.writable(), OperandSize::S64); in v128_shift()
2493 .shift_ir(4, writable!(shift_amount), ShiftKind::Shl, OperandSize::S32); in v128_shift()
2503 tmp_xmm.writable(), in v128_shift()
2510 .xmm_vpand_rrr(tmp_xmm.inner(), operand, writable!(operand)); in v128_shift()
2528 .avx_gpr_to_xmm(shift_amount, tmp_xmm.writable(), OperandSize::S32); in v128_shift()
2533 .xmm_vmovdqu_mr(&cst, writable!(tmp_xmm2), MemFlags::trusted()); in v128_shift()
2537 writable!(tmp_xmm2), in v128_shift()
2543 writable!(operand), in v128_shift()
2548 .xmm_vpxor_rrr(operand, tmp_xmm2, writable!(operand)); in v128_shift()
2550 .xmm_vpsub_rrr(operand, tmp_xmm2, writable!(operand), OperandSize::S64); in v128_shift()
2580 .add_ir(8, writable!(shift_amount), OperandSize::S32); in v128_shift()
2582 .avx_gpr_to_xmm(shift_amount, tmp_xmm.writable(), OperandSize::S32); in v128_shift()
2586 .xmm_vpunpckl_rrr(operand, operand, writable!(tmp_lo), OperandSize::S8); in v128_shift()
2588 .xmm_vpunpckh_rrr(operand, operand, writable!(tmp_hi), OperandSize::S8); in v128_shift()
2594 writable!(tmp_lo), in v128_shift()
2600 writable!(tmp_hi), in v128_shift()
2607 .xmm_vpackss_rrr(tmp_lo, tmp_hi, writable!(operand), OperandSize::S8); in v128_shift()
2626 writable!(operand), in v128_shift()
2637 writable!(operand), in v128_shift()
2648 writable!(operand), in v128_shift()
2663 writable!(operand), in v128_shift()
2674 writable!(operand), in v128_shift()
2685 writable!(operand), in v128_shift()
2698 writable!(operand), in v128_shift()
2709 writable!(operand), in v128_shift()
2747 .xmm_vpcmpeq_rrm(writable!(rhs), dst.to_reg(), &address, size); in v128_q15mulr_sat_s()
2758 .xmm_vpxor_rrr(scratch.inner(), scratch.inner(), scratch.writable()); in v128_all_true()
2762 .xmm_vpcmpeq_rrr(writable!(src), src, scratch.inner(), size); in v128_all_true()
2779 .xmm_vpackss_rrr(src, src, writable!(src), OperandSize::S8); in v128_bitmask()
2803 let reg = writable!(context.pop_to_reg(self, None)?.reg); in v128_trunc()
2815 let temp_reg = writable!(context.any_fpr(self)?); in v128_trunc()
2882 .xmm_vminp_rrr(src1, src2, scratch.writable(), kind.lane_size()); in v128_min()
2891 writable!(src2), in v128_min()
2900 self.canonicalize_nans(writable!(src2), dst, kind.lane_size()); in v128_min()
2954 .xmm_vmaxp_rrr(src1, src2, scratch.writable(), kind.lane_size()); in v128_max()
2963 writable!(src2), in v128_max()
2971 writable!(src2), in v128_max()
2977 self.canonicalize_nans(writable!(src2), dst, kind.lane_size()); in v128_max()
2997 self.v128_extend(src1.reg, writable!(src1.reg), ext_kind)?; in v128_extmul()
2998 self.v128_extend(src2.reg, writable!(src2.reg), ext_kind)?; in v128_extmul()
3024 scratch.writable(), in v128_extadd_pairwise()
3087 let reg = writable!(context.pop_to_reg(self, None)?.reg); in v128_popcnt()
3088 let reg2 = writable!(context.any_fpr(self)?); in v128_popcnt()
3103 .xmm_vpand_rrm(reg.to_reg(), &address, scratch.writable()); in v128_popcnt()
3139 .xmm_vpshufb_rrr(scratch.writable(), reg2.to_reg(), scratch.inner()); in v128_popcnt()
3329 masm.asm.mov_ir(v, scratch.writable(), size); in store_impl()
3341 float_scratch.writable(), in store_impl()
3357 float_scratch.writable(), in store_impl()
3372 vector_scratch.writable(), in store_impl()
3419 scratch.writable(), in v128_trunc_sat_f32x4_s()
3430 .xmm_vpxor_rrr(scratch.inner(), reg.to_reg(), scratch.writable()); in v128_trunc_sat_f32x4_s()
3435 .xmm_vpand_rrr(reg.to_reg(), scratch.inner(), scratch.writable()); in v128_trunc_sat_f32x4_s()
3440 .xmm_vpsra_rri(scratch.inner(), scratch.writable(), 0x1F, dst_lane_size); in v128_trunc_sat_f32x4_s()
3459 scratch.writable(), in v128_trunc_sat_f32x4_u()
3467 scratch.writable(), in v128_trunc_sat_f32x4_u()
3475 .xmm_vpsrl_rri(scratch.inner(), scratch.writable(), 0x1, src_lane_size); in v128_trunc_sat_f32x4_u()
3478 .xmm_vcvt_rr(scratch.inner(), scratch.writable(), VcvtKind::I32ToF32); in v128_trunc_sat_f32x4_u()
3492 scratch.writable(), in v128_trunc_sat_f32x4_u()
3505 .xmm_vpxor_rrr(reg.to_reg(), scratch.inner(), scratch.writable()); in v128_trunc_sat_f32x4_u()
3529 scratch.writable(), in v128_trunc_sat_f64x2_s_zero()
3542 .xmm_vandp_rrm(scratch.inner(), &address, scratch.writable(), src_lane_size); in v128_trunc_sat_f64x2_s_zero()
3564 scratch.writable(), in v128_trunc_sat_f64x2_u_zero()