-#include "osecpu.h"
-#include "jitc.h"
-
-//
-// JITC common functions (architecture not dependent)
-//
-
-void errorHandler(HOSECPU_RuntimeEnvironment *r)
-{
- puts("security error! abort...");
- printf("debugInfo0=%d, debugInfo1=%d\n", r->debugInfo0, r->debugInfo1);
-#if (USE_DEBUGGER != 0)
- dbgrMain(r);
-#endif
- exit(1);
-}
-
-int jitCompCmdLen(const unsigned char *src)
-{
- //BCode命令長を取得する
- int i = 1;
-
- if (0x01 <= *src && *src < 0x04){
- // LB, LIMM, PLIMM
- i = 6;
- } else if (*src == 0x04){
- // CND
- i = 2;
- } else if (0x08 <= *src && *src < 0x0d){
- // LMEM, SMEM, ??, ??, ??
- i = 8 + src[7] * 4;
- } else if (0x0e <= *src && *src < 0x10){
- // PADD, PDIF
- i = 8;
- } else if (0x10 <= *src && *src < 0x1c){
- // CP/OR, XOR, AND, ADD, SUB, MUL, SHL, SAR, DIV, MOD,
- i = 4;
- } else if (0x1c <= *src && *src < 0x1f){
- // ??, ??, PCP
- i = 3;
- } else if (*src == 0x1f){
- // ??
- i = 11;
- } else if(0x20 <= *src && *src < 0x2e){
- // CMPE, CMPNE, CMPL, CMPGE, CMPLE, CMPG, TSTZ, TSTNZ,
- // PCMPE, PCMPNE, PCMPL, PCMPGE, PCMPLE, PCMPG,
- i = 4;
- } else if (*src == 0x2f){
- // ??
- i = 4 + src[1];
- } else if (0x30 <= *src && *src < 0x34){
- // ??, ??, MALLOC, ??
- i = 4;
- } else if (0x3c <= *src && *src < 0x3e){
- // ??, ??
- i = 7;
- } else if (*src == 0xfe){
- // REMARK
- i = 2 + src[1];
- }
-
- return i;
-}
-
-void PRegCopy(HOSECPU_PointerRegisterEntry *dst, HOSECPU_PointerRegisterEntry *src)
-{
- // なんか直接代入するとMacではアライメントエラーで落ちるのです...
- // dst = src;
-
- dst->p = src->p;
- dst->typ = src->typ;
- dst->p0 = src->p0;
- dst->p1 = src->p1;
- dst->liveSign = src->liveSign;
- dst->pls = src->pls;
- dst->flags = src->flags;
- dst->dummy = src->dummy;
-}
-
-
-
-
+#include "osecpu.h"\r
+#include "jitc.h"\r
+\r
+//\r
+// JITC common functions (architecture not dependent)\r
+//\r
+\r
+void errorHandler(HOSECPU_RuntimeEnvironment *r)\r
+{\r
+ puts("security error! abort...");\r
+ printf("debugInfo0=%d, debugInfo1=%d\n", r->debugInfo0, r->debugInfo1);\r
+#if (USE_DEBUGGER != 0)\r
+ dbgrMain(r);\r
+#endif\r
+ exit(1);\r
+}\r
+\r
+int jitCompCmdLen(const unsigned char *src)\r
+{\r
+ //BCode命令長を取得する\r
+ int i = 1;\r
+ \r
+ if (0x01 <= *src && *src < 0x04){\r
+ // LB, LIMM, PLIMM\r
+ i = 6;\r
+ } else if (*src == 0x04){\r
+ // CND\r
+ i = 2;\r
+ } else if (0x08 <= *src && *src < 0x0d){\r
+ // LMEM, SMEM, ??, ??, ??\r
+ i = 8 + src[7] * 4;\r
+ } else if (0x0e <= *src && *src < 0x10){\r
+ // PADD, PDIF\r
+ i = 8;\r
+ } else if (0x10 <= *src && *src < 0x1c){\r
+ // CP/OR, XOR, AND, ADD, SUB, MUL, SHL, SAR, DIV, MOD,\r
+ i = 4;\r
+ } else if (0x1c <= *src && *src < 0x1f){\r
+ // ??, ??, PCP\r
+ i = 3;\r
+ } else if (*src == 0x1f){\r
+ // ??\r
+ i = 11;\r
+ } else if(0x20 <= *src && *src < 0x2e){\r
+ // CMPE, CMPNE, CMPL, CMPGE, CMPLE, CMPG, TSTZ, TSTNZ,\r
+ // PCMPE, PCMPNE, PCMPL, PCMPGE, PCMPLE, PCMPG,\r
+ i = 4;\r
+ } else if (*src == 0x2f){\r
+ // ??\r
+ i = 4 + src[1];\r
+ } else if (0x30 <= *src && *src < 0x34){\r
+ // ??, ??, MALLOC, ??\r
+ i = 4;\r
+ } else if (0x3c <= *src && *src < 0x3e){\r
+ // ??, ??\r
+ i = 7;\r
+ } else if (*src == 0xfe){\r
+ // REMARK\r
+ i = 2 + src[1];\r
+ }\r
+\r
+ return i;\r
+}\r
+\r
+void PRegCopy(HOSECPU_PointerRegisterEntry *dst, HOSECPU_PointerRegisterEntry *src)\r
+{\r
+ // なんか直接代入するとMacではアライメントエラーで落ちるのです...\r
+ // *dst = *src;\r
+\r
+ dst->p = src->p;\r
+ dst->typ = src->typ;\r
+ dst->p0 = src->p0;\r
+ dst->p1 = src->p1;\r
+ dst->liveSign = src->liveSign;\r
+ dst->pls = src->pls;\r
+ dst->flags = src->flags;\r
+ dst->dummy = src->dummy;\r
+}\r
+\r
+\r
+\r
+\r