forked from OSchip/llvm-project
Mark sublw_cc and subfw_cc as Terminator insns so that they are part of the terminator insns for a basic block alongwith branch insns. This way a copy is not getting inserted between cmp and branch during PHIElimination disturbing the status flags.
llvm-svn: 74992
This commit is contained in:
parent
a21d3daadc
commit
16019aaa4f
|
@ -375,8 +375,9 @@ def subfw_2: SUBFW<0, "subwf", subc>;
|
||||||
let Uses = [STATUS] in
|
let Uses = [STATUS] in
|
||||||
def subfwb: SUBFW<0, "subwfb", sube>; // With Borrow.
|
def subfwb: SUBFW<0, "subwfb", sube>; // With Borrow.
|
||||||
|
|
||||||
def subfw_cc: SUBFW<0, "subwf", PIC16Subcc>;
|
|
||||||
}
|
}
|
||||||
|
let Defs = [STATUS], isTerminator = 1 in
|
||||||
|
def subfw_cc: SUBFW<0, "subwf", PIC16Subcc>;
|
||||||
|
|
||||||
// [F] -= W ;
|
// [F] -= W ;
|
||||||
let mayStore = 1 in
|
let mayStore = 1 in
|
||||||
|
@ -425,8 +426,9 @@ class SUBLW<bits<6> opcode, SDNode OpNode> :
|
||||||
let Defs = [STATUS] in {
|
let Defs = [STATUS] in {
|
||||||
def sublw_1 : SUBLW<0, sub>;
|
def sublw_1 : SUBLW<0, sub>;
|
||||||
def sublw_2 : SUBLW<0, subc>;
|
def sublw_2 : SUBLW<0, subc>;
|
||||||
def sublw_cc : SUBLW<0, PIC16Subcc>;
|
|
||||||
}
|
}
|
||||||
|
let Defs = [STATUS], isTerminator = 1 in
|
||||||
|
def sublw_cc : SUBLW<0, PIC16Subcc>;
|
||||||
|
|
||||||
// Call instruction.
|
// Call instruction.
|
||||||
let isCall = 1,
|
let isCall = 1,
|
||||||
|
|
Loading…
Reference in New Issue