summaryrefslogtreecommitdiff
path: root/src/vm/stublink.cpp
diff options
context:
space:
mode:
authorBen Pye <ben@curlybracket.co.uk>2015-07-01 15:10:09 +0100
committerBen Pye <ben@curlybracket.co.uk>2015-07-24 16:45:35 +0100
commit9cd8273572260317c6acc126333e5a6e56aaeb06 (patch)
treef125e83a6908151322aa20940b63c64c621c1169 /src/vm/stublink.cpp
parentacca43b33dcd97d1dc5d92147a3047a3bdfaf1ce (diff)
downloadcoreclr-9cd8273572260317c6acc126333e5a6e56aaeb06.tar.gz
coreclr-9cd8273572260317c6acc126333e5a6e56aaeb06.tar.bz2
coreclr-9cd8273572260317c6acc126333e5a6e56aaeb06.zip
Add ARM target for CoreCLR on Linux.
c_runtime/vprintf/test1 is disabled as casting NULL to va_list is against the C specification. Fix SetFilePointer tests on 32 bit platforms. Define _FILE_OFFSET_BITS=64 so that we have long file support on 32 bit platforms. Implement context capture/restore for ARM. Link libgcc_s before libunwind on ARM so C++ exceptions work. Translate armasm to gas syntax. Specify Thumb, VFPv3, ARMv7 for the ARM target. Add ARM configuration to mscorlib build Implement GetLogicalProcessorCacheSizeFromOS in PAL. Set UNWIND_CONTEXT_IS_UCONTEXT_T from configure check.
Diffstat (limited to 'src/vm/stublink.cpp')
-rw-r--r--src/vm/stublink.cpp20
1 files changed, 10 insertions, 10 deletions
diff --git a/src/vm/stublink.cpp b/src/vm/stublink.cpp
index 678a57669b..9dfe20fd1c 100644
--- a/src/vm/stublink.cpp
+++ b/src/vm/stublink.cpp
@@ -172,8 +172,8 @@ FindStubFunctionEntry (
RUNTIME_FUNCTION__BeginAddress(pCurFunction),
RUNTIME_FUNCTION__EndAddress(pCurFunction, (TADDR)pStubHeapSegment->pbBaseAddress)));
- CONSISTENCY_CHECK(RUNTIME_FUNCTION__EndAddress(pCurFunction, (TADDR)pStubHeapSegment->pbBaseAddress) > RUNTIME_FUNCTION__BeginAddress(pCurFunction));
- CONSISTENCY_CHECK(!pPrevFunction || RUNTIME_FUNCTION__EndAddress(pPrevFunction, (TADDR)pStubHeapSegment->pbBaseAddress) <= RUNTIME_FUNCTION__BeginAddress(pCurFunction));
+ CONSISTENCY_CHECK((RUNTIME_FUNCTION__EndAddress(pCurFunction, (TADDR)pStubHeapSegment->pbBaseAddress) > RUNTIME_FUNCTION__BeginAddress(pCurFunction)));
+ CONSISTENCY_CHECK((!pPrevFunction || RUNTIME_FUNCTION__EndAddress(pPrevFunction, (TADDR)pStubHeapSegment->pbBaseAddress) <= RUNTIME_FUNCTION__BeginAddress(pCurFunction)));
// The entry points are in increasing address order. They're
// also contiguous, so after we're sure it's after the start of
@@ -181,7 +181,7 @@ FindStubFunctionEntry (
// the end address.
if (RelativeAddress < RUNTIME_FUNCTION__EndAddress(pCurFunction, (TADDR)pStubHeapSegment->pbBaseAddress))
{
- CONSISTENCY_CHECK(RelativeAddress >= RUNTIME_FUNCTION__BeginAddress(pCurFunction));
+ CONSISTENCY_CHECK((RelativeAddress >= RUNTIME_FUNCTION__BeginAddress(pCurFunction)));
return pCurFunction;
}
@@ -215,7 +215,7 @@ void UnregisterUnwindInfoInLoaderHeapCallback (PVOID pvAllocationBase, SIZE_T cb
StubUnwindInfoHeapSegment *pStubHeapSegment;
for (StubUnwindInfoHeapSegment **ppPrevStubHeapSegment = &g_StubHeapSegments;
- pStubHeapSegment = *ppPrevStubHeapSegment; )
+ (pStubHeapSegment = *ppPrevStubHeapSegment); )
{
LOG((LF_STUBS, LL_INFO10000, " have unwind info for address %p size %p\n", pStubHeapSegment->pbBaseAddress, pStubHeapSegment->cbSegment));
@@ -354,6 +354,12 @@ StubLinker::StubLinker()
m_pPatchLabel = NULL;
m_stackSize = 0;
m_fDataOnly = FALSE;
+#ifdef _TARGET_ARM_
+ m_fProlog = FALSE;
+ m_cCalleeSavedRegs = 0;
+ m_cbStackFrame = 0;
+ m_fPushArgRegs = FALSE;
+#endif
#ifdef STUBLINKER_GENERATES_UNWIND_INFO
#ifdef _DEBUG
m_pUnwindInfoCheckLabel = NULL;
@@ -363,12 +369,6 @@ StubLinker::StubLinker()
m_nUnwindSlots = 0;
m_fHaveFramePointer = FALSE;
#endif
-#ifdef _TARGET_ARM_
- m_fProlog = FALSE;
- m_cCalleeSavedRegs = 0;
- m_cbStackFrame = 0;
- m_fPushArgRegs = FALSE;
-#endif
#ifdef _TARGET_ARM64_
m_fProlog = FALSE;
m_cIntRegArgs = 0;