1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-22 19:44:10 +02:00

Add filename and line number annotation abstraction.

* lib/jit_note.c: New file implementing a simple string+integer
	annotation, that should be used to map filename and line number
	to offsets in the generated jit.

	* include/lightning.h, lib/lightning.c: Update for the new
	note code.
	  Add an extra mandatory argument to init_jit, that is used
	as argument to bfd_openr.
	  Change from generic void* to char* the argument to jit_note
	and add an extra integer argument, to map to filename and
	line number.

	* check/ccall.c, check/lightning.c, include/lightning/jit_private.h,
	lib/jit_arm.c, lib/jit_disasm.c, lib/jit_mips.c, lib/jit_ppc.c,
	lib/jit_print.c, lib/jit_x86.c: lib/Makefile.am: Update for the
	new annotation code.

	* configure.ac, check/Makefile.am: Update to work with latest
	automake.
This commit is contained in:
pcpa 2013-01-11 15:29:35 -02:00
parent 4fe47942eb
commit a34410eee2
17 changed files with 464 additions and 46 deletions

View file

@ -102,7 +102,7 @@ typedef enum {
#define jit_data(u,v) _jit_data(_jit,u,v)
jit_code_data,
jit_code_save, jit_code_load,
#define jit_note(u) jit_new_node_ww(jit_code_note,0,(jit_word_t)u)
#define jit_note(u, v) _jit_note(_jit, u, v)
#define jit_label() _jit_label(_jit)
#define jit_forward() _jit_forward(_jit)
#define jit_link(u) _jit_link(_jit,u)
@ -732,7 +732,7 @@ typedef enum {
/*
* Prototypes
*/
extern void init_jit(void);
extern void init_jit(char*);
extern void finish_jit(void);
extern jit_state_t *jit_new_state(void);
@ -740,8 +740,7 @@ extern jit_state_t *jit_new_state(void);
#define jit_address(node) _jit_address(_jit, node)
extern jit_pointer_t _jit_address(jit_state_t*, jit_node_t*);
extern jit_node_t *_jit_data(jit_state_t*, jit_pointer_t, jit_word_t);
extern jit_node_t *_jit_note(jit_state_t*, jit_pointer_t);
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 void _jit_link(jit_state_t*, jit_node_t*);