mirror of
https://github.com/RPCS3/llvm.git
synced 2025-01-10 22:46:25 +00:00
Fix ARM encoding of non-return LDM instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118732 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
866aa394ca
commit
c1235e2a4e
@ -943,7 +943,7 @@ class AXI4ld<dag oops, dag iops, IndexMode im, Format f, InstrItinClass itin,
|
||||
bits<16> dsts;
|
||||
bits<4> Rn;
|
||||
let Inst{27-25} = 0b100;
|
||||
let Inst{22} = 0; // S bit
|
||||
let Inst{24-22} = 0b010;
|
||||
let Inst{20} = 1; // L bit
|
||||
let Inst{19-16} = Rn;
|
||||
let Inst{15-0} = dsts;
|
||||
|
@ -1186,7 +1186,6 @@ let isReturn = 1, isTerminator = 1, isBarrier = 1, mayLoad = 1,
|
||||
"$Rn = $wb", []> {
|
||||
bits<4> p;
|
||||
let Inst{31-28} = p;
|
||||
let Inst{24-23} = 0b01;
|
||||
let Inst{21} = 1;
|
||||
}
|
||||
|
||||
@ -1709,13 +1708,21 @@ let mayLoad = 1, neverHasSideEffects = 1, hasExtraDefRegAllocReq = 1,
|
||||
def LDM : AXI4ld<(outs), (ins GPR:$Rn, ldstm_mode:$amode, pred:$p,
|
||||
reglist:$dsts, variable_ops),
|
||||
IndexModeNone, LdStMulFrm, IIC_iLoad_m,
|
||||
"ldm${amode}${p}\t$Rn, $dsts", "", []>;
|
||||
"ldm${amode}${p}\t$Rn, $dsts", "", []> {
|
||||
bits<4> p;
|
||||
let Inst{31-28} = p;
|
||||
let Inst{21} = 0;
|
||||
}
|
||||
|
||||
def LDM_UPD : AXI4ld<(outs GPR:$wb), (ins GPR:$Rn, ldstm_mode:$amode, pred:$p,
|
||||
reglist:$dsts, variable_ops),
|
||||
IndexModeUpd, LdStMulFrm, IIC_iLoad_mu,
|
||||
"ldm${amode}${p}\t$Rn!, $dsts",
|
||||
"$Rn = $wb", []>;
|
||||
"$Rn = $wb", []> {
|
||||
bits<4> p;
|
||||
let Inst{31-28} = p;
|
||||
let Inst{21} = 1;
|
||||
}
|
||||
} // mayLoad, neverHasSideEffects, hasExtraDefRegAllocReq
|
||||
|
||||
let mayStore = 1, neverHasSideEffects = 1, hasExtraSrcRegAllocReq = 1,
|
||||
|
Loading…
x
Reference in New Issue
Block a user