__INTRIN_INLINE void _disable(void);
__INTRIN_INLINE void _enable(void);
__INTRIN_INLINE void __halt(void);
+__declspec(noreturn) __INTRIN_INLINE void __fastfail(unsigned int Code);
#ifdef __clang__
#define __debugbreak() __asm__("int $3")
__INTRIN_INLINE void __halt(void)
{
- __asm__("hlt\n\t" : : : "memory");
+ __asm__("hlt" : : : "memory");
+}
+
+__declspec(noreturn)
+__INTRIN_INLINE void __fastfail(unsigned int Code)
+{
+ __asm__("int $0x29" : : "c"(Code) : "memory");
}
/*** Protected memory management ***/
#if (_MSC_VER >= 1700)
__declspec(noreturn) void __fastfail(unsigned int Code);
#pragma intrinsic(__fastfail)
+#else
+__declspec(noreturn) __forceinline
+void __fastfail(unsigned int Code)
+{
+ __asm
+ {
+ mov ecx, Code
+ int 29h
+ }
+}
#endif
#endif
#if defined(_M_ARM)