mescc: Fixes for goto.
[mes.git] / scaffold / mini-mes.c
index 7f2349a280380dae130bfef4599db9b84213eda6..71750a8532f2a49d6032bd2a1409045ad6da581c 100644 (file)
@@ -623,6 +623,7 @@ SCM gc_pop_frame ();
 SCM
 eval_apply ()
 {
+  puts ("e/a: fixme\n");
  eval_apply:
   puts ("eval_apply\n");
   // if (g_free + GC_SAFETY > ARENA_SIZE)
@@ -700,6 +701,7 @@ eval_apply ()
       r1 = call (x, y);
 #endif
       puts ("after call\n");
+      y = 0x44;
       goto vm_return;
     }
 //     case CLOSURE:
@@ -978,18 +980,7 @@ eval_apply ()
 //   goto apply;
 // #endif
 
-  asm(".byte 0x90");
-  asm(".byte 0x90");
  vm_return:
-  asm(".byte 0x90");
-  asm(".byte 0x90");
-  asm(".byte 0x90");
-  asm(".byte 0x90");
-  asm(".byte 0x90");
-  asm(".byte 0x90");
-  asm(".byte 0x90");
-  asm(".byte 0x90");
-  asm(".byte 0x90");
   // FIXME
   puts ("vm-return00\n");
   x = r1;
@@ -1054,11 +1045,12 @@ call (SCM fn, SCM x)
       SCM p1 = car (x);
       SCM p2 = cdr (x);
       p2 = car (p2);
+      //return ((SCM(*)(SCM,SCM))(FUNCTION (fn).function)) (p1, p2);
       int (*functionx) (int,int) = (SCM(*)(SCM,SCM))FUNCTION (fn).function;
       //return ((SCM(*)(SCM,SCM))(*FUNCTION (fn).function)) (p1, p2);
       //return ((SCM(*)(SCM,SCM))(*functionx)) (p1, p2);
       SCM p3;
-      p3 = 0x44;
+      //p3 = 0x44;
       puts ("05\n");
       return cons (p1, p2);
       return (*functionx) (p1, p2);
@@ -1741,9 +1733,9 @@ main (int argc, char *argv[])
 #endif
 
 #if 0
-  //__GNUC__
   //FIXME
   push_cc (r2, cell_unspecified, r0, cell_unspecified);
+#if __GNUC__
   for (int x=19; x<26 ;x++)
     {
       puts(itoa(x));
@@ -1755,8 +1747,8 @@ main (int argc, char *argv[])
       puts(itoa(g_cells[x].cdr));
       puts("\n");
     }
+#endif
 #else
-
   g_stack = 23;
   g_free = 24;
   r1 = r2; //10: the-program