5 // JITC common functions (architecture not dependent)
\r
8 void errorHandler(HOSECPU_RuntimeEnvironment *r)
\r
10 puts("security error! abort...");
\r
11 printf("debugInfo0=%d, debugInfo1=%d\n", r->debugInfo0, r->debugInfo1);
\r
12 #if (ENABLE_DEBUG_CODE != 0)
\r
13 printf("Last opcode may be 0x%02X (Backend).\n", r->dbg_currentCode);
\r
16 #if (ENABLE_DEBUG_CODE_ADDR != 0)
\r
17 printf("At backend code bin +0x%04X.\n", r->dbg_currentCodeAddress);
\r
20 #if (USE_DEBUGGER != 0)
\r
26 int jitCompCmdLen(const unsigned char *src)
\r
31 if (0x01 <= *src && *src < 0x04){
\r
34 } else if (*src == 0x04){
\r
37 } else if (0x08 <= *src && *src < 0x0d){
\r
38 // LMEM, SMEM, ??, ??, ??
\r
40 } else if (0x0e <= *src && *src < 0x10){
\r
43 } else if (0x10 <= *src && *src < 0x1c){
\r
44 // CP/OR, XOR, AND, ADD, SUB, MUL, SHL, SAR, DIV, MOD,
\r
46 } else if (0x1c <= *src && *src < 0x1f){
\r
49 } else if (*src == 0x1f){
\r
52 } else if(0x20 <= *src && *src < 0x2e){
\r
53 // CMPE, CMPNE, CMPL, CMPGE, CMPLE, CMPG, TSTZ, TSTNZ,
\r
54 // PCMPE, PCMPNE, PCMPL, PCMPGE, PCMPLE, PCMPG,
\r
56 } else if (*src == 0x2f){
\r
59 } else if (0x30 <= *src && *src < 0x34){
\r
60 // ??, ??, MALLOC, ??
\r
62 } else if (0x3c <= *src && *src < 0x3e){
\r
65 } else if (*src == 0xfe){
\r
73 void PRegCopy(HOSECPU_PointerRegisterEntry *dst, HOSECPU_PointerRegisterEntry *src)
\r
75 // 以下の方法で代入するとMacではアライメントエラーで落ちるのです...
\r
77 // ということで、memcpyによる実装に変更しました。
\r
79 memcpy(dst, src, sizeof(HOSECPU_PointerRegisterEntry));
\r