aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorKimplul <kimi.h.kuparinen@gmail.com>2025-05-18 22:09:08 +0300
committerKimplul <kimi.h.kuparinen@gmail.com>2025-05-18 22:09:08 +0300
commita371bc41f4d208bcb2f8b56677504e1746e3bb83 (patch)
tree87fb23cd6b86197e9c5c5623e6c789f431f61995 /src
parentb0a6350b96f6ef3f8b2af5a385474d885a41759b (diff)
downloadejit-a371bc41f4d208bcb2f8b56677504e1746e3bb83.tar.gz
ejit-a371bc41f4d208bcb2f8b56677504e1746e3bb83.zip
fix multiple active relocsHEADmaster
Diffstat (limited to 'src')
-rw-r--r--src/compile/compile.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/compile/compile.c b/src/compile/compile.c
index 5aab67e..2c72b91 100644
--- a/src/compile/compile.c
+++ b/src/compile/compile.c
@@ -1974,6 +1974,10 @@ static void resolve_top_reloc(jit_state_t *j, struct relocs *relocs, struct addr
assert(a);
jit_patch_there(j, r, a);
relocs_pop(relocs);
+
+ /* hope this turns into a tailcall */
+ if (relocs_len(relocs))
+ resolve_top_reloc(j, relocs, addrs, ii);
}
static void resolve_relocs(jit_state_t *j, struct relocs *relocs, struct addrs *addrs, size_t ii)