GCPROTECT_END();
}
-#if defined(TARGET_X86) && defined(TARGET_WINDOWS)
+#if defined(TARGET_X86)
// Marshals a managed method to an unmanaged callback provided the
// managed method is static and it's parameters require no marshalling.
PCODE COMDelegate::ConvertToCallback(MethodDesc* pMD)
_ASSERTE(pCode != NULL);
return pCode;
}
-#endif // defined(TARGET_X86) && defined(TARGET_WINDOWS)
+#endif // defined(TARGET_X86)
// Marshals a delegate to a unmanaged callback.
LPVOID COMDelegate::ConvertToCallback(OBJECTREF pDelegateObj)
// Marshals a delegate to a unmanaged callback.
static LPVOID ConvertToCallback(OBJECTREF pDelegate);
-#if defined(TARGET_X86) && defined(TARGET_WINDOWS)
+#if defined(TARGET_X86)
// Marshals a managed method to an unmanaged callback.
- // This is only used on x86 Windows. See usage for further details.
+ // This is only used on x86. See usage for further details.
static PCODE ConvertToCallback(MethodDesc* pMD);
-#endif // defined(TARGET_X86) && defined(TARGET_WINDOWS)
+#endif // defined(TARGET_X86)
// Marshals an unmanaged callback to Delegate
static OBJECTREF ConvertToDelegate(LPVOID pCallback, MethodTable* pMT);
if ((ExceptionContinueSearch == returnDisposition))
{
+#ifdef USE_GC_INFO_DECODER
if (dwExceptionFlags & EXCEPTION_UNWINDING)
{
EECodeInfo codeInfo(pDispatcherContext->ControlPc);
}
}
}
+#endif // USE_GC_INFO_DECODER
GCX_PREEMP_NO_DTOR();
}
controlPc = Thread::VirtualUnwindLeafCallFrame(frameContext);
}
+#ifdef USE_GC_INFO_DECODER
GcInfoDecoder gcInfoDecoder(codeInfo.GetGCInfoToken(), DECODE_REVERSE_PINVOKE_VAR);
if (gcInfoDecoder.GetReversePInvokeFrameStackSlot() != NO_REVERSE_PINVOKE_FRAME)
TerminateProcess(GetCurrentProcess(), 1);
UNREACHABLE();
}
+#endif // USE_GC_INFO_DECODER
// Check whether we are crossing managed-to-native boundary
while (!ExecutionManager::IsManagedCode(controlPc))
// Align the stack for the call
lea ebx, [esp - 8]
- and ebx, 0fh
+ and ebx, 0x0f
sub esp, ebx
push eax // stub-identifying token, see OnCallCountThresholdReachedStub
#ifdef FEATURE_TIERED_COMPILATION
bool shouldTier = pConfig->GetMethodDesc()->IsEligibleForTieredCompilation();
-#if !defined(TARGET_X86) || !defined(TARGET_WINDOWS)
+#if !defined(TARGET_X86)
CallerGCMode callerGcMode = pConfig->GetCallerGCMode();
// If the method is eligible for tiering but is being
// called from a Preemptive GC Mode thread or the method
codeVersion.SetOptimizationTier(NativeCodeVersion::OptimizationTierOptimized);
shouldTier = false;
}
-#endif // !TARGET_X86 || !TARGET_WINDOWS
+#endif // !TARGET_X86
#endif // FEATURE_TIERED_COMPILATION
if (pConfig->SetNativeCode(pCode, &pCode))