kernel/eka/include/cpudefs.h
branchRCL_3
changeset 256 c1f20ce4abcf
parent 36 538db54a451d
child 257 3e88ff8f41d5
--- a/kernel/eka/include/cpudefs.h	Thu Aug 19 11:14:22 2010 +0300
+++ b/kernel/eka/include/cpudefs.h	Tue Aug 31 16:34:26 2010 +0300
@@ -198,8 +198,9 @@
 
 #if defined(__WINS__)
 #define __NAKED__ __declspec( naked )
-#ifndef __MINIMUM_MACHINE_CODE__
-//#define __MEM_MACHINE_CODED__
+#if !defined(__MINIMUM_MACHINE_CODE__) && defined(__KERNEL_MODE__)
+// Assembly language memmove() and memcpy() are used for WINS but only in the kernel, not euser
+#define __MEMMOVE_MACHINE_CODED__
 #endif
 #define __CPU_X86
 #endif
@@ -368,21 +369,21 @@
 #define __END_ARM
 #endif
 
-#define CC_EQ	0
-#define	CC_NE	1
-#define CC_CS	2
-#define CC_CC	3
-#define CC_MI	4
-#define CC_PL	5
-#define CC_VS	6
-#define CC_VC	7
-#define CC_HI	8
-#define CC_LS	9
-#define CC_GE	10
-#define CC_LT	11
-#define CC_GT	12
-#define CC_LE	13
-#define	CC_AL	14
+#define CC_EQ	0U
+#define	CC_NE	1U
+#define CC_CS	2U
+#define CC_CC	3U
+#define CC_MI	4U
+#define CC_PL	5U
+#define CC_VS	6U
+#define CC_VC	7U
+#define CC_HI	8U
+#define CC_LS	9U
+#define CC_GE	10U
+#define CC_LT	11U
+#define CC_GT	12U
+#define CC_LE	13U
+#define	CC_AL	14U
 
 #ifdef __CPU_ARM_HAS_CLZ
 #if __ARM_ASSEMBLER_ISA__ >= 5
@@ -605,8 +606,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 +641,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