mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-04-12 23:37:33 +00:00
start comments with #
move the constant pool to .text correctly print loads of labels mark R0, R1, R2 and R3 as caller save git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29451 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
9ff542f2cc
commit
1ed3af11b5
@ -43,8 +43,8 @@ namespace {
|
||||
Data32bitsDirective = "\t.word\t";
|
||||
Data64bitsDirective = 0;
|
||||
ZeroDirective = "\t.skip\t";
|
||||
CommentString = "!";
|
||||
ConstantPoolSection = "\t.section \".rodata\",#alloc\n";
|
||||
CommentString = "#";
|
||||
ConstantPoolSection = "\t.text\n";
|
||||
AlignmentIsInBytes = false;
|
||||
}
|
||||
|
||||
@ -60,9 +60,21 @@ namespace {
|
||||
}
|
||||
|
||||
void printMemRegImm(const MachineInstr *MI, unsigned OpNo) {
|
||||
printOperand(MI, OpNo + 1);
|
||||
O << ", ";
|
||||
printOperand(MI, OpNo);
|
||||
const MachineOperand &MO1 = MI->getOperand(OpNo);
|
||||
const MachineOperand &MO2 = MI->getOperand(OpNo + 1);
|
||||
assert(MO1.isImmediate());
|
||||
|
||||
if (MO2.isConstantPoolIndex()) {
|
||||
printOperand(MI, OpNo + 1);
|
||||
} else if (MO2.isRegister()) {
|
||||
O << '[';
|
||||
printOperand(MI, OpNo + 1);
|
||||
O << ", ";
|
||||
printOperand(MI, OpNo);
|
||||
O << ']';
|
||||
} else {
|
||||
assert(0 && "Invalid Operand Type");
|
||||
}
|
||||
}
|
||||
|
||||
void printOperand(const MachineInstr *MI, int opNum);
|
||||
|
@ -57,10 +57,12 @@ let isReturn = 1 in {
|
||||
def bx: InstARM<(ops IntRegs:$dst), "bx $dst", [(brind IntRegs:$dst)]>;
|
||||
}
|
||||
|
||||
def bl: InstARM<(ops i32imm:$func, variable_ops), "bl $func", [(ARMcall tglobaladdr:$func)]>;
|
||||
let Defs = [R0, R1, R2, R3] in {
|
||||
def bl: InstARM<(ops i32imm:$func, variable_ops), "bl $func", [(ARMcall tglobaladdr:$func)]>;
|
||||
}
|
||||
|
||||
def ldr : InstARM<(ops IntRegs:$dst, memri:$addr),
|
||||
"ldr $dst, [$addr]",
|
||||
"ldr $dst, $addr",
|
||||
[(set IntRegs:$dst, (load iaddr:$addr))]>;
|
||||
|
||||
def str : InstARM<(ops IntRegs:$src, IntRegs:$addr),
|
||||
|
Loading…
x
Reference in New Issue
Block a user