diff options
author | Ben Pye <ben@curlybracket.co.uk> | 2015-07-01 15:10:09 +0100 |
---|---|---|
committer | Ben Pye <ben@curlybracket.co.uk> | 2015-07-24 16:45:35 +0100 |
commit | 9cd8273572260317c6acc126333e5a6e56aaeb06 (patch) | |
tree | f125e83a6908151322aa20940b63c64c621c1169 /src/vm/stublink.cpp | |
parent | acca43b33dcd97d1dc5d92147a3047a3bdfaf1ce (diff) | |
download | coreclr-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.cpp | 20 |
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; |