mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-06-30 06:50:31 +02:00
* lib/jit_x86-sz.c: Generate information about instruction lengths for more precise calculation of buffer size on Windows x64. This change is specially important because the maximum instruction length is larger than other systems, what could cause an out of bounds write on special conditions without this update.
1051 lines
7.9 KiB
C
1051 lines
7.9 KiB
C
|
|
#if __WORDSIZE == 32
|
|
#define JIT_INSTR_MAX 42
|
|
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,
|
|
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 */
|