OSDN Git Service

アライメントエラーはポインタレジスタ構造体をコピーする際のmovdqaのせいだと判明。
[heavyosecpu/HeavyOSECPU.git] / main.c
diff --git a/main.c b/main.c
index 8674023..c0f99e4 100644 (file)
--- a/main.c
+++ b/main.c
@@ -4,6 +4,7 @@ int *keybuf, keybuf_r, keybuf_w, keybuf_c;
 HOSECPU_Device_Window mainWindow;\r
 //デバッグ用。プログラム中の随所で加算される変数\r
 int di1_serial;\r
+HOSECPU_RuntimeEnvironment *dbg_env;\r
 \r
 \r
 \r
@@ -22,6 +23,7 @@ void putKeybuf(int i)
 \r
 int HeavyOSECPUMain(int argc, char **argv)\r
 {\r
+       HOSECPU_RuntimeEnvironment env;\r
        FILE *fp;\r
        unsigned char *jitbuf, *sysjit00, *sysjit;\r
        unsigned char *systmp0, *systmp1, *systmp2;\r
@@ -33,25 +35,26 @@ int HeavyOSECPUMain(int argc, char **argv)
        unsigned char *syslib;\r
        int argDebug = 0, stacksiz = 1;\r
        const  char *cp;\r
-       HOSECPU_RuntimeEnvironment env;\r
        void(*jitfunc)(char *);\r
        unsigned char *jp;\r
        \r
-       //Initialize mainWindow\r
+       // For debug\r
+       dbg_env = &env;\r
+       \r
+       // Initialize mainWindow\r
        mainWindow.vram = NULL;\r
        mainWindow.xsize = 0;\r
        mainWindow.ysize = 0;\r
        di1_serial = 0;\r
        \r
-       //実行環境初期化\r
+       // 実行環境初期化\r
        env.mainArgc = argc;\r
        env.mainArgv = (const char **)argv;\r
        env.appBin = malloc(APPSIZ1);\r
        env.executionLevel = JITC_LV_SLOWEST;\r
-       jitbuf = mallocRWE(1024 * 1024); /* とりあえず1MBで */\r
-       //unsigned char *sysjit0 = mallocRWE(SJITSIZ1), *sysjit1 = sysjit0, *sysjit00 = sysjit0;\r
+       jitbuf = mallocRWE(APPJITSIZE); /* とりあえず1MBで */\r
        // syslib.oseのjitc結果を格納する領域を確保。\r
-       sysjit00 = mallocRWE(SJITSIZ1);\r
+       sysjit00 = mallocRWE(SYSJITSIZ1);\r
        sysjit = sysjit00;\r
        // 現在の、jitc結果を格納するメモリへの書き込み位置のアドレス\r
        // sysjit: 現在のjitc書き込み位置\r
@@ -80,7 +83,7 @@ int HeavyOSECPUMain(int argc, char **argv)
        sysjit = jitCompInit(sysjit);\r
        sysjit00 = sysjit;\r
        // labelはjitc0()内で初期化される。\r
-       i = jitc0(&sysjit, sysjit00 + SJITSIZ1, syslib + 32, syslib + SYSLIBSIZ1, JITC_LV_SLOWEST+9, label);\r
+       i = jitc0(&sysjit, sysjit00 + SYSJITSIZ1, syslib + 32, syslib + SYSLIBSIZ1, JITC_LV_SLOWEST+9, label);\r
        if (i != 0){\r
                fputs("syslib-file JITC error.\n", stderr);\r
                return 1;\r