mirror of
https://github.com/reactos/reactos.git
synced 2025-08-03 07:55:56 +00:00
[CRT]
- Add __fastfail intrinsic implementation for GCC and MSVC <= 2010. Patch by Timo Kreuzer. CORE-8419 svn path=/trunk/; revision=64519
This commit is contained in:
parent
9d68ddc78c
commit
6acee80eb2
2 changed files with 18 additions and 1 deletions
|
@ -1504,6 +1504,7 @@ __INTRIN_INLINE void __int2c(void);
|
||||||
__INTRIN_INLINE void _disable(void);
|
__INTRIN_INLINE void _disable(void);
|
||||||
__INTRIN_INLINE void _enable(void);
|
__INTRIN_INLINE void _enable(void);
|
||||||
__INTRIN_INLINE void __halt(void);
|
__INTRIN_INLINE void __halt(void);
|
||||||
|
__declspec(noreturn) __INTRIN_INLINE void __fastfail(unsigned int Code);
|
||||||
|
|
||||||
#ifdef __clang__
|
#ifdef __clang__
|
||||||
#define __debugbreak() __asm__("int $3")
|
#define __debugbreak() __asm__("int $3")
|
||||||
|
@ -1532,7 +1533,13 @@ __INTRIN_INLINE void _enable(void)
|
||||||
|
|
||||||
__INTRIN_INLINE void __halt(void)
|
__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 ***/
|
/*** Protected memory management ***/
|
||||||
|
|
|
@ -587,6 +587,16 @@ void __ud2(void);
|
||||||
#if (_MSC_VER >= 1700)
|
#if (_MSC_VER >= 1700)
|
||||||
__declspec(noreturn) void __fastfail(unsigned int Code);
|
__declspec(noreturn) void __fastfail(unsigned int Code);
|
||||||
#pragma intrinsic(__fastfail)
|
#pragma intrinsic(__fastfail)
|
||||||
|
#else
|
||||||
|
__declspec(noreturn) __forceinline
|
||||||
|
void __fastfail(unsigned int Code)
|
||||||
|
{
|
||||||
|
__asm
|
||||||
|
{
|
||||||
|
mov ecx, Code
|
||||||
|
int 29h
|
||||||
|
}
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
#if defined(_M_ARM)
|
#if defined(_M_ARM)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue