Skip to content

Commit 909086a

Browse files
committed
[TableGen][Decoder] Decode operands with zero width or all bits known
1 parent e96ff45 commit 909086a

File tree

15 files changed

+112
-39
lines changed

15 files changed

+112
-39
lines changed

llvm/lib/Target/AArch64/CMakeLists.txt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,9 @@ tablegen(LLVM AArch64GenAsmWriter.inc -gen-asm-writer)
77
tablegen(LLVM AArch64GenAsmWriter1.inc -gen-asm-writer -asmwriternum=1)
88
tablegen(LLVM AArch64GenCallingConv.inc -gen-callingconv)
99
tablegen(LLVM AArch64GenDAGISel.inc -gen-dag-isel)
10-
tablegen(LLVM AArch64GenDisassemblerTables.inc -gen-disassembler)
10+
tablegen(LLVM AArch64GenDisassemblerTables.inc -gen-disassembler
11+
-ignore-non-decodable-operands
12+
-ignore-fully-defined-operands)
1113
tablegen(LLVM AArch64GenFastISel.inc -gen-fast-isel)
1214
tablegen(LLVM AArch64GenGlobalISel.inc -gen-global-isel)
1315
tablegen(LLVM AArch64GenO0PreLegalizeGICombiner.inc -gen-global-isel-combiner

llvm/lib/Target/AMDGPU/CMakeLists.txt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,9 @@ tablegen(LLVM AMDGPUGenAsmWriter.inc -gen-asm-writer)
77
tablegen(LLVM AMDGPUGenCallingConv.inc -gen-callingconv)
88
tablegen(LLVM AMDGPUGenDAGISel.inc -gen-dag-isel)
99
tablegen(LLVM AMDGPUGenDisassemblerTables.inc -gen-disassembler
10-
--specialize-decoders-per-bitwidth)
10+
--specialize-decoders-per-bitwidth
11+
-ignore-non-decodable-operands
12+
-ignore-fully-defined-operands)
1113
tablegen(LLVM AMDGPUGenInstrInfo.inc -gen-instr-info)
1214
tablegen(LLVM AMDGPUGenMCCodeEmitter.inc -gen-emitter)
1315
tablegen(LLVM AMDGPUGenMCPseudoLowering.inc -gen-pseudo-lowering)

llvm/lib/Target/ARM/CMakeLists.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@ tablegen(LLVM ARMGenAsmMatcher.inc -gen-asm-matcher)
66
tablegen(LLVM ARMGenAsmWriter.inc -gen-asm-writer)
77
tablegen(LLVM ARMGenCallingConv.inc -gen-callingconv)
88
tablegen(LLVM ARMGenDAGISel.inc -gen-dag-isel)
9-
tablegen(LLVM ARMGenDisassemblerTables.inc -gen-disassembler)
9+
tablegen(LLVM ARMGenDisassemblerTables.inc -gen-disassembler
10+
-ignore-non-decodable-operands)
1011
tablegen(LLVM ARMGenFastISel.inc -gen-fast-isel)
1112
tablegen(LLVM ARMGenGlobalISel.inc -gen-global-isel)
1213
tablegen(LLVM ARMGenInstrInfo.inc -gen-instr-info)

llvm/lib/Target/AVR/CMakeLists.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@ tablegen(LLVM AVRGenAsmMatcher.inc -gen-asm-matcher)
66
tablegen(LLVM AVRGenAsmWriter.inc -gen-asm-writer)
77
tablegen(LLVM AVRGenCallingConv.inc -gen-callingconv)
88
tablegen(LLVM AVRGenDAGISel.inc -gen-dag-isel)
9-
tablegen(LLVM AVRGenDisassemblerTables.inc -gen-disassembler)
9+
tablegen(LLVM AVRGenDisassemblerTables.inc -gen-disassembler
10+
-ignore-non-decodable-operands)
1011
tablegen(LLVM AVRGenInstrInfo.inc -gen-instr-info)
1112
tablegen(LLVM AVRGenMCCodeEmitter.inc -gen-emitter)
1213
tablegen(LLVM AVRGenRegisterInfo.inc -gen-register-info)

llvm/lib/Target/BPF/CMakeLists.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@ tablegen(LLVM BPFGenAsmMatcher.inc -gen-asm-matcher)
66
tablegen(LLVM BPFGenAsmWriter.inc -gen-asm-writer)
77
tablegen(LLVM BPFGenCallingConv.inc -gen-callingconv)
88
tablegen(LLVM BPFGenDAGISel.inc -gen-dag-isel)
9-
tablegen(LLVM BPFGenDisassemblerTables.inc -gen-disassembler)
9+
tablegen(LLVM BPFGenDisassemblerTables.inc -gen-disassembler
10+
-ignore-non-decodable-operands)
1011
tablegen(LLVM BPFGenInstrInfo.inc -gen-instr-info)
1112
tablegen(LLVM BPFGenMCCodeEmitter.inc -gen-emitter)
1213
tablegen(LLVM BPFGenRegisterInfo.inc -gen-register-info)

