]> git.eshelyaron.com Git - emacs.git/commitdiff
rework arg parsing on the C side
authorAndrea Corallo <andrea_corallo@yahoo.it>
Sun, 21 Jul 2019 10:11:45 +0000 (12:11 +0200)
committerAndrea Corallo <akrl@sdf.org>
Wed, 1 Jan 2020 10:33:56 +0000 (11:33 +0100)
src/comp.c

index 152a0e61808c1d4b86a6eec556b80b90cad1c2f5..edc35cf8b0e225d2601356ad00b5ac188a683b9f 100644 (file)
@@ -1055,7 +1055,8 @@ static void
 emit_limple_inst (Lisp_Object inst)
 {
   Lisp_Object op = XCAR (inst);
-  Lisp_Object arg0 = SECOND (inst);
+  Lisp_Object args = XCDR (inst);
+  Lisp_Object arg0 = XCAR (args);
   gcc_jit_rvalue *res;
 
   if (EQ (op, Qblock))
@@ -1071,10 +1072,10 @@ emit_limple_inst (Lisp_Object inst)
     }
   else if (EQ (op, Qcond_jump))
     {
-      /* Conditional branch.   */
+      /* Conditional branch.  */
       gcc_jit_rvalue *test = emit_mvar_val (arg0);
-      gcc_jit_block *target1 = retrive_block (THIRD (inst));
-      gcc_jit_block *target2 = retrive_block (FORTH (inst));
+      gcc_jit_block *target1 = retrive_block (SECOND (args));
+      gcc_jit_block *target2 = retrive_block (THIRD (args));
 
       emit_cond_jump (emit_NILP (test), target2, target1);
     }
@@ -1087,7 +1088,7 @@ emit_limple_inst (Lisp_Object inst)
   else if (EQ (op, Qset))
     {
       EMACS_UINT slot_n = XFIXNUM (FUNCALL1 (comp-mvar-slot, arg0));
-      Lisp_Object arg1 = THIRD (inst);
+      Lisp_Object arg1 = SECOND (args);
 
       if (EQ (Ftype_of (arg1), Qcomp_mvar))
        res = emit_mvar_val (arg1);
@@ -1107,7 +1108,7 @@ emit_limple_inst (Lisp_Object inst)
     {
       /* Ex: (=par #s(comp-mvar 2 0 nil nil nil) 0).  */
       EMACS_UINT slot_n = XFIXNUM (FUNCALL1 (comp-mvar-slot, arg0));
-      EMACS_UINT param_n = XFIXNUM (THIRD (inst));
+      EMACS_UINT param_n = XFIXNUM (SECOND (args));
       gcc_jit_rvalue *param =
        gcc_jit_param_as_rvalue (gcc_jit_function_get_param (comp.func,
                                                             param_n));
@@ -1119,7 +1120,7 @@ emit_limple_inst (Lisp_Object inst)
   else if (EQ (op, Qsetimm))
     {
       /* EX: (=imm #s(comp-mvar 9 1 t 3 nil) 3).  */
-      Lisp_Object arg1 = THIRD (inst);
+      Lisp_Object arg1 = SECOND (args);
       EMACS_UINT slot_n = XFIXNUM (FUNCALL1 (comp-mvar-slot, arg0));
       gcc_jit_block_add_assignment (comp.block,
                                    NULL,