From 2a0d19efb0bba8ab9418576443112ab11a410397 Mon Sep 17 00:00:00 2001 From: Brendan Hansen Date: Wed, 13 Dec 2023 10:58:46 -0600 Subject: [PATCH] fixed: flag controlling tail calls for Linux build --- interpreter/src/vm/vm_instrs.h | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/interpreter/src/vm/vm_instrs.h b/interpreter/src/vm/vm_instrs.h index 97956aed..f5e609c9 100644 --- a/interpreter/src/vm/vm_instrs.h +++ b/interpreter/src/vm/vm_instrs.h @@ -24,10 +24,16 @@ #define OVMI_INSTR_EXEC(name) \ static OVMI_INSTR_PROTO(OVMI_FUNC_NAME(name)) +#if _BH_DARWIN + #define FORCE_TAILCALL __attribute__((musttail)) +#else + #define FORCE_TAILCALL +#endif + #define NEXT_OP \ OVMI_DEBUG_HOOK; \ instr = &code[state->pc++]; \ - __attribute__((musttail)) return OVMI_DISPATCH_NAME[instr->full_instr & OVM_INSTR_MASK](instr, state, values, memory, code); + FORCE_TAILCALL return OVMI_DISPATCH_NAME[instr->full_instr & OVM_INSTR_MASK](instr, state, values, memory, code); #define VAL(loc) values[loc] -- 2.25.1