From 16019aaa4f8daf7d10ac09fe4afc058ba00724fd Mon Sep 17 00:00:00 2001 From: Sanjiv Gupta Date: Wed, 8 Jul 2009 05:40:05 +0000 Subject: [PATCH] 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 --- llvm/lib/Target/PIC16/PIC16InstrInfo.td | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/llvm/lib/Target/PIC16/PIC16InstrInfo.td b/llvm/lib/Target/PIC16/PIC16InstrInfo.td index a054bdcbe3c3..54f2b337e035 100644 --- a/llvm/lib/Target/PIC16/PIC16InstrInfo.td +++ b/llvm/lib/Target/PIC16/PIC16InstrInfo.td @@ -375,8 +375,9 @@ def subfw_2: SUBFW<0, "subwf", subc>; let Uses = [STATUS] in 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 ; let mayStore = 1 in @@ -425,8 +426,9 @@ class SUBLW opcode, SDNode OpNode> : let Defs = [STATUS] in { def sublw_1 : SUBLW<0, sub>; 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. let isCall = 1,