mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-05-05 06:50:21 +02:00
* lib/jit_aarch64-sz.c, lib/jit_arm-sz.c, lib/jit_hppa-sz.c, lib/jit_ia64-sz.c, lib/jit_mips-sz.c, lib/jit_ppc-sz.c, lib/jit_s390x-sz.c, lib/jit_size.c, lib/jit_sparc-sz.c, lib/jit_x86-sz.c: New files implementing static tables with longest known instructions length generated to match a lightning instruction. These tables should make it easier to make it very unlikely to ever miscalculate, or by too much, the size of a code buffer. * lib/jit_size.c: New file that aids to either collect jit code size information, or use the information depending on build options. * size.c: New helper file that parses input for, and create an initial jit_$arch-sz.c file, that needs some minor edit for arches with multiple configurations. * configure.ac, Makefile.am: Add the new, devel mode only --enable-devel-get-jit-size configure option, that sets compile time flags to collect jit code size information, that will be used as input for the "noinst size program". * lib/jit_aarch64.c, lib/jit_arm.c, lib/jit_disasm.c, lib/jit_hppa.c, lib/jit_ia64.c, lib/jit_memory.c, lib/jit_mips.c, lib/jit_ppc.c, lib/jit_s390x.c, lib/jit_sparc.c, lib/jit_x86.c, lib/lightning.c: Minor changes for the --enable-devel-get-jit-size build mode, as well as the "production build mode" with jit code size information.
350 lines
2.6 KiB
C
350 lines
2.6 KiB
C
|
|
#if __WORDSIZE == 32
|
|
#define JIT_INSTR_MAX 64
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
64,
|
|
0,
|
|
4,
|
|
12,
|
|
4,
|
|
12,
|
|
4,
|
|
8,
|
|
4,
|
|
12,
|
|
4,
|
|
12,
|
|
4,
|
|
8,
|
|
28,
|
|
36,
|
|
40,
|
|
44,
|
|
32,
|
|
40,
|
|
36,
|
|
40,
|
|
36,
|
|
40,
|
|
40,
|
|
40,
|
|
40,
|
|
40,
|
|
36,
|
|
40,
|
|
36,
|
|
40,
|
|
4,
|
|
12,
|
|
4,
|
|
12,
|
|
4,
|
|
12,
|
|
12,
|
|
4,
|
|
12,
|
|
4,
|
|
12,
|
|
4,
|
|
4,
|
|
4,
|
|
8,
|
|
8,
|
|
8,
|
|
8,
|
|
8,
|
|
8,
|
|
8,
|
|
8,
|
|
8,
|
|
12,
|
|
8,
|
|
8,
|
|
8,
|
|
8,
|
|
8,
|
|
8,
|
|
8,
|
|
8,
|
|
8,
|
|
8,
|
|
4,
|
|
8,
|
|
4,
|
|
4,
|
|
4,
|
|
4,
|
|
0,
|
|
0,
|
|
4,
|
|
8,
|
|
12,
|
|
4,
|
|
8,
|
|
8,
|
|
12,
|
|
4,
|
|
8,
|
|
4,
|
|
8,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
8,
|
|
8,
|
|
4,
|
|
4,
|
|
8,
|
|
8,
|
|
4,
|
|
4,
|
|
4,
|
|
4,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
4,
|
|
8,
|
|
4,
|
|
8,
|
|
4,
|
|
8,
|
|
0,
|
|
0,
|
|
8,
|
|
4,
|
|
8,
|
|
4,
|
|
8,
|
|
4,
|
|
0,
|
|
0,
|
|
8,
|
|
8,
|
|
8,
|
|
8,
|
|
8,
|
|
12,
|
|
8,
|
|
8,
|
|
8,
|
|
16,
|
|
8,
|
|
8,
|
|
8,
|
|
8,
|
|
8,
|
|
8,
|
|
8,
|
|
8,
|
|
8,
|
|
16,
|
|
12,
|
|
16,
|
|
12,
|
|
16,
|
|
8,
|
|
8,
|
|
8,
|
|
8,
|
|
8,
|
|
8,
|
|
8,
|
|
8,
|
|
12,
|
|
16,
|
|
16,
|
|
20,
|
|
12,
|
|
16,
|
|
16,
|
|
20,
|
|
0,
|
|
12,
|
|
40,
|
|
44,
|
|
64,
|
|
0,
|
|
4,
|
|
16,
|
|
4,
|
|
16,
|
|
4,
|
|
16,
|
|
4,
|
|
16,
|
|
4,
|
|
4,
|
|
4,
|
|
16,
|
|
28,
|
|
16,
|
|
28,
|
|
16,
|
|
28,
|
|
16,
|
|
28,
|
|
16,
|
|
28,
|
|
16,
|
|
28,
|
|
16,
|
|
28,
|
|
16,
|
|
28,
|
|
16,
|
|
28,
|
|
16,
|
|
28,
|
|
16,
|
|
28,
|
|
16,
|
|
28,
|
|
16,
|
|
28,
|
|
16,
|
|
28,
|
|
12,
|
|
0,
|
|
12,
|
|
4,
|
|
4,
|
|
12,
|
|
4,
|
|
12,
|
|
4,
|
|
4,
|
|
4,
|
|
12,
|
|
8,
|
|
4,
|
|
16,
|
|
28,
|
|
16,
|
|
28,
|
|
16,
|
|
28,
|
|
16,
|
|
28,
|
|
16,
|
|
28,
|
|
16,
|
|
28,
|
|
16,
|
|
28,
|
|
16,
|
|
28,
|
|
16,
|
|
28,
|
|
16,
|
|
28,
|
|
16,
|
|
28,
|
|
16,
|
|
28,
|
|
16,
|
|
28,
|
|
16,
|
|
28,
|
|
0,
|
|
4,
|
|
16,
|
|
4,
|
|
16,
|
|
4,
|
|
16,
|
|
4,
|
|
16,
|
|
4,
|
|
4,
|
|
4,
|
|
16,
|
|
28,
|
|
16,
|
|
28,
|
|
16,
|
|
28,
|
|
16,
|
|
28,
|
|
16,
|
|
28,
|
|
16,
|
|
28,
|
|
16,
|
|
28,
|
|
16,
|
|
28,
|
|
16,
|
|
28,
|
|
16,
|
|
28,
|
|
16,
|
|
28,
|
|
16,
|
|
28,
|
|
16,
|
|
28,
|
|
16,
|
|
28,
|
|
12,
|
|
0,
|
|
12,
|
|
4,
|
|
4,
|
|
12,
|
|
4,
|
|
12,
|
|
4,
|
|
4,
|
|
4,
|
|
12,
|
|
8,
|
|
4,
|
|
16,
|
|
28,
|
|
16,
|
|
28,
|
|
16,
|
|
28,
|
|
16,
|
|
28,
|
|
16,
|
|
28,
|
|
16,
|
|
28,
|
|
16,
|
|
28,
|
|
16,
|
|
28,
|
|
16,
|
|
28,
|
|
16,
|
|
28,
|
|
16,
|
|
28,
|
|
16,
|
|
28,
|
|
16,
|
|
28,
|
|
16,
|
|
28,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
#endif /* __WORDSIZE */
|