[x86/Linux] Use SP as StackMarker (#9389)
authorJonghyun Park <parjong@gmail.com>
Wed, 8 Feb 2017 09:29:23 +0000 (18:29 +0900)
committerJan Vorlicek <janvorli@microsoft.com>
Wed, 8 Feb 2017 09:29:23 +0000 (10:29 +0100)
src/inc/regdisp.h

index 390711f36f4329ccc1a0431fe933ca422781e451..cae06098ff68bb88e2f7cbcf2aa1b11d07089422 100644 (file)
@@ -135,12 +135,21 @@ inline PCODE GetControlPC(REGDISPLAY *display) {
 inline BOOL IsInCalleesFrames(REGDISPLAY *display, LPVOID stackPointer) {
     LIMITED_METHOD_CONTRACT;
 
+#ifdef WIN64EXCEPTIONS
+    return stackPointer < ((LPVOID)(display->SP));
+#else
     return (TADDR)stackPointer < display->PCTAddr;
+#endif
 }
 inline TADDR GetRegdisplayStackMark(REGDISPLAY *display) {
     LIMITED_METHOD_DAC_CONTRACT;
 
+#ifdef WIN64EXCEPTIONS
+    _ASSERTE(GetRegdisplaySP(display) == GetSP(display->pCurrentContext));
+    return GetRegdisplaySP(display);
+#else
     return display->PCTAddr;
+#endif
 }
 
 #elif defined(_WIN64)