-#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
-\r
-\r
-\r
-\r
-\r
+#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;
+}
+
+
+
+
+
+