diff options
author | Andrea Corallo <akrl@sdf.org> | 2019-09-22 21:28:05 +0200 |
---|---|---|
committer | Andrea Corallo <akrl@sdf.org> | 2020-01-01 11:37:53 +0100 |
commit | 9b5f8ebb5bb970c34400b149190b2d16886ae814 (patch) | |
tree | 9078bd2938ae45ba773ef88db3f7248d19e1f4d4 /src/comp.c | |
parent | 59d53e1fde516b911c29cedf338779df29f59dff (diff) | |
download | emacs-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.c | 13 |
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 ="); |