Emit banksel and movlp instructions.
Split large global data (both initialized and un-initialized) into multiple sections of <= 80 bytes.
Provide routines to manage PIC16 ABI naming conventions.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71073 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Target/PIC16/PIC16InstrInfo.h b/lib/Target/PIC16/PIC16InstrInfo.h
index 04927b7..60b02ab 100644
--- a/lib/Target/PIC16/PIC16InstrInfo.h
+++ b/lib/Target/PIC16/PIC16InstrInfo.h
@@ -64,6 +64,23 @@
                            unsigned &SrcReg, unsigned &DstReg,
                            unsigned &SrcSubIdx, unsigned &DstSubIdx) const;
 
+  static inline bool hasNoMemOperand (const MachineInstr &MI) {
+
+    if (MI.getNumOperands() == 0) return true;
+
+    switch (MI.getOpcode()) {
+    default: return false;  // Beware
+    case PIC16::movlw_lo_1:
+    case PIC16::movlw_hi_1:
+    case PIC16::movlw_lo_2:
+    case PIC16::movlw_hi_2:
+      return true;
+    }
+  }
+       
+   
+    
+
 };
 
 } // namespace llvm