1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-26 05:00:28 +02:00

Implement and document the new jit_indirect call.

* include/lightning.h, lib/lightning.c: Add the new
	jit_indirect() call, that returns a special label node,
	and tells lightning that the label may be the target of
	an indirect jump.

	* doc/body.texi: Document the new jit_indirect() call, and
	add examples of different ways to create labels and branches.
This commit is contained in:
pcpa 2014-03-06 18:20:29 -03:00
parent c146f06793
commit a9433b5a2c
4 changed files with 88 additions and 2 deletions

View file

@ -174,6 +174,7 @@ typedef enum {
#define jit_note(u, v) _jit_note(_jit, u, v)
#define jit_label() _jit_label(_jit)
#define jit_forward() _jit_forward(_jit)
#define jit_indirect() _jit_indirect(_jit)
#define jit_link(u) _jit_link(_jit,u)
jit_code_note, jit_code_label,
@ -841,6 +842,7 @@ extern jit_node_t *_jit_name(jit_state_t*, char*);
extern jit_node_t *_jit_note(jit_state_t*, char*, int);
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*);
extern void _jit_prolog(jit_state_t*);