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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74992 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Sanjiv Gupta 2009-07-08 05:40:05 +00:00
parent 7f6aa2b162
commit 2d76f256f8

View File

@ -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,