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

Add new --enable-devel-disassembler configure option

* configure.ac, include/lightning/jit_private.h,
	lib/jit_aarch64.c, lib/jit_alpha.c, lib/jit_arm.c,
	lib/jit_disasm.c, lib/jit_hppa.c, lib/jit_ia64.c,
	lib/jit_mips.c, lib/jit_ppc.c, lib/jit_print.c,
	lib/jit_s390.c, lib/jit_sparc.c, lib/jit_x86.c: Add a new
	--enable-devel-disassembler option, that should be used
	during development, or lightning debug. This option
	intermixes previous jit_print and jit_disassemble
	output, making it easier to visualize what lightning
	call was used, and what code was generated.
This commit is contained in:
Paulo Andrade 2015-02-02 20:49:22 -02:00
parent 1b055bf0d8
commit 678280734e
15 changed files with 230 additions and 149 deletions

View file

@ -327,6 +327,9 @@ _disassemble(jit_state_t *_jit, jit_pointer_t code, jit_int32_t length)
bfd_vma pc = (jit_uword_t)code;
bfd_vma end = (jit_uword_t)code + length;
char buffer[address_buffer_length];
#if DEVEL_DISASSEMBLER
jit_node_t *node;
#endif
#if __arm__
data_info = _jitc && _jitc->data_info.ptr;
@ -338,7 +341,19 @@ _disassemble(jit_state_t *_jit, jit_pointer_t code, jit_int32_t length)
old_file = old_name = NULL;
old_line = 0;
disasm_jit = _jit;
#if DEVEL_DISASSEMBLER
node = _jitc->head;
#endif
while (pc < end) {
#if DEVEL_DISASSEMBLER
while (node && node->offset < (jit_uword_t)pc)
node = node->next;
while (node && node->offset == (jit_uword_t)pc) {
jit_print_node(node);
fputc('\n', stdout);
node = node->next;
}
#endif
#if __arm__
again:
if (data_info) {