]> git.eshelyaron.com Git - emacs.git/commitdiff
fix missing direct call parsing in comp back-end
authorAndrea Corallo <akrl@sdf.org>
Sun, 22 Sep 2019 19:28:05 +0000 (21:28 +0200)
committerAndrea Corallo <akrl@sdf.org>
Wed, 1 Jan 2020 10:37:53 +0000 (11:37 +0100)
src/comp.c

index 4905dbfdcaf1aabf8cdfd381c7f6b256aefc5c29..52309fe8217f5e529a3d3bae46aaf66adb252568 100644 (file)
@@ -1316,6 +1316,17 @@ emit_limple_insn (Lisp_Object insn)
       gcc_jit_block_add_eval (comp.block, NULL,
                              emit_limple_call_ref (args, false));
     }
+  else if (EQ (op, Qdirect_call))
+    {
+      gcc_jit_block_add_eval (
+        comp.block, NULL,
+       emit_simple_limple_call (XCDR (insn), comp.lisp_obj_type, true));
+    }
+  else if (EQ (op, Qdirect_callref))
+    {
+      gcc_jit_block_add_eval (comp.block, NULL,
+                             emit_limple_call_ref (XCDR (insn), true));
+    }
   else if (EQ (op, Qset))
     {
       Lisp_Object arg1 = SECOND (args);
@@ -1328,7 +1339,7 @@ emit_limple_insn (Lisp_Object insn)
        res = emit_limple_call_ref (XCDR (arg1), false);
       else if (EQ (FIRST (arg1), Qdirect_call))
        res = emit_simple_limple_call (XCDR (arg1), comp.lisp_obj_type, true);
-      else if (EQ (FIRST (arg1), Qcallref))
+      else if (EQ (FIRST (arg1), Qdirect_callref))
        res = emit_limple_call_ref (XCDR (arg1), true);
       else
        ice ("LIMPLE inconsistent arg1 for op =");