mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-15 07:34:33 +00:00
Move newlines before inline jumptables from the asm strings in .td files to
the jtblock_operand print methods. This avoids extra newlines in the disassembler's output. PR7757. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109948 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
e2195d8b35
commit
d4d188e502
@ -938,7 +938,7 @@ void ARMAsmPrinter::printJTBlockOperand(const MachineInstr *MI, int OpNum,
|
||||
MCSymbol *JTISymbol = GetARMJTIPICJumpTableLabel2(JTI, MO2.getImm());
|
||||
// Can't use EmitLabel until instprinter happens, label comes out in the wrong
|
||||
// order.
|
||||
O << *JTISymbol << ":\n";
|
||||
O << "\n" << *JTISymbol << ":\n";
|
||||
|
||||
const char *JTEntryDirective = MAI->getData32bitsDirective();
|
||||
|
||||
@ -980,7 +980,7 @@ void ARMAsmPrinter::printJT2BlockOperand(const MachineInstr *MI, int OpNum,
|
||||
|
||||
// Can't use EmitLabel until instprinter happens, label comes out in the wrong
|
||||
// order.
|
||||
O << *JTISymbol << ":\n";
|
||||
O << "\n" << *JTISymbol << ":\n";
|
||||
|
||||
const MachineJumpTableInfo *MJTI = MF->getJumpTableInfo();
|
||||
const std::vector<MachineJumpTableEntry> &JT = MJTI->getJumpTables();
|
||||
|
@ -1111,7 +1111,7 @@ let isBranch = 1, isTerminator = 1 in {
|
||||
|
||||
let isNotDuplicable = 1, isIndirectBranch = 1 in {
|
||||
def BR_JTr : JTI<(outs), (ins GPR:$target, jtblock_operand:$jt, i32imm:$id),
|
||||
IIC_Br, "mov\tpc, $target \n$jt",
|
||||
IIC_Br, "mov\tpc, $target$jt",
|
||||
[(ARMbrjt GPR:$target, tjumptable:$jt, imm:$id)]> {
|
||||
let Inst{11-4} = 0b00000000;
|
||||
let Inst{15-12} = 0b1111;
|
||||
@ -1121,7 +1121,7 @@ let isBranch = 1, isTerminator = 1 in {
|
||||
}
|
||||
def BR_JTm : JTI<(outs),
|
||||
(ins addrmode2:$target, jtblock_operand:$jt, i32imm:$id),
|
||||
IIC_Br, "ldr\tpc, $target \n$jt",
|
||||
IIC_Br, "ldr\tpc, $target$jt",
|
||||
[(ARMbrjt (i32 (load addrmode2:$target)), tjumptable:$jt,
|
||||
imm:$id)]> {
|
||||
let Inst{15-12} = 0b1111;
|
||||
@ -1133,7 +1133,7 @@ let isBranch = 1, isTerminator = 1 in {
|
||||
}
|
||||
def BR_JTadd : JTI<(outs),
|
||||
(ins GPR:$target, GPR:$idx, jtblock_operand:$jt, i32imm:$id),
|
||||
IIC_Br, "add\tpc, $target, $idx \n$jt",
|
||||
IIC_Br, "add\tpc, $target, $idx$jt",
|
||||
[(ARMbrjt (add GPR:$target, GPR:$idx), tjumptable:$jt,
|
||||
imm:$id)]> {
|
||||
let Inst{15-12} = 0b1111;
|
||||
|
@ -378,7 +378,7 @@ let isBranch = 1, isTerminator = 1 in {
|
||||
|
||||
def tBR_JTr : T1JTI<(outs),
|
||||
(ins tGPR:$target, jtblock_operand:$jt, i32imm:$id),
|
||||
IIC_Br, "mov\tpc, $target\n\t.align\t2\n$jt",
|
||||
IIC_Br, "mov\tpc, $target\n\t.align\t2$jt",
|
||||
[(ARMbrjt tGPR:$target, tjumptable:$jt, imm:$id)]>,
|
||||
Encoding16 {
|
||||
let Inst{15-7} = 0b010001101;
|
||||
|
@ -2504,7 +2504,7 @@ let isNotDuplicable = 1, isIndirectBranch = 1 in {
|
||||
def t2BR_JT :
|
||||
T2JTI<(outs),
|
||||
(ins GPR:$target, GPR:$index, jt2block_operand:$jt, i32imm:$id),
|
||||
IIC_Br, "mov\tpc, $target\n$jt",
|
||||
IIC_Br, "mov\tpc, $target$jt",
|
||||
[(ARMbr2jt GPR:$target, GPR:$index, tjumptable:$jt, imm:$id)]> {
|
||||
let Inst{31-27} = 0b11101;
|
||||
let Inst{26-20} = 0b0100100;
|
||||
@ -2518,7 +2518,7 @@ def t2BR_JT :
|
||||
def t2TBB :
|
||||
T2JTI<(outs),
|
||||
(ins tb_addrmode:$index, jt2block_operand:$jt, i32imm:$id),
|
||||
IIC_Br, "tbb\t$index\n$jt", []> {
|
||||
IIC_Br, "tbb\t$index$jt", []> {
|
||||
let Inst{31-27} = 0b11101;
|
||||
let Inst{26-20} = 0b0001101;
|
||||
let Inst{19-16} = 0b1111; // Rn = pc (table follows this instruction)
|
||||
@ -2529,7 +2529,7 @@ def t2TBB :
|
||||
def t2TBH :
|
||||
T2JTI<(outs),
|
||||
(ins tb_addrmode:$index, jt2block_operand:$jt, i32imm:$id),
|
||||
IIC_Br, "tbh\t$index\n$jt", []> {
|
||||
IIC_Br, "tbh\t$index$jt", []> {
|
||||
let Inst{31-27} = 0b11101;
|
||||
let Inst{26-20} = 0b0001101;
|
||||
let Inst{19-16} = 0b1111; // Rn = pc (table follows this instruction)
|
||||
|
Loading…
x
Reference in New Issue
Block a user