Return a function pointer from TargetIsa::encode().
Replace the isa::Legalize enumeration with a function pointer. This allows an ISA to define its own specific legalization actions instead of relying on the default two. Generate a LEGALIZE_ACTIONS table for each ISA which contains legalization function pointers indexed by the legalization codes that are already in the encoding tables. Include this table in isa/*/enc_tables.rs. Give the `Encodings` iterator a reference to the action table and change its `legalize()` method to return a function pointer instead of an ISA-specific code. The Result<> returned from TargetIsa::encode() no longer implements Debug, so eliminate uses of unwrap and expect on that type.
This commit is contained in:
@@ -697,11 +697,10 @@ impl<'a> Verifier<'a> {
|
||||
isa.encoding_info().display(encoding));
|
||||
}
|
||||
}
|
||||
Err(e) => {
|
||||
Err(_) => {
|
||||
return err!(inst,
|
||||
"Instruction failed to re-encode {}: {:?}",
|
||||
isa.encoding_info().display(encoding),
|
||||
e)
|
||||
"Instruction failed to re-encode {}",
|
||||
isa.encoding_info().display(encoding))
|
||||
}
|
||||
}
|
||||
return Ok(());
|
||||
|
||||
Reference in New Issue
Block a user