cranelift: remove load_complex and store_complex (#3976)
This change removes all variants of `load*_complex` and `store*_complex` from Cranelift; this is a breaking change to the instructions exposed by CLIF. The complete list of instructions removed is: `load_complex`, `store_complex`, `uload8_complex`, `sload8_complex`, `istore8_complex`, `sload8_complex`, `uload16_complex`, `sload16_complex`, `istore16_complex`, `uload32_complex`, `sload32_complex`, `istore32_complex`, `uload8x8_complex`, `sload8x8_complex`, `sload16x4_complex`, `uload16x4_complex`, `uload32x2_complex`, `sload32x2_complex`. The rationale for this removal is that the Cranelift backend now has the ability to pattern-match multiple upstream additions in order to calculate the address to access. Previously, this was not possible so the `*_complex` instructions were needed. Over time, these instructions have fallen out of use in this repository, making the additional overhead of maintaining them a chore.
This commit is contained in:
@@ -304,9 +304,7 @@ impl InstructionData {
|
||||
Some(DataValue::from(imm as i32)) // Note the switch from unsigned to signed.
|
||||
}
|
||||
&InstructionData::Load { offset, .. }
|
||||
| &InstructionData::LoadComplex { offset, .. }
|
||||
| &InstructionData::Store { offset, .. }
|
||||
| &InstructionData::StoreComplex { offset, .. }
|
||||
| &InstructionData::StackLoad { offset, .. }
|
||||
| &InstructionData::StackStore { offset, .. }
|
||||
| &InstructionData::TableAddr { offset, .. } => Some(DataValue::from(offset)),
|
||||
@@ -388,10 +386,8 @@ impl InstructionData {
|
||||
match self {
|
||||
&InstructionData::Load { offset, .. }
|
||||
| &InstructionData::StackLoad { offset, .. }
|
||||
| &InstructionData::LoadComplex { offset, .. }
|
||||
| &InstructionData::Store { offset, .. }
|
||||
| &InstructionData::StackStore { offset, .. }
|
||||
| &InstructionData::StoreComplex { offset, .. } => Some(offset.into()),
|
||||
| &InstructionData::StackStore { offset, .. } => Some(offset.into()),
|
||||
_ => None,
|
||||
}
|
||||
}
|
||||
@@ -400,10 +396,8 @@ impl InstructionData {
|
||||
pub fn memflags(&self) -> Option<MemFlags> {
|
||||
match self {
|
||||
&InstructionData::Load { flags, .. }
|
||||
| &InstructionData::LoadComplex { flags, .. }
|
||||
| &InstructionData::LoadNoOffset { flags, .. }
|
||||
| &InstructionData::Store { flags, .. }
|
||||
| &InstructionData::StoreComplex { flags, .. }
|
||||
| &InstructionData::StoreNoOffset { flags, .. } => Some(flags),
|
||||
_ => None,
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user