mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-06-19 18:20:22 +02:00
Add the new jit_name call to mark function boundaries
* check/3to2.tst, check/add.tst, check/allocai.tst, check/bp.tst, check/call.tst, check/ccall.c, check/clobber.tst, check/divi.tst, check/fib.tst, check/ldsti.tst, check/ldstr-c.tst, check/ldstr.tst, check/ldstxi-c.tst, check/ldstxi.tst, check/ldstxr-c.tst, check/ldstxr.tst, check/lightning.c, check/rpn.tst, check/stack.tst, check/varargs.tst, include/lightning.h, include/lightning/jit_private.h, lib/jit_arm.c, lib/jit_disasm.c, lib/jit_mips.c, lib/jit_note.c, lib/jit_ppc.c, lib/jit_print.c, lib/jit_x86.c, lib/lightning.c: Extend the "jit_note" abstraction with the new "jit_name" call, that receives a string argument, and should usually be called to mark boundaries of functions of code generating jit (that is, it is not expected that the language generating jit map its functions to jit functions).
This commit is contained in:
parent
c5421a8c76
commit
9e86ef12cf
31 changed files with 339 additions and 203 deletions
|
@ -152,6 +152,7 @@ jit_regset_scan1(jit_regset_t, jit_int32_t);
|
|||
*/
|
||||
typedef union jit_data jit_data_t;
|
||||
typedef struct jit_note jit_note_t;
|
||||
typedef struct jit_line jit_line_t;
|
||||
typedef struct jit_block jit_block_t;
|
||||
typedef struct jit_value jit_value_t;
|
||||
typedef struct jit_function jit_function_t;
|
||||
|
@ -180,7 +181,15 @@ union jit_data {
|
|||
};
|
||||
|
||||
struct jit_note {
|
||||
jit_uint8_t *code;
|
||||
char *name;
|
||||
jit_line_t *lines;
|
||||
jit_word_t length;
|
||||
jit_word_t size; /* of code */
|
||||
};
|
||||
|
||||
struct jit_line {
|
||||
char *file;
|
||||
jit_int32_t *linenos;
|
||||
jit_int32_t *offsets;
|
||||
jit_word_t length;
|
||||
|
@ -420,10 +429,10 @@ extern void jit_finish_debug(void);
|
|||
|
||||
extern void jit_init_note(void);
|
||||
extern void jit_finish_note(void);
|
||||
#define jit_set_note(u, v, w) _jit_set_note(_jit, u, v, w)
|
||||
extern void _jit_set_note(jit_state_t*, char*, int, jit_int32_t);
|
||||
#define jit_get_note(u, v, w) _jit_get_note(_jit, u, v, w)
|
||||
extern jit_bool_t _jit_get_note(jit_state_t*,jit_uint8_t*,char**,int*);
|
||||
#define jit_set_note(n,u,v,w) _jit_set_note(_jit, n, u, v, w)
|
||||
extern void _jit_set_note(jit_state_t*, jit_note_t*, char*, int, jit_int32_t);
|
||||
#define jit_get_note(n,u,v,w) _jit_get_note(_jit, n, u, v, w)
|
||||
extern jit_bool_t _jit_get_note(jit_state_t*,jit_uint8_t*,char**,char**,int*);
|
||||
#define jit_annotate() _jit_annotate(_jit)
|
||||
extern void _jit_annotate(jit_state_t*);
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue