mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-11-01 15:17:25 +00:00
Add a disassembler to the PowerPC backend
The tests for the disassembler were adapted from the encoder tests, and for the most part, the output from the disassembler matches that encoder-test inputs. There are some places where more-informative mnemonics could be produced (notably for the branch instructions), and those cases are noted in the tests with FIXMEs. Future work includes: - Generating more-informative mnemonics when possible (this may also be done in the printer). - Remove the dependence on positional "numbered" operand-to-variable mapping (for both encoding and decoding). - Internally using 64-bit instruction variants in 64-bit mode (if this turns out to matter). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@197693 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -19,11 +19,13 @@ def s16imm64 : Operand<i64> {
|
||||
let PrintMethod = "printS16ImmOperand";
|
||||
let EncoderMethod = "getImm16Encoding";
|
||||
let ParserMatchClass = PPCS16ImmAsmOperand;
|
||||
let DecoderMethod = "decodeSImmOperand<16>";
|
||||
}
|
||||
def u16imm64 : Operand<i64> {
|
||||
let PrintMethod = "printU16ImmOperand";
|
||||
let EncoderMethod = "getImm16Encoding";
|
||||
let ParserMatchClass = PPCU16ImmAsmOperand;
|
||||
let DecoderMethod = "decodeUImmOperand<16>";
|
||||
}
|
||||
def s17imm64 : Operand<i64> {
|
||||
// This operand type is used for addis/lis to allow the assembler parser
|
||||
@@ -32,6 +34,7 @@ def s17imm64 : Operand<i64> {
|
||||
let PrintMethod = "printS16ImmOperand";
|
||||
let EncoderMethod = "getImm16Encoding";
|
||||
let ParserMatchClass = PPCS17ImmAsmOperand;
|
||||
let DecoderMethod = "decodeSImmOperand<16>";
|
||||
}
|
||||
def tocentry : Operand<iPTR> {
|
||||
let MIOperandInfo = (ops i64imm:$imm);
|
||||
|
||||
Reference in New Issue
Block a user