Conditionalize asm syntax. Add GCC asm syntax.

This commit is contained in:
Ben "root" Anderson
2013-10-25 19:19:26 -05:00
parent 4ff5fe367a
commit ed7d824bbb
+12
View File
@@ -364,7 +364,11 @@ long __stdcall CrashHandler::ExceptionHandler( EXCEPTION_POINTERS *pExc )
int iSize = 1024*32;
char *pStack = (char *) VirtualAlloc( NULL, iSize, MEM_COMMIT | MEM_RESERVE, PAGE_READWRITE );
pStack += iSize;
#if defined(_MSC_VER)
_asm mov esp, pStack;
#elif defined(__GNUC__)
asm ("mov esp, pStack");
#endif
return MainExceptionHandler( pExc );
}
@@ -532,10 +536,18 @@ void CrashHandler::do_backtrace( const void **buf, size_t size,
static void NORETURN debug_crash()
{
__try {
#if defined(__MSC_VER)
__asm xor ebx,ebx
__asm mov eax,dword ptr [ebx]
// __asm mov dword ptr [ebx],eax
// __asm lock add dword ptr cs:[00000000h], 12345678h
#elif defined(__GNUC__)
asm("xor ebx,ebx",
"mov eax,dword ptr [ebx]",
// "mov dword ptr [ebx],eax",
// "lock add dword ptr cs:[00000000h], 12345678h",
);
#endif
} __except( CrashHandler::ExceptionHandler((EXCEPTION_POINTERS*)_exception_info()) ) {
}
}