aboutsummaryrefslogtreecommitdiff
path: root/lib/Target/ARM/ARMAsmBackend.cpp
diff options
context:
space:
mode:
authorJason W Kim <jason.w.kim.2009@gmail.com>2010-12-01 22:46:50 +0000
committerJason W Kim <jason.w.kim.2009@gmail.com>2010-12-01 22:46:50 +0000
commit0c628c2617a2c25cabea6d1cb8bd13b79b3cb15a (patch)
tree1cab58234094e9c1ebeae872dd8c2bc1de20e12a /lib/Target/ARM/ARMAsmBackend.cpp
parent506e579aa034ae84319a36854c8401e23b82f83e (diff)
fixing style nit: move class static to global static
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120619 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/ARM/ARMAsmBackend.cpp')
-rw-r--r--lib/Target/ARM/ARMAsmBackend.cpp83
1 files changed, 41 insertions, 42 deletions
diff --git a/lib/Target/ARM/ARMAsmBackend.cpp b/lib/Target/ARM/ARMAsmBackend.cpp
index 0672899d7b..c07a816068 100644
--- a/lib/Target/ARM/ARMAsmBackend.cpp
+++ b/lib/Target/ARM/ARMAsmBackend.cpp
@@ -38,48 +38,6 @@ public:
unsigned getPointerSize() const {
return 4;
}
-
-protected:
- static unsigned adjustFixupValue(unsigned Kind, uint64_t Value) {
- switch (Kind) {
- default:
- llvm_unreachable("Unknown fixup kind!");
- case FK_Data_4:
- case ARM::fixup_arm_movt_hi16:
- case ARM::fixup_arm_movw_lo16:
- return Value;
- case ARM::fixup_arm_pcrel_12: {
- bool isAdd = true;
- // ARM PC-relative values are offset by 8.
- Value -= 8;
- if ((int64_t)Value < 0) {
- Value = -Value;
- isAdd = false;
- }
- assert ((Value < 4096) && "Out of range pc-relative fixup value!");
- Value |= isAdd << 23;
- return Value;
- }
- case ARM::fixup_arm_branch:
- // These values don't encode the low two bits since they're always zero.
- // Offset by 8 just as above.
- return (Value - 8) >> 2;
- case ARM::fixup_arm_pcrel_10: {
- // Offset by 8 just as above.
- Value = Value - 8;
- bool isAdd = true;
- if ((int64_t)Value < 0) {
- Value = -Value;
- isAdd = false;
- }
- // These values don't encode the low two bits since they're always zero.
- Value >>= 2;
- assert ((Value < 256) && "Out of range pc-relative fixup value!");
- Value |= isAdd << 23;
- return Value;
- }
- }
- }
};
} // end anonymous namespace
@@ -101,6 +59,47 @@ bool ARMAsmBackend::WriteNopData(uint64_t Count, MCObjectWriter *OW) const {
return true;
}
+static unsigned adjustFixupValue(unsigned Kind, uint64_t Value) {
+ switch (Kind) {
+ default:
+ llvm_unreachable("Unknown fixup kind!");
+ case FK_Data_4:
+ case ARM::fixup_arm_movt_hi16:
+ case ARM::fixup_arm_movw_lo16:
+ return Value;
+ case ARM::fixup_arm_pcrel_12: {
+ bool isAdd = true;
+ // ARM PC-relative values are offset by 8.
+ Value -= 8;
+ if ((int64_t)Value < 0) {
+ Value = -Value;
+ isAdd = false;
+ }
+ assert ((Value < 4096) && "Out of range pc-relative fixup value!");
+ Value |= isAdd << 23;
+ return Value;
+ }
+ case ARM::fixup_arm_branch:
+ // These values don't encode the low two bits since they're always zero.
+ // Offset by 8 just as above.
+ return (Value - 8) >> 2;
+ case ARM::fixup_arm_pcrel_10: {
+ // Offset by 8 just as above.
+ Value = Value - 8;
+ bool isAdd = true;
+ if ((int64_t)Value < 0) {
+ Value = -Value;
+ isAdd = false;
+ }
+ // These values don't encode the low two bits since they're always zero.
+ Value >>= 2;
+ assert ((Value < 256) && "Out of range pc-relative fixup value!");
+ Value |= isAdd << 23;
+ return Value;
+ }
+ }
+}
+
namespace {
// FIXME: This should be in a separate file.
// ELF is an ELF of course...