| /wasmtime-44.0.1/winch/codegen/src/isa/ |
| H A D | mod.rs | 256 float: Option<RegClassEnv>, field 260 fn with_limits_per_class(int: u8, float: u8) -> Self { in with_limits_per_class() 266 let float = RegClassEnv { in with_limits_per_class() localVariable 267 limit: float, in with_limits_per_class() 273 float: Some(float), in with_limits_per_class() 280 Self { int, float: None } in with_absolute_limit() 292 if let Some(f) = self.float.as_mut() { in next_fpr()
|
| H A D | reg.rs | 43 pub fn float(enc: usize) -> Self { in float() method
|
| /wasmtime-44.0.1/winch/codegen/src/ |
| H A D | regset.rs | 64 pub fn float(allocatable: u64, non_allocatable: u64, max: usize) -> Self { in float() method 155 let zero = RegBitSet::float(0, 0, MAX); in test_any_gpr() 173 let zero = RegBitSet::float(0, 0, MAX); in test_gpr() 188 let zero = RegBitSet::float(0, 0, MAX); in test_free_reg()
|
| /wasmtime-44.0.1/winch/codegen/src/isa/aarch64/ |
| H A D | regs.rs | 178 RegBitSet::float( in fpr_bit_set() 196 RegBitSet::float( in scratch_fpr_bitset()
|
| /wasmtime-44.0.1/cranelift/codegen/src/isa/riscv64/lower/ |
| H A D | isle.rs | 666 fn fcvt_smin_bound(&mut self, float: Type, int: Type, saturating: bool) -> u64 { in fcvt_smin_bound() 667 match (int, float) { in fcvt_smin_bound() 686 fn fcvt_smax_bound(&mut self, float: Type, int: Type, saturating: bool) -> u64 { in fcvt_smax_bound() 688 match (int, float) { in fcvt_smax_bound() 700 fn fcvt_umax_bound(&mut self, float: Type, int: Type, saturating: bool) -> u64 { in fcvt_umax_bound() 702 match (int, float) { in fcvt_umax_bound() 714 fn fcvt_umin_bound(&mut self, float: Type, saturating: bool) -> u64 { in fcvt_umin_bound() 716 match float { in fcvt_umin_bound()
|
| /wasmtime-44.0.1/winch/codegen/src/isa/x64/ |
| H A D | regs.rs | 196 RegBitSet::float( in fpr_bit_set() 214 RegBitSet::float( in scratch_fpr_bitset()
|
| /wasmtime-44.0.1/crates/wasmtime/src/runtime/func/ |
| H A D | typed.rs | 420 ($($float:ident/$int:ident/$get_float:ident => $ty:ident)*) => ($( 421 unsafe impl WasmTy for $float { 436 ptr.write(ValRaw::$float(self.to_bits())); 441 $float::from_bits(ptr.$get_float())
|
| /wasmtime-44.0.1/cranelift/codegen/src/opts/ |
| H A D | vector.isle | 4 ;; NB: for int-to-float conversion op this simplification is also 5 ;; required for the x64 backend because it doesn't fully implement int-to-float
|
| H A D | cprop.isle | 298 ;; Constant fold int-to-float conversions. 332 ;; Constant fold float operations
|
| H A D | arithmetic.isle | 217 ;; the chance to convert from the smallest integral type to the float. This 218 ;; can help lowerings on x64 for example which has a less efficient u64-to-float
|
| /wasmtime-44.0.1/docs/ |
| H A D | stability-tiers.md | 32 | WebAssembly Proposal | [`nontrapping-float-to-int-conversion`] | 56 [`nontrapping-float-to-int-conversion`]: https://github.com/WebAssembly/spec/blob/master/proposals/… 219 | [`nontrapping-float-to-int-conversion`] | ✅ | ✅ | 244 | [`nontrapping-float-to-int-conversion`] | ✅ | ✅ | 269 | [`nontrapping-float-to-int-conversion`] | ✅ | ❌ | 294 | [`nontrapping-float-to-int-conversion`] | ✅ | ❌ | 324 | [`nontrapping-float-to-int-conversion`] | ✅ | ❌ |
|
| H A D | stability-wasm-proposals.md | 98 …`]: https://github.com/WebAssembly/spec/blob/master/proposals/nontrapping-float-to-int-conversion/…
|
| H A D | examples-pulley.md | 123 * 32 "F" float registers each of which are 64-bits large. (`FReg`)
|
| /wasmtime-44.0.1/cranelift/filetests/filetests/isa/riscv64/ |
| H A D | bitops-float.clif | 7 ;; integer instructions (`orn`) to implement a float operation
|
| /wasmtime-44.0.1/crates/wasmtime/src/runtime/component/func/ |
| H A D | typed.rs | 1191 ($($float:ident/$get_float:ident = $ty:ident with abi:$abi:ident)*) => ($(const _: () = { 1192 unsafe impl ComponentType for $float { 1205 unsafe impl Lower for $float { 1214 dst.write(ValRaw::$float(self.to_bits())); 1266 unsafe impl Lift for $float { 1270 Ok($float::from_bits(src.$get_float())) 1277 Ok($float::from_le_bytes(bytes.try_into().unwrap())) 1296 .map(|i| $float::from_le_bytes(i.try_into().unwrap()))
|
| /wasmtime-44.0.1/cranelift/codegen/src/isa/riscv64/ |
| H A D | inst_vector.isle | 1027 ;; This instruction converts a float to an unsigned integer. 1033 ;; This instruction converts a float to a signed integer. 1039 ;; This instruction converts a float to an unsigned integer 1047 ;; This instruction converts a float to a signed integer. 1055 ;; This instruction converts a unsigned integer to a float. 1061 ;; This instruction converts a signed integer to a float. 1067 ;; Convert single-width float to double-width float. 1073 ;; Convert double-width float to single-width float. 1879 ;; Returns the maximum value integer value that can be represented by a float 1900 ;; The rounding is performed by converting from float to integer, with the
|
| H A D | inst.isle | 1877 ;; Recursion: bounded since either float cases are reduced to integers, or the 2632 ;; float rounding mode. 2820 ;;; some float binary operation 3006 ;; Recursion: only recursive rule matches on vec-to-float, and emits vec-to-int 3007 ;; and int-to-float bitcasts, so this can only recurse once. 3022 ;; Smaller float types are NaN-boxed inside of larger floating point types on RISC-V, meaning the 3023 ;; smaller float is stored in the lower bits of the larger float and all the other bits are set to … 3025 ;; here when using a 32-bit `fmv` for a 16-bit float.
|
| H A D | lower.isle | 1795 ;;;;; Rules for for float arithmetic 2431 ;; RISC-V float-to-integer conversion does not trap, but Cranelift semantics are 2475 ;; float is clamped before the conversion. 2490 ;; RISC-V float-to-int conversions generate the same output for NaN and +Inf, 2492 ;; translates these semantics by taking the float being converted (with the type 2494 ;; will be zeroed out if the float is NaN. 2496 ;; This is done by comparing the float to itself, generating 0 if it's NaN. This 2518 ;; float is clamped before the conversion. 2820 ;; Similar to above, but using the float variants of the instructions.
|
| /wasmtime-44.0.1/cranelift/codegen/src/isa/x64/ |
| H A D | lower.isle | 3668 ;; Note that the `cvtsi2s{s,d}` instruction is not just an int-to-float 3680 ;; between consecutive int-to-float operations but that's not easy 3750 ;; decimal of the float, basically: 3771 ;; Algorithm uses unpcklps to help create a float that is equivalent 3791 ;; converting packed signed integers to float (cvtdq2ps). In 3806 ;; -> Convert(Al) // Convert int to float 3851 ;; Sets tmp to zero if float is NaN 3855 ;; Sets top bit of tmp if float is positive 3856 ;; Setting up to set top bit on negative float values 3859 ;; Convert the packed float to packed doubleword. [all …]
|
| /wasmtime-44.0.1/cranelift/interpreter/src/ |
| H A D | value.rs | 22 fn float(n: u64, ty: Type) -> ValueResult<Self>; in float() method 295 fn float(bits: u64, ty: Type) -> ValueResult<Self> { in float() method
|
| H A D | step.rs | 1198 .map(|x| DataValue::float(bits(x)?, ctrl_ty.lane_type())) in step() 1234 x.push(DataValue::float(0, out_ty.lane_type())?); in step() 1524 DataValueExt::float(lane as u64, lane_type)? in extractlanes()
|
| /wasmtime-44.0.1/cranelift/filetests/filetests/isa/x64/ |
| H A D | very-carefully-sink-loads-in-float-compares.clif | 5 ;; into float comparison operations. When a single `fcmp` is used multiple times
|
| H A D | stack_switch.clif | 324 ;; Test clobbering of all 16 float registers
|
| /wasmtime-44.0.1/cranelift/docs/ |
| H A D | ir.md | 31 float average(const float *array, size_t count)
|
| /wasmtime-44.0.1/cranelift/codegen/src/ |
| H A D | prelude.isle | 433 ;; An extractor that only matches scalar types, float or int or ref's.
|