mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-19 04:32:19 +00:00
Set isBarrier = 1 on return instructions, as they are control barriers.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86851 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
e94975ee64
commit
adaace8aa8
@ -391,7 +391,7 @@ def : Pat<(setune GPRC:$X, GPRC:$Y), (CMPEQi (CMPEQ GPRC:$X, GPRC:$Y), 0)>;
|
||||
def : Pat<(setune GPRC:$X, immUExt8:$Y), (CMPEQi (CMPEQ GPRC:$X, immUExt8:$Y), 0)>;
|
||||
|
||||
|
||||
let isReturn = 1, isTerminator = 1, Ra = 31, Rb = 26, disp = 1, Uses = [R26] in {
|
||||
let isReturn = 1, isTerminator = 1, isBarrier = 1, Ra = 31, Rb = 26, disp = 1, Uses = [R26] in {
|
||||
def RETDAG : MbrForm< 0x1A, 0x02, (ops), "ret $$31,($$26),1", s_jsr>; //Return from subroutine
|
||||
def RETDAGp : MbrpForm< 0x1A, 0x02, (ops), "ret $$31,($$26),1", [(retflag)], s_jsr>; //Return from subroutine
|
||||
}
|
||||
|
@ -174,6 +174,7 @@ def CALLp: F1<(outs), (ins P:$func, variable_ops),
|
||||
|
||||
let isReturn = 1,
|
||||
isTerminator = 1,
|
||||
isBarrier = 1,
|
||||
Uses = [RETS] in
|
||||
def RTS: F1<(outs), (ins), "rts;", [(BfinRet)]>;
|
||||
|
||||
|
@ -127,7 +127,7 @@ def NOP : Pseudo<(outs), (ins), "nop", []>;
|
||||
//
|
||||
|
||||
// FIXME: Provide proper encoding!
|
||||
let isReturn = 1, isTerminator = 1 in {
|
||||
let isReturn = 1, isTerminator = 1, isBarrier = 1 in {
|
||||
def RET : Pseudo<(outs), (ins), "ret", [(MSP430retflag)]>;
|
||||
}
|
||||
|
||||
|
@ -277,7 +277,7 @@ let usesCustomInserter = 1 in { // Expanded after instruction selection.
|
||||
|
||||
// Section A.3 - Synthetic Instructions, p. 85
|
||||
// special cases of JMPL:
|
||||
let isReturn = 1, isTerminator = 1, hasDelaySlot = 1 in {
|
||||
let isReturn = 1, isTerminator = 1, hasDelaySlot = 1, isBarrier = 1 in {
|
||||
let rd = O7.Num, rs1 = G0.Num, simm13 = 8 in
|
||||
def RETL: F3_2<2, 0b111000, (outs), (ins), "retl", [(retflag)]>;
|
||||
}
|
||||
|
@ -617,7 +617,7 @@ defm EXTSP : FU6_LU6_np<"extsp">;
|
||||
let mayStore = 1 in
|
||||
defm ENTSP : FU6_LU6_np<"entsp">;
|
||||
|
||||
let isReturn = 1, isTerminator = 1, mayLoad = 1 in {
|
||||
let isReturn = 1, isTerminator = 1, mayLoad = 1, isBarrier = 1 in {
|
||||
defm RETSP : FU6_LU6<"retsp", XCoreRetsp>;
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user