unhook all emulation of STRBT and LDRBT which were confusingly only half emulated; I think that they shouldn't be emulated at all. someone prove me wrong. also, fix the FORCEINLINE macro on gcc to do something approximating its intent. maybe it doesn't work on old gccs and we'll have to change it back or conditionalize it differently.

This commit is contained in:
zeromus 2009-09-15 06:20:09 +00:00
parent d3d573d777
commit ab61e64ac2
3 changed files with 670 additions and 670 deletions

File diff suppressed because it is too large Load Diff

View File

@ -1265,39 +1265,39 @@ TABDECL( OP_LDRB_M_IMM_OFF_POSTIND), //010 0010 1 1101
TABDECL( OP_LDRB_M_IMM_OFF_POSTIND), //010 0010 1 1110 TABDECL( OP_LDRB_M_IMM_OFF_POSTIND), //010 0010 1 1110
TABDECL( OP_LDRB_M_IMM_OFF_POSTIND), //010 0010 1 1111 TABDECL( OP_LDRB_M_IMM_OFF_POSTIND), //010 0010 1 1111
//------------------------------------------ //------------------------------------------
TABDECL( OP_STRBT_M_IMM_OFF_POSTIND), //010 0011 0 0000 TABDECL( OP_UND), //010 0011 0 0000
TABDECL( OP_STRBT_M_IMM_OFF_POSTIND), //010 0011 0 0000 TABDECL( OP_UND), //010 0011 0 0000
TABDECL( OP_STRBT_M_IMM_OFF_POSTIND), //010 0011 0 0000 TABDECL( OP_UND), //010 0011 0 0000
TABDECL( OP_STRBT_M_IMM_OFF_POSTIND), //010 0011 0 0000 TABDECL( OP_UND), //010 0011 0 0000
TABDECL( OP_STRBT_M_IMM_OFF_POSTIND), //010 0011 0 0000 TABDECL( OP_UND), //010 0011 0 0000
TABDECL( OP_STRBT_M_IMM_OFF_POSTIND), //010 0011 0 0000 TABDECL( OP_UND), //010 0011 0 0000
TABDECL( OP_STRBT_M_IMM_OFF_POSTIND), //010 0011 0 0000 TABDECL( OP_UND), //010 0011 0 0000
TABDECL( OP_STRBT_M_IMM_OFF_POSTIND), //010 0011 0 0000 TABDECL( OP_UND), //010 0011 0 0000
TABDECL( OP_STRBT_M_IMM_OFF_POSTIND), //010 0011 0 0000 TABDECL( OP_UND), //010 0011 0 0000
TABDECL( OP_STRBT_M_IMM_OFF_POSTIND), //010 0011 0 0000 TABDECL( OP_UND), //010 0011 0 0000
TABDECL( OP_STRBT_M_IMM_OFF_POSTIND), //010 0011 0 0000 TABDECL( OP_UND), //010 0011 0 0000
TABDECL( OP_STRBT_M_IMM_OFF_POSTIND), //010 0011 0 0000 TABDECL( OP_UND), //010 0011 0 0000
TABDECL( OP_STRBT_M_IMM_OFF_POSTIND), //010 0011 0 0000 TABDECL( OP_UND), //010 0011 0 0000
TABDECL( OP_STRBT_M_IMM_OFF_POSTIND), //010 0011 0 0000 TABDECL( OP_UND), //010 0011 0 0000
TABDECL( OP_STRBT_M_IMM_OFF_POSTIND), //010 0011 0 0000 TABDECL( OP_UND), //010 0011 0 0000
TABDECL( OP_STRBT_M_IMM_OFF_POSTIND), //010 0011 0 0000 TABDECL( OP_UND), //010 0011 0 0000
TABDECL( OP_LDRBT_M_IMM_OFF_POSTIND), //010 0011 0 0000 TABDECL( OP_UND), //010 0011 0 0000
TABDECL( OP_LDRBT_M_IMM_OFF_POSTIND), //010 0011 0 0000 TABDECL( OP_UND), //010 0011 0 0000
TABDECL( OP_LDRBT_M_IMM_OFF_POSTIND), //010 0011 0 0000 TABDECL( OP_UND), //010 0011 0 0000
TABDECL( OP_LDRBT_M_IMM_OFF_POSTIND), //010 0011 0 0000 TABDECL( OP_UND), //010 0011 0 0000
TABDECL( OP_LDRBT_M_IMM_OFF_POSTIND), //010 0011 0 0000 TABDECL( OP_UND), //010 0011 0 0000
TABDECL( OP_LDRBT_M_IMM_OFF_POSTIND), //010 0011 0 0000 TABDECL( OP_UND), //010 0011 0 0000
TABDECL( OP_LDRBT_M_IMM_OFF_POSTIND), //010 0011 0 0000 TABDECL( OP_UND), //010 0011 0 0000
TABDECL( OP_LDRBT_M_IMM_OFF_POSTIND), //010 0011 0 0000 TABDECL( OP_UND), //010 0011 0 0000
TABDECL( OP_LDRBT_M_IMM_OFF_POSTIND), //010 0011 0 0000 TABDECL( OP_UND), //010 0011 0 0000
TABDECL( OP_LDRBT_M_IMM_OFF_POSTIND), //010 0011 0 0000 TABDECL( OP_UND), //010 0011 0 0000
TABDECL( OP_LDRBT_M_IMM_OFF_POSTIND), //010 0011 0 0000 TABDECL( OP_UND), //010 0011 0 0000
TABDECL( OP_LDRBT_M_IMM_OFF_POSTIND), //010 0011 0 0000 TABDECL( OP_UND), //010 0011 0 0000
TABDECL( OP_LDRBT_M_IMM_OFF_POSTIND), //010 0011 0 0000 TABDECL( OP_UND), //010 0011 0 0000
TABDECL( OP_LDRBT_M_IMM_OFF_POSTIND), //010 0011 0 0000 TABDECL( OP_UND), //010 0011 0 0000
TABDECL( OP_LDRBT_M_IMM_OFF_POSTIND), //010 0011 0 0000 TABDECL( OP_UND), //010 0011 0 0000
TABDECL( OP_LDRBT_M_IMM_OFF_POSTIND), //010 0011 0 0000 TABDECL( OP_UND), //010 0011 0 0000
//------------------------------------------ //------------------------------------------
TABDECL( OP_STR_P_IMM_OFF_POSTIND), //010 0100 0 0000 TABDECL( OP_STR_P_IMM_OFF_POSTIND), //010 0100 0 0000
TABDECL( OP_STR_P_IMM_OFF_POSTIND), //010 0100 0 0000 TABDECL( OP_STR_P_IMM_OFF_POSTIND), //010 0100 0 0000
@ -1401,39 +1401,39 @@ TABDECL( OP_LDRB_P_IMM_OFF_POSTIND), //010 0100 0 0000
TABDECL( OP_LDRB_P_IMM_OFF_POSTIND), //010 0100 0 0000 TABDECL( OP_LDRB_P_IMM_OFF_POSTIND), //010 0100 0 0000
TABDECL( OP_LDRB_P_IMM_OFF_POSTIND), //010 0110 1 1111 TABDECL( OP_LDRB_P_IMM_OFF_POSTIND), //010 0110 1 1111
//------------------------------------------ //------------------------------------------
TABDECL( OP_STRBT_P_IMM_OFF_POSTIND), //010 0111 0 0000 TABDECL( OP_UND), //010 0111 0 0000
TABDECL( OP_STRBT_P_IMM_OFF_POSTIND), //010 0100 0 0000 TABDECL( OP_UND), //010 0100 0 0000
TABDECL( OP_STRBT_P_IMM_OFF_POSTIND), //010 0100 0 0000 TABDECL( OP_UND), //010 0100 0 0000
TABDECL( OP_STRBT_P_IMM_OFF_POSTIND), //010 0100 0 0000 TABDECL( OP_UND), //010 0100 0 0000
TABDECL( OP_STRBT_P_IMM_OFF_POSTIND), //010 0100 0 0000 TABDECL( OP_UND), //010 0100 0 0000
TABDECL( OP_STRBT_P_IMM_OFF_POSTIND), //010 0100 0 0000 TABDECL( OP_UND), //010 0100 0 0000
TABDECL( OP_STRBT_P_IMM_OFF_POSTIND), //010 0100 0 0000 TABDECL( OP_UND), //010 0100 0 0000
TABDECL( OP_STRBT_P_IMM_OFF_POSTIND), //010 0100 0 0000 TABDECL( OP_UND), //010 0100 0 0000
TABDECL( OP_STRBT_P_IMM_OFF_POSTIND), //010 0100 0 0000 TABDECL( OP_UND), //010 0100 0 0000
TABDECL( OP_STRBT_P_IMM_OFF_POSTIND), //010 0100 0 0000 TABDECL( OP_UND), //010 0100 0 0000
TABDECL( OP_STRBT_P_IMM_OFF_POSTIND), //010 0100 0 0000 TABDECL( OP_UND), //010 0100 0 0000
TABDECL( OP_STRBT_P_IMM_OFF_POSTIND), //010 0100 0 0000 TABDECL( OP_UND), //010 0100 0 0000
TABDECL( OP_STRBT_P_IMM_OFF_POSTIND), //010 0100 0 0000 TABDECL( OP_UND), //010 0100 0 0000
TABDECL( OP_STRBT_P_IMM_OFF_POSTIND), //010 0100 0 0000 TABDECL( OP_UND), //010 0100 0 0000
TABDECL( OP_STRBT_P_IMM_OFF_POSTIND), //010 0100 0 0000 TABDECL( OP_UND), //010 0100 0 0000
TABDECL( OP_STRBT_P_IMM_OFF_POSTIND), //010 0100 0 0000 TABDECL( OP_UND), //010 0100 0 0000
TABDECL( OP_LDRBT_P_IMM_OFF_POSTIND), //010 0100 0 0000 TABDECL( OP_UND), //010 0100 0 0000
TABDECL( OP_LDRBT_P_IMM_OFF_POSTIND), //010 0100 0 0000 TABDECL( OP_UND), //010 0100 0 0000
TABDECL( OP_LDRBT_P_IMM_OFF_POSTIND), //010 0100 0 0000 TABDECL( OP_UND), //010 0100 0 0000
TABDECL( OP_LDRBT_P_IMM_OFF_POSTIND), //010 0100 0 0000 TABDECL( OP_UND), //010 0100 0 0000
TABDECL( OP_LDRBT_P_IMM_OFF_POSTIND), //010 0100 0 0000 TABDECL( OP_UND), //010 0100 0 0000
TABDECL( OP_LDRBT_P_IMM_OFF_POSTIND), //010 0100 0 0000 TABDECL( OP_UND), //010 0100 0 0000
TABDECL( OP_LDRBT_P_IMM_OFF_POSTIND), //010 0100 0 0000 TABDECL( OP_UND), //010 0100 0 0000
TABDECL( OP_LDRBT_P_IMM_OFF_POSTIND), //010 0100 0 0000 TABDECL( OP_UND), //010 0100 0 0000
TABDECL( OP_LDRBT_P_IMM_OFF_POSTIND), //010 0100 0 0000 TABDECL( OP_UND), //010 0100 0 0000
TABDECL( OP_LDRBT_P_IMM_OFF_POSTIND), //010 0100 0 0000 TABDECL( OP_UND), //010 0100 0 0000
TABDECL( OP_LDRBT_P_IMM_OFF_POSTIND), //010 0100 0 0000 TABDECL( OP_UND), //010 0100 0 0000
TABDECL( OP_LDRBT_P_IMM_OFF_POSTIND), //010 0100 0 0000 TABDECL( OP_UND), //010 0100 0 0000
TABDECL( OP_LDRBT_P_IMM_OFF_POSTIND), //010 0100 0 0000 TABDECL( OP_UND), //010 0100 0 0000
TABDECL( OP_LDRBT_P_IMM_OFF_POSTIND), //010 0100 0 0000 TABDECL( OP_UND), //010 0100 0 0000
TABDECL( OP_LDRBT_P_IMM_OFF_POSTIND), //010 0100 0 0000 TABDECL( OP_UND), //010 0100 0 0000
TABDECL( OP_LDRBT_P_IMM_OFF_POSTIND), //010 0111 1 1111 TABDECL( OP_UND), //010 0111 1 1111
//------------------------------------------ //------------------------------------------
TABDECL( OP_STR_M_IMM_OFF), //010 1000 0 0000 TABDECL( OP_STR_M_IMM_OFF), //010 1000 0 0000
TABDECL( OP_STR_M_IMM_OFF), TABDECL( OP_STR_M_IMM_OFF),
@ -1808,38 +1808,38 @@ TABDECL( OP_UND),
TABDECL( OP_LDRB_M_ROR_IMM_OFF_POSTIND), TABDECL( OP_LDRB_M_ROR_IMM_OFF_POSTIND),
TABDECL( OP_UND), //011 0010 1 1111 TABDECL( OP_UND), //011 0010 1 1111
//------------------------------------------ //------------------------------------------
TABDECL( OP_STRBT_M_LSL_IMM_OFF_POSTIND), //011 0011 0 0000 TABDECL( OP_UND), //011 0011 0 0000
TABDECL( OP_UND),
TABDECL( OP_UND),
TABDECL( OP_UND),
TABDECL( OP_UND),
TABDECL( OP_UND),
TABDECL( OP_UND),
TABDECL( OP_UND),
TABDECL( OP_UND), TABDECL( OP_UND),
TABDECL( OP_STRBT_M_LSR_IMM_OFF_POSTIND),
TABDECL( OP_UND), TABDECL( OP_UND),
TABDECL( OP_STRBT_M_ASR_IMM_OFF_POSTIND),
TABDECL( OP_UND), TABDECL( OP_UND),
TABDECL( OP_STRBT_M_ROR_IMM_OFF_POSTIND),
TABDECL( OP_UND), TABDECL( OP_UND),
TABDECL( OP_STRBT_M_LSL_IMM_OFF_POSTIND),
TABDECL( OP_UND), TABDECL( OP_UND),
TABDECL( OP_STRBT_M_LSR_IMM_OFF_POSTIND),
TABDECL( OP_UND), TABDECL( OP_UND),
TABDECL( OP_STRBT_M_ASR_IMM_OFF_POSTIND),
TABDECL( OP_UND), TABDECL( OP_UND),
TABDECL( OP_STRBT_M_ROR_IMM_OFF_POSTIND),
TABDECL( OP_UND), TABDECL( OP_UND),
TABDECL( OP_LDRBT_M_LSL_IMM_OFF_POSTIND), TABDECL( OP_UND),
TABDECL( OP_UND),
TABDECL( OP_UND),
TABDECL( OP_UND),
TABDECL( OP_UND),
TABDECL( OP_UND),
TABDECL( OP_UND),
TABDECL( OP_UND),
TABDECL( OP_UND), TABDECL( OP_UND),
TABDECL( OP_LDRBT_M_LSR_IMM_OFF_POSTIND),
TABDECL( OP_UND), TABDECL( OP_UND),
TABDECL( OP_LDRBT_M_ASR_IMM_OFF_POSTIND),
TABDECL( OP_UND), TABDECL( OP_UND),
TABDECL( OP_LDRBT_M_ROR_IMM_OFF_POSTIND),
TABDECL( OP_UND), TABDECL( OP_UND),
TABDECL( OP_LDRBT_M_LSL_IMM_OFF_POSTIND),
TABDECL( OP_UND), TABDECL( OP_UND),
TABDECL( OP_LDRBT_M_LSR_IMM_OFF_POSTIND),
TABDECL( OP_UND), TABDECL( OP_UND),
TABDECL( OP_LDRBT_M_ASR_IMM_OFF_POSTIND),
TABDECL( OP_UND), TABDECL( OP_UND),
TABDECL( OP_LDRBT_M_ROR_IMM_OFF_POSTIND),
TABDECL( OP_UND), //011 0011 1 1111 TABDECL( OP_UND), //011 0011 1 1111
//------------------------------------------ //------------------------------------------
TABDECL( OP_STR_P_LSL_IMM_OFF_POSTIND), //011 0100 0 0000 TABDECL( OP_STR_P_LSL_IMM_OFF_POSTIND), //011 0100 0 0000
@ -1944,38 +1944,38 @@ TABDECL( OP_UND),
TABDECL( OP_LDRB_P_ROR_IMM_OFF_POSTIND), TABDECL( OP_LDRB_P_ROR_IMM_OFF_POSTIND),
TABDECL( OP_UND), TABDECL( OP_UND),
//------------------------------------------ //------------------------------------------
TABDECL( OP_STRBT_P_LSL_IMM_OFF_POSTIND), //011 0111 0 0000 TABDECL( OP_UND), //011 0111 0 0000 //0x6E0
TABDECL( OP_UND),
TABDECL( OP_UND),
TABDECL( OP_UND),
TABDECL( OP_UND),
TABDECL( OP_UND),
TABDECL( OP_UND),
TABDECL( OP_UND),
TABDECL( OP_UND), TABDECL( OP_UND),
TABDECL( OP_STRBT_P_LSR_IMM_OFF_POSTIND),
TABDECL( OP_UND), TABDECL( OP_UND),
TABDECL( OP_STRBT_P_ASR_IMM_OFF_POSTIND),
TABDECL( OP_UND), TABDECL( OP_UND),
TABDECL( OP_STRBT_P_ROR_IMM_OFF_POSTIND),
TABDECL( OP_UND), TABDECL( OP_UND),
TABDECL( OP_STRBT_P_LSL_IMM_OFF_POSTIND),
TABDECL( OP_UND), TABDECL( OP_UND),
TABDECL( OP_STRBT_P_LSR_IMM_OFF_POSTIND),
TABDECL( OP_UND), TABDECL( OP_UND),
TABDECL( OP_STRBT_P_ASR_IMM_OFF_POSTIND),
TABDECL( OP_UND), TABDECL( OP_UND),
TABDECL( OP_STRBT_P_ROR_IMM_OFF_POSTIND),
TABDECL( OP_UND), TABDECL( OP_UND),
TABDECL( OP_LDRBT_P_LSL_IMM_OFF_POSTIND), TABDECL( OP_UND),
TABDECL( OP_UND),
TABDECL( OP_UND),
TABDECL( OP_UND),
TABDECL( OP_UND),
TABDECL( OP_UND),
TABDECL( OP_UND),
TABDECL( OP_UND),
TABDECL( OP_UND), TABDECL( OP_UND),
TABDECL( OP_LDRBT_P_LSR_IMM_OFF_POSTIND),
TABDECL( OP_UND), TABDECL( OP_UND),
TABDECL( OP_LDRBT_P_ASR_IMM_OFF_POSTIND),
TABDECL( OP_UND), TABDECL( OP_UND),
TABDECL( OP_LDRBT_P_ROR_IMM_OFF_POSTIND),
TABDECL( OP_UND), TABDECL( OP_UND),
TABDECL( OP_LDRBT_P_LSL_IMM_OFF_POSTIND),
TABDECL( OP_UND), TABDECL( OP_UND),
TABDECL( OP_LDRBT_P_LSR_IMM_OFF_POSTIND),
TABDECL( OP_UND), TABDECL( OP_UND),
TABDECL( OP_LDRBT_P_ASR_IMM_OFF_POSTIND),
TABDECL( OP_UND), TABDECL( OP_UND),
TABDECL( OP_LDRBT_P_ROR_IMM_OFF_POSTIND),
TABDECL( OP_UND), TABDECL( OP_UND),
//------------------------------------------ //------------------------------------------
TABDECL( OP_STR_M_LSL_IMM_OFF), //011 1000 0 0000 TABDECL( OP_STR_M_LSL_IMM_OFF), //011 1000 0 0000

View File

@ -96,7 +96,7 @@
#define FORCEINLINE __forceinline #define FORCEINLINE __forceinline
#define MSC_FORCEINLINE __forceinline #define MSC_FORCEINLINE __forceinline
#else #else
#define FORCEINLINE INLINE #define FORCEINLINE inline __attribute__((always_inline))
#define MSC_FORCEINLINE #define MSC_FORCEINLINE
#endif #endif
#endif #endif