Lines Matching refs:OperandSize
70 pub(crate) fn lane_size(&self) -> OperandSize { in lane_size() argument
72 Self::F32x4 | Self::I32x4S | Self::I32x4U => OperandSize::S32, in lane_size()
73 Self::F64x2 => OperandSize::S64, in lane_size()
74 Self::I8x16S | Self::I8x16U => OperandSize::S8, in lane_size()
75 Self::I16x8S | Self::I16x8U => OperandSize::S16, in lane_size()
102 pub(crate) fn lane_size(&self) -> OperandSize { in lane_size() argument
104 Self::F32x4 | Self::I32x4S | Self::I32x4U => OperandSize::S32, in lane_size()
105 Self::F64x2 => OperandSize::S64, in lane_size()
106 Self::I8x16S | Self::I8x16U => OperandSize::S8, in lane_size()
107 Self::I16x8S | Self::I16x8U => OperandSize::S16, in lane_size()
348 pub fn from_size(&self) -> OperandSize { in from_size() argument
350 Extend::I32Extend8 | Extend::I64Extend8 => OperandSize::S8, in from_size()
351 Extend::I32Extend16 | Extend::I64Extend16 => OperandSize::S16, in from_size()
352 Extend::I64Extend32 => OperandSize::S32, in from_size()
357 pub fn to_size(&self) -> OperandSize { in to_size() argument
359 Extend::I32Extend8 | Extend::I32Extend16 => OperandSize::S32, in to_size()
360 Extend::I64Extend8 | Extend::I64Extend16 | Extend::I64Extend32 => OperandSize::S64, in to_size()
453 pub(crate) fn lane_size(&self) -> OperandSize { in lane_size() argument
455 SplatKind::I8x16 => OperandSize::S8, in lane_size()
456 SplatKind::I16x8 => OperandSize::S16, in lane_size()
457 SplatKind::I32x4 | SplatKind::F32x4 => OperandSize::S32, in lane_size()
458 SplatKind::I64x2 | SplatKind::F64x2 => OperandSize::S64, in lane_size()
486 pub(crate) fn lane_size(&self) -> OperandSize { in lane_size() argument
488 ExtractLaneKind::I8x16S | ExtractLaneKind::I8x16U => OperandSize::S8, in lane_size()
489 ExtractLaneKind::I16x8S | ExtractLaneKind::I16x8U => OperandSize::S16, in lane_size()
490 ExtractLaneKind::I32x4 | ExtractLaneKind::F32x4 => OperandSize::S32, in lane_size()
491 ExtractLaneKind::I64x2 | ExtractLaneKind::F64x2 => OperandSize::S64, in lane_size()
524 pub(crate) fn lane_size(&self) -> OperandSize { in lane_size() argument
526 ReplaceLaneKind::I8x16 => OperandSize::S8, in lane_size()
527 ReplaceLaneKind::I16x8 => OperandSize::S16, in lane_size()
528 ReplaceLaneKind::I32x4 => OperandSize::S32, in lane_size()
529 ReplaceLaneKind::I64x2 => OperandSize::S64, in lane_size()
530 ReplaceLaneKind::F32x4 => OperandSize::S32, in lane_size()
531 ReplaceLaneKind::F64x2 => OperandSize::S64, in lane_size()
539 Operand(OperandSize),
541 Atomic(OperandSize, Option<ExtendKind>),
552 VectorZero(OperandSize),
557 pub(crate) fn derive_operand_size(&self) -> OperandSize { in derive_operand_size() argument
562 Self::VectorExtend(_) => OperandSize::S64, in derive_operand_size()
571 pub fn vector_lane(lane: u8, size: OperandSize) -> Self { in vector_lane()
575 fn operand_size_for_scalar(extend_kind: &ExtendKind) -> OperandSize { in operand_size_for_scalar() argument
582 fn operand_size_for_splat(kind: &SplatLoadKind) -> OperandSize { in operand_size_for_splat() argument
584 SplatLoadKind::S8 => OperandSize::S8, in operand_size_for_splat()
585 SplatLoadKind::S16 => OperandSize::S16, in operand_size_for_splat()
586 SplatLoadKind::S32 => OperandSize::S32, in operand_size_for_splat()
587 SplatLoadKind::S64 => OperandSize::S64, in operand_size_for_splat()
600 Operand(OperandSize),
602 Atomic(OperandSize),
608 pub fn vector_lane(lane: u8, size: OperandSize) -> Self { in vector_lane()
616 pub size: OperandSize,
634 pub(crate) fn src_lane_size(&self) -> OperandSize { in src_lane_size() argument
639 | V128ConvertKind::I32x4LowU => OperandSize::S32, in src_lane_size()
643 pub(crate) fn dst_lane_size(&self) -> OperandSize { in dst_lane_size() argument
645 V128ConvertKind::I32x4S | V128ConvertKind::I32x4U => OperandSize::S32, in dst_lane_size()
646 V128ConvertKind::I32x4LowS | V128ConvertKind::I32x4LowU => OperandSize::S64, in dst_lane_size()
669 pub(crate) fn dst_lane_size(&self) -> OperandSize { in dst_lane_size() argument
671 Self::I16x8S | Self::I16x8U => OperandSize::S8, in dst_lane_size()
672 Self::I32x4S | Self::I32x4U => OperandSize::S16, in dst_lane_size()
708 pub(crate) fn src_lane_size(&self) -> OperandSize { in src_lane_size() argument
711 OperandSize::S8 in src_lane_size()
714 OperandSize::S16 in src_lane_size()
717 OperandSize::S32 in src_lane_size()
741 pub(crate) fn lane_size(&self) -> OperandSize { in lane_size() argument
743 Self::I8x16 => OperandSize::S8, in lane_size()
744 Self::I16x8 => OperandSize::S16, in lane_size()
745 Self::I32x4 | Self::F32x4 => OperandSize::S32, in lane_size()
746 Self::I64x2 | Self::F64x2 => OperandSize::S64, in lane_size()
775 pub(crate) fn lane_size(&self) -> OperandSize { in lane_size() argument
777 Self::I8x16S | Self::I8x16U => OperandSize::S8, in lane_size()
778 Self::I16x8S | Self::I16x8U => OperandSize::S16, in lane_size()
779 Self::I32x4S | Self::I32x4U | Self::F32x4 => OperandSize::S32, in lane_size()
780 Self::I64x2S | Self::F64x2 => OperandSize::S64, in lane_size()
804 pub(crate) fn lane_size(&self) -> OperandSize { in lane_size() argument
806 Self::I8x16 => OperandSize::S8, in lane_size()
807 Self::I16x8 => OperandSize::S16, in lane_size()
808 Self::I32x4 | Self::F32x4 => OperandSize::S32, in lane_size()
809 Self::I64x2 | Self::F64x2 => OperandSize::S64, in lane_size()
832 pub(crate) fn src_lane_size(&self) -> OperandSize { in src_lane_size() argument
836 | V128TruncKind::I32x4FromF32x4U => OperandSize::S32, in src_lane_size()
839 | V128TruncKind::I32x4FromF64x2UZero => OperandSize::S64, in src_lane_size()
844 pub(crate) fn dst_lane_size(&self) -> OperandSize { in dst_lane_size() argument
846 OperandSize::S64 in dst_lane_size()
848 OperandSize::S32 in dst_lane_size()
946 pub(crate) fn lane_size(&self) -> OperandSize { in lane_size() argument
948 Self::F32x4 | Self::I32x4 => OperandSize::S32, in lane_size()
949 Self::F64x2 | Self::I64x2 => OperandSize::S64, in lane_size()
950 Self::I8x16 => OperandSize::S8, in lane_size()
951 Self::I16x8 => OperandSize::S16, in lane_size()
1025 pub(crate) enum OperandSize { enum
1038 impl OperandSize { implementation
1042 OperandSize::S8 => 8, in num_bits()
1043 OperandSize::S16 => 16, in num_bits()
1044 OperandSize::S32 => 32, in num_bits()
1045 OperandSize::S64 => 64, in num_bits()
1046 OperandSize::S128 => 128, in num_bits()
1064 OperandSize::S8 => 3, in log2()
1065 OperandSize::S16 => 4, in log2()
1066 OperandSize::S32 => 5, in log2()
1067 OperandSize::S64 => 6, in log2()
1068 OperandSize::S128 => 7, in log2()
1074 use OperandSize::*; in from_bytes()
1085 OperandSize::S32 => match self { in extend_to()
1086 OperandSize::S8 => Some(Extend::I32Extend8), in extend_to()
1087 OperandSize::S16 => Some(Extend::I32Extend16), in extend_to()
1090 OperandSize::S64 => match self { in extend_to()
1091 OperandSize::S8 => Some(Extend::I64Extend8), in extend_to()
1092 OperandSize::S16 => Some(Extend::I64Extend16), in extend_to()
1093 OperandSize::S32 => Some(Extend::I64Extend32), in extend_to()
1186 pub fn size(&self) -> OperandSize { in size() argument
1188 Self::I32(_) | Self::F32(_) => OperandSize::S32, in size()
1189 Self::I64(_) | Self::F64(_) => OperandSize::S64, in size()
1190 Self::V128(_) => OperandSize::S128, in size()
1476 fn store(&mut self, src: RegImm, dst: Self::Address, size: OperandSize) -> Result<()>; in store()
1493 fn load(&mut self, src: Self::Address, dst: WritableReg, size: OperandSize) -> Result<()>; in load()
1515 _size: OperandSize, in compute_addr() argument
1519 fn pop(&mut self, dst: WritableReg, size: OperandSize) -> Result<()>; in pop()
1522 fn mov(&mut self, dst: WritableReg, src: RegImm, size: OperandSize) -> Result<()>; in mov()
1525 fn cmov(&mut self, dst: WritableReg, src: Reg, cc: IntCmpKind, size: OperandSize) in cmov()
1598 let ptr_size = OperandSize::from_bytes(half_word as u8); in memmove()
1625 fn add(&mut self, dst: WritableReg, lhs: Reg, rhs: RegImm, size: OperandSize) -> Result<()>; in add()
1633 from_size: OperandSize, in add_uextend() argument
1634 size: OperandSize, in add_uextend() argument
1647 size: OperandSize, in checked_uadd() argument
1652 fn sub(&mut self, dst: WritableReg, lhs: Reg, rhs: RegImm, size: OperandSize) -> Result<()>; in sub()
1655 fn mul(&mut self, dst: WritableReg, lhs: Reg, rhs: RegImm, size: OperandSize) -> Result<()>; in mul()
1658 fn float_add(&mut self, dst: WritableReg, lhs: Reg, rhs: Reg, size: OperandSize) -> Result<()>; in float_add()
1661 fn float_sub(&mut self, dst: WritableReg, lhs: Reg, rhs: Reg, size: OperandSize) -> Result<()>; in float_sub()
1664 fn float_mul(&mut self, dst: WritableReg, lhs: Reg, rhs: Reg, size: OperandSize) -> Result<()>; in float_mul()
1667 fn float_div(&mut self, dst: WritableReg, lhs: Reg, rhs: Reg, size: OperandSize) -> Result<()>; in float_div()
1671 fn float_min(&mut self, dst: WritableReg, lhs: Reg, rhs: Reg, size: OperandSize) -> Result<()>; in float_min()
1675 fn float_max(&mut self, dst: WritableReg, lhs: Reg, rhs: Reg, size: OperandSize) -> Result<()>; in float_max()
1684 size: OperandSize, in float_copysign() argument
1688 fn float_abs(&mut self, dst: WritableReg, size: OperandSize) -> Result<()>; in float_abs()
1691 fn float_neg(&mut self, dst: WritableReg, size: OperandSize) -> Result<()>; in float_neg()
1701 size: OperandSize, in float_round() argument
1706 fn float_sqrt(&mut self, dst: WritableReg, src: Reg, size: OperandSize) -> Result<()>; in float_sqrt()
1709 fn and(&mut self, dst: WritableReg, lhs: Reg, rhs: RegImm, size: OperandSize) -> Result<()>; in and()
1712 fn or(&mut self, dst: WritableReg, lhs: Reg, rhs: RegImm, size: OperandSize) -> Result<()>; in or()
1715 fn xor(&mut self, dst: WritableReg, lhs: Reg, rhs: RegImm, size: OperandSize) -> Result<()>; in xor()
1724 size: OperandSize, in shift_ir() argument
1737 size: OperandSize, in shift() argument
1755 size: OperandSize, in div() argument
1763 size: OperandSize, in rem() argument
1772 fn cmp(&mut self, src1: Reg, src2: RegImm, size: OperandSize) -> Result<()>; in cmp()
1785 size: OperandSize, in cmp_with_set() argument
1796 size: OperandSize, in float_cmp_with_set() argument
1802 fn clz(&mut self, dst: WritableReg, src: Reg, size: OperandSize) -> Result<()>; in clz()
1807 fn ctz(&mut self, dst: WritableReg, src: Reg, size: OperandSize) -> Result<()>; in ctz()
1815 fn push(&mut self, src: Reg, size: OperandSize) -> Result<StackSlot>; in push()
1825 fn popcnt(&mut self, context: &mut CodeGenContext<Emission>, size: OperandSize) -> Result<()>; in popcnt()
1839 src_size: OperandSize, in signed_truncate() argument
1840 dst_size: OperandSize, in signed_truncate() argument
1849 src_size: OperandSize, in unsigned_truncate() argument
1850 dst_size: OperandSize, in unsigned_truncate() argument
1860 src_size: OperandSize, in signed_convert() argument
1861 dst_size: OperandSize, in signed_convert() argument
1871 src_size: OperandSize, in unsigned_convert() argument
1872 dst_size: OperandSize, in unsigned_convert() argument
1880 size: OperandSize, in reinterpret_float_as_int() argument
1888 size: OperandSize, in reinterpret_int_as_float() argument
1915 self.store(RegImm::i32(0), addr, OperandSize::S32)?; in zero_mem_range()
1927 self.store(RegImm::i64(0), addr, OperandSize::S64)?; in zero_mem_range()
1940 masm.store(zero, addr, OperandSize::S64)?; in zero_mem_range()
1966 size: OperandSize, in branch() argument
2062 size: OperandSize, in atomic_rmw() argument
2097 size: OperandSize, in atomic_cas() argument
2245 lane_width: OperandSize, in v128_shift() argument
2255 size: OperandSize, in v128_q15mulr_sat_s() argument
2260 fn v128_all_true(&mut self, src: Reg, dst: WritableReg, size: OperandSize) -> Result<()>; in v128_all_true()
2264 fn v128_bitmask(&mut self, src: Reg, dst: WritableReg, size: OperandSize) -> Result<()>; in v128_bitmask()
2318 fn v128_avgr(&mut self, lhs: Reg, rhs: Reg, dst: WritableReg, size: OperandSize) -> Result<()>; in v128_avgr()
2321 fn v128_div(&mut self, lhs: Reg, rhs: Reg, dst: WritableReg, size: OperandSize) -> Result<()>; in v128_div()
2324 fn v128_sqrt(&mut self, src: Reg, dst: WritableReg, size: OperandSize) -> Result<()>; in v128_sqrt()
2327 fn v128_ceil(&mut self, src: Reg, dst: WritableReg, size: OperandSize) -> Result<()>; in v128_ceil()
2330 fn v128_floor(&mut self, src: Reg, dst: WritableReg, size: OperandSize) -> Result<()>; in v128_floor()
2333 fn v128_nearest(&mut self, src: Reg, dst: WritableReg, size: OperandSize) -> Result<()>; in v128_nearest()
2336 fn v128_pmin(&mut self, lhs: Reg, rhs: Reg, dst: WritableReg, size: OperandSize) -> Result<()>; in v128_pmin()
2339 fn v128_pmax(&mut self, lhs: Reg, rhs: Reg, dst: WritableReg, size: OperandSize) -> Result<()>; in v128_pmax()