lightning.git - Portable just-in-time compiler library

index : lightning.git
Portable just-in-time compiler library
summary refs log tree commit diff
path: root/lib/lightning.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/lightning.c')
-rw-r--r--lib/lightning.c 5
1 files changed, 4 insertions, 1 deletions
diff --git a/lib/lightning.c b/lib/lightning.c
index 1516bd4..8642cf8 100644
--- a/lib/lightning.c
+++ b/lib/lightning.c
@@ -2295,6 +2295,8 @@ _shortcut_jump(jit_state_t *_jit, jit_node_t *prev, jit_node_t *node)
for (next = jump->next; next; next = next->next) {
switch (next->code) {
case jit_code_jmpi:
+ if (!(next->flag & jit_flag_node))
+ return (0);
if (jump->link == node)
jump->link = node->link;
else {
@@ -2500,7 +2502,8 @@ _reverse_jump(jit_state_t *_jit, jit_node_t *prev, jit_node_t *node)
return (0);
/* =><cond_jump L0> <jump L1> <label L0> */
local_next = node->next;
- if (local_next->code != jit_code_jmpi)
+ if (local_next->code != jit_code_jmpi ||
+ !(local_next->flag & jit_flag_node))
return (0);
/* <cond_jump L0> =><jump L1> <label L0> */
generated by cgit v1.2.3 (git 2.39.1) at 2025年09月20日 18:06:21 +0000

AltStyle によって変換されたページ (->オリジナル) /