diff -r 2d65c2f76d7b -r 947f0dc9f7a8 kernel/eka/include/cpudefs.h --- a/kernel/eka/include/cpudefs.h Tue Feb 02 01:24:03 2010 +0200 +++ b/kernel/eka/include/cpudefs.h Fri Apr 16 16:24:37 2010 +0300 @@ -605,8 +605,10 @@ // Causes undefined instruction exception on both ARM and THUMB #define __ASM_CRASH() asm(".word 0xe7ffdeff ") -#if defined(__GNUC__) +#if defined(__GNUC__) #define __crash() asm(".word 0xe7ffdeff " : : : "memory") +#elif defined(__GCCXML__) +#define __crash() (*((TInt *) 0x0) = 0xd1e) #elif defined(__ARMCC__) // RVCT doesn't let us inline an undefined instruction // use a CDP to CP15 instead - doesn't work on THUMB but never mind @@ -638,8 +640,10 @@ #define EXC_TRAP_CTX_SZ 10 // ebx, esp, ebp, esi, edi, ds, es, fs, gs, eip // Causes exception -#if defined(__VC32__) || defined(__CW32__) -#define __crash() do { _asm int 0ffh } while(0) +#if defined(__VC32__) +#define __crash() do { _asm int 255 } while(0) +#elif defined(__CW32__) +#define __crash() do { *(volatile TInt*)0 = 0; } while(0) #else #define __crash() asm("int 0xff " : : : "memory") #endif