mirror of
https://github.com/RPCS3/llvm.git
synced 2025-01-24 03:25:00 +00:00
ARM code emitter can't handle Thumb2 instructions yet. So don't even try.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77018 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
26fe866cec
commit
90daf4d035
@ -1165,18 +1165,17 @@ void Emitter<CodeEmitter>::emitMiscBranchInstruction(const MachineInstr &MI) {
|
||||
const TargetInstrDesc &TID = MI.getDesc();
|
||||
|
||||
// Handle jump tables.
|
||||
if (TID.Opcode == ARM::BR_JTr || TID.Opcode == ARM::BR_JTadd ||
|
||||
TID.Opcode == ARM::t2BR_JTr || TID.Opcode == ARM::t2BR_JTadd) {
|
||||
if (TID.Opcode == ARM::BR_JTr || TID.Opcode == ARM::BR_JTadd) {
|
||||
// First emit a ldr pc, [] instruction.
|
||||
emitDataProcessingInstruction(MI, ARM::PC);
|
||||
|
||||
// Then emit the inline jump table.
|
||||
unsigned JTIndex =
|
||||
(TID.Opcode == ARM::BR_JTr || TID.Opcode == ARM::t2BR_JTr)
|
||||
(TID.Opcode == ARM::BR_JTr)
|
||||
? MI.getOperand(1).getIndex() : MI.getOperand(2).getIndex();
|
||||
emitInlineJumpTable(JTIndex);
|
||||
return;
|
||||
} else if (TID.Opcode == ARM::BR_JTm || TID.Opcode == ARM::t2BR_JTm) {
|
||||
} else if (TID.Opcode == ARM::BR_JTm) {
|
||||
// First emit a ldr pc, [] instruction.
|
||||
emitLoadStoreInstruction(MI, ARM::PC);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user