diff options
| author | Dimitry Andric <dim@FreeBSD.org> | 2023-12-18 20:30:12 +0000 |
|---|---|---|
| committer | Dimitry Andric <dim@FreeBSD.org> | 2024-04-19 21:23:40 +0000 |
| commit | bdbe302c3396ceb4dd89d1214485439598f05368 (patch) | |
| tree | ccf66c6349b23061ed5e9645c21f15fbe718da8b /contrib/llvm-project/llvm/lib/Target/M68k/Disassembler/M68kDisassembler.cpp | |
| parent | e7a1904fe1ced461b2a31f03b6592ae6564a243a (diff) | |
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 { |
