cranelift: Add big and little endian memory accesses to interpreter (#5893)
* Added `mem_flags` parameter to `State::checked_{load,store}` as the means
for determining the endianness, typically derived from an instruction.
* Added `native_endianness` property to `InterpreterState` as fallback when
determining endianness, such as in cases where there are no memory flags
avaiable or set.
* Added `to_be` and `to_le` methods to `DataValue`.
* Added `AtomicCas` and `AtomicRmw` to list of instructions with retrievable
memory flags for `InstructionData::memflags`.
* Enabled `atomic-{cas,rmw}-subword-{big,little}.clif` for interpreter run
tests.
This commit is contained in:
committed by
GitHub
parent
9984e959cd
commit
db8fe0108f
@@ -145,7 +145,7 @@ impl fmt::Debug for TestCase {
|
||||
let returns = &self.main().signature.returns;
|
||||
let placeholder_output = returns
|
||||
.iter()
|
||||
.map(|param| DataValue::read_from_slice(&[0; 16][..], param.value_type))
|
||||
.map(|param| DataValue::read_from_slice_ne(&[0; 16][..], param.value_type))
|
||||
.map(|val| format!("{}", val))
|
||||
.collect::<Vec<_>>()
|
||||
.join(", ");
|
||||
|
||||
Reference in New Issue
Block a user