Lines Matching refs:DataValue
8 use cranelift_codegen::data_value::DataValue;
21 fn validate_signature_params(sig: &[AbiParam], args: &[DataValue]) -> bool { in validate_signature_params()
38 fn sum_unsigned(head: DataValue, tail: SmallVec<[DataValue; 1]>) -> ValueResult<u128> { in sum_unsigned() argument
50 ) -> SmallVec<[DataValue; 1]> { in collect_block_args()
82 let arg = |index: usize| -> DataValue { in step()
88 let args = || -> SmallVec<[DataValue; 1]> { state.collect_values(inst_context.args()) }; in step()
91 let args_range = |indexes: RangeFrom<usize>| -> Result<SmallVec<[DataValue; 1]>, StepError> { in step()
92 Ok(SmallVec::<[DataValue; 1]>::from(&args()[indexes])) in step()
96 let imm = || -> DataValue { in step()
109 DataValue::F128(buffer.try_into().expect("a 16-byte data buffer")) in step()
111 (16, Opcode::Vconst) => DataValue::V128( in step()
115 DataValue::V64(buffer.as_slice().try_into().expect("an 8-byte data buffer")) in step()
118 DataValue::V32(buffer.as_slice().try_into().expect("a 4-byte data buffer")) in step()
121 DataValue::V16(buffer.as_slice().try_into().expect("a 2-byte data buffer")) in step()
137 16 => DataValue::V128(mask.try_into().expect("a 16-byte vector mask")), in step()
138 8 => DataValue::V64(mask.try_into().expect("an 8-byte vector mask")), in step()
139 4 => DataValue::V32(mask.try_into().expect("a 4-byte vector mask")), in step()
140 2 => DataValue::V16(mask.try_into().expect("a 2-byte vector mask")), in step()
146 DataValue::from(imm as i8) // Note the switch from unsigned to signed. in step()
149 InstructionData::UnaryIeee16 { imm, .. } => DataValue::from(imm), in step()
151 InstructionData::UnaryIeee32 { imm, .. } => DataValue::from(imm), in step()
155 | InstructionData::StackStore { offset, .. } => DataValue::from(offset), in step()
159 | InstructionData::IntCompareImm { imm, .. } => DataValue::from(imm.bits()), in step()
160 InstructionData::UnaryIeee64 { imm, .. } => DataValue::from(imm), in step()
168 let imm_as_ctrl_ty = || -> Result<DataValue, ValueError> { in step()
169 DataValue::convert(imm(), ValueConversionKind::Exact(ctrl_ty)) in step()
173 let assign = |value: DataValue| ControlFlow::Assign(smallvec![value]); in step()
176 let assign_multiple = |values: &[DataValue]| ControlFlow::Assign(SmallVec::from(values)); in step()
179 let assign_or_trap = |value: ValueResult<DataValue>| match value { in step()
218 |addr_ty: Type, imm: DataValue, args: SmallVec<[DataValue; 1]>| -> ValueResult<u64> { in step()
223 .collect::<ValueResult<SmallVec<[DataValue; 1]>>>()?; in step()
231 |op: fn(DataValue) -> ValueResult<DataValue>, arg: DataValue| -> ValueResult<ControlFlow> { in step()
239 let binary = |op: fn(DataValue, DataValue) -> ValueResult<DataValue>, in step()
240 left: DataValue, in step()
241 right: DataValue| in step()
249 let binary_can_trap = |op: fn(DataValue, DataValue) -> ValueResult<DataValue>, in step()
250 left: DataValue, in step()
251 right: DataValue| in step()
259 let choose = |condition: bool, left: DataValue, right: DataValue| -> ControlFlow { in step()
301 args: SmallVec<[DataValue; 1]>, in step()
302 make_ctrl_flow: fn(&'a Function, SmallVec<[DataValue; 1]>) -> ControlFlow<'a>| in step()
429 let addr_dv = DataValue::I64(arg(0).into_int_unsigned()? as i64); in step()
436 let call_args: SmallVec<[DataValue; 1]> = SmallVec::from(&args[1..]); in step()
464 let dv = DataValue::try_from(addr)?; in step()
511 .collect::<ValueResult<SmallVec<[DataValue; 1]>>>()?, in step()
566 let dv = DataValue::try_from(addr)?; in step()
671 let min_val: DataValue = DataValueExt::int(min_val as i128, ctrl_ty.lane_type())?; in step()
682 .collect::<ValueResult<SimdVec<DataValue>>>()?; in step()
712 .collect::<ValueResult<SimdVec<DataValue>>>()?; in step()
841 .collect::<ValueResult<SimdVec<DataValue>>>()?; in step()
856 DataValue::bool( in step()
862 .collect::<ValueResult<SimdVec<DataValue>>>()?), in step()
882 .collect::<ValueResult<SimdVec<DataValue>>>()?), in step()
890 let scalar_min = |a: DataValue, b: DataValue| -> ValueResult<DataValue> { in step()
909 .collect::<ValueResult<SimdVec<DataValue>>>()?), in step()
917 let scalar_max = |a: DataValue, b: DataValue| -> ValueResult<DataValue> { in step()
936 .collect::<ValueResult<SimdVec<DataValue>>>()?), in step()
961 .map(|x| DataValue::convert(x, ValueConversionKind::Exact(ctrl_ty.lane_type()))) in step()
962 .collect::<ValueResult<SimdVec<DataValue>>>()? in step()
979 let min: DataValue = DataValueExt::int(min as i128, ctrl_ty.lane_type())?; in step()
980 let max: DataValue = DataValueExt::int(max as i128, ctrl_ty.lane_type())?; in step()
981 let narrow = |mut lane: DataValue| -> ValueResult<DataValue> { in step()
1005 .collect::<ValueResult<SimdVec<DataValue>>>()?; in step()
1079 let init = DataValue::bool(false, true, lane_ty)?; in step()
1081 assign(DataValue::bool(any != init, false, types::I8)?) in step()
1083 Opcode::VallTrue => assign(DataValue::bool( in step()
1143 let cvt = |x: DataValue| -> ValueResult<DataValue> { in step()
1146 DataValue::int(0, ctrl_ty.lane_type()) in step()
1161 DataValue::int(x, ctrl_ty.lane_type()) in step()
1170 .collect::<ValueResult<SimdVec<DataValue>>>()?, in step()
1179 let bits = |x: DataValue| -> ValueResult<u64> { in step()
1198 .map(|x| DataValue::float(bits(x)?, ctrl_ty.lane_type())) in step()
1199 .collect::<ValueResult<SimdVec<DataValue>>>()?, in step()
1212 DataValue::convert( in step()
1217 .collect::<ValueResult<SimdVec<DataValue>>>()?, in step()
1229 DataValue::convert(x, ValueConversionKind::RoundNearestEven(out_ty.lane_type())) in step()
1231 .collect::<ValueResult<SimdVec<DataValue>>>()?; in step()
1234 x.push(DataValue::float(0, out_ty.lane_type())?); in step()
1262 AtomicRmwOp::Nand => DataValueExt::and(prev_val, val).and_then(DataValue::not), in step()
1322 let min: DataValue = DataValueExt::int(min as i128, double_width)?; in step()
1323 let max: DataValue = DataValueExt::int(max as i128, double_width)?; in step()
1331 let z: DataValue = DataValueExt::int( in step()
1387 Assign(SmallVec<[DataValue; 1]>),
1395 ContinueAt(Block, SmallVec<[DataValue; 1]>),
1397 Call(&'a Function, SmallVec<[DataValue; 1]>),
1399 ReturnCall(&'a Function, SmallVec<[DataValue; 1]>),
1401 Return(SmallVec<[DataValue; 1]>),
1425 left: &DataValue, in icmp() argument
1426 right: &DataValue, in icmp() argument
1427 ) -> ValueResult<DataValue> { in icmp() argument
1430 left: &DataValue, in icmp()
1431 right: &DataValue| in icmp()
1432 -> ValueResult<DataValue> { in icmp()
1467 .collect::<ValueResult<SimdVec<DataValue>>>()?; in icmp()
1473 fn fcmp(code: FloatCC, left: &DataValue, right: &DataValue) -> ValueResult<bool> { in fcmp() argument
1492 pub type SimdVec<DataValue> = SmallVec<[DataValue; 4]>;
1497 x: &DataValue, in extractlanes() argument
1499 ) -> ValueResult<SimdVec<DataValue>> { in extractlanes() argument
1523 let lane_val: DataValue = if lane_type.is_float() { in extractlanes()
1535 fn vectorizelanes(x: &[DataValue], vector_type: types::Type) -> ValueResult<DataValue> { in vectorizelanes() argument
1545 fn vectorizelanes_all(x: &[DataValue], vector_type: types::Type) -> ValueResult<DataValue> { in vectorizelanes_all() argument
1569 fn fold_vector<F>(v: DataValue, ty: types::Type, init: DataValue, op: F) -> ValueResult<DataValue> in fold_vector() argument
1571 F: FnMut(DataValue, DataValue) -> ValueResult<DataValue>, in fold_vector() argument
1577 fn unary_arith<F>(x: DataValue, vector_type: types::Type, op: F) -> ValueResult<DataValue> in unary_arith() argument
1579 F: Fn(DataValue) -> ValueResult<DataValue>, in unary_arith() argument
1586 .collect::<ValueResult<SimdVec<DataValue>>>()?; in unary_arith()
1593 x: DataValue, in binary_arith() argument
1594 y: DataValue, in binary_arith() argument
1597 ) -> ValueResult<DataValue> in binary_arith() argument
1599 F: Fn(DataValue, DataValue) -> ValueResult<DataValue>, in binary_arith() argument
1608 .collect::<ValueResult<SimdVec<DataValue>>>()?; in binary_arith()
1617 x: DataValue, in binary_pairwise() argument
1618 y: DataValue, in binary_pairwise() argument
1621 ) -> ValueResult<DataValue> in binary_pairwise() argument
1623 F: Fn(DataValue, DataValue) -> ValueResult<DataValue>, in binary_pairwise() argument
1632 .collect::<ValueResult<SimdVec<DataValue>>>()?; in binary_pairwise()
1637 fn bitselect(c: DataValue, x: DataValue, y: DataValue) -> ValueResult<DataValue> { in bitselect() argument
1643 fn splat(ty: Type, val: DataValue) -> ValueResult<DataValue> { in splat() argument
1653 fn shift_amt(ty: Type, val: DataValue) -> ValueResult<DataValue> { in shift_amt() argument