template <class T>
inline T _ClearThumbBit(T addr)
{
- return (T)(((DWORD)addr) & ~THUMB_CODE);
+ return (T)(((CORDB_ADDRESS)addr) & ~THUMB_CODE);
}
{
LIMITED_METHOD_CONTRACT;
- ULONG ptraddr = dac_cast<ULONG>(address);
+ CORDB_ADDRESS ptraddr = (CORDB_ADDRESS)address;
_ASSERTE(ptraddr & THUMB_CODE);
ptraddr &= ~THUMB_CODE;
return *(PRD_TYPE *)ptraddr;
// In a DAC build, this function assumes the input is an host address.
LIMITED_METHOD_DAC_CONTRACT;
- ULONG ptraddr = dac_cast<ULONG>(address);
+ CORDB_ADDRESS ptraddr = (CORDB_ADDRESS)address;
_ASSERTE(ptraddr & THUMB_CODE);
ptraddr &= ~THUMB_CODE;
ULONG
RtlpGetFunctionEndAddress (
__in PT_RUNTIME_FUNCTION FunctionEntry,
- __in ULONG ImageBase
+ __in TADDR ImageBase
)
{
ULONG FunctionLength;
typedef DPTR(struct _UNWIND_INFO) PTR_UNWIND_INFO;
#endif
-#ifdef _WIN64
+#ifdef _TARGET_64BIT_
typedef DPTR(T_RUNTIME_FUNCTION) PTR_RUNTIME_FUNCTION;
typedef DPTR(struct _UNWIND_INFO) PTR_UNWIND_INFO;
#if defined(_TARGET_AMD64_)
typedef DPTR(union _UNWIND_CODE) PTR_UNWIND_CODE;
#endif // _TARGET_AMD64_
-#endif // _WIN64
+#endif // _TARGET_64BIT_
#ifdef _TARGET_ARM_
typedef DPTR(RUNTIME_FUNCTION) PTR_RUNTIME_FUNCTION;
#endif
}
-#elif defined(_WIN64)
+#elif defined(_TARGET_64BIT_)
#if defined(_TARGET_ARM64_)
typedef struct _Arm64VolatileContextPointer
#error "RegDisplay functions are not implemented on this platform."
#endif
-#if defined(_WIN64) || defined(_TARGET_ARM_) || (defined(_TARGET_X86_) && defined(WIN64EXCEPTIONS))
+#if defined(_TARGET_64BIT_) || defined(_TARGET_ARM_) || (defined(_TARGET_X86_) && defined(WIN64EXCEPTIONS))
// This needs to be implemented for platforms that have funclets.
inline LPVOID GetRegdisplayReturnValue(REGDISPLAY *display)
{
#elif defined(_TARGET_ARM64_)
return (LPVOID)display->pCurrentContext->X0;
#elif defined(_TARGET_ARM_)
- return (LPVOID)display->pCurrentContext->R0;
+ return (LPVOID)((TADDR)display->pCurrentContext->R0);
#elif defined(_TARGET_X86_)
return (LPVOID)display->pCurrentContext->Eax;
#else
{
LIMITED_METHOD_CONTRACT;
-#if defined(_WIN64)
+#if defined(_TARGET_64BIT_)
pRD->SP = (INT_PTR)GetSP(pRD->pCurrentContext);
pRD->ControlPC = INT_PTR(GetIP(pRD->pCurrentContext));
-#elif defined(_TARGET_ARM_) // _WIN64
+#elif defined(_TARGET_ARM_)
pRD->SP = (DWORD)GetSP(pRD->pCurrentContext);
pRD->ControlPC = (DWORD)GetIP(pRD->pCurrentContext);
-#elif defined(_TARGET_X86_) // _TARGET_ARM_
+#elif defined(_TARGET_X86_)
pRD->SP = (DWORD)GetSP(pRD->pCurrentContext);
pRD->ControlPC = (DWORD)GetIP(pRD->pCurrentContext);
#else // _TARGET_X86_
PORTABILITY_ASSERT("SyncRegDisplayToCurrentContext");
-#endif // _TARGET_ARM_ || _TARGET_X86_
+#endif
#ifdef DEBUG_REGDISPLAY
CheckRegDisplaySP(pRD);
#endif // DEBUG_REGDISPLAY
}
-#endif // _WIN64 || _TARGET_ARM_ || (_TARGET_X86_ && WIN64EXCEPTIONS)
+#endif // _TARGET_64BIT_ || _TARGET_ARM_ || (_TARGET_X86_ && WIN64EXCEPTIONS)
typedef REGDISPLAY *PREGDISPLAY;
EmitLabelRef(target, reinterpret_cast<ThumbCondJump&>(gThumbCondJump), variation);
}
-unsigned int StubLinkerCPU::HashMulticastInvoke(MetaSig *pSig)
+UINT_PTR StubLinkerCPU::HashMulticastInvoke(MetaSig *pSig)
{
// Generate a hash key as follows:
// Bit0-2 : num of general purpose registers used
#ifdef _TARGET_ARM_
case IMAGE_REL_BASED_THUMB_MOV32:
- PutThumb2Mov32((UINT16 *)address, GetThumb2Mov32((UINT16 *)address) + delta);
+ PutThumb2Mov32((UINT16 *)address, GetThumb2Mov32((UINT16 *)address) + (INT32)delta);
pEndAddressToFlush = max(pEndAddressToFlush, address + 8);
break;
#endif
return dac_cast<PTR_Object>(pContext->Rcx);
#endif
#elif defined(_TARGET_ARM_)
- return dac_cast<PTR_Object>(pContext->R0);
+ return dac_cast<PTR_Object>((TADDR)pContext->R0);
#elif defined(_TARGET_ARM64_)
return dac_cast<PTR_Object>(pContext->X0);
#else
return context.Rip;
#elif defined(_TARGET_ARM_)
- return *((PCODE *)pContext->R11 + 1);
+ return *((PCODE *)((TADDR)pContext->R11) + 1);
#elif defined(_TARGET_ARM64_)
return *((PCODE *)pContext->Fp + 1);
#else