summaryrefslogtreecommitdiff
path: root/src/comp.c
diff options
context:
space:
mode:
authorAndrea Corallo <akrl@sdf.org>2019-09-22 21:28:05 +0200
committerAndrea Corallo <akrl@sdf.org>2020-01-01 11:37:53 +0100
commit9b5f8ebb5bb970c34400b149190b2d16886ae814 (patch)
tree9078bd2938ae45ba773ef88db3f7248d19e1f4d4 /src/comp.c
parent59d53e1fde516b911c29cedf338779df29f59dff (diff)
downloademacs-9b5f8ebb5bb970c34400b149190b2d16886ae814.tar.gz
emacs-9b5f8ebb5bb970c34400b149190b2d16886ae814.tar.bz2
emacs-9b5f8ebb5bb970c34400b149190b2d16886ae814.zip
fix missing direct call parsing in comp back-end
Diffstat (limited to 'src/comp.c')
-rw-r--r--src/comp.c13
1 files changed, 12 insertions, 1 deletions
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 =");