you should use llvm_unreachable instead of assert(0).<br><br><div class="gmail_quote">On Tue, Jun 12, 2012 at 4:01 PM, Nick Kledzik <span dir="ltr"><<a href="mailto:kledzik@apple.com" target="_blank">kledzik@apple.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Author: kledzik<br>
Date: Tue Jun 12 18:01:30 2012<br>
New Revision: 158375<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=158375&view=rev" target="_blank">http://llvm.org/viewvc/llvm-project?rev=158375&view=rev</a><br>
Log:<br>
flesh out mach-o Reference Kinds<br>
<br>
Modified:<br>
lld/trunk/lib/ReaderWriter/MachO/ReferenceKinds.cpp<br>
lld/trunk/lib/ReaderWriter/MachO/ReferenceKinds.h<br>
lld/trunk/lib/ReaderWriter/MachO/StubAtoms_x86.hpp<br>
lld/trunk/lib/ReaderWriter/MachO/StubAtoms_x86_64.hpp<br>
<br>
Modified: lld/trunk/lib/ReaderWriter/MachO/ReferenceKinds.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/MachO/ReferenceKinds.cpp?rev=158375&r1=158374&r2=158375&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/MachO/ReferenceKinds.cpp?rev=158375&r1=158374&r2=158375&view=diff</a><br>
==============================================================================<br>
--- lld/trunk/lib/ReaderWriter/MachO/ReferenceKinds.cpp (original)<br>
+++ lld/trunk/lib/ReaderWriter/MachO/ReferenceKinds.cpp Tue Jun 12 18:01:30 2012<br>
@@ -53,25 +53,39 @@<br>
<br>
Reference::Kind KindHandler_x86_64::stringToKind(StringRef str) {<br>
if ( str.equals("none") )<br>
- return KindHandler_x86_64::none;<br>
- else if ( str.equals("call32") )<br>
- return KindHandler_x86_64::call32;<br>
+ return none;<br>
+ else if ( str.equals("branch32") )<br>
+ return branch32;<br>
else if ( str.equals("ripRel32") )<br>
- return KindHandler_x86_64::ripRel32;<br>
- else if ( str.equals("gotLoad32") )<br>
- return KindHandler_x86_64::gotLoad32;<br>
- else if ( str.equals("gotUse32") )<br>
- return KindHandler_x86_64::gotUse32;<br>
+ return ripRel32;<br>
+ else if ( str.equals("ripRel32_1") )<br>
+ return ripRel32_1;<br>
+ else if ( str.equals("ripRel32_2") )<br>
+ return ripRel32_2;<br>
+ else if ( str.equals("ripRel32_4") )<br>
+ return ripRel32_4;<br>
+ else if ( str.equals("gotLoadRipRel32") )<br>
+ return gotLoadRipRel32;<br>
+ else if ( str.equals("gotLoadRipRel32NowLea") )<br>
+ return gotLoadRipRel32NowLea;<br>
+ else if ( str.equals("gotUseRipRel32") )<br>
+ return gotUseRipRel32;<br>
+ else if ( str.equals("tlvLoadRipRel32") )<br>
+ return tlvLoadRipRel32;<br>
+ else if ( str.equals("tlvLoadRipRel32NowLea") )<br>
+ return tlvLoadRipRel32NowLea;<br>
else if ( str.equals("pointer64") )<br>
- return KindHandler_x86_64::pointer64;<br>
- else if ( str.equals("lea32WasGot") )<br>
- return KindHandler_x86_64::lea32WasGot;<br>
+ return pointer64;<br>
+ else if ( str.equals("pointerRel32") )<br>
+ return pointerRel32;<br>
else if ( str.equals("lazyTarget") )<br>
- return KindHandler_x86_64::lazyTarget;<br>
- else if ( str.equals("lazyImm") )<br>
- return KindHandler_x86_64::lazyImm;<br>
- else if ( str.equals("gotTarget") )<br>
- return KindHandler_x86_64::gotTarget;<br>
+ return lazyTarget;<br>
+ else if ( str.equals("lazyImmediate") )<br>
+ return lazyImmediate;<br>
+ else if ( str.equals("subordinateFDE") )<br>
+ return subordinateFDE;<br>
+ else if ( str.equals("subordinateLSDA") )<br>
+ return subordinateLSDA;<br>
<br>
assert(0 && "invalid x86_64 Reference kind");<br>
return 0;<br>
@@ -81,68 +95,100 @@<br>
switch ( (Kinds)kind ) {<br>
case none:<br>
return StringRef("none");<br>
- case call32:<br>
- return StringRef("call32");<br>
+ case branch32:<br>
+ return StringRef("branch32");<br>
case ripRel32:<br>
return StringRef("ripRel32");<br>
- case gotLoad32:<br>
- return StringRef("gotLoad32");<br>
- case gotUse32:<br>
- return StringRef("gotUse32");<br>
+ case ripRel32_1:<br>
+ return StringRef("ripRel32_1");<br>
+ case ripRel32_2:<br>
+ return StringRef("ripRel32_2");<br>
+ case ripRel32_4:<br>
+ return StringRef("ripRel32_4");<br>
+ case gotLoadRipRel32:<br>
+ return StringRef("gotLoadRipRel32");<br>
+ case gotLoadRipRel32NowLea:<br>
+ return StringRef("gotLoadRipRel32NowLea");<br>
+ case gotUseRipRel32:<br>
+ return StringRef("gotUseRipRel32");<br>
+ case tlvLoadRipRel32:<br>
+ return StringRef("tlvLoadRipRel32");<br>
+ case tlvLoadRipRel32NowLea:<br>
+ return StringRef("tlvLoadRipRel32NowLea");<br>
case pointer64:<br>
return StringRef("pointer64");<br>
- case lea32WasGot:<br>
- return StringRef("lea32WasGot");<br>
+ case pointerRel32:<br>
+ return StringRef("pointerRel32");<br>
case lazyTarget:<br>
return StringRef("lazyTarget");<br>
- case lazyImm:<br>
- return StringRef("lazyImm");<br>
- case gotTarget:<br>
- return StringRef("gotTarget");<br>
+ case lazyImmediate:<br>
+ return StringRef("lazyImmediate");<br>
+ case subordinateFDE:<br>
+ return StringRef("subordinateFDE");<br>
+ case subordinateLSDA:<br>
+ return StringRef("subordinateLSDA");<br>
}<br>
assert(0 && "invalid x86_64 Reference kind");<br>
return StringRef();<br>
}<br>
<br>
bool KindHandler_x86_64::isCallSite(Kind kind) {<br>
- return (kind == call32);<br>
+ return (kind == branch32);<br>
}<br>
<br>
bool KindHandler_x86_64::isPointer(Kind kind) {<br>
return (kind == pointer64);<br>
}<br>
-<br>
<br>
bool KindHandler_x86_64::isLazyImmediate(Kind kind) {<br>
- return (kind == lazyImm);<br>
+ return (kind == lazyImmediate);<br>
}<br>
-<br>
<br>
bool KindHandler_x86_64::isLazyTarget(Kind kind) {<br>
return (kind == lazyTarget);<br>
}<br>
<br>
<br>
-void KindHandler_x86_64::applyFixup(Kind kind, uint64_t addend, uint8_t *location,<br>
- uint64_t fixupAddress, uint64_t targetAddress) {<br>
+void KindHandler_x86_64::applyFixup(Kind kind, uint64_t addend,<br>
+ uint8_t *location, uint64_t fixupAddress,<br>
+ uint64_t targetAddress) {<br>
int32_t *loc32 = reinterpret_cast<int32_t*>(location);<br>
uint64_t* loc64 = reinterpret_cast<uint64_t*>(location);<br>
switch ( (Kinds)kind ) {<br>
- case call32:<br>
+ case branch32:<br>
case ripRel32:<br>
- case gotLoad32:<br>
- case gotUse32:<br>
+ case gotLoadRipRel32:<br>
+ case gotUseRipRel32:<br>
+ case tlvLoadRipRel32:<br>
*loc32 = (targetAddress - (fixupAddress+4)) + addend;<br>
break;<br>
case pointer64:<br>
*loc64 = targetAddress + addend;<br>
break;<br>
- case lea32WasGot:<br>
+ case ripRel32_1:<br>
+ *loc32 = (targetAddress - (fixupAddress+5)) + addend;<br>
+ break;<br>
+ case ripRel32_2:<br>
+ *loc32 = (targetAddress - (fixupAddress+6)) + addend;<br>
+ break;<br>
+ case ripRel32_4:<br>
+ *loc32 = (targetAddress - (fixupAddress+8)) + addend;<br>
+ break;<br>
+ case pointerRel32:<br>
+ *loc32 = (targetAddress - fixupAddress) + addend;<br>
+ break;<br>
+ case gotLoadRipRel32NowLea:<br>
+ case tlvLoadRipRel32NowLea:<br>
+ // Change MOVQ to LEA<br>
+ assert(location[-2] == 0x8B);<br>
+ location[-2] = 0x8D;<br>
+ *loc32 = (targetAddress - (fixupAddress+4)) + addend;<br>
break;<br>
case none:<br>
case lazyTarget:<br>
- case lazyImm:<br>
- case gotTarget:<br>
+ case lazyImmediate:<br>
+ case subordinateFDE:<br>
+ case subordinateLSDA:<br>
// do nothing<br>
break;<br>
}<br>
@@ -158,17 +204,19 @@<br>
<br>
Reference::Kind KindHandler_x86::stringToKind(StringRef str) {<br>
if ( str.equals("none") )<br>
- return KindHandler_x86::none;<br>
- else if ( str.equals("call32") )<br>
- return KindHandler_x86::call32;<br>
+ return none;<br>
+ else if ( str.equals("branch32") )<br>
+ return branch32;<br>
else if ( str.equals("abs32") )<br>
- return KindHandler_x86::abs32;<br>
+ return abs32;<br>
+ else if ( str.equals("funcRel32") )<br>
+ return funcRel32;<br>
else if ( str.equals("pointer32") )<br>
- return KindHandler_x86::pointer32;<br>
+ return pointer32;<br>
else if ( str.equals("lazyTarget") )<br>
- return KindHandler_x86::lazyTarget;<br>
- else if ( str.equals("lazyImm") )<br>
- return KindHandler_x86::lazyImm;<br>
+ return lazyTarget;<br>
+ else if ( str.equals("lazyImmediate") )<br>
+ return lazyImmediate;<br>
<br>
assert(0 && "invalid x86 Reference kind");<br>
return 0;<br>
@@ -178,23 +226,29 @@<br>
switch ( (Kinds)kind ) {<br>
case none:<br>
return StringRef("none");<br>
- case call32:<br>
- return StringRef("call32");<br>
+ case branch32:<br>
+ return StringRef("branch32");<br>
case abs32:<br>
return StringRef("abs32");<br>
+ case funcRel32:<br>
+ return StringRef("funcRel32");<br>
case pointer32:<br>
return StringRef("pointer32");<br>
case lazyTarget:<br>
return StringRef("lazyTarget");<br>
- case lazyImm:<br>
- return StringRef("lazyImm");<br>
+ case lazyImmediate:<br>
+ return StringRef("lazyImmediate");<br>
+ case subordinateFDE:<br>
+ return StringRef("subordinateFDE");<br>
+ case subordinateLSDA:<br>
+ return StringRef("subordinateLSDA");<br>
}<br>
assert(0 && "invalid x86 Reference kind");<br>
return StringRef();<br>
}<br>
<br>
bool KindHandler_x86::isCallSite(Kind kind) {<br>
- return (kind == call32);<br>
+ return (kind == branch32);<br>
}<br>
<br>
bool KindHandler_x86::isPointer(Kind kind) {<br>
@@ -203,7 +257,7 @@<br>
<br>
<br>
bool KindHandler_x86::isLazyImmediate(Kind kind) {<br>
- return (kind == lazyImm);<br>
+ return (kind == lazyImmediate);<br>
}<br>
<br>
<br>
@@ -216,16 +270,21 @@<br>
uint64_t fixupAddress, uint64_t targetAddress) {<br>
int32_t *loc32 = reinterpret_cast<int32_t*>(location);<br>
switch ( (Kinds)kind ) {<br>
- case call32:<br>
+ case branch32:<br>
*loc32 = (targetAddress - (fixupAddress+4)) + addend;<br>
break;<br>
case pointer32:<br>
case abs32:<br>
*loc32 = targetAddress + addend;<br>
break;<br>
+ case funcRel32:<br>
+ *loc32 = targetAddress + addend;<br>
+ break;<br>
case none:<br>
case lazyTarget:<br>
- case lazyImm:<br>
+ case lazyImmediate:<br>
+ case subordinateFDE:<br>
+ case subordinateLSDA:<br>
// do nothing<br>
break;<br>
}<br>
@@ -241,15 +300,29 @@<br>
<br>
Reference::Kind KindHandler_arm::stringToKind(StringRef str) {<br>
if ( str.equals("none") )<br>
- return KindHandler_arm::none;<br>
- else if ( str.equals("br22") )<br>
- return KindHandler_arm::br22;<br>
+ return none;<br>
+ else if ( str.equals("thumbBranch22") )<br>
+ return thumbBranch22;<br>
+ else if ( str.equals("armBranch24") )<br>
+ return armBranch24;<br>
+ else if ( str.equals("thumbAbsLow16") )<br>
+ return thumbAbsLow16;<br>
+ else if ( str.equals("thumbAbsHigh16") )<br>
+ return thumbAbsHigh16;<br>
+ else if ( str.equals("thumbPcRelLow16") )<br>
+ return thumbPcRelLow16;<br>
+ else if ( str.equals("thumbPcRelHigh16") )<br>
+ return thumbPcRelHigh16;<br>
+ else if ( str.equals("abs32") )<br>
+ return abs32;<br>
else if ( str.equals("pointer32") )<br>
- return KindHandler_arm::pointer32;<br>
+ return pointer32;<br>
else if ( str.equals("lazyTarget") )<br>
- return KindHandler_arm::lazyTarget;<br>
- else if ( str.equals("lazyImm") )<br>
- return KindHandler_arm::lazyImm;<br>
+ return lazyTarget;<br>
+ else if ( str.equals("lazyImmediate") )<br>
+ return lazyImmediate;<br>
+ else if ( str.equals("subordinateLSDA") )<br>
+ return subordinateLSDA;<br>
<br>
assert(0 && "invalid ARM Reference kind");<br>
return 0;<br>
@@ -259,21 +332,35 @@<br>
switch ( (Kinds)kind ) {<br>
case none:<br>
return StringRef("none");<br>
- case br22:<br>
- return StringRef("br22");<br>
+ case thumbBranch22:<br>
+ return StringRef("thumbBranch22");<br>
+ case armBranch24:<br>
+ return StringRef("armBranch24");<br>
+ case thumbAbsLow16:<br>
+ return StringRef("thumbAbsLow16");<br>
+ case thumbAbsHigh16:<br>
+ return StringRef("thumbAbsHigh16");<br>
+ case thumbPcRelLow16:<br>
+ return StringRef("thumbPcRelLow16");<br>
+ case thumbPcRelHigh16:<br>
+ return StringRef("thumbPcRelHigh16");<br>
+ case abs32:<br>
+ return StringRef("abs32");<br>
case pointer32:<br>
return StringRef("pointer32");<br>
case lazyTarget:<br>
return StringRef("lazyTarget");<br>
- case lazyImm:<br>
- return StringRef("lazyImm");<br>
+ case lazyImmediate:<br>
+ return StringRef("lazyImmediate");<br>
+ case subordinateLSDA:<br>
+ return StringRef("subordinateLSDA");<br>
}<br>
assert(0 && "invalid ARM Reference kind");<br>
return StringRef();<br>
}<br>
<br>
bool KindHandler_arm::isCallSite(Kind kind) {<br>
- return (kind == br22);<br>
+ return (kind == thumbBranch22) || (kind == armBranch24);<br>
}<br>
<br>
bool KindHandler_arm::isPointer(Kind kind) {<br>
@@ -282,7 +369,7 @@<br>
<br>
<br>
bool KindHandler_arm::isLazyImmediate(Kind kind) {<br>
- return (kind == lazyImm);<br>
+ return (kind == lazyImmediate);<br>
}<br>
<br>
<br>
@@ -295,7 +382,25 @@<br>
uint64_t fixupAddress, uint64_t targetAddress) {<br>
//int32_t *loc32 = reinterpret_cast<int32_t*>(location);<br>
switch ( (Kinds)kind ) {<br>
- case br22:<br>
+ case thumbBranch22:<br>
+ // FIXME<br>
+ break;<br>
+ case armBranch24:<br>
+ // FIXME<br>
+ break;<br>
+ case thumbAbsLow16:<br>
+ // FIXME<br>
+ break;<br>
+ case thumbAbsHigh16:<br>
+ // FIXME<br>
+ break;<br>
+ case thumbPcRelLow16:<br>
+ // FIXME<br>
+ break;<br>
+ case thumbPcRelHigh16:<br>
+ // FIXME<br>
+ break;<br>
+ case abs32:<br>
// FIXME<br>
break;<br>
case pointer32:<br>
@@ -303,7 +408,8 @@<br>
break;<br>
case none:<br>
case lazyTarget:<br>
- case lazyImm:<br>
+ case lazyImmediate:<br>
+ case subordinateLSDA:<br>
// do nothing<br>
break;<br>
}<br>
<br>
Modified: lld/trunk/lib/ReaderWriter/MachO/ReferenceKinds.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/MachO/ReferenceKinds.h?rev=158375&r1=158374&r2=158375&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/MachO/ReferenceKinds.h?rev=158375&r1=158374&r2=158375&view=diff</a><br>
==============================================================================<br>
--- lld/trunk/lib/ReaderWriter/MachO/ReferenceKinds.h (original)<br>
+++ lld/trunk/lib/ReaderWriter/MachO/ReferenceKinds.h Tue Jun 12 18:01:30 2012<br>
@@ -48,16 +48,23 @@<br>
class KindHandler_x86_64 : public KindHandler {<br>
public:<br>
enum Kinds {<br>
- none = 0,<br>
- call32 = 1,<br>
- ripRel32 = 2,<br>
- gotLoad32 = 3,<br>
- gotUse32 = 4,<br>
- lea32WasGot = 5,<br>
- lazyTarget = 6,<br>
- lazyImm = 7,<br>
- gotTarget = 8,<br>
- pointer64 = 9<br>
+ none,<br>
+ branch32, // CALL or JMP 32-bit pc-rel<br>
+ ripRel32, // RIP-rel access pc-rel to fix up location<br>
+ ripRel32_1, // RIP-rel access pc-rel to fix up location + 1<br>
+ ripRel32_2, // RIP-rel access pc-rel to fix up location + 2<br>
+ ripRel32_4, // RIP-rel access pc-rel to fix up location + 4<br>
+ gotLoadRipRel32, // RIP-rel load of GOT slot (can be optimized)<br>
+ gotLoadRipRel32NowLea, // RIP-rel movq load of GOT slot optimized to LEA<br>
+ gotUseRipRel32, // RIP-rel non-load of GOT slot (not a movq load of GOT)<br>
+ tlvLoadRipRel32, // RIP-rel load of thread local pointer (can be optimized)<br>
+ tlvLoadRipRel32NowLea, // RIP-rel movq load of TLV pointer optimized to LEA<br>
+ pointer64, // 64-bit data pointer<br>
+ pointerRel32, // 32-bit pc-rel offset<br>
+ lazyTarget, // Used in lazy pointers to reference ultimate target<br>
+ lazyImmediate, // Location in stub where lazy info offset to be stored<br>
+ subordinateFDE, // Reference to unwind info for this function<br>
+ subordinateLSDA // Reference to excecption info for this function<br>
};<br>
<br>
virtual ~KindHandler_x86_64();<br>
@@ -76,12 +83,15 @@<br>
class KindHandler_x86 : public KindHandler {<br>
public:<br>
enum Kinds {<br>
- none = 0,<br>
- call32 = 1,<br>
- abs32 = 2,<br>
- pointer32 = 3,<br>
- lazyTarget = 4,<br>
- lazyImm = 5<br>
+ none,<br>
+ branch32, // CALL or JMP 32-bit pc-rel<br>
+ abs32, // 32-bit absolute address embedded in instruction<br>
+ funcRel32, // 32-bit offset to target from start of function<br>
+ pointer32, // 32-bit data pointer<br>
+ lazyTarget, // Used in lazy pointers to reference ultimate target<br>
+ lazyImmediate, // Location in stub where lazy info offset to be stored<br>
+ subordinateFDE, // Reference to unwind info for this function<br>
+ subordinateLSDA // Reference to excecption info for this function<br>
};<br>
<br>
virtual ~KindHandler_x86();<br>
@@ -99,12 +109,18 @@<br>
class KindHandler_arm : public KindHandler {<br>
public:<br>
enum Kinds {<br>
- none = 0,<br>
- br22 = 1,<br>
- pointer32 = 2,<br>
- lazyTarget = 3,<br>
- lazyImm = 4<br>
- // FIXME<br>
+ none,<br>
+ thumbBranch22, // thumb b or bl with 22/24-bits of displacement<br>
+ armBranch24, // arm b or bl with 24-bits of displacement<br>
+ thumbAbsLow16, // thumb movw of absolute address<br>
+ thumbAbsHigh16, // thumb movt of absolute address<br>
+ thumbPcRelLow16, // thumb movw of (target - pc)<br>
+ thumbPcRelHigh16,// thumb movt of (target - pc)<br>
+ abs32, // 32-bit absolute address embedded in instructions<br>
+ pointer32, // 32-bit data pointer<br>
+ lazyTarget, // Used in lazy pointers to reference ultimate target<br>
+ lazyImmediate, // Location in stub where lazy info offset to be stored<br>
+ subordinateLSDA // Reference to excecption info for this function<br>
};<br>
<br>
virtual ~KindHandler_arm();<br>
<br>
Modified: lld/trunk/lib/ReaderWriter/MachO/StubAtoms_x86.hpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/MachO/StubAtoms_x86.hpp?rev=158375&r1=158374&r2=158375&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/MachO/StubAtoms_x86.hpp?rev=158375&r1=158374&r2=158375&view=diff</a><br>
==============================================================================<br>
--- lld/trunk/lib/ReaderWriter/MachO/StubAtoms_x86.hpp (original)<br>
+++ lld/trunk/lib/ReaderWriter/MachO/StubAtoms_x86.hpp Tue Jun 12 18:01:30 2012<br>
@@ -100,8 +100,8 @@<br>
public:<br>
X86StubHelperAtom(const File &file, const Atom &helperCommon)<br>
: SimpleDefinedAtom(file) {<br>
- this->addReference(KindHandler_x86::lazyImm, 1, nullptr, 0);<br>
- this->addReference(KindHandler_x86::call32, 6, &helperCommon, 0);<br>
+ this->addReference(KindHandler_x86::lazyImmediate, 1, nullptr, 0);<br>
+ this->addReference(KindHandler_x86::branch32, 6, &helperCommon, 0);<br>
}<br>
<br>
virtual ContentType contentType() const {<br>
<br>
Modified: lld/trunk/lib/ReaderWriter/MachO/StubAtoms_x86_64.hpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/MachO/StubAtoms_x86_64.hpp?rev=158375&r1=158374&r2=158375&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/MachO/StubAtoms_x86_64.hpp?rev=158375&r1=158374&r2=158375&view=diff</a><br>
==============================================================================<br>
--- lld/trunk/lib/ReaderWriter/MachO/StubAtoms_x86_64.hpp (original)<br>
+++ lld/trunk/lib/ReaderWriter/MachO/StubAtoms_x86_64.hpp Tue Jun 12 18:01:30 2012<br>
@@ -101,7 +101,7 @@<br>
public:<br>
X86_64StubHelperAtom(const File &file, const Atom &helperCommon)<br>
: SimpleDefinedAtom(file) {<br>
- this->addReference(KindHandler_x86_64::lazyImm, 1, nullptr, 0);<br>
+ this->addReference(KindHandler_x86_64::lazyImmediate, 1, nullptr, 0);<br>
this->addReference(KindHandler_x86_64::ripRel32, 6, &helperCommon, 0);<br>
}<br>
<br>
<br>
<br>
_______________________________________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@cs.uiuc.edu">llvm-commits@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits</a><br>
</blockquote></div><br>