llvm/lib/Target/CSKY/CMakeLists.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@ tablegen(LLVM CSKYGenAsmWriter.inc -gen-asm-writer)
77
tablegen(LLVM CSKYGenCallingConv.inc -gen-callingconv)
88
tablegen(LLVM CSKYGenCompressInstEmitter.inc -gen-compress-inst-emitter)
99
tablegen(LLVM CSKYGenDAGISel.inc -gen-dag-isel)
10-
tablegen(LLVM CSKYGenDisassemblerTables.inc -gen-disassembler)
10+
tablegen(LLVM CSKYGenDisassemblerTables.inc -gen-disassembler
11+
-ignore-non-decodable-operands)
1112
tablegen(LLVM CSKYGenInstrInfo.inc -gen-instr-info)
1213
tablegen(LLVM CSKYGenMCCodeEmitter.inc -gen-emitter)
1314
tablegen(LLVM CSKYGenMCPseudoLowering.inc -gen-pseudo-lowering)

llvm/lib/Target/Hexagon/CMakeLists.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@ tablegen(LLVM HexagonGenAsmWriter.inc -gen-asm-writer)
77
tablegen(LLVM HexagonGenCallingConv.inc -gen-callingconv)
88
tablegen(LLVM HexagonGenDAGISel.inc -gen-dag-isel)
99
tablegen(LLVM HexagonGenDFAPacketizer.inc -gen-dfa-packetizer)
10-
tablegen(LLVM HexagonGenDisassemblerTables.inc -gen-disassembler)
10+
tablegen(LLVM HexagonGenDisassemblerTables.inc -gen-disassembler
11+
-ignore-non-decodable-operands)
1112
tablegen(LLVM HexagonGenInstrInfo.inc -gen-instr-info)
1213
tablegen(LLVM HexagonGenMCCodeEmitter.inc -gen-emitter)
1314
tablegen(LLVM HexagonGenRegisterInfo.inc -gen-register-info)

llvm/lib/Target/Hexagon/HexagonDepInstrFormats.td

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3049,7 +3049,6 @@ class Enc_cf1927 : OpcodeHexagon {
30493049
class Enc_d0fe02 : OpcodeHexagon {
30503050
bits <5> Rxx32;
30513051
let Inst{20-16} = Rxx32{4-0};
3052-
bits <0> sgp10;
30533052
}
30543053
class Enc_d15d19 : OpcodeHexagon {
30553054
bits <1> Mu2;

llvm/lib/Target/M68k/Disassembler/M68kDisassembler.cpp

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,16 @@ static DecodeStatus DecodeFPCSCRegisterClass(MCInst &Inst, uint64_t RegNo,
107107
}
108108
#define DecodeFPICRegisterClass DecodeFPCSCRegisterClass
109109

110+
static void DecodeCCRCRegisterClass(MCInst &Inst,
111+
const MCDisassembler *Decoder) {
112+
Inst.addOperand(MCOperand::createReg(M68k::CCR));
113+
}
114+
115+
static void DecodeSRCRegisterClass(MCInst &Inst,
116+
const MCDisassembler *Decoder) {
117+
Inst.addOperand(MCOperand::createReg(M68k::SR));
118+
}
119+
110120
static DecodeStatus DecodeImm32(MCInst &Inst, uint64_t Imm, uint64_t Address,
111121
const void *Decoder) {
112122
Inst.addOperand(MCOperand::createImm(M68k::swapWord<uint32_t>(Imm)));

llvm/lib/Target/Mips/CMakeLists.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@ tablegen(LLVM MipsGenAsmMatcher.inc -gen-asm-matcher)
66
tablegen(LLVM MipsGenAsmWriter.inc -gen-asm-writer)
77
tablegen(LLVM MipsGenCallingConv.inc -gen-callingconv)
88
tablegen(LLVM MipsGenDAGISel.inc -gen-dag-isel)
9-
tablegen(LLVM MipsGenDisassemblerTables.inc -gen-disassembler)
9+
tablegen(LLVM MipsGenDisassemblerTables.inc -gen-disassembler
10+
-ignore-non-decodable-operands)
1011
tablegen(LLVM MipsGenFastISel.inc -gen-fast-isel)
1112
tablegen(LLVM MipsGenGlobalISel.inc -gen-global-isel)
1213
tablegen(LLVM MipsGenPostLegalizeGICombiner.inc -gen-global-isel-combiner

0 commit comments

Comments
 (0)