diff options
-rw-r--r-- | src/.gitignore | 1 | ||||
-rw-r--r-- | src/buildvm_x86.h | 1730 |
2 files changed, 1730 insertions, 1 deletions
diff --git a/src/.gitignore b/src/.gitignore index e9f998ce..b6e44c8a 100644 --- a/src/.gitignore +++ b/src/.gitignore | |||
@@ -1,6 +1,5 @@ | |||
1 | luajit | 1 | luajit |
2 | buildvm | 2 | buildvm |
3 | buildvm_*.h | ||
4 | lj_ffdef.h | 3 | lj_ffdef.h |
5 | lj_libdef.h | 4 | lj_libdef.h |
6 | lj_recdef.h | 5 | lj_recdef.h |
diff --git a/src/buildvm_x86.h b/src/buildvm_x86.h new file mode 100644 index 00000000..0c023423 --- /dev/null +++ b/src/buildvm_x86.h | |||
@@ -0,0 +1,1730 @@ | |||
1 | /* | ||
2 | ** This file has been pre-processed with DynASM. | ||
3 | ** http://luajit.org/dynasm.html | ||
4 | ** DynASM version 1.2.1, DynASM x86 version 1.2.1 | ||
5 | ** DO NOT EDIT! The original file is in "buildvm_x86.dasc". | ||
6 | */ | ||
7 | |||
8 | #if DASM_VERSION != 10201 | ||
9 | #error "Version mismatch between DynASM and included encoding engine" | ||
10 | #endif | ||
11 | |||
12 | #define DASM_SECTION_CODE_OP 0 | ||
13 | #define DASM_SECTION_CODE_SUB 1 | ||
14 | #define DASM_MAXSECTION 2 | ||
15 | static const unsigned char build_actionlist[12300] = { | ||
16 | 254,1,248,10,137,202,139,173,233,137,114,252,252,15,182,141,233,139,181,233, | ||
17 | 139,189,233,139,108,36,48,141,12,202,141,68,194,252,252,59,141,233,15,135, | ||
18 | 244,11,248,9,189,237,248,1,137,40,137,104,8,131,192,16,57,200,15,130,244, | ||
19 | 1,255,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248, | ||
20 | 12,137,113,252,252,141,52,197,237,141,148,253,49,233,137,106,252,248,139, | ||
21 | 173,233,137,114,252,252,15,182,181,233,141,60,252,242,139,116,36,48,141,66, | ||
22 | 4,59,190,233,15,135,244,13,15,182,181,233,133,252,246,15,132,244,248,248, | ||
23 | 1,131,193,8,57,209,15,131,244,248,139,121,252,248,137,120,252,252,139,121, | ||
24 | 252,252,137,56,131,192,8,199,65,252,252,237,131,252,238,1,15,133,244,1,248, | ||
25 | 2,15,182,141,233,139,181,233,139,189,233,141,12,202,252,233,244,9,248,14, | ||
26 | 255,137,113,252,252,139,189,233,139,108,36,48,141,68,193,252,248,137,141, | ||
27 | 233,141,136,233,137,124,36,4,137,44,36,137,133,233,59,141,233,15,135,244, | ||
28 | 15,199,131,233,237,252,255,147,233,199,131,233,237,139,149,233,141,12,194, | ||
29 | 252,247,217,3,141,233,248,16,131,192,1,137,68,36,20,252,247,198,237,15,132, | ||
30 | 244,17,252,233,244,18,248,19,137,113,252,252,139,189,233,139,108,36,48,141, | ||
31 | 68,193,252,248,137,141,233,255,141,136,233,137,44,36,137,133,233,59,141,233, | ||
32 | 15,135,244,15,199,131,233,237,252,255,215,199,131,233,237,139,149,233,141, | ||
33 | 12,194,252,247,217,3,141,233,248,16,131,192,1,137,68,36,20,252,247,198,237, | ||
34 | 15,132,244,17,248,18,252,247,198,237,15,132,244,20,199,131,233,237,131,230, | ||
35 | 252,248,41,214,252,247,222,131,232,1,15,132,244,248,248,1,255,139,44,10,137, | ||
36 | 106,252,248,139,108,10,4,137,106,252,252,131,194,8,131,232,1,15,133,244,1, | ||
37 | 248,2,139,108,36,48,137,181,233,248,3,139,68,36,20,139,76,36,56,248,4,57, | ||
38 | 193,15,133,244,252,248,5,131,252,234,8,137,149,233,248,21,139,76,36,52,137, | ||
39 | 141,233,49,192,248,22,131,196,28,91,94,95,93,195,248,6,15,130,244,253,59, | ||
40 | 149,233,15,135,244,254,199,66,252,252,237,131,194,8,131,192,1,252,233,244, | ||
41 | 4,248,7,255,133,201,15,132,244,5,41,193,141,20,202,252,233,244,5,248,8,137, | ||
42 | 149,233,137,68,36,20,137,76,36,4,137,44,36,232,251,1,0,139,149,233,252,233, | ||
43 | 244,3,248,23,139,76,36,4,139,68,36,8,129,225,239,137,204,139,108,36,48,139, | ||
44 | 173,233,199,133,233,237,252,233,244,22,248,24,139,76,36,4,129,225,239,137, | ||
45 | 204,139,108,36,48,185,252,248,252,255,252,255,252,255,184,237,139,149,233, | ||
46 | 139,157,233,129,195,239,139,114,252,252,199,66,252,252,237,255,199,131,233, | ||
47 | 237,252,233,244,16,248,20,252,247,198,237,15,132,244,25,131,230,252,248,41, | ||
48 | 252,242,141,76,49,252,248,139,114,252,252,199,68,10,4,237,252,233,244,16, | ||
49 | 248,15,199,68,36,4,237,252,233,244,247,248,13,131,232,8,137,202,137,252,249, | ||
50 | 139,181,233,139,108,36,48,248,11,131,232,4,41,209,193,252,233,3,131,198,4, | ||
51 | 137,149,233,137,133,233,137,116,36,24,137,76,36,4,137,44,36,248,1,232,251, | ||
52 | 1,0,139,141,233,139,133,233,255,139,105,252,248,139,113,252,252,41,200,193, | ||
53 | 232,3,131,192,1,252,255,165,233,248,26,85,87,86,83,190,237,131,252,236,28, | ||
54 | 49,192,139,108,36,48,141,188,253,36,233,139,76,36,52,139,157,233,129,195, | ||
55 | 239,137,189,233,137,68,36,52,137,68,36,24,56,133,233,15,132,244,249,199,131, | ||
56 | 233,237,136,133,233,139,149,233,139,133,233,41,200,193,232,3,131,192,1,41, | ||
57 | 209,139,114,252,252,137,68,36,20,252,247,198,237,15,132,244,17,252,233,244, | ||
58 | 18,248,27,85,87,86,83,190,237,252,233,244,247,248,28,255,85,87,86,83,190, | ||
59 | 237,248,1,131,252,236,28,139,108,36,48,139,76,36,52,248,2,139,189,233,137, | ||
60 | 124,36,52,137,100,36,24,137,165,233,139,157,233,129,195,239,248,3,199,131, | ||
61 | 233,237,139,149,233,1,206,41,214,139,133,233,41,200,193,232,3,131,192,1,139, | ||
62 | 105,252,248,129,121,253,252,252,239,15,133,244,29,252,255,165,233,248,30, | ||
63 | 85,87,86,83,131,252,236,28,139,108,36,48,139,68,36,60,139,76,36,56,139,84, | ||
64 | 36,52,137,100,36,24,139,189,233,43,189,233,199,68,36,60,0,0,0,0,137,124,36, | ||
65 | 56,137,68,36,8,137,76,36,4,137,44,36,139,189,233,137,124,36,52,137,165,233, | ||
66 | 252,255,210,133,192,15,132,244,21,255,137,193,190,237,252,233,244,2,248,25, | ||
67 | 1,209,131,230,252,248,137,213,41,252,242,199,68,193,252,252,237,137,200,139, | ||
68 | 117,252,244,139,122,252,248,139,191,233,139,191,233,252,255,101,252,240,248, | ||
69 | 31,15,182,78,252,255,131,252,237,16,141,12,202,41,252,233,15,132,244,32,252, | ||
70 | 247,217,193,252,233,3,137,76,36,8,139,72,4,139,0,137,77,4,137,69,0,137,108, | ||
71 | 36,4,252,233,244,33,248,34,137,68,36,16,199,68,36,20,237,141,68,36,16,128, | ||
72 | 126,252,252,235,15,133,244,247,141,139,233,137,41,199,65,4,237,137,205,252, | ||
73 | 233,244,248,248,35,15,182,70,252,254,137,68,36,12,219,68,36,12,221,92,36, | ||
74 | 16,141,68,36,16,252,233,244,247,248,36,255,15,182,70,252,254,141,4,194,248, | ||
75 | 1,15,182,110,252,255,141,44,252,234,248,2,137,108,36,4,139,108,36,48,137, | ||
76 | 68,36,8,137,44,36,137,116,36,24,137,149,233,232,251,1,1,139,149,233,133,192, | ||
77 | 15,132,244,249,248,32,15,182,78,252,253,139,104,4,139,0,137,108,202,4,137, | ||
78 | 4,202,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248, | ||
79 | 3,139,141,233,137,113,252,244,141,177,233,41,214,139,105,252,248,184,3,0, | ||
80 | 0,0,252,255,165,233,248,37,137,68,36,16,199,68,36,20,237,141,68,36,16,128, | ||
81 | 126,252,252,235,15,133,244,247,141,139,233,137,41,199,65,4,237,137,205,252, | ||
82 | 233,244,248,248,38,15,182,70,252,254,137,68,36,12,219,68,36,12,221,92,36, | ||
83 | 16,141,68,36,16,252,233,244,247,248,39,255,15,182,70,252,254,141,4,194,248, | ||
84 | 1,15,182,110,252,255,141,44,252,234,248,2,137,108,36,4,139,108,36,48,137, | ||
85 | 68,36,8,137,44,36,137,116,36,24,137,149,233,232,251,1,2,139,149,233,133,192, | ||
86 | 15,132,244,249,15,182,78,252,253,139,108,202,4,139,12,202,137,104,4,137,8, | ||
87 | 248,40,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248, | ||
88 | 3,139,141,233,137,113,252,244,15,182,70,252,253,139,108,194,4,139,4,194,137, | ||
89 | 105,20,137,65,16,141,177,233,41,214,139,105,252,248,184,4,0,0,0,252,255,165, | ||
90 | 233,248,41,15,182,110,252,252,141,4,194,141,12,202,137,108,36,12,139,108, | ||
91 | 36,48,137,68,36,8,137,76,36,4,137,44,36,137,116,36,24,137,149,233,232,251, | ||
92 | 1,3,248,3,139,149,233,131,252,248,1,15,135,244,42,248,4,141,118,4,15,130, | ||
93 | 244,252,248,5,15,183,70,252,254,141,180,253,134,233,248,6,255,139,6,15,182, | ||
94 | 204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,43,131,198,4,129,120, | ||
95 | 253,4,239,15,130,244,5,252,233,244,6,248,44,129,120,253,4,239,252,233,244, | ||
96 | 4,248,45,137,108,36,12,139,108,36,48,131,252,238,4,137,68,36,8,137,76,36, | ||
97 | 4,137,44,36,137,116,36,24,137,149,233,232,251,1,4,252,233,244,3,248,46,141, | ||
98 | 4,199,252,233,244,247,248,47,141,4,199,141,44,252,234,149,252,233,244,248, | ||
99 | 248,48,141,4,194,137,197,252,233,244,248,248,49,255,141,4,194,248,1,141,44, | ||
100 | 252,234,248,2,141,12,202,137,108,36,8,139,108,36,48,137,68,36,12,15,182,70, | ||
101 | 252,252,137,76,36,4,137,68,36,16,137,44,36,137,116,36,24,137,149,233,232, | ||
102 | 251,1,5,139,149,233,133,192,15,132,244,40,248,42,137,193,41,208,137,113,252, | ||
103 | 244,141,176,233,139,105,252,248,184,3,0,0,0,129,121,253,252,252,239,15,133, | ||
104 | 244,29,252,255,165,233,248,50,141,4,194,139,108,36,48,137,68,36,4,137,44, | ||
105 | 36,137,116,36,24,137,149,233,232,251,1,6,139,149,233,252,233,244,42,248,29, | ||
106 | 137,76,36,12,137,68,36,16,131,252,233,8,141,4,193,139,108,36,48,137,76,36, | ||
107 | 4,137,68,36,8,137,44,36,137,116,36,24,137,149,233,232,251,1,7,139,149,233, | ||
108 | 139,76,36,12,139,68,36,16,139,105,252,248,131,192,1,57,215,15,132,244,51, | ||
109 | 252,255,165,233,248,52,255,139,108,36,48,137,76,36,4,137,44,36,137,116,36, | ||
110 | 24,137,149,233,232,251,1,8,139,149,233,139,70,252,252,15,182,204,15,182,232, | ||
111 | 193,232,16,252,255,164,253,171,233,248,53,129,252,248,239,15,130,244,54,139, | ||
112 | 105,4,129,252,253,239,15,131,244,54,137,68,36,20,137,105,252,252,139,41,137, | ||
113 | 105,252,248,131,232,2,15,132,244,248,137,12,36,248,1,131,193,8,139,105,4, | ||
114 | 137,105,252,252,139,41,137,105,252,248,131,232,1,15,133,244,1,139,12,36,248, | ||
115 | 2,139,68,36,20,252,233,244,55,248,56,129,252,248,239,15,130,244,54,139,105, | ||
116 | 4,184,237,255,252,247,213,57,232,255,15,71,197,255,15,134,244,247,137,232, | ||
117 | 248,1,255,139,105,252,248,139,132,253,197,233,199,65,252,252,237,137,65,252, | ||
118 | 248,252,233,244,57,248,58,129,252,248,239,15,130,244,54,139,105,4,129,252, | ||
119 | 253,239,15,133,244,252,248,1,139,41,139,173,233,248,2,133,252,237,199,65, | ||
120 | 252,252,237,15,132,244,57,139,65,252,248,139,131,233,199,65,252,252,237,137, | ||
121 | 105,252,248,137,12,36,139,141,233,35,136,233,105,201,239,3,141,233,248,3, | ||
122 | 255,129,185,233,239,15,133,244,250,57,129,233,15,132,244,251,248,4,139,137, | ||
123 | 233,133,201,15,133,244,3,252,233,244,57,248,5,139,105,4,129,252,253,239,15, | ||
124 | 132,244,57,139,1,139,12,36,137,105,252,252,137,65,252,248,252,233,244,57, | ||
125 | 248,6,129,252,253,239,15,132,244,1,255,129,252,253,239,15,135,244,253,189, | ||
126 | 237,248,7,252,247,213,139,172,253,171,233,252,233,244,2,248,59,129,252,248, | ||
127 | 239,15,130,244,54,129,121,253,4,239,15,133,244,54,139,41,131,189,233,0,15, | ||
128 | 133,244,54,129,121,253,12,239,15,133,244,54,139,65,8,137,133,233,199,65,252, | ||
129 | 252,237,255,137,105,252,248,252,246,133,233,235,15,132,244,247,128,165,233, | ||
130 | 235,139,131,233,137,171,233,137,133,233,248,1,252,233,244,57,248,60,129,252, | ||
131 | 248,239,15,130,244,54,129,121,253,4,239,15,133,244,54,139,1,139,108,36,48, | ||
132 | 137,68,36,4,137,44,36,137,205,137,84,36,12,131,193,8,137,76,36,8,232,251, | ||
133 | 1,9,137,252,233,139,84,36,12,139,40,139,64,4,137,105,252,248,137,65,252,252, | ||
134 | 252,233,244,57,248,61,129,252,248,239,255,15,133,244,54,129,121,253,4,239, | ||
135 | 15,135,244,54,221,1,252,233,244,62,248,63,129,252,248,239,15,130,244,54,129, | ||
136 | 121,253,4,239,15,133,244,249,139,1,248,2,199,65,252,252,237,137,65,252,248, | ||
137 | 252,233,244,57,248,3,129,121,253,4,239,15,135,244,54,131,187,233,0,255,15, | ||
138 | 133,244,54,139,171,233,59,171,233,15,130,244,247,232,244,64,248,1,139,108, | ||
139 | 36,48,137,141,233,137,113,252,252,137,116,36,24,137,84,36,8,137,202,137,252, | ||
140 | 233,232,251,1,10,139,141,233,139,84,36,8,252,233,244,2,248,65,129,252,248, | ||
141 | 239,15,130,244,54,15,132,244,248,248,1,129,121,253,4,239,15,133,244,54,255, | ||
142 | 139,41,137,108,36,4,139,108,36,48,137,44,36,137,141,233,137,113,252,252,137, | ||
143 | 116,36,24,137,84,36,12,131,193,8,137,76,36,8,232,251,1,11,139,141,233,139, | ||
144 | 84,36,12,133,192,15,132,244,249,139,105,8,139,65,12,137,105,252,248,137,65, | ||
145 | 252,252,139,105,16,139,65,20,137,41,137,65,4,248,66,184,237,252,233,244,67, | ||
146 | 248,2,199,65,12,237,252,233,244,1,248,3,199,65,252,252,237,252,233,244,57, | ||
147 | 248,68,129,252,248,239,15,130,244,54,129,121,253,4,239,15,133,244,54,255, | ||
148 | 139,133,233,199,65,252,252,237,137,65,252,248,199,65,12,237,184,237,252,233, | ||
149 | 244,67,248,69,129,252,248,239,15,130,244,54,129,121,253,4,239,15,133,244, | ||
150 | 54,129,121,253,12,239,15,135,244,54,221,65,8,217,232,222,193,219,84,36,4, | ||
151 | 221,89,252,248,139,41,139,68,36,4,59,133,233,15,131,244,248,193,224,3,3,133, | ||
152 | 233,248,1,129,120,253,4,239,15,132,244,70,255,139,40,139,64,4,137,41,137, | ||
153 | 65,4,252,233,244,66,248,2,131,189,233,0,15,132,244,70,137,44,36,137,84,36, | ||
154 | 8,137,205,232,251,1,12,137,252,233,139,84,36,8,133,192,15,133,244,1,248,70, | ||
155 | 184,237,252,233,244,67,248,71,129,252,248,239,15,130,244,54,129,121,253,4, | ||
156 | 239,15,133,244,54,139,133,233,199,65,252,252,237,137,65,252,248,217,252,238, | ||
157 | 221,89,8,184,237,252,233,244,67,248,72,255,129,252,248,239,15,130,244,54, | ||
158 | 137,113,252,252,190,237,137,202,131,193,8,131,232,1,139,105,252,248,248,1, | ||
159 | 252,246,131,233,235,15,133,244,249,248,2,129,121,253,252,252,239,15,133,244, | ||
160 | 29,252,255,165,233,248,3,131,198,1,252,233,244,2,248,73,129,252,248,239,15, | ||
161 | 130,244,54,129,121,253,12,239,15,133,244,54,255,137,113,252,252,139,105,4, | ||
162 | 137,105,12,199,65,4,237,139,41,139,113,8,137,105,8,137,49,190,237,137,202, | ||
163 | 129,193,239,131,232,2,252,233,244,1,248,9,139,116,36,24,252,233,244,54,248, | ||
164 | 74,129,252,248,239,15,130,244,54,139,41,137,113,252,252,137,116,36,24,137, | ||
165 | 44,36,129,121,253,4,239,15,133,244,9,131,189,233,0,15,133,244,9,128,189,233, | ||
166 | 235,15,135,244,9,139,181,233,255,137,116,36,4,15,132,244,247,59,181,233,15, | ||
167 | 132,244,9,248,1,141,116,198,252,240,59,181,233,15,135,244,9,137,181,233,139, | ||
168 | 108,36,48,137,141,233,131,193,8,137,141,233,139,108,36,4,141,76,193,232,41, | ||
169 | 252,241,57,252,238,15,132,244,249,248,2,139,68,14,4,137,70,252,252,139,4, | ||
170 | 14,137,70,252,248,131,252,238,8,57,252,238,15,133,244,2,248,3,49,201,137, | ||
171 | 76,36,12,137,76,36,8,232,244,26,199,131,233,237,139,108,36,48,139,52,36,139, | ||
172 | 149,233,255,129,252,248,239,15,135,244,254,248,4,139,142,233,139,190,233, | ||
173 | 137,142,233,137,252,254,41,206,15,132,244,252,141,4,50,193,252,238,3,59,133, | ||
174 | 233,15,135,244,255,137,213,41,205,248,5,139,1,137,4,41,139,65,4,137,68,41, | ||
175 | 4,131,193,8,57,252,249,15,133,244,5,248,6,141,70,2,199,66,252,252,237,248, | ||
176 | 7,139,116,36,24,137,68,36,20,185,252,248,252,255,252,255,252,255,252,247, | ||
177 | 198,237,15,132,244,17,252,233,244,18,248,8,255,199,66,252,252,237,139,142, | ||
178 | 233,131,252,233,8,137,142,233,139,1,137,2,139,65,4,137,66,4,184,237,252,233, | ||
179 | 244,7,248,9,139,12,36,137,185,233,137,116,36,4,137,44,36,232,251,1,0,139, | ||
180 | 149,233,252,233,244,4,248,9,139,116,36,24,252,233,244,54,248,75,139,173,233, | ||
181 | 137,113,252,252,137,116,36,24,137,44,36,131,189,233,0,15,133,244,9,128,189, | ||
182 | 233,235,15,135,244,9,255,139,181,233,137,116,36,4,15,132,244,247,59,181,233, | ||
183 | 15,132,244,9,248,1,141,116,198,252,248,59,181,233,15,135,244,9,137,181,233, | ||
184 | 139,108,36,48,137,141,233,137,141,233,139,108,36,4,141,76,193,252,240,41, | ||
185 | 252,241,57,252,238,15,132,244,249,248,2,139,68,14,4,137,70,252,252,139,4, | ||
186 | 14,137,70,252,248,131,252,238,8,57,252,238,15,133,244,2,248,3,49,201,137, | ||
187 | 76,36,12,137,76,36,8,232,244,26,199,131,233,237,255,139,108,36,48,139,52, | ||
188 | 36,139,149,233,129,252,248,239,15,135,244,254,248,4,139,142,233,139,190,233, | ||
189 | 137,142,233,137,252,254,41,206,15,132,244,252,141,4,50,193,252,238,3,59,133, | ||
190 | 233,15,135,244,255,137,213,41,205,248,5,139,1,137,4,41,139,65,4,137,68,41, | ||
191 | 4,131,193,8,57,252,249,15,133,244,5,248,6,141,70,1,248,7,139,116,36,24,137, | ||
192 | 68,36,20,49,201,252,247,198,237,15,132,244,17,252,233,244,18,248,8,255,137, | ||
193 | 116,36,4,137,44,36,232,251,1,13,248,9,139,12,36,137,185,233,137,116,36,4, | ||
194 | 137,44,36,232,251,1,0,139,149,233,252,233,244,4,248,76,139,108,36,48,137, | ||
195 | 113,252,252,252,247,133,233,237,15,132,244,54,137,141,233,141,68,193,252, | ||
196 | 248,137,133,233,49,192,137,133,233,176,235,136,133,233,252,233,244,22,248, | ||
197 | 77,129,252,248,239,15,130,244,54,129,121,253,4,239,15,135,244,54,255,221, | ||
198 | 1,217,225,248,62,221,89,252,248,248,57,184,237,248,67,137,68,36,20,248,55, | ||
199 | 252,247,198,237,15,133,244,253,248,5,56,70,252,255,15,135,244,252,139,6,15, | ||
200 | 182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,6,199,68,193,252, | ||
201 | 244,237,131,192,1,252,233,244,5,248,7,137,202,185,252,248,252,255,252,255, | ||
202 | 252,255,252,233,244,18,248,78,129,252,248,239,15,130,244,54,129,121,253,4, | ||
203 | 239,255,15,135,244,54,221,1,232,244,79,252,233,244,62,248,80,129,252,248, | ||
204 | 239,15,130,244,54,129,121,253,4,239,15,135,244,54,221,1,232,244,81,252,233, | ||
205 | 244,62,248,82,129,252,248,239,15,130,244,54,129,121,253,4,239,15,135,244, | ||
206 | 54,255,221,1,217,252,250,252,233,244,62,248,83,129,252,248,239,15,130,244, | ||
207 | 54,129,121,253,4,239,15,135,244,54,217,252,237,221,1,217,252,241,252,233, | ||
208 | 244,62,248,84,129,252,248,239,15,130,244,54,129,121,253,4,239,15,135,244, | ||
209 | 54,217,252,236,221,1,217,252,241,252,233,244,62,248,85,129,252,248,239,15, | ||
210 | 130,244,54,255,129,121,253,4,239,15,135,244,54,221,1,232,244,86,252,233,244, | ||
211 | 62,248,87,129,252,248,239,15,130,244,54,129,121,253,4,239,15,135,244,54,221, | ||
212 | 1,217,252,254,252,233,244,62,248,88,129,252,248,239,15,130,244,54,129,121, | ||
213 | 253,4,239,15,135,244,54,255,221,1,217,252,255,252,233,244,62,248,89,129,252, | ||
214 | 248,239,15,130,244,54,129,121,253,4,239,15,135,244,54,221,1,217,252,242,221, | ||
215 | 216,252,233,244,62,248,90,129,252,248,239,15,130,244,54,129,121,253,4,239, | ||
216 | 15,135,244,54,221,1,217,192,216,200,217,232,222,225,217,252,250,217,252,243, | ||
217 | 252,233,244,62,248,91,129,252,248,239,15,130,244,54,255,129,121,253,4,239, | ||
218 | 15,135,244,54,221,1,217,192,216,200,217,232,222,225,217,252,250,217,201,217, | ||
219 | 252,243,252,233,244,62,248,92,129,252,248,239,15,130,244,54,129,121,253,4, | ||
220 | 239,15,135,244,54,221,1,217,232,217,252,243,252,233,244,62,248,93,129,252, | ||
221 | 248,239,15,130,244,54,129,121,253,4,239,15,135,244,54,221,1,137,76,36,16, | ||
222 | 221,28,36,137,213,232,251,1,14,139,76,36,16,137,252,234,252,233,244,62,248, | ||
223 | 94,255,129,252,248,239,15,130,244,54,129,121,253,4,239,15,135,244,54,221, | ||
224 | 1,137,76,36,16,221,28,36,137,213,232,251,1,15,139,76,36,16,137,252,234,252, | ||
225 | 233,244,62,248,95,129,252,248,239,15,130,244,54,129,121,253,4,239,15,135, | ||
226 | 244,54,221,1,137,76,36,16,221,28,36,137,213,232,251,1,16,139,76,36,16,137, | ||
227 | 252,234,252,233,244,62,248,96,248,97,129,252,248,239,15,130,244,54,129,121, | ||
228 | 253,4,239,255,15,135,244,54,221,1,220,141,233,252,233,244,62,248,98,129,252, | ||
229 | 248,239,15,130,244,54,129,121,253,4,239,15,135,244,54,129,121,253,12,239, | ||
230 | 15,135,244,54,221,1,221,65,8,217,252,243,252,233,244,62,248,99,129,252,248, | ||
231 | 239,15,130,244,54,129,121,253,4,239,15,135,244,54,255,129,121,253,12,239, | ||
232 | 15,135,244,54,221,65,8,221,1,217,252,253,221,217,252,233,244,62,248,100,129, | ||
233 | 252,248,239,15,130,244,54,139,105,4,129,252,253,239,15,135,244,54,139,1,137, | ||
234 | 105,252,252,137,65,252,248,209,229,129,252,253,0,0,224,252,255,15,131,244, | ||
235 | 249,9,232,15,132,244,249,184,252,254,3,0,0,129,252,253,0,0,32,0,15,130,244, | ||
236 | 250,248,1,193,252,237,21,41,197,137,44,36,219,4,36,139,105,252,252,129,229, | ||
237 | 252,255,252,255,15,128,129,205,0,0,224,63,137,105,252,252,248,2,221,25,184, | ||
238 | 237,252,233,244,67,248,3,255,217,252,238,252,233,244,2,248,4,221,1,199,4, | ||
239 | 36,0,0,128,90,216,12,36,221,89,252,248,139,105,252,252,184,52,4,0,0,209,229, | ||
240 | 252,233,244,1,248,101,129,252,248,239,15,130,244,54,129,121,253,4,239,15, | ||
241 | 135,244,54,221,1,139,105,4,209,229,129,252,253,0,0,224,252,255,15,132,244, | ||
242 | 250,217,192,232,244,102,220,252,233,248,1,221,89,252,248,221,25,139,65,252, | ||
243 | 252,139,105,4,49,232,15,136,244,249,248,2,184,237,252,233,244,67,248,3,255, | ||
244 | 129,252,245,0,0,0,128,137,105,4,252,233,244,2,248,4,217,252,238,217,201,252, | ||
245 | 233,244,1,248,103,129,252,248,239,15,130,244,54,129,121,253,4,239,15,135, | ||
246 | 244,54,129,121,253,12,239,15,135,244,54,221,65,8,221,1,248,1,217,252,248, | ||
247 | 223,224,158,15,138,244,1,221,217,252,233,244,62,248,104,129,252,248,239,15, | ||
248 | 130,244,54,255,129,121,253,4,239,15,135,244,54,129,121,253,12,239,15,135, | ||
249 | 244,54,221,1,221,65,8,232,244,105,252,233,244,62,248,106,129,252,248,239, | ||
250 | 15,130,244,54,129,121,253,4,239,15,135,244,54,221,1,189,2,0,0,0,248,1,57, | ||
251 | 197,15,131,244,62,129,124,253,252,233,252,252,239,15,135,244,251,255,221, | ||
252 | 68,252,233,252,248,255,219,252,233,219,209,221,217,255,80,221,225,223,224, | ||
253 | 252,246,196,1,15,132,244,248,217,201,248,2,221,216,88,255,131,197,1,252,233, | ||
254 | 244,1,248,107,129,252,248,239,15,130,244,54,129,121,253,4,239,15,135,244, | ||
255 | 54,221,1,189,2,0,0,0,248,1,57,197,15,131,244,62,129,124,253,252,233,252,252, | ||
256 | 239,15,135,244,251,221,68,252,233,252,248,255,219,252,233,218,209,221,217, | ||
257 | 255,80,221,225,223,224,252,246,196,1,15,133,244,248,217,201,248,2,221,216, | ||
258 | 88,255,131,197,1,252,233,244,1,248,5,221,216,252,233,244,54,248,108,129,252, | ||
259 | 248,239,15,130,244,54,129,121,253,4,239,15,133,244,54,139,41,219,133,233, | ||
260 | 252,233,244,62,248,109,129,252,248,239,15,133,244,54,129,121,253,4,239,15, | ||
261 | 133,244,54,139,41,131,189,233,1,255,15,130,244,70,15,182,173,233,137,44,36, | ||
262 | 219,4,36,252,233,244,62,248,110,139,171,233,59,171,233,15,130,244,247,232, | ||
263 | 244,64,248,1,129,252,248,239,15,133,244,54,129,121,253,4,239,15,135,244,54, | ||
264 | 221,1,219,92,36,12,129,124,36,12,252,255,0,0,0,15,135,244,54,141,68,36,12, | ||
265 | 137,76,36,16,199,68,36,8,1,0,0,0,137,68,36,4,248,111,139,108,36,48,137,44, | ||
266 | 36,137,116,36,24,137,149,233,255,232,251,1,17,139,76,36,16,139,149,233,199, | ||
267 | 65,252,252,237,137,65,252,248,252,233,244,57,248,112,139,171,233,59,171,233, | ||
268 | 15,130,244,247,232,244,64,248,1,137,76,36,16,199,68,36,12,252,255,252,255, | ||
269 | 252,255,252,255,129,252,248,239,15,130,244,54,15,134,244,247,129,121,253, | ||
270 | 20,239,15,135,244,54,221,65,16,219,92,36,12,248,1,129,121,253,4,239,15,133, | ||
271 | 244,54,255,129,121,253,12,239,15,135,244,54,139,41,137,108,36,4,139,173,233, | ||
272 | 221,65,8,219,92,36,8,139,68,36,12,57,197,15,130,244,251,248,2,139,76,36,8, | ||
273 | 133,201,15,142,244,253,248,3,139,108,36,4,41,200,15,140,244,113,141,172,253, | ||
274 | 13,233,131,192,1,248,4,137,108,36,4,137,68,36,8,252,233,244,111,248,5,15, | ||
275 | 140,244,252,141,68,40,1,252,233,244,2,248,6,137,232,252,233,244,2,248,7,255, | ||
276 | 15,132,244,254,1,252,233,131,193,1,15,143,244,3,248,8,185,1,0,0,0,252,233, | ||
277 | 244,3,248,113,49,192,252,233,244,4,248,114,129,252,248,239,15,130,244,54, | ||
278 | 139,171,233,59,171,233,15,130,244,247,232,244,64,248,1,137,76,36,16,129,121, | ||
279 | 253,4,239,15,133,244,54,255,129,121,253,12,239,15,135,244,54,139,41,221,65, | ||
280 | 8,219,92,36,12,139,68,36,12,133,192,15,142,244,113,131,189,233,1,15,130,244, | ||
281 | 113,15,133,244,115,57,131,233,15,130,244,115,15,182,141,233,139,171,233,137, | ||
282 | 68,36,8,137,108,36,4,248,1,136,77,0,131,197,1,131,232,1,15,133,244,1,252, | ||
283 | 233,244,111,248,116,129,252,248,239,15,130,244,54,255,139,171,233,59,171, | ||
284 | 233,15,130,244,247,232,244,64,248,1,137,76,36,16,129,121,253,4,239,15,133, | ||
285 | 244,54,139,41,139,133,233,133,192,15,132,244,113,57,131,233,15,130,244,117, | ||
286 | 129,197,239,137,116,36,12,137,68,36,8,139,179,233,137,116,36,4,248,1,15,182, | ||
287 | 77,0,131,197,1,131,232,1,136,12,6,15,133,244,1,139,116,36,12,252,233,244, | ||
288 | 111,248,118,255,129,252,248,239,15,130,244,54,139,171,233,59,171,233,15,130, | ||
289 | 244,247,232,244,64,248,1,137,76,36,16,129,121,253,4,239,15,133,244,54,139, | ||
290 | 41,139,133,233,57,131,233,15,130,244,117,129,197,239,137,116,36,12,137,68, | ||
291 | 36,8,139,179,233,137,116,36,4,252,233,244,249,248,1,15,182,76,5,0,131,252, | ||
292 | 249,65,15,130,244,248,255,131,252,249,90,15,135,244,248,131,252,241,32,248, | ||
293 | 2,136,12,6,248,3,131,232,1,15,137,244,1,139,116,36,12,252,233,244,111,248, | ||
294 | 119,129,252,248,239,15,130,244,54,139,171,233,59,171,233,15,130,244,247,232, | ||
295 | 244,64,248,1,137,76,36,16,129,121,253,4,239,15,133,244,54,139,41,139,133, | ||
296 | 233,255,57,131,233,15,130,244,117,129,197,239,137,116,36,12,137,68,36,8,139, | ||
297 | 179,233,137,116,36,4,252,233,244,249,248,1,15,182,76,5,0,131,252,249,97,15, | ||
298 | 130,244,248,131,252,249,122,15,135,244,248,131,252,241,32,248,2,136,12,6, | ||
299 | 248,3,131,232,1,15,137,244,1,139,116,36,12,252,233,244,111,248,120,129,252, | ||
300 | 248,239,15,130,244,54,129,121,253,4,239,255,15,133,244,54,137,84,36,4,137, | ||
301 | 205,139,9,232,251,1,18,137,4,36,137,252,233,139,84,36,4,219,4,36,252,233, | ||
302 | 244,62,248,121,129,252,248,239,15,130,244,54,129,121,253,4,239,15,135,244, | ||
303 | 54,221,1,199,68,36,16,0,0,192,89,216,68,36,16,221,28,36,219,4,36,252,233, | ||
304 | 244,62,248,122,129,252,248,239,15,130,244,54,129,121,253,4,239,15,135,244, | ||
305 | 54,221,1,199,68,36,16,0,0,192,89,216,68,36,16,221,28,36,139,44,36,137,68, | ||
306 | 36,20,141,68,193,252,240,248,1,57,200,15,134,244,123,255,129,120,253,4,239, | ||
307 | 15,135,244,124,221,0,216,68,36,16,221,28,36,35,44,36,131,232,8,252,233,244, | ||
308 | 1,248,125,129,252,248,239,15,130,244,54,129,121,253,4,239,15,135,244,54,221, | ||
309 | 1,199,68,36,16,0,0,192,89,216,68,36,16,221,28,36,139,44,36,137,68,36,20,141, | ||
310 | 68,193,252,240,248,1,57,200,15,134,244,123,129,120,253,4,239,15,135,244,124, | ||
311 | 221,0,216,68,36,16,221,28,36,11,44,36,131,232,8,252,233,244,1,248,126,129, | ||
312 | 252,248,239,15,130,244,54,255,129,121,253,4,239,15,135,244,54,221,1,199,68, | ||
313 | 36,16,0,0,192,89,216,68,36,16,221,28,36,139,44,36,137,68,36,20,141,68,193, | ||
314 | 252,240,248,1,57,200,15,134,244,123,129,120,253,4,239,15,135,244,124,221, | ||
315 | 0,216,68,36,16,221,28,36,51,44,36,131,232,8,252,233,244,1,248,127,129,252, | ||
316 | 248,239,15,130,244,54,129,121,253,4,239,15,135,244,54,221,1,199,68,36,16, | ||
317 | 0,0,192,89,216,68,36,16,221,28,36,139,44,36,15,205,252,233,244,123,248,128, | ||
318 | 129,252,248,239,15,130,244,54,255,129,121,253,4,239,15,135,244,54,221,1,199, | ||
319 | 68,36,16,0,0,192,89,216,68,36,16,221,28,36,139,44,36,252,247,213,248,123, | ||
320 | 137,44,36,219,4,36,252,233,244,62,248,124,139,68,36,20,252,233,244,54,248, | ||
321 | 129,129,252,248,239,15,130,244,54,129,121,253,4,239,15,135,244,54,129,121, | ||
322 | 253,12,239,15,135,244,54,221,1,221,65,8,199,68,36,16,0,0,192,89,216,68,36, | ||
323 | 16,221,92,36,8,216,68,36,16,221,28,36,137,200,139,76,36,8,139,44,36,211,229, | ||
324 | 137,193,252,233,244,123,248,130,129,252,248,239,255,15,130,244,54,129,121, | ||
325 | 253,4,239,15,135,244,54,129,121,253,12,239,15,135,244,54,221,1,221,65,8,199, | ||
326 | 68,36,16,0,0,192,89,216,68,36,16,221,92,36,8,216,68,36,16,221,28,36,137,200, | ||
327 | 139,76,36,8,139,44,36,211,252,237,137,193,252,233,244,123,248,131,129,252, | ||
328 | 248,239,15,130,244,54,129,121,253,4,239,15,135,244,54,129,121,253,12,239, | ||
329 | 15,135,244,54,221,1,221,65,8,199,68,36,16,0,0,192,89,216,68,36,16,221,92, | ||
330 | 36,8,216,68,36,16,221,28,36,137,200,139,76,36,8,139,44,36,211,252,253,137, | ||
331 | 193,252,233,244,123,248,132,255,129,252,248,239,15,130,244,54,129,121,253, | ||
332 | 4,239,15,135,244,54,129,121,253,12,239,15,135,244,54,221,1,221,65,8,199,68, | ||
333 | 36,16,0,0,192,89,216,68,36,16,221,92,36,8,216,68,36,16,221,28,36,137,200, | ||
334 | 139,76,36,8,139,44,36,211,197,137,193,252,233,244,123,248,133,129,252,248, | ||
335 | 239,15,130,244,54,129,121,253,4,239,15,135,244,54,129,121,253,12,239,15,135, | ||
336 | 244,54,221,1,221,65,8,199,68,36,16,0,0,192,89,216,68,36,16,221,92,36,8,216, | ||
337 | 68,36,16,221,28,36,137,200,139,76,36,8,139,44,36,211,205,137,193,252,233, | ||
338 | 244,123,248,115,255,184,237,252,233,244,54,248,117,184,237,248,54,139,108, | ||
339 | 36,48,41,202,137,113,252,252,137,116,36,24,137,84,36,8,137,141,233,141,68, | ||
340 | 193,252,248,137,44,36,141,144,233,137,133,233,139,73,252,248,59,149,233,15, | ||
341 | 135,244,251,252,255,145,233,133,192,15,133,244,249,248,1,139,141,233,139, | ||
342 | 133,233,41,200,193,232,3,131,192,1,139,105,252,248,139,84,36,8,1,202,57,113, | ||
343 | 252,252,15,133,244,248,252,255,165,233,248,2,129,121,253,252,252,239,255, | ||
344 | 15,133,244,29,252,255,165,233,248,3,139,141,233,139,84,36,8,1,202,252,233, | ||
345 | 244,67,248,5,199,68,36,4,237,232,251,1,0,252,233,244,1,248,64,93,137,108, | ||
346 | 36,8,139,108,36,48,41,202,137,84,36,4,137,113,252,252,137,116,36,24,137,141, | ||
347 | 233,141,68,193,252,248,137,44,36,137,133,233,232,251,1,19,139,141,233,139, | ||
348 | 133,233,41,200,193,232,3,131,192,1,139,113,252,252,139,84,36,4,1,202,139, | ||
349 | 108,36,8,85,139,105,252,248,195,248,134,255,15,182,131,233,168,235,15,133, | ||
350 | 244,251,168,235,15,133,244,247,168,235,15,132,244,247,252,255,139,233,252, | ||
351 | 233,244,247,255,248,135,15,182,131,233,168,235,15,133,244,251,168,235,15, | ||
352 | 132,244,251,252,255,139,233,15,132,244,247,168,235,15,132,244,251,248,1,139, | ||
353 | 108,36,48,139,68,36,20,137,68,36,8,137,149,233,137,116,36,4,137,44,36,232, | ||
354 | 251,1,20,248,4,139,149,233,15,182,78,252,253,248,5,15,182,110,252,252,15, | ||
355 | 183,70,252,254,252,255,164,253,171,233,248,136,255,139,108,36,48,141,139, | ||
356 | 233,137,116,36,4,137,12,36,137,171,233,137,116,36,24,137,149,233,232,251, | ||
357 | 1,21,252,233,244,4,255,248,137,255,139,108,36,48,141,139,233,137,116,36,4, | ||
358 | 137,12,36,137,171,233,137,116,36,24,137,149,233,232,251,1,21,139,149,233, | ||
359 | 139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,248,138, | ||
360 | 255,85,141,108,36,12,85,83,82,81,80,15,182,69,252,252,138,101,252,248,137, | ||
361 | 125,252,252,137,117,252,248,139,93,0,139,139,233,199,131,233,237,137,131, | ||
362 | 233,137,139,233,129,252,236,239,252,247,131,233,237,15,132,244,247,252,242, | ||
363 | 15,17,125,216,252,242,15,17,117,208,252,242,15,17,109,200,252,242,15,17,101, | ||
364 | 192,252,242,15,17,93,184,252,242,15,17,85,176,252,242,15,17,77,168,252,242, | ||
365 | 15,17,69,160,248,1,139,171,233,139,147,233,137,171,233,141,68,36,16,137,149, | ||
366 | 233,141,139,233,137,68,36,4,137,12,36,232,251,1,22,137,196,139,149,233,139, | ||
367 | 116,36,24,137,108,36,48,255,248,139,255,139,122,252,248,139,191,233,139,191, | ||
368 | 233,199,131,233,0,0,0,0,199,131,233,237,139,6,15,182,204,15,182,232,131,198, | ||
369 | 4,193,232,16,252,255,36,171,255,248,79,217,124,36,4,137,68,36,8,102,184,0, | ||
370 | 4,102,11,68,36,4,102,37,252,255,252,247,102,137,68,36,6,217,108,36,6,217, | ||
371 | 252,252,217,108,36,4,139,68,36,8,195,248,81,217,124,36,4,137,68,36,8,102, | ||
372 | 184,0,8,102,11,68,36,4,102,37,252,255,252,251,102,137,68,36,6,217,108,36, | ||
373 | 6,217,252,252,217,108,36,4,139,68,36,8,195,248,102,217,124,36,4,137,68,36, | ||
374 | 8,102,184,0,12,102,11,68,36,4,102,137,68,36,6,217,108,36,6,217,252,252,217, | ||
375 | 108,36,4,139,68,36,8,195,248,140,217,193,216,252,241,217,124,36,4,102,184, | ||
376 | 0,4,102,11,68,36,4,102,37,252,255,252,247,102,137,68,36,6,217,108,36,6,217, | ||
377 | 252,252,217,108,36,4,222,201,222,252,233,195,248,86,217,252,234,222,201,248, | ||
378 | 141,217,84,36,4,129,124,36,4,0,0,128,127,15,132,244,247,129,124,36,4,0,0, | ||
379 | 128,252,255,15,132,244,248,248,142,217,192,217,252,252,220,252,233,217,201, | ||
380 | 217,252,240,217,232,222,193,217,252,253,221,217,248,1,195,248,2,221,216,217, | ||
381 | 252,238,195,248,105,219,84,36,4,219,68,36,4,255,223,252,233,255,80,221,252, | ||
382 | 233,223,224,158,88,255,15,133,244,254,15,138,244,255,221,216,248,143,80,139, | ||
383 | 68,36,8,131,252,248,1,15,142,244,252,248,1,169,1,0,0,0,15,133,244,248,216, | ||
384 | 200,209,232,252,233,244,1,248,2,209,232,15,132,244,251,217,192,248,3,216, | ||
385 | 200,209,232,15,132,244,250,15,131,244,3,220,201,252,233,244,3,248,4,255,222, | ||
386 | 201,248,5,88,195,248,6,15,132,244,5,15,130,244,253,217,232,222,252,241,252, | ||
387 | 247,216,131,252,248,1,15,132,244,5,252,233,244,1,248,7,221,216,217,232,88, | ||
388 | 195,248,8,80,217,84,36,8,217,201,217,84,36,12,139,68,36,8,209,224,61,0,0, | ||
389 | 0,252,255,15,132,244,248,139,68,36,12,209,224,15,132,244,250,61,0,0,0,252, | ||
390 | 255,15,132,244,250,88,217,252,241,252,233,244,142,248,9,217,232,255,223,252, | ||
391 | 234,255,80,221,252,234,223,224,158,88,255,15,132,244,247,217,201,248,1,221, | ||
392 | 216,195,248,2,217,225,217,232,255,221,252,233,223,224,158,255,15,132,244, | ||
393 | 249,221,216,217,225,217,252,238,184,0,0,0,0,15,146,208,209,200,51,68,36,8, | ||
394 | 15,137,244,249,217,201,248,3,221,217,217,225,88,195,248,4,131,124,36,8,0, | ||
395 | 15,141,244,3,221,216,221,216,133,192,88,15,132,244,251,217,252,238,195,248, | ||
396 | 5,199,68,36,8,0,0,128,127,217,68,36,8,195,248,144,139,68,36,12,221,68,36, | ||
397 | 4,131,252,248,1,15,130,244,79,15,132,244,81,131,252,248,3,15,130,244,102, | ||
398 | 15,135,244,247,217,252,250,195,248,1,131,252,248,5,15,130,244,86,255,15,132, | ||
399 | 244,141,131,252,248,7,15,132,244,247,15,135,244,248,217,252,237,217,201,217, | ||
400 | 252,241,195,248,1,217,232,217,201,217,252,241,195,248,2,131,252,248,9,15, | ||
401 | 132,244,247,15,135,244,248,217,252,236,217,201,217,252,241,195,248,1,217, | ||
402 | 252,254,195,248,2,131,252,248,11,15,132,244,247,15,135,244,255,217,252,255, | ||
403 | 195,248,1,217,252,242,221,216,195,248,9,204,248,145,139,68,36,20,221,68,36, | ||
404 | 4,221,68,36,12,131,252,248,1,15,132,244,247,255,15,135,244,248,222,193,195, | ||
405 | 248,1,222,252,233,195,248,2,131,252,248,3,15,132,244,247,15,135,244,248,222, | ||
406 | 201,195,248,1,222,252,249,195,248,2,131,252,248,5,15,130,244,140,15,132,244, | ||
407 | 105,131,252,248,7,15,132,244,247,15,135,244,248,221,216,217,224,195,248,1, | ||
408 | 221,216,217,225,195,248,2,131,252,248,9,15,132,244,247,15,135,244,248,255, | ||
409 | 217,252,243,195,248,1,217,201,217,252,253,221,217,195,248,2,131,252,248,11, | ||
410 | 15,132,244,247,15,135,244,255,255,219,252,233,219,209,221,217,195,248,1,219, | ||
411 | 252,233,218,209,221,217,195,255,221,225,223,224,252,246,196,1,15,132,244, | ||
412 | 248,217,201,248,2,221,216,195,248,1,221,225,223,224,252,246,196,1,15,133, | ||
413 | 244,248,217,201,248,2,221,216,195,255,248,9,204,248,146,156,90,137,209,129, | ||
414 | 252,242,0,0,32,0,82,157,156,90,49,192,57,209,15,132,244,247,139,68,36,4,87, | ||
415 | 83,15,162,139,124,36,16,137,7,137,95,4,137,79,8,137,87,12,91,95,248,1,195, | ||
416 | 255,249,255,129,124,253,202,4,239,15,135,244,41,129,124,253,194,4,239,15, | ||
417 | 135,244,41,221,4,202,221,4,194,131,198,4,255,223,252,233,221,216,255,218, | ||
418 | 252,233,223,224,158,255,15,134,244,248,255,15,131,244,248,255,248,1,15,183, | ||
419 | 70,252,254,141,180,253,134,233,248,2,139,6,15,182,204,15,182,232,131,198, | ||
420 | 4,193,232,16,252,255,36,171,255,139,108,194,4,131,198,4,129,252,253,239,15, | ||
421 | 135,244,251,129,124,253,202,4,239,15,135,244,251,221,4,202,221,4,194,255, | ||
422 | 15,138,244,248,15,133,244,248,255,15,138,244,248,15,132,244,247,255,248,1, | ||
423 | 15,183,70,252,254,141,180,253,134,233,248,2,255,248,2,15,183,70,252,254,141, | ||
424 | 180,253,134,233,248,1,255,248,5,57,108,202,4,15,133,244,2,129,252,253,239, | ||
425 | 15,131,244,1,139,12,202,139,4,194,57,193,15,132,244,1,129,252,253,239,15, | ||
426 | 135,244,2,139,169,233,133,252,237,15,132,244,2,252,246,133,233,235,15,133, | ||
427 | 244,2,255,49,252,237,255,189,1,0,0,0,255,252,233,244,45,255,252,247,208,131, | ||
428 | 198,4,129,124,253,202,4,239,15,133,244,248,139,12,202,59,12,135,255,131,198, | ||
429 | 4,129,124,253,202,4,239,15,135,244,248,221,4,202,221,4,199,255,252,247,208, | ||
430 | 131,198,4,57,68,202,4,255,139,108,194,4,131,198,4,129,252,253,239,255,15, | ||
431 | 131,244,247,255,15,130,244,247,255,137,108,202,4,139,44,194,137,44,202,255, | ||
432 | 15,183,70,252,254,141,180,253,134,233,248,1,139,6,15,182,204,15,182,232,131, | ||
433 | 198,4,193,232,16,252,255,36,171,255,139,108,194,4,139,4,194,137,108,202,4, | ||
434 | 137,4,202,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171, | ||
435 | 255,49,252,237,129,124,253,194,4,239,129,213,239,137,108,202,4,139,6,15,182, | ||
436 | 204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,129,124,253,194,4, | ||
437 | 239,15,135,244,48,221,4,194,217,224,221,28,202,139,6,15,182,204,15,182,232, | ||
438 | 131,198,4,193,232,16,252,255,36,171,255,129,124,253,194,4,239,15,133,244, | ||
439 | 248,139,4,194,219,128,233,248,1,221,28,202,139,6,15,182,204,15,182,232,131, | ||
440 | 198,4,193,232,16,252,255,36,171,248,2,129,124,253,194,4,239,15,133,244,50, | ||
441 | 139,12,194,137,213,232,251,1,18,137,4,36,137,252,234,219,4,36,15,182,78,252, | ||
442 | 253,252,233,244,1,255,15,182,252,236,15,182,192,255,129,124,253,252,234,4, | ||
443 | 239,15,135,244,46,221,4,252,234,220,4,199,255,129,124,253,252,234,4,239,15, | ||
444 | 135,244,47,221,4,199,220,4,252,234,255,129,124,253,252,234,4,239,15,135,244, | ||
445 | 49,129,124,253,194,4,239,15,135,244,49,221,4,252,234,220,4,194,255,129,124, | ||
446 | 253,252,234,4,239,15,135,244,46,221,4,252,234,220,36,199,255,129,124,253, | ||
447 | 252,234,4,239,15,135,244,47,221,4,199,220,36,252,234,255,129,124,253,252, | ||
448 | 234,4,239,15,135,244,49,129,124,253,194,4,239,15,135,244,49,221,4,252,234, | ||
449 | 220,36,194,255,129,124,253,252,234,4,239,15,135,244,46,221,4,252,234,220, | ||
450 | 12,199,255,129,124,253,252,234,4,239,15,135,244,47,221,4,199,220,12,252,234, | ||
451 | 255,129,124,253,252,234,4,239,15,135,244,49,129,124,253,194,4,239,15,135, | ||
452 | 244,49,221,4,252,234,220,12,194,255,129,124,253,252,234,4,239,15,135,244, | ||
453 | 46,221,4,252,234,220,52,199,255,129,124,253,252,234,4,239,15,135,244,47,221, | ||
454 | 4,199,220,52,252,234,255,129,124,253,252,234,4,239,15,135,244,49,129,124, | ||
455 | 253,194,4,239,15,135,244,49,221,4,252,234,220,52,194,255,129,124,253,252, | ||
456 | 234,4,239,15,135,244,46,221,4,252,234,221,4,199,255,129,124,253,252,234,4, | ||
457 | 239,15,135,244,47,221,4,199,221,4,252,234,255,129,124,253,252,234,4,239,15, | ||
458 | 135,244,49,129,124,253,194,4,239,15,135,244,49,221,4,252,234,221,4,194,255, | ||
459 | 248,147,232,244,140,221,28,202,139,6,15,182,204,15,182,232,131,198,4,193, | ||
460 | 232,16,252,255,36,171,255,252,233,244,147,255,232,244,105,221,28,202,139, | ||
461 | 6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,15,182,252, | ||
462 | 236,15,182,192,141,12,194,41,232,137,76,36,4,137,68,36,8,248,33,139,108,36, | ||
463 | 48,137,44,36,137,116,36,24,137,149,233,232,251,1,23,139,149,233,133,192,15, | ||
464 | 133,244,42,15,182,110,252,255,15,182,78,252,253,139,68,252,234,4,139,44,252, | ||
465 | 234,137,68,202,4,137,44,202,139,6,15,182,204,15,182,232,131,198,4,193,232, | ||
466 | 16,252,255,36,171,255,252,247,208,139,4,135,199,68,202,4,237,137,4,202,139, | ||
467 | 6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,223,70,252, | ||
468 | 254,221,28,202,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36, | ||
469 | 171,255,221,4,199,221,28,202,139,6,15,182,204,15,182,232,131,198,4,193,232, | ||
470 | 16,252,255,36,171,255,252,247,208,137,68,202,4,139,6,15,182,204,15,182,232, | ||
471 | 131,198,4,193,232,16,252,255,36,171,255,141,76,202,12,141,68,194,4,189,237, | ||
472 | 137,105,252,248,248,1,137,41,131,193,8,57,193,15,134,244,1,139,6,15,182,204, | ||
473 | 15,182,232,131,198,4,193,232,16,252,255,36,171,255,139,106,252,248,139,172, | ||
474 | 253,133,233,139,173,233,139,69,4,139,109,0,137,68,202,4,137,44,202,139,6, | ||
475 | 15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,139,106,252, | ||
476 | 248,139,172,253,141,233,128,189,233,0,139,173,233,139,12,194,139,68,194,4, | ||
477 | 137,77,0,137,69,4,15,132,244,247,252,246,133,233,235,15,133,244,248,248,1, | ||
478 | 139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,2,129, | ||
479 | 232,239,129,252,248,239,15,134,244,1,252,246,129,233,235,15,132,244,1,135, | ||
480 | 213,141,139,233,232,251,1,24,137,252,234,252,233,244,1,255,252,247,208,139, | ||
481 | 106,252,248,139,172,253,141,233,139,12,135,139,133,233,137,8,199,64,4,237, | ||
482 | 252,246,133,233,235,15,133,244,248,248,1,139,6,15,182,204,15,182,232,131, | ||
483 | 198,4,193,232,16,252,255,36,171,248,2,252,246,129,233,235,15,132,244,1,128, | ||
484 | 189,233,0,15,132,244,1,137,213,137,194,141,139,233,232,251,1,24,137,252,234, | ||
485 | 252,233,244,1,255,139,106,252,248,221,4,199,139,172,253,141,233,139,141,233, | ||
486 | 221,25,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,255, | ||
487 | 252,247,208,139,106,252,248,139,172,253,141,233,139,141,233,137,65,4,139, | ||
488 | 6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,141,180,253, | ||
489 | 134,233,139,108,36,48,131,189,233,0,15,132,244,247,141,12,202,137,76,36,4, | ||
490 | 137,44,36,137,149,233,232,251,1,25,139,149,233,248,1,139,6,15,182,204,15, | ||
491 | 182,232,131,198,4,193,232,16,252,255,36,171,255,252,247,208,139,74,252,248, | ||
492 | 139,4,135,139,108,36,48,137,76,36,8,137,68,36,4,137,116,36,24,137,44,36,137, | ||
493 | 149,233,232,251,1,26,139,149,233,15,182,78,252,253,137,4,202,199,68,202,4, | ||
494 | 237,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,137, | ||
495 | 197,37,252,255,7,0,0,193,252,237,11,61,252,255,7,0,0,15,148,209,137,108,36, | ||
496 | 8,1,200,139,108,36,48,1,200,137,68,36,4,137,116,36,24,139,139,233,137,44, | ||
497 | 36,59,139,233,137,149,233,15,131,244,248,248,1,232,251,1,27,139,149,233,15, | ||
498 | 182,78,252,253,137,4,202,199,68,202,4,237,139,6,15,182,204,15,182,232,131, | ||
499 | 198,4,193,232,16,252,255,36,171,248,2,137,252,233,232,251,1,28,252,233,244, | ||
500 | 1,255,252,247,208,139,108,36,48,139,139,233,137,116,36,24,59,139,233,137, | ||
501 | 149,233,15,131,244,249,248,2,139,20,135,137,252,233,232,251,1,29,139,149, | ||
502 | 233,15,182,78,252,253,137,4,202,199,68,202,4,237,139,6,15,182,204,15,182, | ||
503 | 232,131,198,4,193,232,16,252,255,36,171,248,3,137,252,233,232,251,1,28,15, | ||
504 | 183,70,252,254,252,247,208,252,233,244,2,255,252,247,208,139,106,252,248, | ||
505 | 139,173,233,139,4,135,252,233,244,148,255,252,247,208,139,106,252,248,139, | ||
506 | 173,233,139,4,135,252,233,244,149,255,15,182,252,236,15,182,192,129,124,253, | ||
507 | 252,234,4,239,15,133,244,36,139,44,252,234,129,124,253,194,4,239,15,135,244, | ||
508 | 251,221,4,194,219,20,36,219,4,36,255,139,4,36,15,133,244,36,59,133,233,15, | ||
509 | 131,244,36,193,224,3,3,133,233,129,120,253,4,239,15,132,244,248,248,1,139, | ||
510 | 40,139,64,4,137,44,202,137,68,202,4,139,6,15,182,204,15,182,232,131,198,4, | ||
511 | 193,232,16,252,255,36,171,248,2,131,189,233,0,15,132,244,1,139,141,233,252, | ||
512 | 246,129,233,235,15,132,244,36,15,182,78,252,253,252,233,244,1,248,5,129,124, | ||
513 | 253,194,4,239,255,15,133,244,36,139,4,194,252,233,244,148,255,15,182,252, | ||
514 | 236,15,182,192,252,247,208,139,4,135,129,124,253,252,234,4,239,15,133,244, | ||
515 | 34,139,44,252,234,248,148,139,141,233,35,136,233,105,201,239,3,141,233,248, | ||
516 | 1,129,185,233,239,15,133,244,250,57,129,233,15,133,244,250,129,121,253,4, | ||
517 | 239,15,132,244,251,15,182,70,252,253,139,41,139,73,4,137,44,194,248,2,137, | ||
518 | 76,194,4,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171, | ||
519 | 248,3,15,182,70,252,253,185,237,252,233,244,2,248,4,255,139,137,233,133,201, | ||
520 | 15,133,244,1,248,5,139,141,233,133,201,15,132,244,3,252,246,129,233,235,15, | ||
521 | 133,244,3,252,233,244,34,255,15,182,252,236,15,182,192,129,124,253,252,234, | ||
522 | 4,239,15,133,244,35,139,44,252,234,59,133,233,15,131,244,35,193,224,3,3,133, | ||
523 | 233,129,120,253,4,239,15,132,244,248,248,1,139,40,139,64,4,137,44,202,137, | ||
524 | 68,202,4,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171, | ||
525 | 248,2,131,189,233,0,15,132,244,1,139,141,233,252,246,129,233,235,15,132,244, | ||
526 | 35,15,182,78,252,253,252,233,244,1,255,15,182,252,236,15,182,192,129,124, | ||
527 | 253,252,234,4,239,15,133,244,39,139,44,252,234,129,124,253,194,4,239,15,135, | ||
528 | 244,251,221,4,194,219,20,36,219,4,36,255,139,4,36,15,133,244,39,59,133,233, | ||
529 | 15,131,244,39,193,224,3,3,133,233,129,120,253,4,239,15,132,244,249,248,1, | ||
530 | 252,246,133,233,235,15,133,244,253,248,2,139,108,202,4,139,12,202,137,104, | ||
531 | 4,137,8,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248, | ||
532 | 3,131,189,233,0,15,132,244,1,139,141,233,252,246,129,233,235,15,132,244,39, | ||
533 | 255,15,182,78,252,253,252,233,244,1,248,5,129,124,253,194,4,239,15,133,244, | ||
534 | 39,139,4,194,252,233,244,149,248,7,128,165,233,235,139,139,233,137,171,233, | ||
535 | 137,141,233,15,182,78,252,253,252,233,244,2,255,15,182,252,236,15,182,192, | ||
536 | 252,247,208,139,4,135,129,124,253,252,234,4,239,15,133,244,37,139,44,252, | ||
537 | 234,248,149,139,141,233,35,136,233,105,201,239,198,133,233,0,3,141,233,248, | ||
538 | 1,129,185,233,239,15,133,244,251,57,129,233,15,133,244,251,129,121,253,4, | ||
539 | 239,15,132,244,250,248,2,252,246,133,233,235,255,15,133,244,253,248,3,15, | ||
540 | 182,70,252,253,139,108,194,4,139,4,194,137,105,4,137,1,139,6,15,182,204,15, | ||
541 | 182,232,131,198,4,193,232,16,252,255,36,171,248,4,131,189,233,0,15,132,244, | ||
542 | 2,137,12,36,139,141,233,252,246,129,233,235,15,132,244,37,139,12,36,252,233, | ||
543 | 244,2,248,5,139,137,233,133,201,15,133,244,1,139,141,233,133,201,15,132,244, | ||
544 | 252,252,246,129,233,235,255,15,132,244,37,248,6,137,68,36,16,199,68,36,20, | ||
545 | 237,141,68,36,16,137,108,36,12,137,108,36,4,139,108,36,48,137,68,36,8,137, | ||
546 | 44,36,137,116,36,24,137,149,233,232,251,1,30,139,149,233,139,108,36,12,137, | ||
547 | 193,252,233,244,2,248,7,128,165,233,235,139,131,233,137,171,233,137,133,233, | ||
548 | 252,233,244,3,255,15,182,252,236,15,182,192,129,124,253,252,234,4,239,15, | ||
549 | 133,244,38,139,44,252,234,59,133,233,15,131,244,38,193,224,3,3,133,233,129, | ||
550 | 120,253,4,239,15,132,244,249,248,1,252,246,133,233,235,15,133,244,253,248, | ||
551 | 2,139,108,202,4,139,12,202,137,104,4,137,8,139,6,15,182,204,15,182,232,131, | ||
552 | 198,4,193,232,16,252,255,36,171,248,3,131,189,233,0,15,132,244,1,139,141, | ||
553 | 233,252,246,129,233,235,255,15,132,244,38,15,182,78,252,253,252,233,244,1, | ||
554 | 248,7,128,165,233,235,139,139,233,137,171,233,137,141,233,15,182,78,252,253, | ||
555 | 252,233,244,2,255,137,124,36,16,221,4,199,219,92,36,12,248,1,141,12,202,139, | ||
556 | 105,252,248,252,246,133,233,235,15,133,244,253,248,2,139,68,36,20,139,124, | ||
557 | 36,12,131,232,1,15,132,244,250,1,252,248,59,133,233,15,131,244,251,41,252, | ||
558 | 248,193,231,3,3,189,233,248,3,139,41,137,47,139,105,4,131,193,8,137,111,4, | ||
559 | 131,199,8,131,232,1,15,133,244,3,248,4,139,124,36,16,139,6,15,182,204,15, | ||
560 | 182,232,131,198,4,193,232,16,252,255,36,171,248,5,137,108,36,4,139,108,36, | ||
561 | 48,137,68,36,8,137,44,36,137,116,36,24,137,149,233,232,251,1,31,139,149,233, | ||
562 | 15,182,78,252,253,252,233,244,1,248,7,128,165,233,235,255,139,131,233,137, | ||
563 | 171,233,137,133,233,252,233,244,2,255,3,68,36,20,255,141,76,202,8,139,105, | ||
564 | 252,248,129,121,253,252,252,239,15,133,244,29,252,255,165,233,255,141,76, | ||
565 | 202,8,137,215,139,105,252,248,129,121,253,252,252,239,15,133,244,29,248,51, | ||
566 | 139,114,252,252,252,247,198,237,15,133,244,253,248,1,137,106,252,248,137, | ||
567 | 68,36,20,131,232,1,15,132,244,249,248,2,139,41,137,47,139,105,4,137,111,4, | ||
568 | 131,199,8,131,193,8,131,232,1,15,133,244,2,139,106,252,248,248,3,137,209, | ||
569 | 128,189,233,1,15,135,244,251,248,4,139,68,36,20,252,255,165,233,248,5,252, | ||
570 | 247,198,237,15,133,244,4,255,15,182,70,252,253,252,247,208,141,20,194,139, | ||
571 | 122,252,248,139,191,233,139,191,233,252,233,244,4,248,7,15,139,244,1,131, | ||
572 | 230,252,248,41,252,242,137,215,139,114,252,252,252,233,244,1,255,141,76,202, | ||
573 | 8,139,105,232,139,65,252,236,137,41,137,65,4,139,105,252,240,139,65,252,244, | ||
574 | 137,105,8,137,65,12,139,105,224,139,65,228,137,105,252,248,137,65,252,252, | ||
575 | 129,252,248,239,184,3,0,0,0,15,133,244,29,252,255,165,233,255,15,182,252, | ||
576 | 236,139,66,252,248,141,12,202,139,128,233,15,182,128,233,137,124,36,8,141, | ||
577 | 188,253,194,233,43,122,252,252,133,252,237,15,132,244,251,141,108,252,233, | ||
578 | 252,248,57,215,15,131,244,248,248,1,139,71,252,248,137,1,139,71,252,252,131, | ||
579 | 199,8,137,65,4,131,193,8,57,252,233,15,131,244,249,57,215,15,130,244,1,248, | ||
580 | 2,199,65,4,237,131,193,8,57,252,233,15,130,244,2,248,3,139,124,36,8,139,6, | ||
581 | 15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,5,199,68,36, | ||
582 | 20,1,0,0,0,137,208,41,252,248,15,134,244,3,137,197,193,252,237,3,137,108, | ||
583 | 36,4,131,197,1,137,108,36,20,139,108,36,48,1,200,59,133,233,15,135,244,253, | ||
584 | 248,6,255,139,71,252,248,137,1,139,71,252,252,131,199,8,137,65,4,131,193, | ||
585 | 8,57,215,15,130,244,6,252,233,244,3,248,7,137,149,233,137,141,233,137,116, | ||
586 | 36,24,41,215,137,44,36,232,251,1,0,139,149,233,139,141,233,1,215,252,233, | ||
587 | 244,6,255,193,225,3,255,248,1,139,114,252,252,137,68,36,20,252,247,198,237, | ||
588 | 15,133,244,253,255,248,17,137,215,131,232,1,15,132,244,249,248,2,139,44,15, | ||
589 | 137,111,252,248,139,108,15,4,137,111,252,252,131,199,8,131,232,1,15,133,244, | ||
590 | 2,248,3,139,68,36,20,15,182,110,252,255,248,5,57,197,15,135,244,252,255,139, | ||
591 | 108,10,4,137,106,252,252,139,44,10,137,106,252,248,255,248,5,56,70,252,255, | ||
592 | 15,135,244,252,255,15,182,78,252,253,252,247,209,141,20,202,139,122,252,248, | ||
593 | 139,191,233,139,191,233,139,6,15,182,204,15,182,232,131,198,4,193,232,16, | ||
594 | 252,255,36,171,248,6,255,199,71,252,252,237,131,199,8,255,199,68,194,252, | ||
595 | 244,237,255,131,192,1,252,233,244,5,248,7,15,139,244,18,131,230,252,248,41, | ||
596 | 252,242,255,1,252,241,255,137,252,245,209,252,237,129,229,239,102,131,172, | ||
597 | 253,43,233,1,15,132,244,136,255,141,12,202,255,129,121,253,4,239,15,135,244, | ||
598 | 52,129,121,253,12,239,15,135,244,52,255,139,105,20,255,129,252,253,239,15, | ||
599 | 135,244,52,255,221,65,8,221,1,255,220,65,16,221,17,255,221,81,24,133,252, | ||
600 | 237,15,136,244,247,217,201,248,1,255,15,183,70,252,254,255,15,131,244,248, | ||
601 | 141,180,253,134,233,255,141,180,253,134,233,15,183,70,252,254,15,131,245, | ||
602 | 255,15,130,244,248,141,180,253,134,233,255,141,12,202,139,105,4,129,252,253, | ||
603 | 239,15,132,244,247,255,137,105,252,252,139,41,137,105,252,248,252,233,245, | ||
604 | 255,141,180,253,134,233,139,1,137,105,252,252,137,65,252,248,255,139,139, | ||
605 | 233,139,4,129,139,128,233,139,108,36,48,137,147,233,137,171,233,252,255,224, | ||
606 | 255,141,180,253,134,233,139,6,15,182,204,15,182,232,131,198,4,193,232,16, | ||
607 | 252,255,36,171,255,254,0 | ||
608 | }; | ||
609 | |||
610 | enum { | ||
611 | GLOB_gate_lf, | ||
612 | GLOB_gate_lf_growstack, | ||
613 | GLOB_gate_lv, | ||
614 | GLOB_gate_lv_growstack, | ||
615 | GLOB_gate_cwrap, | ||
616 | GLOB_gate_c_growstack, | ||
617 | GLOB_vm_returnc, | ||
618 | GLOB_BC_RET_Z, | ||
619 | GLOB_vm_return, | ||
620 | GLOB_gate_c, | ||
621 | GLOB_vm_returnp, | ||
622 | GLOB_vm_leave_cp, | ||
623 | GLOB_vm_leave_unw, | ||
624 | GLOB_vm_unwind_c, | ||
625 | GLOB_vm_unwind_ff, | ||
626 | GLOB_cont_dispatch, | ||
627 | GLOB_vm_resume, | ||
628 | GLOB_vm_pcall, | ||
629 | GLOB_vm_call, | ||
630 | GLOB_vmeta_call, | ||
631 | GLOB_vm_cpcall, | ||
632 | GLOB_cont_cat, | ||
633 | GLOB_cont_ra, | ||
634 | GLOB_BC_CAT_Z, | ||
635 | GLOB_vmeta_tgets, | ||
636 | GLOB_vmeta_tgetb, | ||
637 | GLOB_vmeta_tgetv, | ||
638 | GLOB_vmeta_tsets, | ||
639 | GLOB_vmeta_tsetb, | ||
640 | GLOB_vmeta_tsetv, | ||
641 | GLOB_cont_nop, | ||
642 | GLOB_vmeta_comp, | ||
643 | GLOB_vmeta_binop, | ||
644 | GLOB_cont_condt, | ||
645 | GLOB_cont_condf, | ||
646 | GLOB_vmeta_equal, | ||
647 | GLOB_vmeta_arith_vn, | ||
648 | GLOB_vmeta_arith_nv, | ||
649 | GLOB_vmeta_unm, | ||
650 | GLOB_vmeta_arith_vv, | ||
651 | GLOB_vmeta_len, | ||
652 | GLOB_BC_CALLT_Z, | ||
653 | GLOB_vmeta_for, | ||
654 | GLOB_ff_assert, | ||
655 | GLOB_fff_fallback, | ||
656 | GLOB_fff_res_, | ||
657 | GLOB_ff_type, | ||
658 | GLOB_fff_res1, | ||
659 | GLOB_ff_getmetatable, | ||
660 | GLOB_ff_setmetatable, | ||
661 | GLOB_ff_rawget, | ||
662 | GLOB_ff_tonumber, | ||
663 | GLOB_fff_resn, | ||
664 | GLOB_ff_tostring, | ||
665 | GLOB_fff_gcstep, | ||
666 | GLOB_ff_next, | ||
667 | GLOB_fff_res2, | ||
668 | GLOB_fff_res, | ||
669 | GLOB_ff_pairs, | ||
670 | GLOB_ff_ipairs_aux, | ||
671 | GLOB_fff_res0, | ||
672 | GLOB_ff_ipairs, | ||
673 | GLOB_ff_pcall, | ||
674 | GLOB_ff_xpcall, | ||
675 | GLOB_ff_coroutine_resume, | ||
676 | GLOB_ff_coroutine_wrap_aux, | ||
677 | GLOB_ff_coroutine_yield, | ||
678 | GLOB_ff_math_abs, | ||
679 | GLOB_ff_math_floor, | ||
680 | GLOB_vm_floor, | ||
681 | GLOB_ff_math_ceil, | ||
682 | GLOB_vm_ceil, | ||
683 | GLOB_ff_math_sqrt, | ||
684 | GLOB_ff_math_log, | ||
685 | GLOB_ff_math_log10, | ||
686 | GLOB_ff_math_exp, | ||
687 | GLOB_vm_exp, | ||
688 | GLOB_ff_math_sin, | ||
689 | GLOB_ff_math_cos, | ||
690 | GLOB_ff_math_tan, | ||
691 | GLOB_ff_math_asin, | ||
692 | GLOB_ff_math_acos, | ||
693 | GLOB_ff_math_atan, | ||
694 | GLOB_ff_math_sinh, | ||
695 | GLOB_ff_math_cosh, | ||
696 | GLOB_ff_math_tanh, | ||
697 | GLOB_ff_math_deg, | ||
698 | GLOB_ff_math_rad, | ||
699 | GLOB_ff_math_atan2, | ||
700 | GLOB_ff_math_ldexp, | ||
701 | GLOB_ff_math_frexp, | ||
702 | GLOB_ff_math_modf, | ||
703 | GLOB_vm_trunc, | ||
704 | GLOB_ff_math_fmod, | ||
705 | GLOB_ff_math_pow, | ||
706 | GLOB_vm_pow, | ||
707 | GLOB_ff_math_min, | ||
708 | GLOB_ff_math_max, | ||
709 | GLOB_ff_string_len, | ||
710 | GLOB_ff_string_byte, | ||
711 | GLOB_ff_string_char, | ||
712 | GLOB_fff_newstr, | ||
713 | GLOB_ff_string_sub, | ||
714 | GLOB_fff_emptystr, | ||
715 | GLOB_ff_string_rep, | ||
716 | GLOB_fff_fallback_2, | ||
717 | GLOB_ff_string_reverse, | ||
718 | GLOB_fff_fallback_1, | ||
719 | GLOB_ff_string_lower, | ||
720 | GLOB_ff_string_upper, | ||
721 | GLOB_ff_table_getn, | ||
722 | GLOB_ff_bit_tobit, | ||
723 | GLOB_ff_bit_band, | ||
724 | GLOB_fff_resbit, | ||
725 | GLOB_fff_fallback_bit_op, | ||
726 | GLOB_ff_bit_bor, | ||
727 | GLOB_ff_bit_bxor, | ||
728 | GLOB_ff_bit_bswap, | ||
729 | GLOB_ff_bit_bnot, | ||
730 | GLOB_ff_bit_lshift, | ||
731 | GLOB_ff_bit_rshift, | ||
732 | GLOB_ff_bit_arshift, | ||
733 | GLOB_ff_bit_rol, | ||
734 | GLOB_ff_bit_ror, | ||
735 | GLOB_vm_record, | ||
736 | GLOB_vm_hook, | ||
737 | GLOB_vm_hotloop, | ||
738 | GLOB_vm_hotcall, | ||
739 | GLOB_vm_exit_handler, | ||
740 | GLOB_vm_exit_interp, | ||
741 | GLOB_vm_mod, | ||
742 | GLOB_vm_exp2, | ||
743 | GLOB_vm_exp2raw, | ||
744 | GLOB_vm_powi, | ||
745 | GLOB_vm_foldfpm, | ||
746 | GLOB_vm_foldarith, | ||
747 | GLOB_vm_cpuid, | ||
748 | GLOB_BC_MODVN_Z, | ||
749 | GLOB_BC_TGETS_Z, | ||
750 | GLOB_BC_TSETS_Z, | ||
751 | GLOB__MAX | ||
752 | }; | ||
753 | static const char *const globnames[] = { | ||
754 | "gate_lf", | ||
755 | "gate_lf_growstack", | ||
756 | "gate_lv", | ||
757 | "gate_lv_growstack", | ||
758 | "gate_cwrap", | ||
759 | "gate_c_growstack", | ||
760 | "vm_returnc", | ||
761 | "BC_RET_Z", | ||
762 | "vm_return", | ||
763 | "gate_c", | ||
764 | "vm_returnp", | ||
765 | "vm_leave_cp", | ||
766 | "vm_leave_unw", | ||
767 | "vm_unwind_c", | ||
768 | "vm_unwind_ff", | ||
769 | "cont_dispatch", | ||
770 | "vm_resume", | ||
771 | "vm_pcall", | ||
772 | "vm_call", | ||
773 | "vmeta_call", | ||
774 | "vm_cpcall", | ||
775 | "cont_cat", | ||
776 | "cont_ra", | ||
777 | "BC_CAT_Z", | ||
778 | "vmeta_tgets", | ||
779 | "vmeta_tgetb", | ||
780 | "vmeta_tgetv", | ||
781 | "vmeta_tsets", | ||
782 | "vmeta_tsetb", | ||
783 | "vmeta_tsetv", | ||
784 | "cont_nop", | ||
785 | "vmeta_comp", | ||
786 | "vmeta_binop", | ||
787 | "cont_condt", | ||
788 | "cont_condf", | ||
789 | "vmeta_equal", | ||
790 | "vmeta_arith_vn", | ||
791 | "vmeta_arith_nv", | ||
792 | "vmeta_unm", | ||
793 | "vmeta_arith_vv", | ||
794 | "vmeta_len", | ||
795 | "BC_CALLT_Z", | ||
796 | "vmeta_for", | ||
797 | "ff_assert", | ||
798 | "fff_fallback", | ||
799 | "fff_res_", | ||
800 | "ff_type", | ||
801 | "fff_res1", | ||
802 | "ff_getmetatable", | ||
803 | "ff_setmetatable", | ||
804 | "ff_rawget", | ||
805 | "ff_tonumber", | ||
806 | "fff_resn", | ||
807 | "ff_tostring", | ||
808 | "fff_gcstep", | ||
809 | "ff_next", | ||
810 | "fff_res2", | ||
811 | "fff_res", | ||
812 | "ff_pairs", | ||
813 | "ff_ipairs_aux", | ||
814 | "fff_res0", | ||
815 | "ff_ipairs", | ||
816 | "ff_pcall", | ||
817 | "ff_xpcall", | ||
818 | "ff_coroutine_resume", | ||
819 | "ff_coroutine_wrap_aux", | ||
820 | "ff_coroutine_yield", | ||
821 | "ff_math_abs", | ||
822 | "ff_math_floor", | ||
823 | "vm_floor", | ||
824 | "ff_math_ceil", | ||
825 | "vm_ceil", | ||
826 | "ff_math_sqrt", | ||
827 | "ff_math_log", | ||
828 | "ff_math_log10", | ||
829 | "ff_math_exp", | ||
830 | "vm_exp", | ||
831 | "ff_math_sin", | ||
832 | "ff_math_cos", | ||
833 | "ff_math_tan", | ||
834 | "ff_math_asin", | ||
835 | "ff_math_acos", | ||
836 | "ff_math_atan", | ||
837 | "ff_math_sinh", | ||
838 | "ff_math_cosh", | ||
839 | "ff_math_tanh", | ||
840 | "ff_math_deg", | ||
841 | "ff_math_rad", | ||
842 | "ff_math_atan2", | ||
843 | "ff_math_ldexp", | ||
844 | "ff_math_frexp", | ||
845 | "ff_math_modf", | ||
846 | "vm_trunc", | ||
847 | "ff_math_fmod", | ||
848 | "ff_math_pow", | ||
849 | "vm_pow", | ||
850 | "ff_math_min", | ||
851 | "ff_math_max", | ||
852 | "ff_string_len", | ||
853 | "ff_string_byte", | ||
854 | "ff_string_char", | ||
855 | "fff_newstr", | ||
856 | "ff_string_sub", | ||
857 | "fff_emptystr", | ||
858 | "ff_string_rep", | ||
859 | "fff_fallback_2", | ||
860 | "ff_string_reverse", | ||
861 | "fff_fallback_1", | ||
862 | "ff_string_lower", | ||
863 | "ff_string_upper", | ||
864 | "ff_table_getn", | ||
865 | "ff_bit_tobit", | ||
866 | "ff_bit_band", | ||
867 | "fff_resbit", | ||
868 | "fff_fallback_bit_op", | ||
869 | "ff_bit_bor", | ||
870 | "ff_bit_bxor", | ||
871 | "ff_bit_bswap", | ||
872 | "ff_bit_bnot", | ||
873 | "ff_bit_lshift", | ||
874 | "ff_bit_rshift", | ||
875 | "ff_bit_arshift", | ||
876 | "ff_bit_rol", | ||
877 | "ff_bit_ror", | ||
878 | "vm_record", | ||
879 | "vm_hook", | ||
880 | "vm_hotloop", | ||
881 | "vm_hotcall", | ||
882 | "vm_exit_handler", | ||
883 | "vm_exit_interp", | ||
884 | "vm_mod", | ||
885 | "vm_exp2", | ||
886 | "vm_exp2raw", | ||
887 | "vm_powi", | ||
888 | "vm_foldfpm", | ||
889 | "vm_foldarith", | ||
890 | "vm_cpuid", | ||
891 | "BC_MODVN_Z", | ||
892 | "BC_TGETS_Z", | ||
893 | "BC_TSETS_Z", | ||
894 | (const char *)0 | ||
895 | }; | ||
896 | static const char *const extnames[] = { | ||
897 | "lj_state_growstack", | ||
898 | "lj_meta_tget", | ||
899 | "lj_meta_tset", | ||
900 | "lj_meta_comp", | ||
901 | "lj_meta_equal", | ||
902 | "lj_meta_arith", | ||
903 | "lj_meta_len", | ||
904 | "lj_meta_call", | ||
905 | "lj_meta_for", | ||
906 | "lj_tab_get", | ||
907 | "lj_str_fromnum@8", | ||
908 | "lj_tab_next", | ||
909 | "lj_tab_getinth", | ||
910 | "lj_ffh_coroutine_wrap_err", | ||
911 | "lj_wrapper_sinh", | ||
912 | "lj_wrapper_cosh", | ||
913 | "lj_wrapper_tanh", | ||
914 | "lj_str_new", | ||
915 | "lj_tab_len@4", | ||
916 | "lj_gc_step", | ||
917 | "lj_dispatch_ins", | ||
918 | "lj_trace_hot", | ||
919 | "lj_trace_exit", | ||
920 | "lj_meta_cat", | ||
921 | "lj_gc_barrieruv@8", | ||
922 | "lj_func_closeuv", | ||
923 | "lj_func_newL_gc", | ||
924 | "lj_tab_new", | ||
925 | "lj_gc_step_fixtop@4", | ||
926 | "lj_tab_dup@8", | ||
927 | "lj_tab_newkey", | ||
928 | "lj_tab_reasize", | ||
929 | (const char *)0 | ||
930 | }; | ||
931 | #define Dt1(_V) (int)(ptrdiff_t)&(((lua_State *)0)_V) | ||
932 | #define Dt2(_V) (int)(ptrdiff_t)&(((global_State *)0)_V) | ||
933 | #define Dt3(_V) (int)(ptrdiff_t)&(((TValue *)0)_V) | ||
934 | #define Dt4(_V) (int)(ptrdiff_t)&(((GCobj *)0)_V) | ||
935 | #define Dt5(_V) (int)(ptrdiff_t)&(((GCstr *)0)_V) | ||
936 | #define Dt6(_V) (int)(ptrdiff_t)&(((GCtab *)0)_V) | ||
937 | #define Dt7(_V) (int)(ptrdiff_t)&(((GCfuncL *)0)_V) | ||
938 | #define Dt8(_V) (int)(ptrdiff_t)&(((GCfuncC *)0)_V) | ||
939 | #define Dt9(_V) (int)(ptrdiff_t)&(((GCproto *)0)_V) | ||
940 | #define DtA(_V) (int)(ptrdiff_t)&(((GCupval *)0)_V) | ||
941 | #define DtB(_V) (int)(ptrdiff_t)&(((Node *)0)_V) | ||
942 | #define DtC(_V) (int)(ptrdiff_t)&(((int *)0)_V) | ||
943 | #define DtD(_V) (int)(ptrdiff_t)&(((Trace *)0)_V) | ||
944 | #define DtE(_V) (int)(ptrdiff_t)&(((ExitInfo *)0)_V) | ||
945 | #define DISPATCH_GL(field) (GG_DISP2G + (int)offsetof(global_State, field)) | ||
946 | #define DISPATCH_J(field) (GG_DISP2J + (int)offsetof(jit_State, field)) | ||
947 | |||
948 | /* Generate subroutines used by opcodes and other parts of the VM. */ | ||
949 | /* The .code_sub section should be last to help static branch prediction. */ | ||
950 | static void build_subroutines(BuildCtx *ctx, int cmov) | ||
951 | { | ||
952 | dasm_put(Dst, 0); | ||
953 | dasm_put(Dst, 2, Dt7(->pt), Dt9(->framesize), Dt9(->bc), Dt9(->k), Dt1(->maxstack), LJ_TNIL); | ||
954 | #if LJ_HASJIT | ||
955 | #endif | ||
956 | dasm_put(Dst, 63, FRAME_VARG, -FRAME_VARG, Dt7(->pt), Dt9(->framesize), Dt1(->maxstack), Dt9(->numparams), LJ_TNIL, Dt9(->framesize), Dt9(->bc), Dt9(->k)); | ||
957 | dasm_put(Dst, 203, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->top), Dt1(->maxstack), DISPATCH_GL(vmstate), ~LJ_VMST_C, DISPATCH_GL(wrapf), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top), FRAME_TYPE, Dt8(->f), Dt1(->base)); | ||
958 | dasm_put(Dst, 309, 8*LUA_MINSTACK, Dt1(->top), Dt1(->maxstack), DISPATCH_GL(vmstate), ~LJ_VMST_C, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top), FRAME_TYPE, FRAME_C, DISPATCH_GL(vmstate), ~LJ_VMST_C); | ||
959 | dasm_put(Dst, 398, Dt1(->base), Dt1(->top), Dt1(->cframe), Dt1(->maxstack), LJ_TNIL); | ||
960 | dasm_put(Dst, 511, Dt1(->top), Dt1(->top), CFRAME_RAWMASK, Dt1(->glref), Dt2(->vmstate), ~LJ_VMST_C, CFRAME_RAWMASK, 1+1, Dt1(->base), Dt1(->glref), GG_G2DISP, LJ_TFALSE); | ||
961 | dasm_put(Dst, 628, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, FRAME_P, LJ_TTRUE, LUA_MINSTACK, Dt9(->bc), Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top)); | ||
962 | dasm_put(Dst, 743, Dt7(->gate), FRAME_C, CFRAME_RESUME, Dt1(->glref), GG_G2DISP, Dt1(->cframe), Dt1(->status), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->status), Dt1(->base), Dt1(->top), FRAME_TYPE, FRAME_CP); | ||
963 | dasm_put(Dst, 872, FRAME_C, Dt1(->cframe), Dt1(->cframe), Dt1(->glref), GG_G2DISP, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top), LJ_TFUNC, Dt7(->gate), Dt1(->stack), Dt1(->top), Dt1(->cframe), Dt1(->cframe)); | ||
964 | dasm_put(Dst, 1035, FRAME_CP, LJ_TNIL, Dt7(->pt), Dt9(->k), LJ_TSTR, BC_GGET, DISPATCH_GL(tmptv), LJ_TTAB); | ||
965 | dasm_put(Dst, 1203, Dt1(->base), Dt1(->base), Dt1(->top), FRAME_CONT, Dt7(->gate), LJ_TSTR, BC_GSET, DISPATCH_GL(tmptv), LJ_TTAB); | ||
966 | dasm_put(Dst, 1392, Dt1(->base), Dt1(->base), Dt1(->top), FRAME_CONT, Dt7(->gate), Dt1(->base), Dt1(->base), -BCBIAS_J*4); | ||
967 | dasm_put(Dst, 1610, LJ_TISTRUECOND, LJ_TISTRUECOND, Dt1(->base)); | ||
968 | dasm_put(Dst, 1734, Dt1(->base), Dt1(->base), FRAME_CONT, LJ_TFUNC, Dt7(->gate), Dt1(->base), Dt1(->base), Dt1(->base), Dt1(->base), Dt7(->gate)); | ||
969 | dasm_put(Dst, 1940, Dt1(->base), Dt1(->base), GG_DISP_STATIC*4, 1+1, LJ_TISTRUECOND, 1+1, ~LJ_TNUMX); | ||
970 | dasm_put(Dst, 2083); | ||
971 | if (cmov) { | ||
972 | dasm_put(Dst, 2089); | ||
973 | } else { | ||
974 | dasm_put(Dst, 2093); | ||
975 | } | ||
976 | dasm_put(Dst, 2102, ((char *)(&((GCfuncC *)0)->upvalue)), LJ_TSTR, 1+1, LJ_TTAB, Dt6(->metatable), LJ_TNIL, DISPATCH_GL(mmname)+4*MM_metatable, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node)); | ||
977 | dasm_put(Dst, 2200, DtB(->key.it), LJ_TSTR, DtB(->key.gcr), DtB(->next), LJ_TNIL, LJ_TUDATA); | ||
978 | dasm_put(Dst, 2271, LJ_TISNUM, LJ_TNUMX, DISPATCH_GL(gcroot[GCROOT_BASEMT]), 2+1, LJ_TTAB, Dt6(->metatable), LJ_TTAB, Dt6(->metatable), LJ_TTAB); | ||
979 | dasm_put(Dst, 2345, Dt6(->marked), LJ_GC_BLACK, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist), 2+1, LJ_TTAB, 1+1); | ||
980 | dasm_put(Dst, 2457, LJ_TISNUM, 1+1, LJ_TSTR, LJ_TSTR, LJ_TISNUM, DISPATCH_GL(gcroot[GCROOT_BASEMT_NUM])); | ||
981 | dasm_put(Dst, 2528, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), 1+1, LJ_TTAB); | ||
982 | dasm_put(Dst, 2612, Dt1(->base), Dt1(->base), 1+2, LJ_TNIL, LJ_TNIL, 1+1, LJ_TTAB); | ||
983 | dasm_put(Dst, 2738, Dt8(->upvalue[0]), LJ_TFUNC, LJ_TNIL, 1+3, 1+1, LJ_TTAB, LJ_TISNUM, Dt6(->asize), Dt6(->array), LJ_TNIL); | ||
984 | dasm_put(Dst, 2834, Dt6(->hmask), 1+0, 1+1, LJ_TTAB, Dt8(->upvalue[0]), LJ_TFUNC, 1+3); | ||
985 | dasm_put(Dst, 2938, 1+1, 8+FRAME_PCALL, DISPATCH_GL(hookmask), HOOK_ACTIVE, LJ_TFUNC, Dt7(->gate), 2+1, LJ_TFUNC); | ||
986 | dasm_put(Dst, 3020, LJ_TFUNC, 2*8+FRAME_PCALL, 2*8, 1+1, LJ_TTHREAD, Dt1(->cframe), Dt1(->status), LUA_YIELD, Dt1(->top)); | ||
987 | dasm_put(Dst, 3120, Dt1(->base), Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->top), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base)); | ||
988 | dasm_put(Dst, 3241, LUA_YIELD, Dt1(->base), Dt1(->top), Dt1(->top), Dt1(->maxstack), LJ_TTRUE, FRAME_TYPE); | ||
989 | dasm_put(Dst, 3355, LJ_TFALSE, Dt1(->top), Dt1(->top), 1+2, Dt1(->top), Dt1(->base), Dt8(->upvalue[0].gcr), Dt1(->cframe), Dt1(->status), LUA_YIELD); | ||
990 | dasm_put(Dst, 3455, Dt1(->top), Dt1(->base), Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->top), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP); | ||
991 | dasm_put(Dst, 3567, Dt1(->base), LUA_YIELD, Dt1(->base), Dt1(->top), Dt1(->top), Dt1(->maxstack), FRAME_TYPE); | ||
992 | dasm_put(Dst, 3679, Dt1(->top), Dt1(->base), Dt1(->cframe), CFRAME_CANYIELD, Dt1(->base), Dt1(->top), Dt1(->cframe), LUA_YIELD, Dt1(->status), 1+1, LJ_TISNUM); | ||
993 | dasm_put(Dst, 3780, 1+1, FRAME_TYPE, LJ_TNIL, 1+1, LJ_TISNUM); | ||
994 | dasm_put(Dst, 3886, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM); | ||
995 | dasm_put(Dst, 3947, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1); | ||
996 | dasm_put(Dst, 4029, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM); | ||
997 | dasm_put(Dst, 4095, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1); | ||
998 | dasm_put(Dst, 4184, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM); | ||
999 | dasm_put(Dst, 4293, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM); | ||
1000 | dasm_put(Dst, 4399, Dt8(->upvalue[0]), 2+1, LJ_TISNUM, LJ_TISNUM, 2+1, LJ_TISNUM); | ||
1001 | dasm_put(Dst, 4472, LJ_TISNUM, 1+1, LJ_TISNUM, 1+2); | ||
1002 | dasm_put(Dst, 4612, 1+1, LJ_TISNUM, 1+2); | ||
1003 | dasm_put(Dst, 4730, 2+1, LJ_TISNUM, LJ_TISNUM, 2+1); | ||
1004 | dasm_put(Dst, 4817, LJ_TISNUM, LJ_TISNUM, 1+1, LJ_TISNUM, LJ_TISNUM); | ||
1005 | dasm_put(Dst, 4894); | ||
1006 | if (cmov) { | ||
1007 | dasm_put(Dst, 4901); | ||
1008 | } else { | ||
1009 | dasm_put(Dst, 4909); | ||
1010 | } | ||
1011 | dasm_put(Dst, 4930, 1+1, LJ_TISNUM, LJ_TISNUM); | ||
1012 | if (cmov) { | ||
1013 | dasm_put(Dst, 4990); | ||
1014 | } else { | ||
1015 | dasm_put(Dst, 4998); | ||
1016 | } | ||
1017 | dasm_put(Dst, 5019, 1+1, LJ_TSTR, Dt5(->len), 1+1, LJ_TSTR, Dt5(->len)); | ||
1018 | dasm_put(Dst, 5088, Dt5([1]), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+1, LJ_TISNUM, Dt1(->base)); | ||
1019 | dasm_put(Dst, 5196, Dt1(->base), LJ_TSTR, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+2, LJ_TISNUM, LJ_TSTR); | ||
1020 | dasm_put(Dst, 5293, LJ_TISNUM, Dt5(->len), sizeof(GCstr)-1); | ||
1021 | dasm_put(Dst, 5399, 2+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR); | ||
1022 | dasm_put(Dst, 5471, LJ_TISNUM, Dt5(->len), DISPATCH_GL(tmpbuf.sz), Dt5([1]), DISPATCH_GL(tmpbuf.buf), 1+1); | ||
1023 | dasm_put(Dst, 5563, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf)); | ||
1024 | dasm_put(Dst, 5657, 1+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf)); | ||
1025 | dasm_put(Dst, 5743, 1+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len)); | ||
1026 | dasm_put(Dst, 5821, DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf), 1+1, LJ_TTAB); | ||
1027 | dasm_put(Dst, 5915, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM); | ||
1028 | dasm_put(Dst, 6048, LJ_TISNUM, 1+1, LJ_TISNUM, LJ_TISNUM, 1+1); | ||
1029 | dasm_put(Dst, 6171, LJ_TISNUM, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1); | ||
1030 | dasm_put(Dst, 6301, LJ_TISNUM, 2+1, LJ_TISNUM, LJ_TISNUM, 2+1); | ||
1031 | dasm_put(Dst, 6435, LJ_TISNUM, LJ_TISNUM, 2+1, LJ_TISNUM, LJ_TISNUM); | ||
1032 | dasm_put(Dst, 6580, 2+1, LJ_TISNUM, LJ_TISNUM, 2+1, LJ_TISNUM, LJ_TISNUM); | ||
1033 | dasm_put(Dst, 6727, 1+2, 1+1, Dt1(->base), 8*LUA_MINSTACK, Dt1(->top), Dt1(->maxstack), Dt8(->f), Dt1(->base), Dt1(->top), Dt7(->gate), LJ_TFUNC); | ||
1034 | dasm_put(Dst, 6842, Dt7(->gate), Dt1(->base), LUA_MINSTACK, Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top)); | ||
1035 | #if LJ_HASJIT | ||
1036 | dasm_put(Dst, 6960, DISPATCH_GL(hookmask), HOOK_VMEVENT, HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount)); | ||
1037 | #endif | ||
1038 | dasm_put(Dst, 6991, DISPATCH_GL(hookmask), HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount), LUA_MASKLINE, Dt1(->base), Dt1(->base), GG_DISP_STATIC*4); | ||
1039 | #if LJ_HASJIT | ||
1040 | dasm_put(Dst, 7082, GG_DISP2J, DISPATCH_J(L), Dt1(->base)); | ||
1041 | #endif | ||
1042 | dasm_put(Dst, 7115); | ||
1043 | #if LJ_HASJIT | ||
1044 | dasm_put(Dst, 7118, GG_DISP2J, DISPATCH_J(L), Dt1(->base), Dt1(->base)); | ||
1045 | #endif | ||
1046 | dasm_put(Dst, 7168); | ||
1047 | #if LJ_HASJIT | ||
1048 | dasm_put(Dst, 7171, DISPATCH_GL(vmstate), DISPATCH_GL(vmstate), ~LJ_VMST_EXIT, DISPATCH_J(exitno), DISPATCH_J(parent), 8*8+16, DISPATCH_J(flags), JIT_F_SSE2, DISPATCH_GL(jit_L), DISPATCH_GL(jit_base), DISPATCH_J(L), Dt1(->base), GG_DISP2J, Dt1(->base)); | ||
1049 | #endif | ||
1050 | dasm_put(Dst, 7321); | ||
1051 | #if LJ_HASJIT | ||
1052 | dasm_put(Dst, 7324, Dt7(->pt), Dt9(->k), DISPATCH_GL(jit_L), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP); | ||
1053 | #endif | ||
1054 | dasm_put(Dst, 7364); | ||
1055 | if (cmov) { | ||
1056 | dasm_put(Dst, 7628); | ||
1057 | } else { | ||
1058 | dasm_put(Dst, 7632); | ||
1059 | } | ||
1060 | dasm_put(Dst, 7641); | ||
1061 | dasm_put(Dst, 7718); | ||
1062 | if (cmov) { | ||
1063 | dasm_put(Dst, 7824); | ||
1064 | } else { | ||
1065 | dasm_put(Dst, 7828); | ||
1066 | } | ||
1067 | dasm_put(Dst, 7837); | ||
1068 | if (cmov) { | ||
1069 | dasm_put(Dst, 7628); | ||
1070 | } else { | ||
1071 | dasm_put(Dst, 7855); | ||
1072 | } | ||
1073 | dasm_put(Dst, 7862); | ||
1074 | dasm_put(Dst, 7991); | ||
1075 | dasm_put(Dst, 8107); | ||
1076 | dasm_put(Dst, 8196); | ||
1077 | if (cmov) { | ||
1078 | dasm_put(Dst, 8225); | ||
1079 | } else { | ||
1080 | dasm_put(Dst, 8244); | ||
1081 | } | ||
1082 | dasm_put(Dst, 8285); | ||
1083 | } | ||
1084 | |||
1085 | /* Generate the code for a single instruction. */ | ||
1086 | static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov) | ||
1087 | { | ||
1088 | int vk = 0; | ||
1089 | dasm_put(Dst, 8342, defop); | ||
1090 | |||
1091 | switch (op) { | ||
1092 | |||
1093 | /* -- Comparison ops ---------------------------------------------------- */ | ||
1094 | |||
1095 | /* Remember: all ops branch for a true comparison, fall through otherwise. */ | ||
1096 | |||
1097 | case BC_ISLT: case BC_ISGE: case BC_ISLE: case BC_ISGT: | ||
1098 | dasm_put(Dst, 8344, LJ_TISNUM, LJ_TISNUM); | ||
1099 | if (cmov) { | ||
1100 | dasm_put(Dst, 8374); | ||
1101 | } else { | ||
1102 | dasm_put(Dst, 8380); | ||
1103 | } | ||
1104 | switch (op) { | ||
1105 | case BC_ISLT: | ||
1106 | dasm_put(Dst, 8387); | ||
1107 | break; | ||
1108 | case BC_ISGE: | ||
1109 | dasm_put(Dst, 8191); | ||
1110 | break; | ||
1111 | case BC_ISLE: | ||
1112 | dasm_put(Dst, 5738); | ||
1113 | break; | ||
1114 | case BC_ISGT: | ||
1115 | dasm_put(Dst, 8392); | ||
1116 | break; | ||
1117 | default: break; /* Shut up GCC. */ | ||
1118 | } | ||
1119 | dasm_put(Dst, 8397, -BCBIAS_J*4); | ||
1120 | break; | ||
1121 | |||
1122 | case BC_ISEQV: case BC_ISNEV: | ||
1123 | vk = op == BC_ISEQV; | ||
1124 | dasm_put(Dst, 8430, LJ_TISNUM, LJ_TISNUM); | ||
1125 | if (cmov) { | ||
1126 | dasm_put(Dst, 8374); | ||
1127 | } else { | ||
1128 | dasm_put(Dst, 8380); | ||
1129 | } | ||
1130 | iseqne_fp: | ||
1131 | if (vk) { | ||
1132 | dasm_put(Dst, 8462); | ||
1133 | } else { | ||
1134 | dasm_put(Dst, 8471); | ||
1135 | } | ||
1136 | iseqne_end: | ||
1137 | if (vk) { | ||
1138 | dasm_put(Dst, 8480, -BCBIAS_J*4); | ||
1139 | } else { | ||
1140 | dasm_put(Dst, 8495, -BCBIAS_J*4); | ||
1141 | } | ||
1142 | dasm_put(Dst, 7149); | ||
1143 | if (op == BC_ISEQV || op == BC_ISNEV) { | ||
1144 | dasm_put(Dst, 8510, LJ_TISPRI, LJ_TISTABUD, Dt6(->metatable), Dt6(->nomm), 1<<MM_eq); | ||
1145 | if (vk) { | ||
1146 | dasm_put(Dst, 8568); | ||
1147 | } else { | ||
1148 | dasm_put(Dst, 8572); | ||
1149 | } | ||
1150 | dasm_put(Dst, 8578); | ||
1151 | } | ||
1152 | break; | ||
1153 | case BC_ISEQS: case BC_ISNES: | ||
1154 | vk = op == BC_ISEQS; | ||
1155 | dasm_put(Dst, 8583, LJ_TSTR); | ||
1156 | iseqne_test: | ||
1157 | if (vk) { | ||
1158 | dasm_put(Dst, 8466); | ||
1159 | } else { | ||
1160 | dasm_put(Dst, 8102); | ||
1161 | } | ||
1162 | goto iseqne_end; | ||
1163 | case BC_ISEQN: case BC_ISNEN: | ||
1164 | vk = op == BC_ISEQN; | ||
1165 | dasm_put(Dst, 8606, LJ_TISNUM); | ||
1166 | if (cmov) { | ||
1167 | dasm_put(Dst, 8374); | ||
1168 | } else { | ||
1169 | dasm_put(Dst, 8380); | ||
1170 | } | ||
1171 | goto iseqne_fp; | ||
1172 | case BC_ISEQP: case BC_ISNEP: | ||
1173 | vk = op == BC_ISEQP; | ||
1174 | dasm_put(Dst, 8626); | ||
1175 | goto iseqne_test; | ||
1176 | |||
1177 | /* -- Unary test and copy ops ------------------------------------------- */ | ||
1178 | |||
1179 | case BC_ISTC: case BC_ISFC: case BC_IST: case BC_ISF: | ||
1180 | dasm_put(Dst, 8637, LJ_TISTRUECOND); | ||
1181 | if (op == BC_IST || op == BC_ISTC) { | ||
1182 | dasm_put(Dst, 8649); | ||
1183 | } else { | ||
1184 | dasm_put(Dst, 8654); | ||
1185 | } | ||
1186 | if (op == BC_ISTC || op == BC_ISFC) { | ||
1187 | dasm_put(Dst, 8659); | ||
1188 | } | ||
1189 | dasm_put(Dst, 8670, -BCBIAS_J*4); | ||
1190 | break; | ||
1191 | |||
1192 | /* -- Unary ops --------------------------------------------------------- */ | ||
1193 | |||
1194 | case BC_MOV: | ||
1195 | dasm_put(Dst, 8701); | ||
1196 | break; | ||
1197 | case BC_NOT: | ||
1198 | dasm_put(Dst, 8734, LJ_TISTRUECOND, LJ_TTRUE); | ||
1199 | break; | ||
1200 | case BC_UNM: | ||
1201 | dasm_put(Dst, 8769, LJ_TISNUM); | ||
1202 | break; | ||
1203 | case BC_LEN: | ||
1204 | dasm_put(Dst, 8806, LJ_TSTR, Dt5(->len), LJ_TTAB); | ||
1205 | break; | ||
1206 | |||
1207 | /* -- Binary ops -------------------------------------------------------- */ | ||
1208 | |||
1209 | |||
1210 | case BC_ADDVN: case BC_ADDNV: case BC_ADDVV: | ||
1211 | dasm_put(Dst, 8885); | ||
1212 | vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); | ||
1213 | switch (vk) { | ||
1214 | case 0: | ||
1215 | dasm_put(Dst, 8893, LJ_TISNUM); | ||
1216 | break; | ||
1217 | case 1: | ||
1218 | dasm_put(Dst, 8912, LJ_TISNUM); | ||
1219 | break; | ||
1220 | default: | ||
1221 | dasm_put(Dst, 8931, LJ_TISNUM, LJ_TISNUM); | ||
1222 | break; | ||
1223 | } | ||
1224 | dasm_put(Dst, 8784); | ||
1225 | break; | ||
1226 | case BC_SUBVN: case BC_SUBNV: case BC_SUBVV: | ||
1227 | dasm_put(Dst, 8885); | ||
1228 | vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); | ||
1229 | switch (vk) { | ||
1230 | case 0: | ||
1231 | dasm_put(Dst, 8960, LJ_TISNUM); | ||
1232 | break; | ||
1233 | case 1: | ||
1234 | dasm_put(Dst, 8979, LJ_TISNUM); | ||
1235 | break; | ||
1236 | default: | ||
1237 | dasm_put(Dst, 8998, LJ_TISNUM, LJ_TISNUM); | ||
1238 | break; | ||
1239 | } | ||
1240 | dasm_put(Dst, 8784); | ||
1241 | break; | ||
1242 | case BC_MULVN: case BC_MULNV: case BC_MULVV: | ||
1243 | dasm_put(Dst, 8885); | ||
1244 | vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); | ||
1245 | switch (vk) { | ||
1246 | case 0: | ||
1247 | dasm_put(Dst, 9027, LJ_TISNUM); | ||
1248 | break; | ||
1249 | case 1: | ||
1250 | dasm_put(Dst, 9046, LJ_TISNUM); | ||
1251 | break; | ||
1252 | default: | ||
1253 | dasm_put(Dst, 9065, LJ_TISNUM, LJ_TISNUM); | ||
1254 | break; | ||
1255 | } | ||
1256 | dasm_put(Dst, 8784); | ||
1257 | break; | ||
1258 | case BC_DIVVN: case BC_DIVNV: case BC_DIVVV: | ||
1259 | dasm_put(Dst, 8885); | ||
1260 | vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); | ||
1261 | switch (vk) { | ||
1262 | case 0: | ||
1263 | dasm_put(Dst, 9094, LJ_TISNUM); | ||
1264 | break; | ||
1265 | case 1: | ||
1266 | dasm_put(Dst, 9113, LJ_TISNUM); | ||
1267 | break; | ||
1268 | default: | ||
1269 | dasm_put(Dst, 9132, LJ_TISNUM, LJ_TISNUM); | ||
1270 | break; | ||
1271 | } | ||
1272 | dasm_put(Dst, 8784); | ||
1273 | break; | ||
1274 | case BC_MODVN: | ||
1275 | dasm_put(Dst, 8885); | ||
1276 | vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); | ||
1277 | switch (vk) { | ||
1278 | case 0: | ||
1279 | dasm_put(Dst, 9161, LJ_TISNUM); | ||
1280 | break; | ||
1281 | case 1: | ||
1282 | dasm_put(Dst, 9180, LJ_TISNUM); | ||
1283 | break; | ||
1284 | default: | ||
1285 | dasm_put(Dst, 9199, LJ_TISNUM, LJ_TISNUM); | ||
1286 | break; | ||
1287 | } | ||
1288 | dasm_put(Dst, 9228); | ||
1289 | break; | ||
1290 | case BC_MODNV: case BC_MODVV: | ||
1291 | dasm_put(Dst, 8885); | ||
1292 | vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); | ||
1293 | switch (vk) { | ||
1294 | case 0: | ||
1295 | dasm_put(Dst, 9161, LJ_TISNUM); | ||
1296 | break; | ||
1297 | case 1: | ||
1298 | dasm_put(Dst, 9180, LJ_TISNUM); | ||
1299 | break; | ||
1300 | default: | ||
1301 | dasm_put(Dst, 9199, LJ_TISNUM, LJ_TISNUM); | ||
1302 | break; | ||
1303 | } | ||
1304 | dasm_put(Dst, 9255); | ||
1305 | break; | ||
1306 | case BC_POW: | ||
1307 | dasm_put(Dst, 8885); | ||
1308 | vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); | ||
1309 | switch (vk) { | ||
1310 | case 0: | ||
1311 | dasm_put(Dst, 9161, LJ_TISNUM); | ||
1312 | break; | ||
1313 | case 1: | ||
1314 | dasm_put(Dst, 9180, LJ_TISNUM); | ||
1315 | break; | ||
1316 | default: | ||
1317 | dasm_put(Dst, 9199, LJ_TISNUM, LJ_TISNUM); | ||
1318 | break; | ||
1319 | } | ||
1320 | dasm_put(Dst, 9260); | ||
1321 | break; | ||
1322 | |||
1323 | case BC_CAT: | ||
1324 | dasm_put(Dst, 9285, Dt1(->base), Dt1(->base)); | ||
1325 | break; | ||
1326 | |||
1327 | /* -- Constant ops ------------------------------------------------------ */ | ||
1328 | |||
1329 | case BC_KSTR: | ||
1330 | dasm_put(Dst, 9379, LJ_TSTR); | ||
1331 | break; | ||
1332 | case BC_KSHORT: | ||
1333 | dasm_put(Dst, 9412); | ||
1334 | break; | ||
1335 | case BC_KNUM: | ||
1336 | dasm_put(Dst, 9438); | ||
1337 | break; | ||
1338 | case BC_KPRI: | ||
1339 | dasm_put(Dst, 9463); | ||
1340 | break; | ||
1341 | case BC_KNIL: | ||
1342 | dasm_put(Dst, 9489, LJ_TNIL); | ||
1343 | break; | ||
1344 | |||
1345 | /* -- Upvalue and function ops ------------------------------------------ */ | ||
1346 | |||
1347 | case BC_UGET: | ||
1348 | dasm_put(Dst, 9535, offsetof(GCfuncL, uvptr), DtA(->v)); | ||
1349 | break; | ||
1350 | case BC_USETV: | ||
1351 | #define TV2MARKOFS \ | ||
1352 | ((int32_t)offsetof(GCupval, marked)-(int32_t)offsetof(GCupval, tv)) | ||
1353 | dasm_put(Dst, 9579, offsetof(GCfuncL, uvptr), DtA(->closed), DtA(->v), TV2MARKOFS, LJ_GC_BLACK, LJ_TISGCV, LJ_TISNUM - LJ_TISGCV, Dt4(->gch.marked), LJ_GC_WHITES, GG_DISP2G); | ||
1354 | break; | ||
1355 | #undef TV2MARKOFS | ||
1356 | case BC_USETS: | ||
1357 | dasm_put(Dst, 9680, offsetof(GCfuncL, uvptr), DtA(->v), LJ_TSTR, DtA(->marked), LJ_GC_BLACK, Dt4(->gch.marked), LJ_GC_WHITES, DtA(->closed), GG_DISP2G); | ||
1358 | break; | ||
1359 | case BC_USETN: | ||
1360 | dasm_put(Dst, 9771, offsetof(GCfuncL, uvptr), DtA(->v)); | ||
1361 | break; | ||
1362 | case BC_USETP: | ||
1363 | dasm_put(Dst, 9807, offsetof(GCfuncL, uvptr), DtA(->v)); | ||
1364 | break; | ||
1365 | case BC_UCLO: | ||
1366 | dasm_put(Dst, 9844, -BCBIAS_J*4, Dt1(->openupval), Dt1(->base), Dt1(->base)); | ||
1367 | break; | ||
1368 | |||
1369 | case BC_FNEW: | ||
1370 | dasm_put(Dst, 9902, Dt1(->base), Dt1(->base), LJ_TFUNC); | ||
1371 | break; | ||
1372 | |||
1373 | /* -- Table ops --------------------------------------------------------- */ | ||
1374 | |||
1375 | case BC_TNEW: | ||
1376 | dasm_put(Dst, 9973, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB); | ||
1377 | break; | ||
1378 | case BC_TDUP: | ||
1379 | dasm_put(Dst, 10084, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB); | ||
1380 | break; | ||
1381 | |||
1382 | case BC_GGET: | ||
1383 | dasm_put(Dst, 10176, Dt7(->env)); | ||
1384 | break; | ||
1385 | case BC_GSET: | ||
1386 | dasm_put(Dst, 10194, Dt7(->env)); | ||
1387 | break; | ||
1388 | |||
1389 | case BC_TGETV: | ||
1390 | dasm_put(Dst, 10212, LJ_TTAB, LJ_TISNUM); | ||
1391 | if (cmov) { | ||
1392 | dasm_put(Dst, 8374); | ||
1393 | } else { | ||
1394 | dasm_put(Dst, 8380); | ||
1395 | } | ||
1396 | dasm_put(Dst, 10254, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index, LJ_TSTR); | ||
1397 | dasm_put(Dst, 10355); | ||
1398 | break; | ||
1399 | case BC_TGETS: | ||
1400 | dasm_put(Dst, 10367, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL, LJ_TNIL); | ||
1401 | dasm_put(Dst, 10488, DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); | ||
1402 | break; | ||
1403 | case BC_TGETB: | ||
1404 | dasm_put(Dst, 10522, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); | ||
1405 | break; | ||
1406 | |||
1407 | case BC_TSETV: | ||
1408 | dasm_put(Dst, 10630, LJ_TTAB, LJ_TISNUM); | ||
1409 | if (cmov) { | ||
1410 | dasm_put(Dst, 8374); | ||
1411 | } else { | ||
1412 | dasm_put(Dst, 8380); | ||
1413 | } | ||
1414 | dasm_put(Dst, 10672, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex); | ||
1415 | dasm_put(Dst, 10767, LJ_TSTR, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); | ||
1416 | break; | ||
1417 | case BC_TSETS: | ||
1418 | dasm_put(Dst, 10820, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->nomm), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK); | ||
1419 | dasm_put(Dst, 10900, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex); | ||
1420 | dasm_put(Dst, 10999, LJ_TSTR, Dt1(->base), Dt1(->base), Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); | ||
1421 | break; | ||
1422 | case BC_TSETB: | ||
1423 | dasm_put(Dst, 11081, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex); | ||
1424 | dasm_put(Dst, 11187, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); | ||
1425 | break; | ||
1426 | |||
1427 | case BC_TSETM: | ||
1428 | dasm_put(Dst, 11225, Dt6(->marked), LJ_GC_BLACK, Dt6(->asize), Dt6(->array), Dt1(->base), Dt1(->base), Dt6(->marked), cast_byte(~LJ_GC_BLACK)); | ||
1429 | dasm_put(Dst, 11386, DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); | ||
1430 | break; | ||
1431 | |||
1432 | /* -- Calls and vararg handling ----------------------------------------- */ | ||
1433 | |||
1434 | case BC_CALL: case BC_CALLM: | ||
1435 | dasm_put(Dst, 8889); | ||
1436 | if (op == BC_CALLM) { | ||
1437 | dasm_put(Dst, 11400); | ||
1438 | } | ||
1439 | dasm_put(Dst, 11405, LJ_TFUNC, Dt7(->gate)); | ||
1440 | break; | ||
1441 | |||
1442 | case BC_CALLMT: | ||
1443 | dasm_put(Dst, 11400); | ||
1444 | break; | ||
1445 | case BC_CALLT: | ||
1446 | dasm_put(Dst, 11428, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), Dt7(->gate), FRAME_TYPE); | ||
1447 | dasm_put(Dst, 11541, Dt7(->pt), Dt9(->k)); | ||
1448 | break; | ||
1449 | |||
1450 | case BC_ITERC: | ||
1451 | dasm_put(Dst, 11590, LJ_TFUNC, Dt7(->gate)); | ||
1452 | break; | ||
1453 | |||
1454 | case BC_VARG: | ||
1455 | dasm_put(Dst, 11652, Dt7(->pt), Dt9(->numparams), (8+FRAME_VARG), LJ_TNIL, Dt1(->maxstack)); | ||
1456 | dasm_put(Dst, 11828, Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top)); | ||
1457 | break; | ||
1458 | |||
1459 | /* -- Returns ----------------------------------------------------------- */ | ||
1460 | |||
1461 | case BC_RETM: | ||
1462 | dasm_put(Dst, 11400); | ||
1463 | break; | ||
1464 | |||
1465 | case BC_RET: case BC_RET0: case BC_RET1: | ||
1466 | if (op != BC_RET0) { | ||
1467 | dasm_put(Dst, 11891); | ||
1468 | } | ||
1469 | dasm_put(Dst, 11895, FRAME_TYPE); | ||
1470 | switch (op) { | ||
1471 | case BC_RET: | ||
1472 | dasm_put(Dst, 11914); | ||
1473 | break; | ||
1474 | case BC_RET1: | ||
1475 | dasm_put(Dst, 11972); | ||
1476 | /* fallthrough */ | ||
1477 | case BC_RET0: | ||
1478 | dasm_put(Dst, 11988); | ||
1479 | default: | ||
1480 | break; | ||
1481 | } | ||
1482 | dasm_put(Dst, 11999, Dt7(->pt), Dt9(->k)); | ||
1483 | if (op == BC_RET) { | ||
1484 | dasm_put(Dst, 12041, LJ_TNIL); | ||
1485 | } else { | ||
1486 | dasm_put(Dst, 12050, LJ_TNIL); | ||
1487 | } | ||
1488 | dasm_put(Dst, 12057); | ||
1489 | if (op != BC_RET0) { | ||
1490 | dasm_put(Dst, 12078); | ||
1491 | } | ||
1492 | dasm_put(Dst, 8880); | ||
1493 | break; | ||
1494 | |||
1495 | /* -- Loops and branches ------------------------------------------------ */ | ||
1496 | |||
1497 | |||
1498 | case BC_FORL: | ||
1499 | #if LJ_HASJIT | ||
1500 | dasm_put(Dst, 12082, HOTCOUNT_PCMASK, GG_DISP2HOT); | ||
1501 | #endif | ||
1502 | break; | ||
1503 | |||
1504 | case BC_JFORI: | ||
1505 | case BC_JFORL: | ||
1506 | #if !LJ_HASJIT | ||
1507 | break; | ||
1508 | #endif | ||
1509 | case BC_FORI: | ||
1510 | case BC_IFORL: | ||
1511 | vk = (op == BC_IFORL || op == BC_JFORL); | ||
1512 | dasm_put(Dst, 12103); | ||
1513 | if (!vk) { | ||
1514 | dasm_put(Dst, 12107, LJ_TISNUM, LJ_TISNUM); | ||
1515 | } | ||
1516 | dasm_put(Dst, 12126); | ||
1517 | if (!vk) { | ||
1518 | dasm_put(Dst, 12130, LJ_TISNUM); | ||
1519 | } | ||
1520 | dasm_put(Dst, 12139); | ||
1521 | if (vk) { | ||
1522 | dasm_put(Dst, 12145); | ||
1523 | } | ||
1524 | dasm_put(Dst, 12151); | ||
1525 | if (cmov) { | ||
1526 | dasm_put(Dst, 8374); | ||
1527 | } else { | ||
1528 | dasm_put(Dst, 8380); | ||
1529 | } | ||
1530 | if (!cmov) { | ||
1531 | dasm_put(Dst, 12166); | ||
1532 | } | ||
1533 | if (op == BC_FORI) { | ||
1534 | dasm_put(Dst, 12172, -BCBIAS_J*4); | ||
1535 | } else if (op == BC_JFORI) { | ||
1536 | dasm_put(Dst, 12182, -BCBIAS_J*4, BC_JLOOP); | ||
1537 | } else if (op == BC_IFORL) { | ||
1538 | dasm_put(Dst, 12196, -BCBIAS_J*4); | ||
1539 | } else { | ||
1540 | dasm_put(Dst, 12192, BC_JLOOP); | ||
1541 | } | ||
1542 | dasm_put(Dst, 8409); | ||
1543 | break; | ||
1544 | |||
1545 | case BC_ITERL: | ||
1546 | #if LJ_HASJIT | ||
1547 | dasm_put(Dst, 12082, HOTCOUNT_PCMASK, GG_DISP2HOT); | ||
1548 | #endif | ||
1549 | break; | ||
1550 | |||
1551 | case BC_JITERL: | ||
1552 | #if !LJ_HASJIT | ||
1553 | break; | ||
1554 | #endif | ||
1555 | case BC_IITERL: | ||
1556 | dasm_put(Dst, 12206, LJ_TNIL); | ||
1557 | if (op == BC_JITERL) { | ||
1558 | dasm_put(Dst, 12221, BC_JLOOP); | ||
1559 | } else { | ||
1560 | dasm_put(Dst, 12235, -BCBIAS_J*4); | ||
1561 | } | ||
1562 | dasm_put(Dst, 8680); | ||
1563 | break; | ||
1564 | |||
1565 | case BC_LOOP: | ||
1566 | #if LJ_HASJIT | ||
1567 | dasm_put(Dst, 12082, HOTCOUNT_PCMASK, GG_DISP2HOT); | ||
1568 | #endif | ||
1569 | break; | ||
1570 | |||
1571 | case BC_ILOOP: | ||
1572 | dasm_put(Dst, 7149); | ||
1573 | break; | ||
1574 | |||
1575 | case BC_JLOOP: | ||
1576 | #if LJ_HASJIT | ||
1577 | dasm_put(Dst, 12251, DISPATCH_J(trace), DtD(->mcode), DISPATCH_GL(jit_base), DISPATCH_GL(jit_L)); | ||
1578 | #endif | ||
1579 | break; | ||
1580 | |||
1581 | case BC_JMP: | ||
1582 | dasm_put(Dst, 12274, -BCBIAS_J*4); | ||
1583 | break; | ||
1584 | |||
1585 | /* ---------------------------------------------------------------------- */ | ||
1586 | |||
1587 | default: | ||
1588 | fprintf(stderr, "Error: undefined opcode BC_%s\n", bc_names[op]); | ||
1589 | exit(2); | ||
1590 | break; | ||
1591 | } | ||
1592 | } | ||
1593 | |||
1594 | static int build_backend(BuildCtx *ctx) | ||
1595 | { | ||
1596 | int op; | ||
1597 | int cmov = 1; | ||
1598 | #ifdef LUAJIT_CPU_NOCMOV | ||
1599 | cmov = 0; | ||
1600 | #endif | ||
1601 | |||
1602 | dasm_growpc(Dst, BC__MAX); | ||
1603 | |||
1604 | build_subroutines(ctx, cmov); | ||
1605 | |||
1606 | dasm_put(Dst, 12298); | ||
1607 | for (op = 0; op < BC__MAX; op++) | ||
1608 | build_ins(ctx, (BCOp)op, op, cmov); | ||
1609 | |||
1610 | return BC__MAX; | ||
1611 | } | ||
1612 | |||
1613 | /* Emit pseudo frame-info for all assembler functions. */ | ||
1614 | static void emit_asm_debug(BuildCtx *ctx) | ||
1615 | { | ||
1616 | switch (ctx->mode) { | ||
1617 | case BUILD_elfasm: | ||
1618 | fprintf(ctx->fp, "\t.section .debug_frame,\"\",@progbits\n"); | ||
1619 | fprintf(ctx->fp, | ||
1620 | ".Lframe0:\n" | ||
1621 | "\t.long .LECIE0-.LSCIE0\n" | ||
1622 | ".LSCIE0:\n" | ||
1623 | "\t.long 0xffffffff\n" | ||
1624 | "\t.byte 0x1\n" | ||
1625 | "\t.string \"\"\n" | ||
1626 | "\t.uleb128 0x1\n" | ||
1627 | "\t.sleb128 -4\n" | ||
1628 | "\t.byte 0x8\n" | ||
1629 | "\t.byte 0xc\n\t.uleb128 0x4\n\t.uleb128 0x4\n" | ||
1630 | "\t.byte 0x88\n\t.uleb128 0x1\n" | ||
1631 | "\t.align 4\n" | ||
1632 | ".LECIE0:\n\n"); | ||
1633 | fprintf(ctx->fp, | ||
1634 | ".LSFDE0:\n" | ||
1635 | "\t.long .LEFDE0-.LASFDE0\n" | ||
1636 | ".LASFDE0:\n" | ||
1637 | "\t.long .Lframe0\n" | ||
1638 | "\t.long .Lbegin\n" | ||
1639 | "\t.long %d\n" | ||
1640 | "\t.byte 0xe\n\t.uleb128 0x30\n" /* def_cfa_offset */ | ||
1641 | "\t.byte 0x85\n\t.uleb128 0x2\n" /* offset ebp */ | ||
1642 | "\t.byte 0x87\n\t.uleb128 0x3\n" /* offset edi */ | ||
1643 | "\t.byte 0x86\n\t.uleb128 0x4\n" /* offset esi */ | ||
1644 | "\t.byte 0x83\n\t.uleb128 0x5\n" /* offset ebx */ | ||
1645 | "\t.align 4\n" | ||
1646 | ".LEFDE0:\n\n", (int)ctx->codesz); | ||
1647 | fprintf(ctx->fp, "\t.section .eh_frame,\"a\",@progbits\n"); | ||
1648 | fprintf(ctx->fp, | ||
1649 | ".Lframe1:\n" | ||
1650 | "\t.long .LECIE1-.LSCIE1\n" | ||
1651 | ".LSCIE1:\n" | ||
1652 | "\t.long 0\n" | ||
1653 | "\t.byte 0x1\n" | ||
1654 | "\t.string \"zPR\"\n" | ||
1655 | "\t.uleb128 0x1\n" | ||
1656 | "\t.sleb128 -4\n" | ||
1657 | "\t.byte 0x8\n" | ||
1658 | "\t.uleb128 6\n" /* augmentation length */ | ||
1659 | "\t.byte 0x1b\n" /* pcrel|sdata4 */ | ||
1660 | "\t.long lj_err_unwind_dwarf-.\n" | ||
1661 | "\t.byte 0x1b\n" /* pcrel|sdata4 */ | ||
1662 | "\t.byte 0xc\n\t.uleb128 0x4\n\t.uleb128 0x4\n" | ||
1663 | "\t.byte 0x88\n\t.uleb128 0x1\n" | ||
1664 | "\t.align 4\n" | ||
1665 | ".LECIE1:\n\n"); | ||
1666 | fprintf(ctx->fp, | ||
1667 | ".LSFDE1:\n" | ||
1668 | "\t.long .LEFDE1-.LASFDE1\n" | ||
1669 | ".LASFDE1:\n" | ||
1670 | "\t.long .LASFDE1-.Lframe1\n" | ||
1671 | "\t.long .Lbegin-.\n" | ||
1672 | "\t.long %d\n" | ||
1673 | "\t.uleb128 0\n" /* augmentation length */ | ||
1674 | "\t.byte 0xe\n\t.uleb128 0x30\n" /* def_cfa_offset */ | ||
1675 | "\t.byte 0x85\n\t.uleb128 0x2\n" /* offset ebp */ | ||
1676 | "\t.byte 0x87\n\t.uleb128 0x3\n" /* offset edi */ | ||
1677 | "\t.byte 0x86\n\t.uleb128 0x4\n" /* offset esi */ | ||
1678 | "\t.byte 0x83\n\t.uleb128 0x5\n" /* offset ebx */ | ||
1679 | "\t.align 4\n" | ||
1680 | ".LEFDE1:\n\n", (int)ctx->codesz); | ||
1681 | break; | ||
1682 | case BUILD_machasm: | ||
1683 | fprintf(ctx->fp, "\t.section __TEXT,__eh_frame,coalesced,no_toc+strip_static_syms+live_support\n"); | ||
1684 | fprintf(ctx->fp, | ||
1685 | "EH_frame1:\n" | ||
1686 | "\t.set L$set$0,LECIE1-LSCIE1\n" | ||
1687 | "\t.long L$set$0\n" | ||
1688 | "LSCIE1:\n" | ||
1689 | "\t.long 0\n" | ||
1690 | "\t.byte 0x1\n" | ||
1691 | "\t.ascii \"zPR\\0\"\n" | ||
1692 | "\t.byte 0x1\n" | ||
1693 | "\t.byte 128-4\n" | ||
1694 | "\t.byte 0x8\n" | ||
1695 | "\t.byte 6\n" /* augmentation length */ | ||
1696 | "\t.byte 0x9b\n" /* indirect|pcrel|sdata4 */ | ||
1697 | "\t.long L_lj_err_unwind_dwarf$non_lazy_ptr-.\n" | ||
1698 | "\t.byte 0x1b\n" /* pcrel|sdata4 */ | ||
1699 | "\t.byte 0xc\n\t.byte 0x5\n\t.byte 0x4\n" /* esp=5 on 32 bit MACH-O. */ | ||
1700 | "\t.byte 0x88\n\t.byte 0x1\n" | ||
1701 | "\t.align 2\n" | ||
1702 | "LECIE1:\n\n"); | ||
1703 | fprintf(ctx->fp, | ||
1704 | "_lj_vm_asm_begin.eh:\n" | ||
1705 | "LSFDE1:\n" | ||
1706 | "\t.set L$set$1,LEFDE1-LASFDE1\n" | ||
1707 | "\t.long L$set$1\n" | ||
1708 | "LASFDE1:\n" | ||
1709 | "\t.long LASFDE1-EH_frame1\n" | ||
1710 | "\t.long _lj_vm_asm_begin-.\n" | ||
1711 | "\t.long %d\n" | ||
1712 | "\t.byte 0\n" /* augmentation length */ | ||
1713 | "\t.byte 0xe\n\t.byte 0x30\n" /* def_cfa_offset */ | ||
1714 | "\t.byte 0x84\n\t.byte 0x2\n" /* offset ebp (4 for MACH-O)*/ | ||
1715 | "\t.byte 0x87\n\t.byte 0x3\n" /* offset edi */ | ||
1716 | "\t.byte 0x86\n\t.byte 0x4\n" /* offset esi */ | ||
1717 | "\t.byte 0x83\n\t.byte 0x5\n" /* offset ebx */ | ||
1718 | "\t.align 2\n" | ||
1719 | "LEFDE1:\n\n", (int)ctx->codesz); | ||
1720 | fprintf(ctx->fp, | ||
1721 | "\t.non_lazy_symbol_pointer\n" | ||
1722 | "L_lj_err_unwind_dwarf$non_lazy_ptr:\n" | ||
1723 | ".indirect_symbol _lj_err_unwind_dwarf\n" | ||
1724 | ".long 0\n"); | ||
1725 | break; | ||
1726 | default: /* Difficult for other modes. */ | ||
1727 | break; | ||
1728 | } | ||
1729 | } | ||
1730 | |||