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:
parent
1b055bf0d8
commit
678280734e
15 changed files with 230 additions and 149 deletions
|
@ -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) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue