mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-05-19 19:20:23 +02:00
* lib/jit_aarch64-cpu.c, lib/jit_alpha-cpu.c, lib/jit_arm-cpu.c, lib/jit_hppa-cpu.c, lib/jit_mips-cpu.c, lib/jit_ppc-cpu.c, lib/jit_sparc-cpu.c: Implement or correct the internal nop(count) call that receives an argument that tells the modulo bytes to align the code for the next instruction. * include/lightning.h, lib/lightning.c, lib/jit_aarch64.c, lib/jit_alpha.c, lib/jit_arm.c, lib/jit_hppa.c, lib/jit_ia64.c, lib/jit_mips.c, lib/jit_ppc.c, lib/jit_s390x.c, lib/jit_sparc.c, lib/jit_x86.c: Implement the new jit_align() call that receive an argument, that tells the modulo, in bytes, to align the next instruction. In most backends the only value that makes a difference is a value that matches sizeof(void*), as all other values usually are already automatically aligned in labels, but not guaranteed to be aligned at word size bytes. * check/align.ok, check/align.tst: New files, implementing a simple test for the new jit_align() interface. * check/Makefile.am, check/lightning.c, lib/jit_aarch64-sz.c, lib/jit_alpha-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_print.c, lib/jit_s390x-sz.c, lib/jit_sparc-sz.c, lib/jit_x86-sz.c: Update for the new jit_code_align code and the jit_align() interface.
1053 lines
7.9 KiB
C
1053 lines
7.9 KiB
C
|
|
#if __WORDSIZE == 32
|
|
#define JIT_INSTR_MAX 42
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
3,
|
|
26,
|
|
0,
|
|
3,
|
|
6,
|
|
4,
|
|
6,
|
|
4,
|
|
5,
|
|
4,
|
|
6,
|
|
6,
|
|
6,
|
|
6,
|
|
5,
|
|
5,
|
|
7,
|
|
20,
|
|
23,
|
|
20,
|
|
23,
|
|
21,
|
|
24,
|
|
22,
|
|
25,
|
|
23,
|
|
24,
|
|
24,
|
|
25,
|
|
21,
|
|
24,
|
|
22,
|
|
25,
|
|
4,
|
|
7,
|
|
4,
|
|
8,
|
|
4,
|
|
8,
|
|
16,
|
|
7,
|
|
16,
|
|
5,
|
|
16,
|
|
5,
|
|
4,
|
|
4,
|
|
15,
|
|
16,
|
|
15,
|
|
16,
|
|
15,
|
|
16,
|
|
15,
|
|
16,
|
|
15,
|
|
16,
|
|
15,
|
|
16,
|
|
15,
|
|
16,
|
|
15,
|
|
16,
|
|
15,
|
|
16,
|
|
15,
|
|
16,
|
|
2,
|
|
5,
|
|
11,
|
|
11,
|
|
3,
|
|
3,
|
|
0,
|
|
0,
|
|
4,
|
|
3,
|
|
7,
|
|
3,
|
|
7,
|
|
3,
|
|
7,
|
|
3,
|
|
7,
|
|
2,
|
|
6,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
4,
|
|
4,
|
|
4,
|
|
4,
|
|
4,
|
|
4,
|
|
4,
|
|
4,
|
|
3,
|
|
6,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
10,
|
|
14,
|
|
3,
|
|
7,
|
|
2,
|
|
6,
|
|
0,
|
|
0,
|
|
11,
|
|
11,
|
|
4,
|
|
4,
|
|
3,
|
|
6,
|
|
0,
|
|
0,
|
|
8,
|
|
9,
|
|
8,
|
|
9,
|
|
8,
|
|
12,
|
|
8,
|
|
9,
|
|
8,
|
|
12,
|
|
8,
|
|
9,
|
|
8,
|
|
9,
|
|
8,
|
|
9,
|
|
8,
|
|
9,
|
|
8,
|
|
12,
|
|
8,
|
|
12,
|
|
8,
|
|
12,
|
|
8,
|
|
9,
|
|
8,
|
|
9,
|
|
8,
|
|
9,
|
|
8,
|
|
9,
|
|
8,
|
|
9,
|
|
8,
|
|
9,
|
|
8,
|
|
9,
|
|
8,
|
|
9,
|
|
0,
|
|
5,
|
|
4,
|
|
7,
|
|
24,
|
|
0,
|
|
8,
|
|
17,
|
|
12,
|
|
17,
|
|
8,
|
|
17,
|
|
12,
|
|
17,
|
|
12,
|
|
12,
|
|
6,
|
|
13,
|
|
27,
|
|
13,
|
|
27,
|
|
15,
|
|
29,
|
|
13,
|
|
27,
|
|
13,
|
|
27,
|
|
18,
|
|
32,
|
|
13,
|
|
27,
|
|
13,
|
|
27,
|
|
13,
|
|
27,
|
|
13,
|
|
27,
|
|
13,
|
|
27,
|
|
13,
|
|
27,
|
|
13,
|
|
27,
|
|
13,
|
|
27,
|
|
8,
|
|
0,
|
|
8,
|
|
4,
|
|
10,
|
|
15,
|
|
4,
|
|
8,
|
|
5,
|
|
5,
|
|
6,
|
|
10,
|
|
7,
|
|
7,
|
|
10,
|
|
18,
|
|
10,
|
|
18,
|
|
12,
|
|
20,
|
|
10,
|
|
18,
|
|
10,
|
|
18,
|
|
13,
|
|
21,
|
|
10,
|
|
18,
|
|
10,
|
|
18,
|
|
10,
|
|
18,
|
|
10,
|
|
18,
|
|
10,
|
|
18,
|
|
10,
|
|
18,
|
|
10,
|
|
18,
|
|
10,
|
|
18,
|
|
0,
|
|
8,
|
|
26,
|
|
12,
|
|
26,
|
|
8,
|
|
26,
|
|
12,
|
|
26,
|
|
18,
|
|
13,
|
|
6,
|
|
13,
|
|
37,
|
|
13,
|
|
37,
|
|
15,
|
|
39,
|
|
13,
|
|
37,
|
|
13,
|
|
37,
|
|
18,
|
|
42,
|
|
13,
|
|
37,
|
|
13,
|
|
37,
|
|
13,
|
|
37,
|
|
13,
|
|
37,
|
|
13,
|
|
37,
|
|
13,
|
|
37,
|
|
13,
|
|
37,
|
|
13,
|
|
37,
|
|
8,
|
|
0,
|
|
8,
|
|
4,
|
|
10,
|
|
24,
|
|
4,
|
|
8,
|
|
5,
|
|
8,
|
|
6,
|
|
10,
|
|
7,
|
|
7,
|
|
10,
|
|
28,
|
|
10,
|
|
28,
|
|
12,
|
|
30,
|
|
10,
|
|
28,
|
|
10,
|
|
28,
|
|
13,
|
|
31,
|
|
10,
|
|
28,
|
|
10,
|
|
28,
|
|
10,
|
|
28,
|
|
10,
|
|
28,
|
|
10,
|
|
28,
|
|
10,
|
|
28,
|
|
10,
|
|
28,
|
|
10,
|
|
28,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
10,
|
|
10,
|
|
#endif /* __WORDSIZE */
|
|
|
|
#if __WORDSIZE == 64
|
|
#if __CYGWIN__
|
|
#define JIT_INSTR_MAX 71
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
7,
|
|
71,
|
|
0,
|
|
4,
|
|
13,
|
|
6,
|
|
13,
|
|
6,
|
|
7,
|
|
6,
|
|
13,
|
|
9,
|
|
13,
|
|
9,
|
|
7,
|
|
7,
|
|
14,
|
|
20,
|
|
30,
|
|
20,
|
|
30,
|
|
22,
|
|
29,
|
|
23,
|
|
30,
|
|
25,
|
|
32,
|
|
26,
|
|
33,
|
|
22,
|
|
29,
|
|
23,
|
|
30,
|
|
6,
|
|
13,
|
|
6,
|
|
13,
|
|
6,
|
|
13,
|
|
9,
|
|
8,
|
|
9,
|
|
7,
|
|
9,
|
|
7,
|
|
6,
|
|
6,
|
|
13,
|
|
14,
|
|
13,
|
|
14,
|
|
13,
|
|
14,
|
|
13,
|
|
14,
|
|
13,
|
|
14,
|
|
13,
|
|
14,
|
|
13,
|
|
14,
|
|
13,
|
|
14,
|
|
13,
|
|
14,
|
|
13,
|
|
14,
|
|
3,
|
|
10,
|
|
7,
|
|
7,
|
|
4,
|
|
4,
|
|
3,
|
|
3,
|
|
6,
|
|
4,
|
|
15,
|
|
4,
|
|
15,
|
|
4,
|
|
15,
|
|
4,
|
|
15,
|
|
3,
|
|
14,
|
|
3,
|
|
14,
|
|
3,
|
|
14,
|
|
5,
|
|
8,
|
|
5,
|
|
8,
|
|
5,
|
|
8,
|
|
5,
|
|
8,
|
|
4,
|
|
7,
|
|
4,
|
|
6,
|
|
4,
|
|
7,
|
|
6,
|
|
17,
|
|
4,
|
|
15,
|
|
3,
|
|
14,
|
|
3,
|
|
14,
|
|
7,
|
|
7,
|
|
5,
|
|
5,
|
|
4,
|
|
6,
|
|
4,
|
|
8,
|
|
9,
|
|
10,
|
|
9,
|
|
10,
|
|
9,
|
|
13,
|
|
9,
|
|
10,
|
|
9,
|
|
19,
|
|
9,
|
|
10,
|
|
9,
|
|
10,
|
|
9,
|
|
10,
|
|
9,
|
|
10,
|
|
9,
|
|
19,
|
|
9,
|
|
13,
|
|
9,
|
|
13,
|
|
9,
|
|
10,
|
|
9,
|
|
10,
|
|
9,
|
|
10,
|
|
9,
|
|
10,
|
|
9,
|
|
10,
|
|
9,
|
|
10,
|
|
9,
|
|
10,
|
|
9,
|
|
10,
|
|
3,
|
|
5,
|
|
3,
|
|
13,
|
|
68,
|
|
0,
|
|
10,
|
|
21,
|
|
15,
|
|
21,
|
|
10,
|
|
21,
|
|
15,
|
|
21,
|
|
15,
|
|
15,
|
|
5,
|
|
16,
|
|
31,
|
|
16,
|
|
31,
|
|
18,
|
|
33,
|
|
16,
|
|
31,
|
|
16,
|
|
31,
|
|
20,
|
|
35,
|
|
16,
|
|
31,
|
|
16,
|
|
31,
|
|
16,
|
|
31,
|
|
16,
|
|
31,
|
|
16,
|
|
31,
|
|
16,
|
|
31,
|
|
16,
|
|
31,
|
|
16,
|
|
31,
|
|
5,
|
|
5,
|
|
5,
|
|
5,
|
|
5,
|
|
15,
|
|
5,
|
|
16,
|
|
6,
|
|
8,
|
|
5,
|
|
16,
|
|
6,
|
|
9,
|
|
10,
|
|
21,
|
|
10,
|
|
24,
|
|
12,
|
|
27,
|
|
10,
|
|
25,
|
|
10,
|
|
25,
|
|
13,
|
|
28,
|
|
10,
|
|
25,
|
|
10,
|
|
25,
|
|
10,
|
|
25,
|
|
10,
|
|
25,
|
|
10,
|
|
25,
|
|
10,
|
|
25,
|
|
10,
|
|
25,
|
|
10,
|
|
25,
|
|
0,
|
|
10,
|
|
25,
|
|
15,
|
|
25,
|
|
10,
|
|
25,
|
|
15,
|
|
25,
|
|
22,
|
|
16,
|
|
5,
|
|
17,
|
|
32,
|
|
17,
|
|
32,
|
|
19,
|
|
34,
|
|
17,
|
|
32,
|
|
17,
|
|
32,
|
|
21,
|
|
36,
|
|
17,
|
|
32,
|
|
17,
|
|
32,
|
|
17,
|
|
32,
|
|
17,
|
|
32,
|
|
17,
|
|
32,
|
|
17,
|
|
32,
|
|
17,
|
|
32,
|
|
17,
|
|
32,
|
|
5,
|
|
5,
|
|
5,
|
|
5,
|
|
5,
|
|
15,
|
|
5,
|
|
16,
|
|
6,
|
|
8,
|
|
5,
|
|
16,
|
|
6,
|
|
9,
|
|
11,
|
|
26,
|
|
11,
|
|
26,
|
|
13,
|
|
28,
|
|
11,
|
|
26,
|
|
11,
|
|
26,
|
|
14,
|
|
29,
|
|
11,
|
|
26,
|
|
11,
|
|
26,
|
|
11,
|
|
26,
|
|
11,
|
|
26,
|
|
11,
|
|
26,
|
|
11,
|
|
26,
|
|
11,
|
|
26,
|
|
11,
|
|
26,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
#else
|
|
|
|
#define JIT_INSTR_MAX 43
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
7,
|
|
43,
|
|
0,
|
|
5,
|
|
13,
|
|
6,
|
|
13,
|
|
6,
|
|
7,
|
|
6,
|
|
13,
|
|
9,
|
|
13,
|
|
9,
|
|
7,
|
|
7,
|
|
14,
|
|
20,
|
|
30,
|
|
20,
|
|
30,
|
|
22,
|
|
29,
|
|
23,
|
|
30,
|
|
25,
|
|
32,
|
|
26,
|
|
33,
|
|
22,
|
|
29,
|
|
23,
|
|
30,
|
|
6,
|
|
13,
|
|
6,
|
|
13,
|
|
6,
|
|
13,
|
|
9,
|
|
8,
|
|
9,
|
|
7,
|
|
9,
|
|
7,
|
|
6,
|
|
6,
|
|
13,
|
|
14,
|
|
13,
|
|
14,
|
|
13,
|
|
14,
|
|
13,
|
|
14,
|
|
13,
|
|
14,
|
|
13,
|
|
14,
|
|
13,
|
|
14,
|
|
13,
|
|
14,
|
|
13,
|
|
14,
|
|
13,
|
|
14,
|
|
3,
|
|
10,
|
|
4,
|
|
4,
|
|
4,
|
|
4,
|
|
3,
|
|
3,
|
|
6,
|
|
5,
|
|
9,
|
|
5,
|
|
9,
|
|
5,
|
|
9,
|
|
5,
|
|
9,
|
|
4,
|
|
8,
|
|
4,
|
|
8,
|
|
4,
|
|
8,
|
|
6,
|
|
5,
|
|
6,
|
|
5,
|
|
6,
|
|
5,
|
|
6,
|
|
5,
|
|
5,
|
|
7,
|
|
5,
|
|
4,
|
|
5,
|
|
7,
|
|
4,
|
|
8,
|
|
5,
|
|
9,
|
|
4,
|
|
8,
|
|
4,
|
|
8,
|
|
5,
|
|
4,
|
|
6,
|
|
5,
|
|
5,
|
|
6,
|
|
5,
|
|
7,
|
|
9,
|
|
10,
|
|
9,
|
|
10,
|
|
9,
|
|
13,
|
|
9,
|
|
10,
|
|
9,
|
|
19,
|
|
9,
|
|
10,
|
|
9,
|
|
10,
|
|
9,
|
|
10,
|
|
9,
|
|
10,
|
|
9,
|
|
19,
|
|
9,
|
|
13,
|
|
9,
|
|
13,
|
|
9,
|
|
10,
|
|
9,
|
|
10,
|
|
9,
|
|
10,
|
|
9,
|
|
10,
|
|
9,
|
|
10,
|
|
9,
|
|
10,
|
|
9,
|
|
10,
|
|
9,
|
|
10,
|
|
0,
|
|
5,
|
|
3,
|
|
13,
|
|
37,
|
|
0,
|
|
10,
|
|
20,
|
|
15,
|
|
20,
|
|
10,
|
|
20,
|
|
15,
|
|
20,
|
|
14,
|
|
15,
|
|
5,
|
|
11,
|
|
26,
|
|
11,
|
|
26,
|
|
13,
|
|
28,
|
|
11,
|
|
26,
|
|
11,
|
|
26,
|
|
16,
|
|
31,
|
|
11,
|
|
26,
|
|
11,
|
|
26,
|
|
11,
|
|
26,
|
|
11,
|
|
26,
|
|
11,
|
|
26,
|
|
11,
|
|
26,
|
|
11,
|
|
26,
|
|
11,
|
|
26,
|
|
5,
|
|
5,
|
|
5,
|
|
5,
|
|
5,
|
|
15,
|
|
6,
|
|
10,
|
|
7,
|
|
6,
|
|
6,
|
|
10,
|
|
7,
|
|
7,
|
|
10,
|
|
20,
|
|
10,
|
|
25,
|
|
12,
|
|
27,
|
|
10,
|
|
25,
|
|
10,
|
|
25,
|
|
13,
|
|
28,
|
|
10,
|
|
25,
|
|
10,
|
|
25,
|
|
10,
|
|
25,
|
|
10,
|
|
25,
|
|
10,
|
|
25,
|
|
10,
|
|
25,
|
|
10,
|
|
25,
|
|
10,
|
|
25,
|
|
0,
|
|
10,
|
|
25,
|
|
15,
|
|
25,
|
|
10,
|
|
25,
|
|
15,
|
|
25,
|
|
21,
|
|
16,
|
|
5,
|
|
12,
|
|
27,
|
|
12,
|
|
27,
|
|
14,
|
|
29,
|
|
12,
|
|
27,
|
|
12,
|
|
27,
|
|
17,
|
|
32,
|
|
12,
|
|
27,
|
|
12,
|
|
27,
|
|
12,
|
|
27,
|
|
12,
|
|
27,
|
|
12,
|
|
27,
|
|
12,
|
|
27,
|
|
12,
|
|
27,
|
|
12,
|
|
27,
|
|
5,
|
|
5,
|
|
5,
|
|
5,
|
|
5,
|
|
15,
|
|
6,
|
|
10,
|
|
7,
|
|
6,
|
|
6,
|
|
10,
|
|
7,
|
|
7,
|
|
11,
|
|
26,
|
|
11,
|
|
26,
|
|
13,
|
|
28,
|
|
11,
|
|
26,
|
|
11,
|
|
26,
|
|
14,
|
|
29,
|
|
11,
|
|
26,
|
|
11,
|
|
26,
|
|
11,
|
|
26,
|
|
11,
|
|
26,
|
|
11,
|
|
26,
|
|
11,
|
|
26,
|
|
11,
|
|
26,
|
|
11,
|
|
26,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
#endif /* __CYGWIN__ */
|
|
#endif /* __WORDSIZE */
|