Add label predicates - 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/include/lightning.h
diff options
context:
space:
mode:
authorpcpa <paulo.cesar.pereira.de.andrade@gmail.com>2014年10月21日 15:32:24 -0200
committerpcpa <paulo.cesar.pereira.de.andrade@gmail.com>2014年10月21日 15:32:24 -0200
commit9c5e2b511ec6f80a350d756d4464acfb10373ee4 (patch)
tree87ca5c4ad4dd7ea8075da3af0a97f5b1273477de /include/lightning.h
parenta43fb630557358eaaa31697344b8f52d849f2eb4 (diff)
downloadlightning-9c5e2b511ec6f80a350d756d4464acfb10373ee4.tar.gz
Add label predicates
* include/lightning.h, lib/lightning.c: Add three predicates to query information about labels. jit_forward_p(label) will return non zero if the label is "forward", that is need a call to jit_link(label), jit_indirect_p(label) that returns non zero if the label was created with the jit_indirect() call, and jit_target_p(label) that will return non zero if there is at least one jump patched to land at that label.
Diffstat (limited to 'include/lightning.h')
-rw-r--r--include/lightning.h 6
1 files changed, 6 insertions, 0 deletions
diff --git a/include/lightning.h b/include/lightning.h
index 926d0f1..b495af8 100644
--- a/include/lightning.h
+++ b/include/lightning.h
@@ -864,6 +864,12 @@ extern jit_node_t *_jit_label(jit_state_t*);
extern jit_node_t *_jit_forward(jit_state_t*);
extern jit_node_t *_jit_indirect(jit_state_t*);
extern void _jit_link(jit_state_t*, jit_node_t*);
+#define jit_forward_p(u) _jit_forward_p(_jit,u)
+extern jit_bool_t _jit_forward_p(jit_state_t*,jit_node_t*);
+#define jit_indirect_p(u) _jit_indirect_p(_jit,u)
+extern jit_bool_t _jit_indirect_p(jit_state_t*,jit_node_t*);
+#define jit_target_p(u) _jit_target_p(_jit,u)
+extern jit_bool_t _jit_target_p(jit_state_t*,jit_node_t*);
extern void _jit_prolog(jit_state_t*);
generated by cgit v1.2.3 (git 2.46.0) at 2025年10月01日 14:35:38 +0000

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