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