From 9b5f8ebb5bb970c34400b149190b2d16886ae814 Mon Sep 17 00:00:00 2001 From: Andrea Corallo Date: Sun, 22 Sep 2019 21:28:05 +0200 Subject: [PATCH] fix missing direct call parsing in comp back-end --- src/comp.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/comp.c b/src/comp.c index 4905dbfdcaf..52309fe8217 100644 --- a/src/comp.c +++ b/src/comp.c @@ -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 ="); -- 2.39.5