summaryrefslogtreecommitdiff
path: root/src/vm/dllimport.cpp
diff options
context:
space:
mode:
authorgbalykov <g.balykov@samsung.com>2017-06-03 06:31:28 +0300
committerJan Kotas <jkotas@microsoft.com>2017-06-02 20:31:28 -0700
commitfd3668c7c9b9f5d64b5e6d1edf8c55a307cd3c2d (patch)
tree4dfd969b9979a2e4794e0cff4c46a378343b993e /src/vm/dllimport.cpp
parentb47b138d595267315008885e6ac7e2f4322cc5a9 (diff)
downloadcoreclr-fd3668c7c9b9f5d64b5e6d1edf8c55a307cd3c2d.tar.gz
coreclr-fd3668c7c9b9f5d64b5e6d1edf8c55a307cd3c2d.tar.bz2
coreclr-fd3668c7c9b9f5d64b5e6d1edf8c55a307cd3c2d.zip
Remove relocations from SECTION_MethodDesc for ngened images for fields accessed from jit code for Linux ARM (#11963)
Diffstat (limited to 'src/vm/dllimport.cpp')
-rw-r--r--src/vm/dllimport.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/vm/dllimport.cpp b/src/vm/dllimport.cpp
index b7807119c0..49c7d7a8b8 100644
--- a/src/vm/dllimport.cpp
+++ b/src/vm/dllimport.cpp
@@ -2294,7 +2294,19 @@ void NDirectStubLinker::DoNDirect(ILCodeStream *pcsEmit, DWORD dwStubFlags, Meth
//pcsEmit->EmitCALL(METHOD__STUBHELPERS__GET_NDIRECT_TARGET, 1, 1);
pcsEmit->EmitLDC(offsetof(NDirectMethodDesc, ndirect.m_pWriteableData));
pcsEmit->EmitADD();
+
+ if (decltype(NDirectMethodDesc::ndirect.m_pWriteableData)::isRelative)
+ {
+ pcsEmit->EmitDUP();
+ }
+
pcsEmit->EmitLDIND_I();
+
+ if (decltype(NDirectMethodDesc::ndirect.m_pWriteableData)::isRelative)
+ {
+ pcsEmit->EmitADD();
+ }
+
pcsEmit->EmitLDIND_I();
}
}