mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-02-22 13:29:44 +00:00
Thumb1 BL instructions encoding 22 bits of displacement, not 21.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137073 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
7df4f963ea
commit
648f9a75fd
@ -94,6 +94,7 @@ def t_cbtarget : Operand<i32> {
|
||||
|
||||
def t_bltarget : Operand<i32> {
|
||||
let EncoderMethod = "getThumbBLTargetOpValue";
|
||||
let DecoderMethod = "DecodeThumbBLTargetOperand";
|
||||
}
|
||||
|
||||
def t_blxtarget : Operand<i32> {
|
||||
@ -168,6 +169,7 @@ def t_addrmode_is1 : Operand<i32>,
|
||||
def t_addrmode_sp : Operand<i32>,
|
||||
ComplexPattern<i32, 2, "SelectThumbAddrModeSP", []> {
|
||||
let EncoderMethod = "getAddrModeThumbSPOpValue";
|
||||
let DecoderMethod = "DecodeThumbAddrModeSP";
|
||||
let PrintMethod = "printThumbAddrModeSPOperand";
|
||||
let MIOperandInfo = (ops GPR:$base, i32imm:$offsimm);
|
||||
}
|
||||
@ -374,7 +376,8 @@ let isCall = 1,
|
||||
"bl${p}\t$func",
|
||||
[(ARMtcall tglobaladdr:$func)]>,
|
||||
Requires<[IsThumb, IsNotDarwin]> {
|
||||
bits<21> func;
|
||||
bits<22> func;
|
||||
let Inst{26} = func{21};
|
||||
let Inst{25-16} = func{20-11};
|
||||
let Inst{13} = 1;
|
||||
let Inst{11} = 1;
|
||||
|
Loading…
x
Reference in New Issue
Block a user