mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-19 04:32:19 +00:00
Thumb2 PC-relative loads require a fixup rather than just an immediate.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127888 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
d4336e29a4
commit
c9bd496aa2
@ -95,6 +95,12 @@ def t2addrmode_imm12 : Operand<i32>,
|
|||||||
let ParserMatchClass = MemMode5AsmOperand;
|
let ParserMatchClass = MemMode5AsmOperand;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// t2ldrlabel := imm12
|
||||||
|
def t2ldrlabel : Operand<i32> {
|
||||||
|
let EncoderMethod = "getAddrModeImm12OpValue";
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// ADR instruction labels.
|
// ADR instruction labels.
|
||||||
def t2adrlabel : Operand<i32> {
|
def t2adrlabel : Operand<i32> {
|
||||||
let EncoderMethod = "getT2AdrLabelOpValue";
|
let EncoderMethod = "getT2AdrLabelOpValue";
|
||||||
@ -877,7 +883,7 @@ multiclass T2I_ld<bit signed, bits<2> opcod, string opc,
|
|||||||
}
|
}
|
||||||
|
|
||||||
// FIXME: Is the pci variant actually needed?
|
// FIXME: Is the pci variant actually needed?
|
||||||
def pci : T2Ipc <(outs GPR:$Rt), (ins i32imm:$addr), iii,
|
def pci : T2Ipc <(outs GPR:$Rt), (ins t2ldrlabel:$addr), iii,
|
||||||
opc, ".w\t$Rt, $addr",
|
opc, ".w\t$Rt, $addr",
|
||||||
[(set GPR:$Rt, (opnode (ARMWrapper tconstpool:$addr)))]> {
|
[(set GPR:$Rt, (opnode (ARMWrapper tconstpool:$addr)))]> {
|
||||||
let isReMaterializable = 1;
|
let isReMaterializable = 1;
|
||||||
|
@ -602,6 +602,7 @@ static int ARMFlagFromOpName(LiteralConstantEmitter *type,
|
|||||||
IMM("shr_imm16");
|
IMM("shr_imm16");
|
||||||
IMM("shr_imm32");
|
IMM("shr_imm32");
|
||||||
IMM("shr_imm64");
|
IMM("shr_imm64");
|
||||||
|
IMM("t2ldrlabel");
|
||||||
|
|
||||||
MISC("brtarget", "kOperandTypeARMBranchTarget"); // ?
|
MISC("brtarget", "kOperandTypeARMBranchTarget"); // ?
|
||||||
MISC("uncondbrtarget", "kOperandTypeARMBranchTarget"); // ?
|
MISC("uncondbrtarget", "kOperandTypeARMBranchTarget"); // ?
|
||||||
|
Loading…
x
Reference in New Issue
Block a user