Let's see if we can break things.
Lower GOT relative addresses to Lo and HI.
Update both ISels to select them when they can.
Saves instructions here and there.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25001 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Target/Alpha/AlphaISelLowering.h b/lib/Target/Alpha/AlphaISelLowering.h
index c42dbce..16ff79d 100644
--- a/lib/Target/Alpha/AlphaISelLowering.h
+++ b/lib/Target/Alpha/AlphaISelLowering.h
@@ -27,6 +27,18 @@
FIRST_NUMBER = ISD::BUILTIN_OP_END+Alpha::INSTRUCTION_LIST_END,
//These corrospond to the identical Instruction
ITOFT_, FTOIT_, CVTQT_, CVTQS_, CVTTQ_,
+
+ /// GPRelHi/GPRelLo - These represent the high and low 16-bit
+ /// parts of a global address respectively. These nodes have
+ /// two operands, the first of which must be a
+ /// TargetGlobalAddress, and the second of which must be a
+ /// Constant. Selected naively, these turn into 'ldah R(G)' and
+ /// 'lda R(C)', though these are usually folded into other nodes.
+ GPRelHi, GPRelLo,
+
+ /// GlobalBaseReg, used to restore the GOT ptr
+ GlobalBaseReg,
+
};
}