diff options
| author | 2017-01-24 08:32:59 +0000 | |
|---|---|---|
| committer | 2017-01-24 08:32:59 +0000 | |
| commit | 53d771aafdbe5b919f264f53cba3788e2c4cffd2 (patch) | |
| tree | 7eca39498be0ff1e3a6daf583cd9ca5886bb2636 /gnu/llvm/lib/Target/ARM/ARMConstantPoolValue.cpp | |
| parent | In preparation of compiling our kernels with -ffreestanding, explicitly map (diff) | |
| download | wireguard-openbsd-53d771aafdbe5b919f264f53cba3788e2c4cffd2.tar.xz wireguard-openbsd-53d771aafdbe5b919f264f53cba3788e2c4cffd2.zip | |
Import LLVM 4.0.0 rc1 including clang and lld to help the current
development effort on OpenBSD/arm64.
Diffstat (limited to 'gnu/llvm/lib/Target/ARM/ARMConstantPoolValue.cpp')
| -rw-r--r-- | gnu/llvm/lib/Target/ARM/ARMConstantPoolValue.cpp | 33 |
1 files changed, 23 insertions, 10 deletions
diff --git a/gnu/llvm/lib/Target/ARM/ARMConstantPoolValue.cpp b/gnu/llvm/lib/Target/ARM/ARMConstantPoolValue.cpp index c0db001cb6f..2d1602873ce 100644 --- a/gnu/llvm/lib/Target/ARM/ARMConstantPoolValue.cpp +++ b/gnu/llvm/lib/Target/ARM/ARMConstantPoolValue.cpp @@ -46,7 +46,7 @@ ARMConstantPoolValue::ARMConstantPoolValue(LLVMContext &C, unsigned id, ARMConstantPoolValue::~ARMConstantPoolValue() {} -const char *ARMConstantPoolValue::getModifierText() const { +StringRef ARMConstantPoolValue::getModifierText() const { switch (Modifier) { // FIXME: Are these case sensitive? It'd be nice to lower-case all the // strings if that's legal. @@ -60,6 +60,8 @@ const char *ARMConstantPoolValue::getModifierText() const { return "gottpoff"; case ARMCP::TPOFF: return "tpoff"; + case ARMCP::SBREL: + return "SBREL"; case ARMCP::SECREL: return "secrel32"; } @@ -129,6 +131,12 @@ ARMConstantPoolConstant::ARMConstantPoolConstant(const Constant *C, AddCurrentAddress), CVal(C) {} +ARMConstantPoolConstant::ARMConstantPoolConstant(const GlobalVariable *GV, + const Constant *C) + : ARMConstantPoolValue((Type *)C->getType(), 0, ARMCP::CPPromotedGlobal, 0, + ARMCP::no_modifier, false), + CVal(C), GVar(GV) {} + ARMConstantPoolConstant * ARMConstantPoolConstant::Create(const Constant *C, unsigned ID) { return new ARMConstantPoolConstant(C, ID, ARMCP::CPValue, 0, @@ -136,6 +144,12 @@ ARMConstantPoolConstant::Create(const Constant *C, unsigned ID) { } ARMConstantPoolConstant * +ARMConstantPoolConstant::Create(const GlobalVariable *GVar, + const Constant *Initializer) { + return new ARMConstantPoolConstant(GVar, Initializer); +} + +ARMConstantPoolConstant * ARMConstantPoolConstant::Create(const GlobalValue *GV, ARMCP::ARMCPModifier Modifier) { return new ARMConstantPoolConstant((Type*)Type::getInt32Ty(GV->getContext()), @@ -191,18 +205,17 @@ void ARMConstantPoolConstant::print(raw_ostream &O) const { // ARMConstantPoolSymbol //===----------------------------------------------------------------------===// -ARMConstantPoolSymbol::ARMConstantPoolSymbol(LLVMContext &C, const char *s, - unsigned id, - unsigned char PCAdj, +ARMConstantPoolSymbol::ARMConstantPoolSymbol(LLVMContext &C, StringRef s, + unsigned id, unsigned char PCAdj, ARMCP::ARMCPModifier Modifier, bool AddCurrentAddress) - : ARMConstantPoolValue(C, id, ARMCP::CPExtSymbol, PCAdj, Modifier, - AddCurrentAddress), - S(s) {} + : ARMConstantPoolValue(C, id, ARMCP::CPExtSymbol, PCAdj, Modifier, + AddCurrentAddress), + S(s) {} -ARMConstantPoolSymbol * -ARMConstantPoolSymbol::Create(LLVMContext &C, const char *s, - unsigned ID, unsigned char PCAdj) { +ARMConstantPoolSymbol *ARMConstantPoolSymbol::Create(LLVMContext &C, + StringRef s, unsigned ID, + unsigned char PCAdj) { return new ARMConstantPoolSymbol(C, s, ID, PCAdj, ARMCP::no_modifier, false); } |
