diff options
Diffstat (limited to 'contrib/llvm-project/llvm/lib/Target/M68k/Disassembler/M68kDisassembler.cpp')
| -rw-r--r-- | contrib/llvm-project/llvm/lib/Target/M68k/Disassembler/M68kDisassembler.cpp | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/contrib/llvm-project/llvm/lib/Target/M68k/Disassembler/M68kDisassembler.cpp b/contrib/llvm-project/llvm/lib/Target/M68k/Disassembler/M68kDisassembler.cpp index 2124a35cc65a..7f0f737faccd 100644 --- a/contrib/llvm-project/llvm/lib/Target/M68k/Disassembler/M68kDisassembler.cpp +++ b/contrib/llvm-project/llvm/lib/Target/M68k/Disassembler/M68kDisassembler.cpp @@ -33,10 +33,11 @@ using namespace llvm; typedef MCDisassembler::DecodeStatus DecodeStatus; static const unsigned RegisterDecode[] = { - M68k::D0, M68k::D1, M68k::D2, M68k::D3, M68k::D4, M68k::D5, - M68k::D6, M68k::D7, M68k::A0, M68k::A1, M68k::A2, M68k::A3, - M68k::A4, M68k::A5, M68k::A6, M68k::SP, M68k::FP0, M68k::FP1, - M68k::FP2, M68k::FP3, M68k::FP4, M68k::FP5, M68k::FP6, M68k::FP7}; + M68k::D0, M68k::D1, M68k::D2, M68k::D3, M68k::D4, M68k::D5, + M68k::D6, M68k::D7, M68k::A0, M68k::A1, M68k::A2, M68k::A3, + M68k::A4, M68k::A5, M68k::A6, M68k::SP, M68k::FP0, M68k::FP1, + M68k::FP2, M68k::FP3, M68k::FP4, M68k::FP5, M68k::FP6, M68k::FP7, + M68k::FPIAR, M68k::FPS, M68k::FPC}; static DecodeStatus DecodeRegisterClass(MCInst &Inst, uint64_t RegNo, uint64_t Address, const void *Decoder) { @@ -97,6 +98,13 @@ static DecodeStatus DecodeFPDRRegisterClass(MCInst &Inst, uint64_t RegNo, #define DecodeFPDR64RegisterClass DecodeFPDRRegisterClass #define DecodeFPDR80RegisterClass DecodeFPDRRegisterClass +static DecodeStatus DecodeFPCSCRegisterClass(MCInst &Inst, uint64_t RegNo, + uint64_t Address, + const void *Decoder) { + return DecodeRegisterClass(Inst, (RegNo >> 1) + 24, Address, Decoder); +} +#define DecodeFPICRegisterClass DecodeFPCSCRegisterClass + static DecodeStatus DecodeCCRCRegisterClass(MCInst &Inst, APInt &Insn, uint64_t Address, const void *Decoder) { @@ -114,6 +122,7 @@ static DecodeStatus DecodeImm32(MCInst &Inst, uint64_t Imm, uint64_t Address, #undef DecodeFPDR32RegisterClass #undef DecodeFPDR64RegisterClass #undef DecodeFPDR80RegisterClass +#undef DecodeFPICRegisterClass /// A disassembler class for M68k. struct M68kDisassembler : public MCDisassembler { |
