1 // Copyright 2017, VIXL authors
2 // All rights reserved.
3 //
4 // Redistribution and use in source and binary forms, with or without
5 // modification, are permitted provided that the following conditions are met:
6 //
7 // * Redistributions of source code must retain the above copyright notice,
8 // this list of conditions and the following disclaimer.
9 // * Redistributions in binary form must reproduce the above copyright notice,
10 // this list of conditions and the following disclaimer in the documentation
11 // and/or other materials provided with the distribution.
12 // * Neither the name of ARM Limited nor the names of its contributors may be
13 // used to endorse or promote products derived from this software without
14 // specific prior written permission.
15 //
16 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS CONTRIBUTORS "AS IS" AND
17 // ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 // WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 // DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
20 // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
21 // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
22 // SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
23 // CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
24 // OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
25 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26
27 extern "C" {
28 #ifdef __arm__
29 #include <linux/perf_event.h>
30 #endif
31 #include <stdint.h>
32 #include <stdio.h>
33 #include <sys/ioctl.h>
34 #include <sys/syscall.h>
35 #include <sys/time.h>
36 #include <unistd.h>
37 }
38 #include <iostream>
39
40 #include "aarch32/assembler-aarch32.h"
41 #include "aarch32/constants-aarch32.h"
42 #include "aarch32/disasm-aarch32.h"
43 #include "aarch32/instructions-aarch32.h"
44 #include "aarch32/operands-aarch32.h"
45
46 // This benchmark tests the speed of the assembler and the disassembler.
47 // 7210 instructions (19340 bytes):
48 // The command is:
49 // asm-disasm-speed-test 2> /dev/null
50 // We redirect the output to check only the disassembler speed and not the time
51 // to display the disassembly.
52 // Example of output:
53 // T32 assembler: time: 0.001333s, cycles: 850453
54 // T32 disassembler: time: 0.166865s, cycles: 86770518
55
56 using namespace vixl;
57 using namespace vixl::aarch32;
58
59 #define __ assembler->
60
61 const int kBufferSize = 512 * KBytes;
62 const Register sl(10);
63 const Register fp(11);
64
65 class TestAssembler : public Assembler {
66 public:
TestAssembler()67 TestAssembler() : Assembler(kBufferSize) {
68 UseInstructionSet(T32);
69 SetAllowAssembler(true);
70 }
Emit8(uint8_t data)71 void Emit8(uint8_t data) { GetBuffer()->Emit8(data); }
Emit16(uint16_t data)72 void Emit16(uint16_t data) { GetBuffer()->Emit16(data); }
Emit32(uint32_t data)73 void Emit32(uint32_t data) { GetBuffer()->Emit32(data); }
74 };
75
76 class Generator {
77 Label l_0000, l_007c, l_0080, l_008a, l_009e, l_00a2, l_00a8, l_00ac;
78 Label l_00b0, l_00d2, l_00dc, l_00e2, l_00e6, l_00ee, l_00f2, l_0100;
79 Label l_0126, l_012a, l_0160, l_0166, l_016e, l_0172, l_018c, l_0196;
80 Label l_019a, l_01a8, l_01b4, l_01c0, l_01ce, l_0212, l_0226, l_0238;
81 Label l_028a, l_028e, l_02a4, l_02a8, l_02ac, l_02c6, l_02cc, l_02dc;
82 Label l_030c, l_0334, l_035c, l_03ba, l_03be, l_03d4, l_03d8, l_03dc;
83 Label l_0494, l_049a, l_04aa, l_04f8, l_04fc, l_0512, l_0516, l_051a;
84 Label l_05d2, l_05d8, l_05f0, l_05f8, l_05fc, l_0600, l_0604, l_0622;
85 Label l_066c, l_0670, l_0686, l_068a, l_068e, l_06b2, l_06b8, l_06c6;
86 Label l_06f2, l_071a, l_077e, l_0782, l_0798, l_079c, l_07a8, l_07d0;
87 Label l_07dc, l_088e, l_0894, l_08a4, l_08cc, l_096c, l_09d6, l_09dc;
88 Label l_09e0, l_09e4, l_09e8, l_09fa, l_0a00, l_0aa2, l_0ad4, l_0aec;
89 Label l_0afc, l_0b00, l_0b16, l_0b1a, l_0b1c, l_0b20, l_0b2e, l_0b36;
90 Label l_0b42, l_0b6c, l_0b98, l_0c2e, l_0c60, l_0c8c, l_0cb8, l_0d10;
91 Label l_0d18, l_0d1c, l_0d20, l_0d24, l_0d28, l_0df8, l_0e04, l_0e18;
92 Label l_0e2e, l_0e44, l_0e88, l_0e8c, l_0e9e, l_0ea4, l_0ec0, l_0ec6;
93 Label l_0ed8, l_0efc, l_0f4a, l_0f4e, l_0f60, l_0f66, l_0f94, l_0f9a;
94 Label l_0fac, l_0fbe, l_1006, l_100a, l_101c, l_1022, l_1040, l_1048;
95 Label l_1052, l_1064, l_1068, l_106c, l_10a6, l_10aa, l_10bc, l_10c2;
96 Label l_10e4, l_10ec, l_10fe, l_1152, l_1156, l_1168, l_116e, l_118e;
97 Label l_1196, l_11a0, l_11ac, l_11c4, l_11ce, l_120e, l_1212, l_1224;
98 Label l_122a, l_12e2, l_12ea, l_12fc, l_133a, l_133e, l_1350, l_1356;
99 Label l_13fc, l_1400, l_1404, l_1416, l_141e, l_1430, l_1472, l_1476;
100 Label l_1488, l_148e, l_14b0, l_14b6, l_14c0, l_1552, l_1556, l_1568;
101 Label l_156e, l_158a, l_1590, l_159a, l_15ae, l_15dc, l_15e8, l_15f2;
102 Label l_1648, l_164c, l_165e, l_1664, l_1694, l_16a2, l_1724, l_1728;
103 Label l_172c, l_175a, l_1760, l_1772, l_178c, l_17a0, l_17ce, l_17da;
104 Label l_17f2, l_17f6, l_17f8, l_17fc, l_1826, l_1842, l_1856, l_1868;
105 Label l_18ac, l_18b0, l_18c6, l_18ca, l_18ce, l_18e6, l_18ec, l_18f6;
106 Label l_1938, l_193c, l_1952, l_1956, l_195a, l_1a18, l_1a1e, l_1a2e;
107 Label l_1a36, l_1a54, l_1a72, l_1a90, l_1a98, l_1aa0, l_1aa8, l_1ab0;
108 Label l_1ab8, l_1ac2, l_1b00, l_1b04, l_1b3a, l_1b3e, l_1b44, l_1b4a;
109 Label l_1b68, l_1b88, l_1ba8, l_1bc8, l_1be8, l_1bec, l_1bf0, l_1c0e;
110 Label l_1c2e, l_1c48, l_1c4e, l_1c54, l_1c5a, l_1c60, l_1c6a, l_1c72;
111 Label l_1c78, l_1c80, l_1c86, l_1c8e, l_1c94, l_1c9c, l_1ca2, l_1caa;
112 Label l_1cb0, l_1cb8, l_1cbe, l_1cc6, l_1ccc, l_1cd4, l_1cda, l_1ce2;
113 Label l_1d00, l_1d24, l_1d2a, l_1d30, l_1d3a, l_1d42, l_1d4a, l_1d50;
114 Label l_1d56, l_1d5c, l_1d62, l_1d6a, l_1d72, l_1d78, l_1d80, l_1d88;
115 Label l_1d8a, l_1d92, l_1d9c, l_1dba, l_1dbe, l_1dc4, l_1dc8, l_1dd0;
116 Label l_1dd4, l_1dda, l_1dde, l_1de8, l_1df2, l_1df6, l_1dfc, l_1e00;
117 Label l_1e06, l_1e0a, l_1e10, l_1e16, l_1e1a, l_1e20, l_1e26, l_1e2c;
118 Label l_1e38, l_1e3c, l_1e42, l_1e48, l_1e4e, l_1e52, l_1e5e, l_1e64;
119 Label l_1e6a, l_1e70, l_1e76, l_1e7c, l_1e82, l_1e86, l_1e8c, l_1e96;
120 Label l_1e9a, l_1ea0, l_1eaa, l_1eb0, l_1eb4, l_1eb8, l_1ebe, l_1ec8;
121 Label l_1ed0, l_1ed6, l_1edc, l_1ee0, l_1ee6, l_1eec, l_1ef2, l_1ef6;
122 Label l_1efc, l_1f02, l_1f0a, l_1f12, l_1f1a, l_1f22, l_1f26, l_1f2c;
123 Label l_1f36, l_1f40, l_1f46, l_1f4c, l_1f50, l_1f56, l_1f5e, l_1f62;
124 Label l_1f68, l_1f74, l_1f7e, l_1f84, l_1fb0, l_1fc2, l_1fcc, l_1fda;
125 Label l_1fe0, l_1fe8, l_1ff4, l_1ffc, l_2028, l_202c, l_2044, l_2054;
126 Label l_2058, l_2070, l_2080, l_2082, l_208a, l_20a4, l_20b4, l_20b6;
127 Label l_20be, l_20d8, l_20dc, l_20f4, l_20f8, l_20fa, l_20fe, l_212c;
128 Label l_213c, l_2158, l_2178, l_21a6, l_21ae, l_21f6, l_21fc, l_2220;
129 Label l_2248, l_2256, l_225c, l_2282, l_2284, l_22a8, l_22b0, l_22c8;
130 Label l_22de, l_22e0, l_22e6, l_2304, l_230c, l_2316, l_2334, l_233a;
131 Label l_2374, l_2388, l_238c, l_238e, l_2394, l_23a2, l_23a8, l_23ac;
132 Label l_23b4, l_23c8, l_23d8, l_23de, l_23e2, l_23ee, l_23f4, l_23fa;
133 Label l_2400, l_2404, l_240a, l_2432, l_2446, l_2466, l_246a, l_2474;
134 Label l_2484, l_248a, l_2490, l_24ba, l_24c4, l_24ca, l_24e6, l_2500;
135 Label l_2510, l_2522, l_2528, l_255c, l_2564, l_256a, l_2592, l_25be;
136 Label l_25c8, l_25ce, l_25d8, l_25da, l_25dc, l_25ec, l_25f4, l_25fa;
137 Label l_2630, l_2660, l_2680, l_268e, l_2694, l_26b0, l_26b2, l_26c4;
138 Label l_26e2, l_26f8, l_272a, l_2734, l_274a, l_2776, l_277e, l_2782;
139 Label l_2794, l_279a, l_27a4, l_27dc, l_27e8, l_27f0, l_2808, l_280e;
140 Label l_283c, l_2840, l_2846, l_284a, l_2864, l_286c, l_28a2, l_28f8;
141 Label l_28fc, l_2906, l_2910, l_294c, l_2972, l_297c, l_2982, l_29a2;
142 Label l_29d4, l_29e4, l_29f0, l_2a00, l_2a30, l_2a62, l_2a66, l_2a86;
143 Label l_2aba, l_2ad2, l_2afc, l_2b02, l_2b2e, l_2b30, l_2b4e, l_2b76;
144 Label l_2b7c, l_2b8a, l_2ba6, l_2bbc, l_2bda, l_2be2, l_2bfc, l_2c2e;
145 Label l_2c44, l_2ca8, l_2cac, l_2ce2, l_2cf0, l_2d0c, l_2d16, l_2d6c;
146 Label l_2d7a, l_2db8, l_2dfa, l_2e32, l_2e38, l_2e4a, l_2e9c, l_2ea4;
147 Label l_2ebe, l_2ed0, l_2ee0, l_2f0a, l_2f20, l_2f26, l_2f3a, l_2f3e;
148 Label l_2f9a, l_2fa4, l_2fce, l_2ff8, l_3020, l_302a, l_3030, l_3058;
149 Label l_3072, l_3080, l_30a0, l_30b6, l_30ba, l_30e2, l_30ee, l_30f2;
150 Label l_3124, l_315a, l_3164, l_3192, l_31a0, l_31ae, l_31be, l_31ce;
151 Label l_31d2, l_31e8, l_31ec, l_31f2, l_31fe, l_3216, l_322c, l_3230;
152 Label l_323c, l_3242, l_3292, l_329a, l_32a0, l_32a4, l_32ae, l_32b2;
153 Label l_32da, l_32e8, l_3310, l_3316, l_3340, l_3346, l_3350, l_3354;
154 Label l_3366, l_3384, l_33c8, l_33d2, l_33e0, l_33ee, l_33f2, l_33fa;
155 Label l_340c, l_3410, l_342c, l_3430, l_343a, l_343e, l_3444, l_3448;
156 Label l_3460, l_3466, l_346e, l_3480, l_3484, l_3492, l_34a6, l_34da;
157 Label l_34e8, l_34f4, l_34f8, l_3506, l_350a, l_350c, l_3510, l_3518;
158 Label l_3520, l_3536, l_3542, l_3550, l_3554, l_3558, l_35ac, l_35b0;
159 Label l_35c6, l_35ca, l_35d0, l_3646, l_3652, l_3678, l_3688, l_3694;
160 Label l_3698, l_36a4, l_36a8, l_36aa, l_36ae, l_36b6, l_36bc, l_36d6;
161 Label l_36de, l_36e8, l_36f0, l_3706, l_3712, l_3718, l_371e, l_3722;
162 Label l_3728, l_372c, l_3730, l_3736, l_3740, l_3744, l_3748, l_374c;
163 Label l_37a0, l_37a4, l_37ba, l_37be, l_37c4, l_383a, l_384a, l_3870;
164 Label l_3880, l_388c, l_3890, l_389c, l_38a0, l_38a2, l_38a6, l_38ae;
165 Label l_38b4, l_38ce, l_38d6, l_38e0, l_38e8, l_38fe, l_390a, l_3910;
166 Label l_3916, l_391a, l_3920, l_3924, l_3928, l_392e, l_3938, l_393c;
167 Label l_3940, l_3944, l_3998, l_399c, l_39b2, l_39b6, l_39bc, l_3a32;
168 Label l_3a42, l_3a68, l_3a78, l_3a84, l_3a88, l_3a94, l_3a98, l_3a9a;
169 Label l_3a9e, l_3aa6, l_3aac, l_3ac6, l_3ace, l_3ad8, l_3ae0, l_3af6;
170 Label l_3b02, l_3b08, l_3b0e, l_3b12, l_3b18, l_3b1c, l_3b20, l_3b26;
171 Label l_3b30, l_3b34, l_3b38, l_3b3c, l_3ba0, l_3ba4, l_3bba, l_3bbe;
172 Label l_3bc4, l_3c46, l_3c6c, l_3c7a, l_3c86, l_3c8a, l_3c96, l_3c9a;
173 Label l_3c9c, l_3ca0, l_3ca8, l_3cae, l_3cc8, l_3cd0, l_3ce6, l_3cf2;
174 Label l_3cf8, l_3d02, l_3d06, l_3d0c, l_3d10, l_3d16, l_3d1c, l_3d20;
175 Label l_3d24, l_3d28, l_3d7e, l_3d82, l_3d98, l_3d9c, l_3da2, l_3e18;
176 Label l_3e26, l_3e4c, l_3e5c, l_3e68, l_3e6c, l_3e78, l_3e7c, l_3e7e;
177 Label l_3e82, l_3e8a, l_3e90, l_3eaa, l_3eb2, l_3ebc, l_3ec4, l_3eda;
178 Label l_3ee6, l_3eec, l_3ef2, l_3ef6, l_3efc, l_3f00, l_3f04, l_3f0a;
179 Label l_3f14, l_3f18, l_3f1c, l_3f20, l_3f78, l_3f7c, l_3f92, l_3f96;
180 Label l_3f9c, l_3fd0, l_3fe6, l_4000, l_400a, l_400c, l_407a, l_4084;
181 Label l_40ac, l_40bc, l_40c8, l_40cc, l_40d8, l_40dc, l_40de, l_40e2;
182 Label l_40ec, l_40f2, l_4104, l_410c, l_4118, l_4126, l_4142, l_4146;
183 Label l_4160, l_4164, l_416c, l_4172, l_417a, l_4184, l_419a, l_41a6;
184 Label l_41ac, l_41b4, l_41c4, l_41c8, l_41ce, l_41d2, l_41d6, l_41dc;
185 Label l_41e4, l_41e8, l_41ec, l_41f0, l_424a, l_424e, l_4264, l_4268;
186 Label l_426e, l_4278, l_4282, l_429c, l_42a0, l_42b6, l_42e0, l_4304;
187 Label l_4310, l_4312, l_4384, l_4390, l_43b6, l_43c6, l_43d2, l_43d6;
188 Label l_43e2, l_43e6, l_43e8, l_43ec, l_43f6, l_43fc, l_4404, l_4424;
189 Label l_4436, l_443e, l_444c, l_4454, l_445e, l_4462, l_446a, l_4470;
190 Label l_4478, l_4482, l_4498, l_44a4, l_44aa, l_44b2, l_44d4, l_44f6;
191 Label l_44fc, l_4500, l_4508, l_450c, l_4512, l_451c, l_4520, l_4524;
192 Label l_4528, l_4542, l_454e, l_4554, l_4558, l_455c, l_4560, l_4564;
193 Label l_456c, l_4578, l_457c, l_4580, l_4584, l_458c, l_4590, l_4594;
194 Label l_4598, l_45a0, l_45b4, l_45f6, l_4684, l_468a, l_469e, l_46be;
195 Label l_46c8, l_46d0, l_46ea, l_46f4, l_46fa, l_4704, l_470a, l_4710;
196 Label l_4714, l_471c, l_4724, l_4728, l_472c, l_4730, l_4b0c, l_4b22;
197 Label l_4b2e, l_4b34, l_4b38, l_4b3c, l_4b40, l_4b44, l_4b4c, l_4b52;
198 Label l_4b5e, l_4b62, l_4b66, l_4b6a, l_4b72, l_4b76, l_4b7c, l_4b80;
Generate_1(TestAssembler * assembler)199 void Generate_1(TestAssembler* assembler) {
200 // --------------
201 __ bind(&l_0000);
202 __ push(Narrow, RegisterList(0x40f8));
203 __ mov(Narrow, r7, r2);
204 __ ldr(Narrow, r6, MemOperand(r7));
205 __ mov(Narrow, r4, r0);
206 __ movs(Narrow, r3, 0U);
207 __ movs(Narrow, r5, 1U);
208 __ ldr(Narrow, r2, &l_00a8);
209 __ movs(Narrow, r0, 4U);
210 __ cmp(Narrow, r6, 14U);
211 __ stm(r4, NO_WRITE_BACK, RegisterList(r1, r6));
212 __ str(Narrow, r0, MemOperand(r4, 12));
213 __ str(Narrow, r5, MemOperand(r4, 16));
214 __ str(Narrow, r5, MemOperand(r4, 20));
215 __ strb(r5, MemOperand(r4, 48));
216 __ str(Narrow, r5, MemOperand(r4, 64));
217 __ str(Narrow, r5, MemOperand(r4, 88));
218 __ str(Narrow, r5, MemOperand(r4, 112));
219 __ str(r5, MemOperand(r4, 136));
220 __ strb(Narrow, r3, MemOperand(r4, 24));
221 __ str(Narrow, r3, MemOperand(r4, 28));
222 __ strb(r3, MemOperand(r4, 32));
223 __ strb(r3, MemOperand(r4, 36));
224 __ str(Narrow, r3, MemOperand(r4, 52));
225 __ str(Narrow, r3, MemOperand(r4, 56));
226 __ str(Narrow, r3, MemOperand(r4, 60));
227 __ str(Narrow, r3, MemOperand(r4, 68));
228 __ str(Narrow, r3, MemOperand(r4, 72));
229 __ str(Narrow, r3, MemOperand(r4, 76));
230 __ str(Narrow, r3, MemOperand(r4, 80));
231 __ str(Narrow, r3, MemOperand(r4, 84));
232 __ str(Narrow, r3, MemOperand(r4, 92));
233 __ str(Narrow, r3, MemOperand(r4, 96));
234 __ str(Narrow, r3, MemOperand(r4, 100));
235 __ str(Narrow, r3, MemOperand(r4, 104));
236 __ str(Narrow, r3, MemOperand(r4, 108));
237 __ str(Narrow, r3, MemOperand(r4, 116));
238 __ str(Narrow, r3, MemOperand(r4, 120));
239 __ str(Narrow, r3, MemOperand(r4, 124));
240 __ str(r3, MemOperand(r4, 128));
241 __ str(r3, MemOperand(r4, 132));
242 __ str(r3, MemOperand(r4, 140));
243 __ str(r3, MemOperand(r4, 144));
244 __ str(r3, MemOperand(r4, 148));
245 __ str(r3, MemOperand(r4, 152));
246 __ strb(r3, MemOperand(r4, 160));
247 __ str(Narrow, r2, MemOperand(r4, 8));
248 __ b(eq, Narrow, &l_007c);
249 __ ldr(Narrow, r2, MemOperand(r1, 28));
250 __ cmp(Narrow, r2, r5);
251 __ b(eq, Narrow, &l_0080);
252 // --------------
253 __ bind(&l_007c);
254 __ mov(Narrow, r0, r4);
255 __ pop(Narrow, RegisterList(0x80f8));
256 // --------------
257 __ bind(&l_0080);
258 __ mov(Narrow, r0, r1);
259 __ add(r3, r4, 8U);
260 __ eor(r1, r6, 0x1);
261 // --------------
262 __ bind(&l_008a);
263 __ bl(&l_008a);
264 __ movs(Narrow, r3, 14U);
265 __ mov(Narrow, r0, r4);
266 __ str(Narrow, r3, MemOperand(r7));
267 __ pop(Narrow, RegisterList(0x80f8));
268 __ ldr(Narrow, r3, &l_00ac);
269 __ add(r0, r4, 36U);
270 __ str(Narrow, r3, MemOperand(r4, 8));
271 // --------------
272 __ bind(&l_009e);
273 __ bl(&l_009e);
274 // --------------
275 __ bind(&l_00a2);
276 __ bl(&l_00a2);
277 __ nop(Narrow);
278 // --------------
279 __ bind(&l_00a8);
280 __ Emit32(0x00000008);
281 // --------------
282 __ bind(&l_00ac);
283 __ Emit32(0x00000008);
284 // --------------
285 __ bind(&l_00b0);
286 __ push(RegisterList(0x4ff8));
287 __ mov(Narrow, r6, r1);
288 __ ldr(Narrow, r4, MemOperand(r0));
289 __ mov(Narrow, r7, r0);
290 __ mov(Narrow, r5, r2);
291 __ ldr(Narrow, r1, MemOperand(r0, 4));
292 __ cmp(Narrow, r4, r1);
293 __ b(eq, &l_01ce);
294 __ mov(Narrow, r9, r3);
295 __ ldr(Narrow, r3, MemOperand(sp, 40));
296 __ cmp(Narrow, r3, 0U);
297 __ b(eq, Narrow, &l_01a8);
298 __ ldr(Narrow, r3, MemOperand(r4, 4));
299 __ cmp(Narrow, r2, r3);
300 __ b(lt, Narrow, &l_01c0);
301 // --------------
302 __ bind(&l_00d2);
303 __ ldr(Narrow, r3, MemOperand(r4));
304 __ cbz(r3, &l_00e6);
305 __ add(r3, r4, 24U);
306 __ b(Narrow, &l_00e2);
307 // --------------
308 __ bind(&l_00dc);
309 __ ldr(r2, MemOperand(r3, 24, PostIndex));
310 __ cbz(r2, &l_00e6);
311 // --------------
312 __ bind(&l_00e2);
313 __ cmp(Narrow, r1, r3);
314 __ b(ne, Narrow, &l_00dc);
315 // --------------
316 __ bind(&l_00e6);
317 __ movw(sl, 0U);
318 __ movt(sl, 0U);
319 // --------------
320 __ bind(&l_00ee);
321 __ cmp(Narrow, r1, r4);
322 __ b(eq, Narrow, &l_016e);
323 // --------------
324 __ bind(&l_00f2);
325 __ ldr(Narrow, r3, MemOperand(r7, 40));
326 __ add(r0, r5, r9);
327 __ ldr(Narrow, r2, MemOperand(r4, 8));
328 __ add(Narrow, r3, r3, r0);
329 __ cmp(Narrow, r2, r3);
330 }
Generate_2(TestAssembler * assembler)331 void Generate_2(TestAssembler* assembler) {
332 __ b(gt, Narrow, &l_018c);
333 // --------------
334 __ bind(&l_0100);
335 __ ldr(Narrow, r3, MemOperand(r4, 12));
336 __ mov(Narrow, r0, r6);
337 __ ldr(Narrow, r2, MemOperand(r6));
338 __ ldr(fp, MemOperand(r4));
339 __ subs(r3, 1U);
340 __ add(r8, r5, r3);
341 __ ldr(Narrow, r2, MemOperand(r2, 44));
342 __ bic(r8, r8, r3);
343 __ rsb(r1, r5, r8);
344 __ blx(r2);
345 __ ldr(Narrow, r3, MemOperand(r6));
346 __ mov(Narrow, r0, r6);
347 __ ldr(Narrow, r3, MemOperand(r3));
348 __ cmp(Narrow, r3, sl);
349 __ b(ne, Narrow, &l_0196);
350 // --------------
351 __ bind(&l_0126);
352 __ bl(&l_0126);
353 // --------------
354 __ bind(&l_012a);
355 __ ldr(r3, MemOperand(fp));
356 __ mov(Narrow, r1, r0);
357 __ str(r8, MemOperand(fp, 20));
358 __ mov(Narrow, r0, fp);
359 __ ldr(Narrow, r3, MemOperand(r3, 20));
360 __ blx(r3);
361 __ ldr(r3, MemOperand(fp));
362 __ mov(Narrow, r0, fp);
363 __ mov(Narrow, r1, r6);
364 __ ldr(Narrow, r3, MemOperand(r3, 16));
365 __ blx(r3);
366 __ ldr(r3, MemOperand(fp));
367 __ mov(Narrow, r0, fp);
368 __ ldr(r5, MemOperand(fp, 4));
369 __ ldr(Narrow, r3, MemOperand(r3, 24));
370 __ blx(r3);
371 __ cbz(r0, &l_019a);
372 __ movs(Narrow, r3, 1U);
373 __ mov(Narrow, r1, r4);
374 __ strb(r3, MemOperand(fp, 16));
375 __ mov(Narrow, r0, r7);
376 // --------------
377 __ bind(&l_0160);
378 __ bl(&l_0160);
379 __ mov(Narrow, r4, r0);
380 // --------------
381 __ bind(&l_0166);
382 __ ldr(Narrow, r1, MemOperand(r7, 4));
383 __ add(Narrow, r5, r5, r8);
384 __ cmp(Narrow, r1, r4);
385 __ b(ne, Narrow, &l_00f2);
386 // --------------
387 __ bind(&l_016e);
388 __ mov(Narrow, r0, r7);
389 __ movs(Narrow, r1, 0U);
390 // --------------
391 __ bind(&l_0172);
392 __ bl(&l_0172);
393 __ ldr(Narrow, r3, MemOperand(r6));
394 __ mov(Narrow, r0, r6);
395 __ ldr(Narrow, r3, MemOperand(r3, 40));
396 __ blx(r3);
397 __ ldr(Narrow, r0, MemOperand(r7, 28));
398 __ subs(r0, 1U);
399 __ add(Narrow, r5, r5, r0);
400 __ bic(r0, r5, r0);
401 __ pop(RegisterList(0x8ff8));
402 // --------------
403 __ bind(&l_018c);
404 __ ldr(Narrow, r3, MemOperand(r4, 16));
405 __ cmp(Narrow, r5, r3);
406 __ b(ge, Narrow, &l_0100);
407 __ adds(Narrow, r4, r4, 24U);
408 __ b(Narrow, &l_00ee);
409 // --------------
410 __ bind(&l_0196);
411 __ blx(r3);
412 __ b(Narrow, &l_012a);
413 // --------------
414 __ bind(&l_019a);
415 __ ldr(Narrow, r0, MemOperand(r4));
416 __ mov(Narrow, r1, r4);
417 __ adds(Narrow, r4, r4, 24U);
418 __ ldr(Narrow, r3, MemOperand(r0));
419 __ ldr(Narrow, r3, MemOperand(r3, 28));
420 __ blx(r3);
421 __ b(Narrow, &l_0166);
422 // --------------
423 __ bind(&l_01a8);
424 __ ldr(Narrow, r3, MemOperand(r6));
425 __ mov(Narrow, r0, r6);
426 __ ldr(Narrow, r3, MemOperand(r3, 36));
427 __ blx(r3);
428 __ ldr(Narrow, r3, MemOperand(r7, 24));
429 __ add(Narrow, r5, r5, r3);
430 // --------------
431 __ bind(&l_01b4);
432 __ ldr(Narrow, r4, MemOperand(r7));
433 __ ldr(Narrow, r1, MemOperand(r7, 4));
434 __ cmp(Narrow, r4, r1);
435 __ b(ne, Narrow, &l_00d2);
436 __ mov(Narrow, r1, r4);
437 __ b(Narrow, &l_00e6);
438 // --------------
439 __ bind(&l_01c0);
440 __ ldr(Narrow, r2, MemOperand(r6));
441 __ subs(Narrow, r1, r3, r5);
442 __ mov(Narrow, r0, r6);
443 __ mov(Narrow, r5, r3);
444 __ ldr(Narrow, r3, MemOperand(r2, 48));
445 __ blx(r3);
446 __ b(Narrow, &l_01b4);
447 // --------------
448 __ bind(&l_01ce);
449 __ mov(Narrow, r0, r2);
450 __ pop(RegisterList(0x8ff8));
451 __ push(RegisterList(0x4ff0));
452 __ movw(r7, 0U);
453 __ movt(r7, 0U);
454 __ sub(sp, sp, 2476U);
455 __ mov(Narrow, r4, r0);
456 __ ldr(Narrow, r3, MemOperand(r7, 4));
457 __ ldr(Narrow, r5, MemOperand(r7, 24));
458 __ ldr(Narrow, r0, MemOperand(r7, 28));
459 __ str(Narrow, r3, MemOperand(sp, 64));
460 }
Generate_3(TestAssembler * assembler)461 void Generate_3(TestAssembler* assembler) {
462 __ ldr(Narrow, r3, MemOperand(r7, 8));
463 __ ubfx(r2, r5, 5U, 4U);
464 __ ldr(Narrow, r1, MemOperand(r7, 32));
465 __ str(Narrow, r3, MemOperand(sp, 36));
466 __ ldr(Narrow, r3, MemOperand(r7, 12));
467 __ str(Narrow, r3, MemOperand(sp, 60));
468 __ ldr(Narrow, r3, MemOperand(r7, 16));
469 __ str(Narrow, r3, MemOperand(sp, 56));
470 __ ldr(Narrow, r3, MemOperand(r7, 20));
471 __ str(Narrow, r3, MemOperand(sp, 52));
472 __ cbz(r2, &l_0212);
473 __ and_(r5, r5, 0x1f);
474 __ mov(r8, 1U);
475 __ lsl(r2, r8, r5);
476 // --------------
477 __ bind(&l_0212);
478 __ ubfx(r3, r0, 5U, 4U);
479 __ mov(Narrow, r8, r3);
480 __ cbz(r3, &l_0226);
481 __ and_(r0, r0, 0x1f);
482 __ mov(r8, 1U);
483 __ lsl(r8, r8, r0);
484 // --------------
485 __ bind(&l_0226);
486 __ ubfx(r3, r1, 5U, 4U);
487 __ orr(r8, r8, r2);
488 __ cbz(r3, &l_0238);
489 __ and_(r1, r1, 0x1f);
490 __ movs(Narrow, r3, 1U);
491 __ lsls(Narrow, r3, r3, r1);
492 // --------------
493 __ bind(&l_0238);
494 __ movs(Narrow, r1, 14U);
495 __ ldr(r9, &l_0600);
496 __ str(Narrow, r1, MemOperand(sp, 84));
497 __ adds(r1, r4, 44U);
498 __ add(r5, sp, 2136U);
499 __ mov(r2, 0U);
500 __ orr(r8, r8, r3);
501 __ str(r9, MemOperand(r5));
502 __ str(Narrow, r2, MemOperand(r5, 4));
503 __ mov(Narrow, r6, r1);
504 __ strb(Narrow, r2, MemOperand(r5, 17));
505 __ str(Narrow, r1, MemOperand(sp, 20));
506 __ b(eq, Narrow, &l_02ac);
507 __ ldr(Narrow, r3, MemOperand(r4, 44));
508 __ movs(Narrow, r2, 1U);
509 __ str(Narrow, r1, MemOperand(r5, 20));
510 __ mov(Narrow, r0, r1);
511 __ str(Narrow, r2, MemOperand(r5, 24));
512 __ movs(Narrow, r1, 32U);
513 __ ldr(Narrow, r3, MemOperand(r3, 32));
514 __ blx(r3);
515 __ ldr(Narrow, r3, MemOperand(r4, 44));
516 __ mov(Narrow, r0, r6);
517 __ ldr(Narrow, r3, MemOperand(r3, 24));
518 __ blx(r3);
519 __ ldr(Narrow, r2, MemOperand(r4, 44));
520 __ movw(r3, 0U);
521 __ movt(r3, 0U);
522 __ ldr(Narrow, r2, MemOperand(r2));
523 __ cmp(Narrow, r2, r3);
524 __ b(ne, &l_1aa8);
525 __ mov(Narrow, r0, r6);
526 // --------------
527 __ bind(&l_028a);
528 __ bl(&l_028a);
529 // --------------
530 __ bind(&l_028e);
531 __ str(Narrow, r0, MemOperand(r5, 4));
532 __ ldr(Narrow, r1, MemOperand(r0, 20));
533 __ ldr(Narrow, r3, MemOperand(r0, 4));
534 __ ldr(Narrow, r2, MemOperand(r0, 12));
535 __ add(Narrow, r3, r3, r1);
536 __ subs(Narrow, r3, r3, r2);
537 __ cmp(Narrow, r3, 31U);
538 __ b(hi, Narrow, &l_02a8);
539 __ lsls(Narrow, r1, r1, 1U);
540 __ adds(r0, 4U);
541 __ adds(Narrow, r1, r1, 32U);
542 // --------------
543 __ bind(&l_02a4);
544 __ bl(&l_02a4);
545 // --------------
546 __ bind(&l_02a8);
547 __ movs(Narrow, r3, 1U);
548 __ strb(Narrow, r3, MemOperand(r5, 17));
549 // --------------
550 __ bind(&l_02ac);
551 __ ldr(Narrow, r3, &l_05f8);
552 __ add(fp, sp, 2304U);
553 __ mov(Narrow, r0, fp);
554 __ mov(Narrow, r1, r4);
555 __ add(Narrow, r2, sp, 84U);
556 __ str(Narrow, r3, MemOperand(r5));
557 __ bl(&l_0000);
558 __ mov(Narrow, r0, r4);
559 __ ldr(Narrow, r1, MemOperand(sp, 84));
560 __ mov(Narrow, r3, r8);
561 __ movs(Narrow, r2, 0U);
562 // --------------
563 __ bind(&l_02c6);
564 __ bl(&l_02c6);
565 __ mov(Narrow, r0, fp);
566 // --------------
567 __ bind(&l_02cc);
568 __ bl(&l_02cc);
569 __ ldrb(Narrow, r3, MemOperand(r5, 17));
570 __ str(r9, MemOperand(r5));
571 __ cmp(Narrow, r3, 0U);
572 __ b(ne, &l_1a72);
573 // --------------
574 __ bind(&l_02dc);
575 __ ldr(Narrow, r3, MemOperand(r7));
576 __ add(r6, sp, 2304U);
577 __ vmov(F64, d7, 0.12500);
578 __ mov(sl, 832U);
579 __ mov(Narrow, r0, r4);
580 __ str(fp, MemOperand(sp));
581 __ str(r3, MemOperand(sp, 2320));
582 __ movs(Narrow, r1, 14U);
583 __ vstr(d7, MemOperand(r6));
584 }
Generate_4(TestAssembler * assembler)585 void Generate_4(TestAssembler* assembler) {
586 __ mov(r2, 800U);
587 __ ldr(Narrow, r3, MemOperand(sp, 60));
588 __ add(r6, sp, 2304U);
589 __ str(sl, MemOperand(sp, 2312));
590 __ mov(r8, 0U);
591 // --------------
592 __ bind(&l_030c);
593 __ bl(&l_030c);
594 __ vldr(d7, &l_05f0);
595 __ mov(Narrow, r0, r4);
596 __ str(fp, MemOperand(sp));
597 __ movs(Narrow, r1, 14U);
598 __ str(sl, MemOperand(sp, 2312));
599 __ mov(r2, 800U);
600 __ vstr(d7, MemOperand(r6));
601 __ add(sl, sp, 1968U);
602 __ ldr(Narrow, r6, MemOperand(r7));
603 __ ldr(Narrow, r3, MemOperand(sp, 56));
604 __ str(r6, MemOperand(sp, 2320));
605 // --------------
606 __ bind(&l_0334);
607 __ bl(&l_0334);
608 __ ldr(Narrow, r3, MemOperand(r7, 36));
609 __ movs(Narrow, r1, 14U);
610 __ ldr(lr, MemOperand(r7, 40));
611 __ mov(Narrow, r0, r4);
612 __ str(r8, MemOperand(sp, 2304));
613 __ mov(Narrow, r2, r3);
614 __ str(Narrow, r3, MemOperand(sp, 72));
615 __ mov(Narrow, r3, fp);
616 __ str(r8, MemOperand(sp, 2312));
617 __ str(lr, MemOperand(sp, 2308));
618 __ str(lr, MemOperand(sp, 2320));
619 __ str(r8, MemOperand(sp, 2316));
620 // --------------
621 __ bind(&l_035c);
622 __ bl(&l_035c);
623 __ mov(r3, 1056U);
624 __ ldr(Narrow, r1, MemOperand(r7));
625 __ str(r3, MemOperand(sl, 8));
626 __ movs(Narrow, r2, 42U);
627 __ ldr(Narrow, r3, MemOperand(r7, 44));
628 __ str(r8, MemOperand(r5, 4));
629 __ strb(r8, MemOperand(r5, 17));
630 __ str(Narrow, r3, MemOperand(sp, 48));
631 __ ldr(Narrow, r3, MemOperand(r7, 48));
632 __ str(r9, MemOperand(r5));
633 __ str(r1, MemOperand(sl, 16));
634 __ str(Narrow, r3, MemOperand(sp, 44));
635 __ ldr(Narrow, r3, MemOperand(sp, 20));
636 __ str(r2, MemOperand(sl));
637 __ cbz(r3, &l_03dc);
638 __ mov(Narrow, r6, r3);
639 __ ldr(Narrow, r3, MemOperand(r4, 44));
640 __ movs(Narrow, r2, 1U);
641 __ str(Narrow, r6, MemOperand(r5, 20));
642 __ str(Narrow, r2, MemOperand(r5, 24));
643 __ mov(Narrow, r0, r6);
644 __ movs(Narrow, r1, 32U);
645 __ ldr(Narrow, r3, MemOperand(r3, 32));
646 __ blx(r3);
647 __ ldr(Narrow, r3, MemOperand(r4, 44));
648 __ mov(Narrow, r0, r6);
649 __ ldr(Narrow, r3, MemOperand(r3, 24));
650 __ blx(r3);
651 __ ldr(Narrow, r2, MemOperand(r4, 44));
652 __ movw(r3, 0U);
653 __ movt(r3, 0U);
654 __ ldr(Narrow, r2, MemOperand(r2));
655 __ cmp(Narrow, r2, r3);
656 __ b(ne, &l_1ab0);
657 __ mov(Narrow, r0, r6);
658 // --------------
659 __ bind(&l_03ba);
660 __ bl(&l_03ba);
661 // --------------
662 __ bind(&l_03be);
663 __ str(Narrow, r0, MemOperand(r5, 4));
664 __ ldr(Narrow, r1, MemOperand(r0, 20));
665 __ ldr(Narrow, r3, MemOperand(r0, 4));
666 __ ldr(Narrow, r2, MemOperand(r0, 12));
667 __ add(Narrow, r3, r3, r1);
668 __ subs(Narrow, r3, r3, r2);
669 __ cmp(Narrow, r3, 31U);
670 __ b(hi, Narrow, &l_03d8);
671 __ lsls(Narrow, r1, r1, 1U);
672 __ adds(r0, 4U);
673 __ adds(Narrow, r1, r1, 32U);
674 // --------------
675 __ bind(&l_03d4);
676 __ bl(&l_03d4);
677 // --------------
678 __ bind(&l_03d8);
679 __ movs(Narrow, r3, 1U);
680 __ strb(Narrow, r3, MemOperand(r5, 17));
681 // --------------
682 __ bind(&l_03dc);
683 __ ldr(Narrow, r1, &l_05f8);
684 __ mov(lr, 0U);
685 __ ldr(Narrow, r6, &l_05fc);
686 __ mov(ip, 1U);
687 __ movs(Narrow, r3, 14U);
688 __ movs(Narrow, r2, 4U);
689 __ str(Narrow, r1, MemOperand(r5));
690 __ mov(Narrow, r0, r4);
691 __ str(r3, MemOperand(sp, 2308));
692 __ mov(Narrow, r1, r3);
693 __ str(r2, MemOperand(sp, 2316));
694 __ mov(r2, 1032U);
695 __ str(r4, MemOperand(sp, 2304));
696 __ str(ip, MemOperand(sp, 2320));
697 __ ldr(Narrow, r3, MemOperand(sp, 48));
698 __ str(ip, MemOperand(sp, 2324));
699 __ strb(ip, MemOperand(sp, 2352));
700 __ str(ip, MemOperand(sp, 2368));
701 __ str(ip, MemOperand(sp, 2392));
702 }
Generate_5(TestAssembler * assembler)703 void Generate_5(TestAssembler* assembler) {
704 __ str(ip, MemOperand(sp, 2416));
705 __ str(ip, MemOperand(sp, 2440));
706 __ strb(lr, MemOperand(sp, 2328));
707 __ str(lr, MemOperand(sp, 2332));
708 __ strb(lr, MemOperand(sp, 2336));
709 __ strb(lr, MemOperand(sp, 2340));
710 __ str(lr, MemOperand(sp, 2356));
711 __ str(lr, MemOperand(sp, 2360));
712 __ str(lr, MemOperand(sp, 2364));
713 __ str(lr, MemOperand(sp, 2372));
714 __ str(lr, MemOperand(sp, 2376));
715 __ str(lr, MemOperand(sp, 2380));
716 __ str(lr, MemOperand(sp, 2384));
717 __ str(lr, MemOperand(sp, 2388));
718 __ str(lr, MemOperand(sp, 2396));
719 __ str(lr, MemOperand(sp, 2400));
720 __ str(lr, MemOperand(sp, 2404));
721 __ str(lr, MemOperand(sp, 2408));
722 __ str(lr, MemOperand(sp, 2412));
723 __ str(lr, MemOperand(sp, 2420));
724 __ str(lr, MemOperand(sp, 2424));
725 __ str(lr, MemOperand(sp, 2428));
726 __ str(lr, MemOperand(sp, 2432));
727 __ str(lr, MemOperand(sp, 2436));
728 __ str(sl, MemOperand(sp));
729 __ str(lr, MemOperand(sp, 2444));
730 __ str(lr, MemOperand(sp, 2448));
731 __ str(lr, MemOperand(sp, 2452));
732 __ str(lr, MemOperand(sp, 2456));
733 __ strb(lr, MemOperand(sp, 2464));
734 __ str(r6, MemOperand(sp, 2312));
735 // --------------
736 __ bind(&l_0494);
737 __ bl(&l_0494);
738 __ mov(Narrow, r0, fp);
739 // --------------
740 __ bind(&l_049a);
741 __ bl(&l_049a);
742 __ ldrb(Narrow, r3, MemOperand(r5, 17));
743 __ str(r9, MemOperand(r5));
744 __ cmp(Narrow, r3, 0U);
745 __ b(ne, &l_1a54);
746 // --------------
747 __ bind(&l_04aa);
748 __ movs(Narrow, r3, 0U);
749 __ ldr(Narrow, r0, MemOperand(r7));
750 __ str(Narrow, r3, MemOperand(r5, 4));
751 __ movs(Narrow, r1, 32U);
752 __ strb(Narrow, r3, MemOperand(r5, 17));
753 __ mov(r2, 1056U);
754 __ ldr(Narrow, r3, MemOperand(sp, 20));
755 __ str(r9, MemOperand(r5));
756 __ str(r1, MemOperand(sl));
757 __ str(r0, MemOperand(sl, 16));
758 __ str(r2, MemOperand(sl, 8));
759 __ cbz(r3, &l_051a);
760 __ mov(Narrow, r6, r3);
761 __ ldr(Narrow, r3, MemOperand(r4, 44));
762 __ movs(Narrow, r2, 1U);
763 __ mov(Narrow, r0, r6);
764 __ str(Narrow, r2, MemOperand(r5, 24));
765 __ str(Narrow, r6, MemOperand(r5, 20));
766 __ ldr(Narrow, r3, MemOperand(r3, 32));
767 __ blx(r3);
768 __ ldr(Narrow, r3, MemOperand(r4, 44));
769 __ mov(Narrow, r0, r6);
770 __ ldr(Narrow, r3, MemOperand(r3, 24));
771 __ blx(r3);
772 __ ldr(Narrow, r2, MemOperand(r4, 44));
773 __ movw(r3, 0U);
774 __ movt(r3, 0U);
775 __ ldr(Narrow, r2, MemOperand(r2));
776 __ cmp(Narrow, r2, r3);
777 __ b(ne, &l_1a98);
778 __ mov(Narrow, r0, r6);
779 // --------------
780 __ bind(&l_04f8);
781 __ bl(&l_04f8);
782 // --------------
783 __ bind(&l_04fc);
784 __ str(Narrow, r0, MemOperand(r5, 4));
785 __ ldr(Narrow, r1, MemOperand(r0, 20));
786 __ ldr(Narrow, r3, MemOperand(r0, 4));
787 __ ldr(Narrow, r2, MemOperand(r0, 12));
788 __ add(Narrow, r3, r3, r1);
789 __ subs(Narrow, r3, r3, r2);
790 __ cmp(Narrow, r3, 31U);
791 __ b(hi, Narrow, &l_0516);
792 __ lsls(Narrow, r1, r1, 1U);
793 __ adds(r0, 4U);
794 __ adds(Narrow, r1, r1, 32U);
795 // --------------
796 __ bind(&l_0512);
797 __ bl(&l_0512);
798 // --------------
799 __ bind(&l_0516);
800 __ movs(Narrow, r3, 1U);
801 __ strb(Narrow, r3, MemOperand(r5, 17));
802 // --------------
803 __ bind(&l_051a);
804 __ ldr(Narrow, r1, &l_05f8);
805 __ mov(lr, 0U);
806 __ ldr(Narrow, r6, &l_05fc);
807 __ mov(ip, 1U);
808 __ movs(Narrow, r3, 14U);
809 __ movs(Narrow, r2, 4U);
810 __ str(Narrow, r1, MemOperand(r5));
811 __ mov(Narrow, r0, r4);
812 __ str(r3, MemOperand(sp, 2308));
813 __ mov(Narrow, r1, r3);
814 __ str(r2, MemOperand(sp, 2316));
815 __ mov(r2, 1032U);
816 __ str(r4, MemOperand(sp, 2304));
817 __ str(ip, MemOperand(sp, 2320));
818 __ ldr(Narrow, r3, MemOperand(sp, 44));
819 __ str(ip, MemOperand(sp, 2324));
820 }
Generate_6(TestAssembler * assembler)821 void Generate_6(TestAssembler* assembler) {
822 __ strb(ip, MemOperand(sp, 2352));
823 __ str(ip, MemOperand(sp, 2368));
824 __ str(ip, MemOperand(sp, 2392));
825 __ str(ip, MemOperand(sp, 2416));
826 __ str(ip, MemOperand(sp, 2440));
827 __ strb(lr, MemOperand(sp, 2328));
828 __ str(lr, MemOperand(sp, 2332));
829 __ strb(lr, MemOperand(sp, 2336));
830 __ strb(lr, MemOperand(sp, 2340));
831 __ str(lr, MemOperand(sp, 2356));
832 __ str(lr, MemOperand(sp, 2360));
833 __ str(lr, MemOperand(sp, 2364));
834 __ str(lr, MemOperand(sp, 2372));
835 __ str(lr, MemOperand(sp, 2376));
836 __ str(lr, MemOperand(sp, 2380));
837 __ str(lr, MemOperand(sp, 2384));
838 __ str(lr, MemOperand(sp, 2388));
839 __ str(lr, MemOperand(sp, 2396));
840 __ str(lr, MemOperand(sp, 2400));
841 __ str(lr, MemOperand(sp, 2404));
842 __ str(lr, MemOperand(sp, 2408));
843 __ str(lr, MemOperand(sp, 2412));
844 __ str(lr, MemOperand(sp, 2420));
845 __ str(lr, MemOperand(sp, 2424));
846 __ str(lr, MemOperand(sp, 2428));
847 __ str(lr, MemOperand(sp, 2432));
848 __ str(lr, MemOperand(sp, 2436));
849 __ str(sl, MemOperand(sp));
850 __ str(lr, MemOperand(sp, 2444));
851 __ str(lr, MemOperand(sp, 2448));
852 __ str(lr, MemOperand(sp, 2452));
853 __ str(lr, MemOperand(sp, 2456));
854 __ strb(lr, MemOperand(sp, 2464));
855 __ str(r6, MemOperand(sp, 2312));
856 // --------------
857 __ bind(&l_05d2);
858 __ bl(&l_05d2);
859 __ mov(Narrow, r0, fp);
860 // --------------
861 __ bind(&l_05d8);
862 __ bl(&l_05d8);
863 __ ldrb(Narrow, r3, MemOperand(r5, 17));
864 __ str(r9, MemOperand(r5));
865 __ cmp(Narrow, r3, 0U);
866 __ b(ne, &l_1a36);
867 __ b(Narrow, &l_0604);
868 __ nop(Narrow);
869 __ nop(Wide);
870 // --------------
871 __ bind(&l_05f0);
872 __ Emit32(0x00000000);
873 __ Emit32(0x3fb00000);
874 // --------------
875 __ bind(&l_05f8);
876 __ Emit32(0x00000008);
877 // --------------
878 __ bind(&l_05fc);
879 __ Emit32(0x00000008);
880 // --------------
881 __ bind(&l_0600);
882 __ Emit32(0x00000008);
883 // --------------
884 __ bind(&l_0604);
885 __ ldr(Narrow, r3, MemOperand(r7, 48));
886 __ mov(Narrow, r0, r4);
887 __ ldr(Narrow, r1, MemOperand(r7, 52));
888 __ add(r8, sp, 120U);
889 __ vmov(F32, s0, -2.0000);
890 __ and_(r3, r3, 0x1f);
891 __ orr(r3, r3, 0x8000);
892 __ orr(r3, r3, 0x60);
893 __ mov(Narrow, r6, r3);
894 __ str(Narrow, r3, MemOperand(sp, 76));
895 // --------------
896 __ bind(&l_0622);
897 __ bl(&l_0622);
898 __ movs(Narrow, r3, 0U);
899 __ movs(Narrow, r2, 1U);
900 __ str(Narrow, r3, MemOperand(r5, 4));
901 __ movs(Narrow, r1, 14U);
902 __ strb(Narrow, r3, MemOperand(r5, 17));
903 __ mov(Narrow, r0, r6);
904 __ ldr(Narrow, r3, MemOperand(sp, 20));
905 __ str(r9, MemOperand(r5));
906 __ stm(r8, NO_WRITE_BACK, RegisterList(r0, r2));
907 __ str(Narrow, r1, MemOperand(sp, 88));
908 __ cbz(r3, &l_068e);
909 __ mov(Narrow, r6, r3);
910 __ ldr(Narrow, r3, MemOperand(r4, 44));
911 __ str(Narrow, r2, MemOperand(r5, 24));
912 __ mov(Narrow, r0, r6);
913 __ str(Narrow, r6, MemOperand(r5, 20));
914 __ movs(Narrow, r1, 32U);
915 __ ldr(Narrow, r3, MemOperand(r3, 32));
916 __ blx(r3);
917 __ ldr(Narrow, r3, MemOperand(r4, 44));
918 __ mov(Narrow, r0, r6);
919 __ ldr(Narrow, r3, MemOperand(r3, 24));
920 __ blx(r3);
921 __ ldr(Narrow, r2, MemOperand(r4, 44));
922 __ movw(r3, 0U);
923 __ movt(r3, 0U);
924 __ ldr(Narrow, r2, MemOperand(r2));
925 __ cmp(Narrow, r2, r3);
926 __ b(ne, &l_1a90);
927 __ mov(Narrow, r0, r6);
928 // --------------
929 __ bind(&l_066c);
930 __ bl(&l_066c);
931 // --------------
932 __ bind(&l_0670);
933 __ str(Narrow, r0, MemOperand(r5, 4));
934 __ ldr(Narrow, r1, MemOperand(r0, 20));
935 __ ldr(Narrow, r3, MemOperand(r0, 4));
936 __ ldr(Narrow, r2, MemOperand(r0, 12));
937 __ add(Narrow, r3, r3, r1);
938 __ subs(Narrow, r3, r3, r2);
939 __ cmp(Narrow, r3, 31U);
940 __ b(hi, Narrow, &l_068a);
941 __ lsls(Narrow, r1, r1, 1U);
942 }
Generate_7(TestAssembler * assembler)943 void Generate_7(TestAssembler* assembler) {
944 __ adds(r0, 4U);
945 __ adds(Narrow, r1, r1, 32U);
946 // --------------
947 __ bind(&l_0686);
948 __ bl(&l_0686);
949 // --------------
950 __ bind(&l_068a);
951 __ movs(Narrow, r3, 1U);
952 __ strb(Narrow, r3, MemOperand(r5, 17));
953 // --------------
954 __ bind(&l_068e);
955 __ ldr(Narrow, r3, &l_09dc);
956 __ mov(Narrow, r0, fp);
957 __ mov(Narrow, r1, r4);
958 __ add(Narrow, r2, sp, 88U);
959 __ str(Narrow, r3, MemOperand(r5));
960 __ bl(&l_0000);
961 __ ldm(r8, NO_WRITE_BACK, RegisterList(r0, r1));
962 __ mov(r2, 1568U);
963 __ ldr(lr, MemOperand(sp, 88));
964 __ ldr(Narrow, r3, MemOperand(sp, 36));
965 __ stm(sp, NO_WRITE_BACK, RegisterList(r0, r1));
966 __ mov(Narrow, r0, r4);
967 __ mov(Narrow, r1, lr);
968 // --------------
969 __ bind(&l_06b2);
970 __ bl(&l_06b2);
971 __ mov(Narrow, r0, fp);
972 // --------------
973 __ bind(&l_06b8);
974 __ bl(&l_06b8);
975 __ ldr(Narrow, r3, &l_09dc);
976 __ mov(Narrow, r0, r5);
977 __ mov(r8, 0U);
978 __ str(Narrow, r3, MemOperand(r5));
979 // --------------
980 __ bind(&l_06c6);
981 __ bl(&l_06c6);
982 __ ldr(Narrow, r3, MemOperand(r7));
983 __ mov(lr, 832U);
984 __ vmov(F64, d7, 4.0000);
985 __ mov(Narrow, r0, r4);
986 __ str(fp, MemOperand(sp));
987 __ movs(Narrow, r1, 14U);
988 __ str(r3, MemOperand(sp, 2320));
989 __ add(r3, sp, 2304U);
990 __ vstr(d7, MemOperand(r3));
991 __ mov(r2, 800U);
992 __ ldr(Narrow, r3, MemOperand(sp, 52));
993 __ str(lr, MemOperand(sp, 2312));
994 // --------------
995 __ bind(&l_06f2);
996 __ bl(&l_06f2);
997 __ ldr(lr, MemOperand(r7, 40));
998 __ mov(ip, 64U);
999 __ ldr(Narrow, r2, MemOperand(r7, 24));
1000 __ mov(Narrow, r3, fp);
1001 __ mov(Narrow, r0, r4);
1002 __ movs(Narrow, r1, 14U);
1003 __ str(r8, MemOperand(sp, 2312));
1004 __ str(r8, MemOperand(sp, 2316));
1005 __ str(lr, MemOperand(sp, 2308));
1006 __ str(lr, MemOperand(sp, 2320));
1007 __ str(ip, MemOperand(sp, 2304));
1008 // --------------
1009 __ bind(&l_071a);
1010 __ bl(&l_071a);
1011 __ movs(Narrow, r2, 132U);
1012 __ ldr(Narrow, r3, MemOperand(r7, 40));
1013 __ str(r2, MemOperand(sl));
1014 __ ldr(Narrow, r2, MemOperand(sp, 20));
1015 __ str(r8, MemOperand(sl, 8));
1016 __ str(r8, MemOperand(sl, 12));
1017 __ str(r8, MemOperand(r5, 4));
1018 __ strb(r8, MemOperand(r5, 17));
1019 __ str(r3, MemOperand(sl, 4));
1020 __ str(r3, MemOperand(sl, 16));
1021 __ str(r9, MemOperand(r5));
1022 __ ldr(Narrow, r3, &l_09dc);
1023 __ ldr(r8, MemOperand(r7, 56));
1024 __ cmp(Narrow, r2, 0U);
1025 __ b(eq, &l_1ab8);
1026 __ ldr(Narrow, r3, MemOperand(r4, 44));
1027 __ mov(Narrow, r6, r2);
1028 __ movs(Narrow, r2, 1U);
1029 __ str(Narrow, r6, MemOperand(r5, 20));
1030 __ str(Narrow, r2, MemOperand(r5, 24));
1031 __ mov(Narrow, r0, r6);
1032 __ movs(Narrow, r1, 32U);
1033 __ ldr(Narrow, r3, MemOperand(r3, 32));
1034 __ blx(r3);
1035 __ ldr(Narrow, r3, MemOperand(r4, 44));
1036 __ mov(Narrow, r0, r6);
1037 __ ldr(Narrow, r3, MemOperand(r3, 24));
1038 __ blx(r3);
1039 __ ldr(Narrow, r2, MemOperand(r4, 44));
1040 __ movw(r3, 0U);
1041 __ movt(r3, 0U);
1042 __ ldr(Narrow, r2, MemOperand(r2));
1043 __ cmp(Narrow, r2, r3);
1044 __ b(ne, &l_1aa0);
1045 __ mov(Narrow, r0, r6);
1046 // --------------
1047 __ bind(&l_077e);
1048 __ bl(&l_077e);
1049 // --------------
1050 __ bind(&l_0782);
1051 __ str(Narrow, r0, MemOperand(r5, 4));
1052 __ ldr(Narrow, r1, MemOperand(r0, 20));
1053 __ ldr(Narrow, r3, MemOperand(r0, 4));
1054 __ ldr(Narrow, r2, MemOperand(r0, 12));
1055 __ add(Narrow, r3, r3, r1);
1056 __ subs(Narrow, r3, r3, r2);
1057 __ cmp(Narrow, r3, 31U);
1058 __ b(hi, Narrow, &l_079c);
1059 __ lsls(Narrow, r1, r1, 1U);
1060 __ adds(r0, 4U);
1061 __ adds(Narrow, r1, r1, 32U);
1062 // --------------
1063 __ bind(&l_0798);
1064 __ bl(&l_0798);
1065 // --------------
1066 __ bind(&l_079c);
1067 __ movs(Narrow, r3, 1U);
1068 }
Generate_8(TestAssembler * assembler)1069 void Generate_8(TestAssembler* assembler) {
1070 __ ldr(Narrow, r2, &l_09dc);
1071 __ strb(Narrow, r3, MemOperand(r5, 17));
1072 __ and_(r3, r8, 0x1f);
1073 __ str(Narrow, r2, MemOperand(r5));
1074 // --------------
1075 __ bind(&l_07a8);
1076 __ ldr(r0, MemOperand(sl, 4));
1077 __ ubfx(r1, r0, 5U, 4U);
1078 __ cmp(Narrow, r1, 0U);
1079 __ b(ne, &l_1ac2);
1080 __ ldr(r2, MemOperand(sl));
1081 __ cmp(Narrow, r2, 0U);
1082 __ b(eq, &l_1d88);
1083 __ cmp(Narrow, r2, 7U);
1084 __ b(hi, &l_1b3e);
1085 __ cmp(Narrow, r3, 7U);
1086 __ it(ls);
1087 __ mov(ls, ip, 1U);
1088 __ b(ls, Narrow, &l_07dc);
1089 // --------------
1090 __ bind(&l_07d0);
1091 __ cmp(Narrow, r3, 7U);
1092 __ ite(hi);
1093 __ mov(hi, ip, 0U);
1094 __ mov(ls, ip, 1U);
1095 // --------------
1096 __ bind(&l_07dc);
1097 __ ldr(Narrow, r6, &l_09e0);
1098 __ mov(lr, 0U);
1099 __ movs(Narrow, r3, 1U);
1100 __ movs(Narrow, r2, 4U);
1101 __ movs(Narrow, r1, 14U);
1102 __ str(r2, MemOperand(sp, 2316));
1103 __ str(r3, MemOperand(sp, 2320));
1104 __ mov(Narrow, r2, lr);
1105 __ str(r3, MemOperand(sp, 2324));
1106 __ mov(Narrow, r0, r4);
1107 __ strb(r3, MemOperand(sp, 2352));
1108 __ str(r3, MemOperand(sp, 2368));
1109 __ str(r3, MemOperand(sp, 2392));
1110 __ str(r3, MemOperand(sp, 2416));
1111 __ str(r3, MemOperand(sp, 2440));
1112 __ mov(Narrow, r3, r8);
1113 __ str(r4, MemOperand(sp, 2304));
1114 __ str(r1, MemOperand(sp, 2308));
1115 __ strb(lr, MemOperand(sp, 2328));
1116 __ str(lr, MemOperand(sp, 2332));
1117 __ strb(lr, MemOperand(sp, 2336));
1118 __ strb(lr, MemOperand(sp, 2340));
1119 __ str(lr, MemOperand(sp, 2356));
1120 __ str(lr, MemOperand(sp, 2360));
1121 __ str(lr, MemOperand(sp, 2364));
1122 __ str(lr, MemOperand(sp, 2372));
1123 __ str(lr, MemOperand(sp, 2376));
1124 __ str(lr, MemOperand(sp, 2380));
1125 __ str(lr, MemOperand(sp, 2384));
1126 __ str(lr, MemOperand(sp, 2388));
1127 __ str(lr, MemOperand(sp, 2396));
1128 __ str(lr, MemOperand(sp, 2400));
1129 __ str(lr, MemOperand(sp, 2404));
1130 __ str(lr, MemOperand(sp, 2408));
1131 __ str(lr, MemOperand(sp, 2412));
1132 __ str(lr, MemOperand(sp, 2420));
1133 __ str(lr, MemOperand(sp, 2424));
1134 __ str(lr, MemOperand(sp, 2428));
1135 __ str(lr, MemOperand(sp, 2432));
1136 __ str(lr, MemOperand(sp, 2436));
1137 __ str(lr, MemOperand(sp, 2444));
1138 __ str(lr, MemOperand(sp, 2448));
1139 __ str(r8, MemOperand(sp));
1140 __ str(sl, MemOperand(sp, 4));
1141 __ str(lr, MemOperand(sp, 2452));
1142 __ str(lr, MemOperand(sp, 2456));
1143 __ str(r6, MemOperand(sp, 2312));
1144 __ strb(ip, MemOperand(sp, 2464));
1145 // --------------
1146 __ bind(&l_088e);
1147 __ bl(&l_088e);
1148 __ mov(Narrow, r0, fp);
1149 // --------------
1150 __ bind(&l_0894);
1151 __ bl(&l_0894);
1152 __ ldrb(Narrow, r3, MemOperand(r5, 17));
1153 __ str(r9, MemOperand(r5));
1154 __ cmp(Narrow, r3, 0U);
1155 __ b(ne, &l_1ce2);
1156 // --------------
1157 __ bind(&l_08a4);
1158 __ ldr(Narrow, r3, MemOperand(r7, 32));
1159 __ mov(r8, 0U);
1160 __ ldr(Narrow, r6, MemOperand(r7, 40));
1161 __ mov(Narrow, r0, r4);
1162 __ movs(Narrow, r1, 14U);
1163 __ str(r8, MemOperand(sp, 2304));
1164 __ mov(Narrow, r2, r3);
1165 __ str(Narrow, r3, MemOperand(sp, 68));
1166 __ ldr(Narrow, r3, MemOperand(r7, 56));
1167 __ str(r6, MemOperand(sp, 2320));
1168 __ str(r8, MemOperand(sp, 2312));
1169 __ str(r3, MemOperand(sp, 2308));
1170 __ mov(Narrow, r3, fp);
1171 __ str(r8, MemOperand(sp, 2316));
1172 // --------------
1173 __ bind(&l_08cc);
1174 __ bl(&l_08cc);
1175 __ movs(Narrow, r2, 4U);
1176 __ movs(Narrow, r3, 1U);
1177 __ str(Narrow, r2, MemOperand(sp, 476));
1178 __ add(Narrow, r1, sp, 472U);
1179 __ ldr(Narrow, r2, &l_09e0);
1180 __ mov(Narrow, r0, r4);
1181 __ str(Narrow, r3, MemOperand(sp, 480));
1182 __ str(Narrow, r3, MemOperand(sp, 484));
1183 __ strb(r3, MemOperand(sp, 512));
1184 }
Generate_9(TestAssembler * assembler)1185 void Generate_9(TestAssembler* assembler) {
1186 __ str(Narrow, r3, MemOperand(sp, 528));
1187 __ str(Narrow, r3, MemOperand(sp, 552));
1188 __ str(Narrow, r3, MemOperand(sp, 576));
1189 __ str(Narrow, r3, MemOperand(sp, 600));
1190 __ strb(r8, MemOperand(sp, 488));
1191 __ str(r8, MemOperand(sp, 492));
1192 __ strb(r8, MemOperand(sp, 496));
1193 __ strb(r8, MemOperand(sp, 500));
1194 __ str(r8, MemOperand(sp, 516));
1195 __ str(r8, MemOperand(sp, 520));
1196 __ str(r8, MemOperand(sp, 524));
1197 __ str(r8, MemOperand(sp, 532));
1198 __ str(r8, MemOperand(sp, 536));
1199 __ str(r8, MemOperand(sp, 540));
1200 __ str(r8, MemOperand(sp, 544));
1201 __ str(r8, MemOperand(sp, 548));
1202 __ str(r8, MemOperand(sp, 556));
1203 __ str(r8, MemOperand(sp, 560));
1204 __ str(r8, MemOperand(sp, 564));
1205 __ str(r8, MemOperand(sp, 568));
1206 __ str(r8, MemOperand(sp, 572));
1207 __ str(r8, MemOperand(sp, 580));
1208 __ str(r8, MemOperand(sp, 584));
1209 __ str(r8, MemOperand(sp, 588));
1210 __ str(r8, MemOperand(sp, 592));
1211 __ str(r8, MemOperand(sp, 596));
1212 __ str(r8, MemOperand(sp, 604));
1213 __ str(r8, MemOperand(sp, 608));
1214 __ str(r8, MemOperand(sp, 612));
1215 __ str(r8, MemOperand(sp, 616));
1216 __ ldr(Narrow, r3, MemOperand(r4));
1217 __ str(Narrow, r2, MemOperand(sp, 472));
1218 __ ldr(Narrow, r2, &l_09e4);
1219 __ ldr(Narrow, r3, MemOperand(r3, 8));
1220 __ str(Narrow, r2, MemOperand(sp, 24));
1221 __ blx(r3);
1222 __ ldr(Narrow, r3, &l_09e4);
1223 __ mov(Narrow, r0, r4);
1224 __ ldr(Narrow, r1, MemOperand(r7, 60));
1225 __ vmov(F32, s0, -2.0000);
1226 __ str(Narrow, r3, MemOperand(sp, 24));
1227 // --------------
1228 __ bind(&l_096c);
1229 __ bl(&l_096c);
1230 __ movs(Narrow, r3, 0U);
1231 __ add(r8, sp, 136U);
1232 __ movt(r3, 49148U);
1233 __ mov(r1, 800U);
1234 __ str(r1, MemOperand(r8, 8));
1235 __ str(r3, MemOperand(r8));
1236 __ movs(Narrow, r3, 0U);
1237 __ ldr(Narrow, r1, MemOperand(sp, 20));
1238 __ ldr(Narrow, r2, MemOperand(r7));
1239 __ str(Narrow, r3, MemOperand(sp, 168));
1240 __ strb(r3, MemOperand(sp, 181));
1241 __ ldr(Narrow, r3, MemOperand(r7, 64));
1242 __ str(r2, MemOperand(r8, 16));
1243 __ str(r9, MemOperand(sp, 164));
1244 __ mov(Narrow, r6, r3);
1245 __ cmp(Narrow, r1, 0U);
1246 __ b(eq, Narrow, &l_0a00);
1247 __ movs(Narrow, r2, 1U);
1248 __ ldr(Narrow, r3, MemOperand(r4, 44));
1249 __ str(Narrow, r2, MemOperand(sp, 188));
1250 __ mov(Narrow, r0, r1);
1251 __ ldr(Narrow, r2, &l_09e4);
1252 __ str(Narrow, r1, MemOperand(sp, 184));
1253 __ movs(Narrow, r1, 32U);
1254 __ ldr(Narrow, r3, MemOperand(r3, 32));
1255 __ str(Narrow, r2, MemOperand(sp, 24));
1256 __ blx(r3);
1257 __ ldr(Narrow, r3, MemOperand(r4, 44));
1258 __ ldr(Narrow, r2, &l_09e4);
1259 __ ldr(Narrow, r0, MemOperand(sp, 20));
1260 __ ldr(Narrow, r3, MemOperand(r3, 24));
1261 __ str(Narrow, r2, MemOperand(sp, 24));
1262 __ blx(r3);
1263 __ ldr(Narrow, r2, MemOperand(r4, 44));
1264 __ movw(r3, 0U);
1265 __ movt(r3, 0U);
1266 __ ldr(Narrow, r0, MemOperand(sp, 20));
1267 __ ldr(Narrow, r2, MemOperand(r2));
1268 __ cmp(Narrow, r2, r3);
1269 __ b(ne, &l_1d30);
1270 // --------------
1271 __ bind(&l_09d6);
1272 __ bl(&l_09d6);
1273 __ b(Narrow, &l_09e8);
1274 // --------------
1275 __ bind(&l_09dc);
1276 __ Emit32(0x00000008);
1277 // --------------
1278 __ bind(&l_09e0);
1279 __ Emit32(0x00000008);
1280 // --------------
1281 __ bind(&l_09e4);
1282 __ Emit32(0x00000008);
1283 // --------------
1284 __ bind(&l_09e8);
1285 __ str(Narrow, r0, MemOperand(sp, 168));
1286 __ ldr(Narrow, r1, MemOperand(r0, 20));
1287 __ ldr(Narrow, r3, MemOperand(r0, 4));
1288 __ ldr(Narrow, r2, MemOperand(r0, 12));
1289 __ add(Narrow, r3, r3, r1);
1290 __ subs(Narrow, r3, r3, r2);
1291 __ cmp(Narrow, r3, 31U);
1292 __ b(ls, &l_1c60);
1293 // --------------
1294 __ bind(&l_09fa);
1295 __ movs(Narrow, r3, 1U);
1296 __ strb(r3, MemOperand(sp, 181));
1297 // --------------
1298 __ bind(&l_0a00);
1299 __ ldr(Narrow, r3, &l_0d18);
1300 __ mov(lr, 0U);
1301 __ movs(Narrow, r2, 1U);
1302 }
Generate_10(TestAssembler * assembler)1303 void Generate_10(TestAssembler* assembler) {
1304 __ movs(Narrow, r0, 14U);
1305 __ movs(Narrow, r1, 4U);
1306 __ str(Narrow, r0, MemOperand(sp, 628));
1307 __ str(Narrow, r3, MemOperand(sp, 164));
1308 __ mov(Narrow, r3, r6);
1309 __ ldr(Narrow, r6, &l_0d1c);
1310 __ str(Narrow, r1, MemOperand(sp, 636));
1311 __ mov(Narrow, r1, r0);
1312 __ str(Narrow, r2, MemOperand(sp, 640));
1313 __ mov(Narrow, r0, r4);
1314 __ str(Narrow, r2, MemOperand(sp, 644));
1315 __ strb(r2, MemOperand(sp, 672));
1316 __ str(Narrow, r2, MemOperand(sp, 688));
1317 __ str(Narrow, r2, MemOperand(sp, 712));
1318 __ str(Narrow, r2, MemOperand(sp, 736));
1319 __ str(Narrow, r2, MemOperand(sp, 760));
1320 __ mov(r2, 800U);
1321 __ str(Narrow, r4, MemOperand(sp, 624));
1322 __ strb(lr, MemOperand(sp, 648));
1323 __ str(lr, MemOperand(sp, 652));
1324 __ strb(lr, MemOperand(sp, 656));
1325 __ strb(lr, MemOperand(sp, 660));
1326 __ str(lr, MemOperand(sp, 676));
1327 __ str(lr, MemOperand(sp, 680));
1328 __ str(lr, MemOperand(sp, 684));
1329 __ str(lr, MemOperand(sp, 692));
1330 __ str(lr, MemOperand(sp, 696));
1331 __ str(lr, MemOperand(sp, 700));
1332 __ str(lr, MemOperand(sp, 704));
1333 __ str(lr, MemOperand(sp, 708));
1334 __ str(lr, MemOperand(sp, 716));
1335 __ str(lr, MemOperand(sp, 720));
1336 __ str(lr, MemOperand(sp, 724));
1337 __ str(lr, MemOperand(sp, 728));
1338 __ str(lr, MemOperand(sp, 732));
1339 __ str(lr, MemOperand(sp, 740));
1340 __ str(lr, MemOperand(sp, 744));
1341 __ str(lr, MemOperand(sp, 748));
1342 __ str(lr, MemOperand(sp, 752));
1343 __ str(lr, MemOperand(sp, 756));
1344 __ str(lr, MemOperand(sp, 764));
1345 __ str(r8, MemOperand(sp));
1346 __ str(lr, MemOperand(sp, 768));
1347 __ str(lr, MemOperand(sp, 772));
1348 __ str(lr, MemOperand(sp, 776));
1349 __ str(Narrow, r6, MemOperand(sp, 632));
1350 __ strb(lr, MemOperand(sp, 784));
1351 // --------------
1352 __ bind(&l_0aa2);
1353 __ bl(&l_0aa2);
1354 __ ldrb(r3, MemOperand(sp, 656));
1355 __ cbz(r3, &l_0b00);
1356 __ ldr(r8, MemOperand(sp, 624));
1357 __ movw(r3, 0U);
1358 __ movt(r3, 0U);
1359 __ ldr(r2, MemOperand(r8));
1360 __ ldr(Narrow, r2, MemOperand(r2, 8));
1361 __ cmp(Narrow, r2, r3);
1362 __ b(ne, &l_1d92);
1363 __ ldr(r2, MemOperand(r8, 12));
1364 __ add(Narrow, r0, sp, 632U);
1365 __ ldr(r3, MemOperand(r8, 4));
1366 __ subs(Narrow, r3, r2, r3);
1367 __ mov(Narrow, r1, r3);
1368 __ str(Narrow, r3, MemOperand(sp, 28));
1369 // --------------
1370 __ bind(&l_0ad4);
1371 __ bl(&l_0ad4);
1372 __ cmp(Narrow, r0, 0U);
1373 __ b(ne, &l_1d00);
1374 __ add(r3, r8, 96U);
1375 __ mov(Narrow, r6, r3);
1376 __ add(r3, r8, 44U);
1377 __ mov(Narrow, r1, r3);
1378 __ str(Narrow, r3, MemOperand(sp, 24));
1379 // --------------
1380 __ bind(&l_0aec);
1381 __ ldr(lr, MemOperand(r8, 12));
1382 __ mov(Narrow, r0, r6);
1383 __ ldr(r3, MemOperand(r8, 4));
1384 __ add(Narrow, r2, sp, 632U);
1385 __ rsb(r3, r3, lr);
1386 // --------------
1387 __ bind(&l_0afc);
1388 __ bl(&l_0afc);
1389 // --------------
1390 __ bind(&l_0b00);
1391 __ ldr(Narrow, r3, &l_0d20);
1392 __ ldr(r8, MemOperand(sp, 776));
1393 __ str(Narrow, r3, MemOperand(sp, 24));
1394 __ str(Narrow, r3, MemOperand(sp, 632));
1395 __ cmp(r8, 0U);
1396 __ b(eq, Narrow, &l_0b20);
1397 __ ldr(r0, MemOperand(r8));
1398 __ cbz(r0, &l_0b1a);
1399 // --------------
1400 __ bind(&l_0b16);
1401 __ bl(&l_0b16);
1402 // --------------
1403 __ bind(&l_0b1a);
1404 __ mov(Narrow, r0, r8);
1405 // --------------
1406 __ bind(&l_0b1c);
1407 __ bl(&l_0b1c);
1408 // --------------
1409 __ bind(&l_0b20);
1410 __ ldrb(r3, MemOperand(sp, 181));
1411 __ str(r9, MemOperand(sp, 164));
1412 __ cmp(Narrow, r3, 0U);
1413 __ b(ne, &l_1c0e);
1414 // --------------
1415 __ bind(&l_0b2e);
1416 __ mov(Narrow, r0, r4);
1417 __ ldr(Narrow, r1, MemOperand(r7, 68));
1418 __ vmov(F32, s0, -1.9375);
1419 // --------------
1420 __ bind(&l_0b36);
1421 __ bl(&l_0b36);
1422 __ mov(Narrow, r0, r4);
1423 __ ldr(Narrow, r1, MemOperand(r7, 72));
1424 __ vldr(s0, &l_0d24);
1425 // --------------
1426 __ bind(&l_0b42);
1427 __ bl(&l_0b42);
1428 }
Generate_11(TestAssembler * assembler)1429 void Generate_11(TestAssembler* assembler) {
1430 __ ldr(ip, MemOperand(r7, 40));
1431 __ movs(Narrow, r3, 32U);
1432 __ mov(lr, 0U);
1433 __ str(r3, MemOperand(sp, 2304));
1434 __ mov(Narrow, r0, r4);
1435 __ movs(Narrow, r1, 14U);
1436 __ ldr(Narrow, r2, MemOperand(r7, 28));
1437 __ mov(Narrow, r3, fp);
1438 __ str(ip, MemOperand(sp, 2308));
1439 __ str(ip, MemOperand(sp, 2320));
1440 __ str(lr, MemOperand(sp, 2312));
1441 __ str(lr, MemOperand(sp, 2316));
1442 // --------------
1443 __ bind(&l_0b6c);
1444 __ bl(&l_0b6c);
1445 __ ldr(Narrow, r3, MemOperand(r7, 76));
1446 __ mov(lr, 0U);
1447 __ ldr(Narrow, r6, MemOperand(sp, 68));
1448 __ mov(Narrow, r0, r4);
1449 __ movs(Narrow, r1, 14U);
1450 __ str(lr, MemOperand(sp, 2304));
1451 __ mov(Narrow, r2, r3);
1452 __ str(Narrow, r3, MemOperand(sp, 40));
1453 __ ldr(Narrow, r3, MemOperand(r7, 40));
1454 __ str(r6, MemOperand(sp, 2308));
1455 __ str(lr, MemOperand(sp, 2312));
1456 __ str(r3, MemOperand(sp, 2320));
1457 __ mov(Narrow, r3, fp);
1458 __ str(lr, MemOperand(sp, 2316));
1459 // --------------
1460 __ bind(&l_0b98);
1461 __ bl(&l_0b98);
1462 __ movs(Narrow, r2, 1U);
1463 __ movs(Narrow, r3, 0U);
1464 __ str(Narrow, r2, MemOperand(sp, 632));
1465 __ movs(Narrow, r1, 4U);
1466 __ str(Narrow, r2, MemOperand(sp, 636));
1467 __ mov(Narrow, r0, r4);
1468 __ strb(r2, MemOperand(sp, 664));
1469 __ str(Narrow, r2, MemOperand(sp, 680));
1470 __ str(Narrow, r2, MemOperand(sp, 704));
1471 __ str(Narrow, r2, MemOperand(sp, 728));
1472 __ str(Narrow, r2, MemOperand(sp, 752));
1473 __ ldr(Narrow, r2, MemOperand(r7, 80));
1474 __ str(Narrow, r1, MemOperand(sp, 628));
1475 __ add(Narrow, r1, sp, 624U);
1476 __ strb(r3, MemOperand(sp, 640));
1477 __ str(Narrow, r3, MemOperand(sp, 644));
1478 __ strb(r3, MemOperand(sp, 648));
1479 __ strb(r3, MemOperand(sp, 652));
1480 __ str(Narrow, r3, MemOperand(sp, 668));
1481 __ str(Narrow, r3, MemOperand(sp, 672));
1482 __ str(Narrow, r3, MemOperand(sp, 676));
1483 __ str(Narrow, r3, MemOperand(sp, 684));
1484 __ str(Narrow, r3, MemOperand(sp, 688));
1485 __ str(Narrow, r3, MemOperand(sp, 692));
1486 __ str(Narrow, r3, MemOperand(sp, 696));
1487 __ str(Narrow, r3, MemOperand(sp, 700));
1488 __ str(Narrow, r3, MemOperand(sp, 708));
1489 __ str(Narrow, r3, MemOperand(sp, 712));
1490 __ str(Narrow, r3, MemOperand(sp, 716));
1491 __ str(Narrow, r3, MemOperand(sp, 720));
1492 __ str(Narrow, r3, MemOperand(sp, 724));
1493 __ str(Narrow, r3, MemOperand(sp, 732));
1494 __ str(Narrow, r3, MemOperand(sp, 736));
1495 __ str(Narrow, r3, MemOperand(sp, 740));
1496 __ str(Narrow, r3, MemOperand(sp, 744));
1497 __ str(Narrow, r3, MemOperand(sp, 748));
1498 __ str(Narrow, r3, MemOperand(sp, 756));
1499 __ str(Narrow, r2, MemOperand(sp, 28));
1500 __ ldr(Narrow, r6, MemOperand(r7, 84));
1501 __ ldr(Narrow, r2, MemOperand(r4));
1502 __ str(Narrow, r3, MemOperand(sp, 760));
1503 __ str(Narrow, r6, MemOperand(sp, 32));
1504 __ ldr(Narrow, r6, &l_0d1c);
1505 __ str(Narrow, r3, MemOperand(sp, 764));
1506 __ str(Narrow, r3, MemOperand(sp, 768));
1507 __ str(Narrow, r6, MemOperand(sp, 624));
1508 __ ldr(Narrow, r3, MemOperand(r2, 8));
1509 __ blx(r3);
1510 __ ldr(ip, MemOperand(r7, 40));
1511 __ movs(Narrow, r1, 1U);
1512 __ mov(lr, 0U);
1513 __ ldr(Narrow, r2, MemOperand(r7, 88));
1514 __ ldr(Narrow, r3, MemOperand(r7, 92));
1515 __ mov(Narrow, r0, r4);
1516 __ str(r1, MemOperand(sp, 2304));
1517 __ movs(Narrow, r1, 14U);
1518 __ str(fp, MemOperand(sp));
1519 __ str(ip, MemOperand(sp, 2308));
1520 __ str(ip, MemOperand(sp, 2320));
1521 __ str(lr, MemOperand(sp, 2312));
1522 __ str(lr, MemOperand(sp, 2316));
1523 // --------------
1524 __ bind(&l_0c2e);
1525 __ bl(&l_0c2e);
1526 __ vldr(d7, &l_0d10);
1527 __ add(r6, sp, 2304U);
1528 __ ldr(r8, MemOperand(r7, 96));
1529 __ mov(lr, 832U);
1530 __ str(fp, MemOperand(sp));
1531 __ mov(Narrow, r0, r4);
1532 __ vstr(d7, MemOperand(r6));
1533 __ movs(Narrow, r1, 14U);
1534 __ ldr(Narrow, r6, MemOperand(r7));
1535 __ mov(Narrow, r3, r8);
1536 }
Generate_12(TestAssembler * assembler)1537 void Generate_12(TestAssembler* assembler) {
1538 __ mov(r2, 800U);
1539 __ str(lr, MemOperand(sp, 2312));
1540 __ str(r6, MemOperand(sp, 2320));
1541 __ ldr(Narrow, r6, MemOperand(r7, 100));
1542 // --------------
1543 __ bind(&l_0c60);
1544 __ bl(&l_0c60);
1545 __ movs(Narrow, r2, 0U);
1546 __ movs(Narrow, r3, 0U);
1547 __ str(fp, MemOperand(sp));
1548 __ add(ip, sp, 2304U);
1549 __ strd(r2, r3, MemOperand(ip));
1550 __ mov(lr, 832U);
1551 __ ldr(Narrow, r3, MemOperand(r7));
1552 __ mov(Narrow, r0, r4);
1553 __ movs(Narrow, r1, 14U);
1554 __ mov(r2, 800U);
1555 __ str(lr, MemOperand(sp, 2312));
1556 __ str(r3, MemOperand(sp, 2320));
1557 __ mov(Narrow, r3, r6);
1558 // --------------
1559 __ bind(&l_0c8c);
1560 __ bl(&l_0c8c);
1561 __ movs(Narrow, r2, 0U);
1562 __ movs(Narrow, r3, 0U);
1563 __ str(fp, MemOperand(sp));
1564 __ add(ip, sp, 2304U);
1565 __ strd(r2, r3, MemOperand(ip));
1566 __ mov(lr, 832U);
1567 __ ldr(Narrow, r3, MemOperand(r7));
1568 __ mov(Narrow, r0, r4);
1569 __ movs(Narrow, r1, 14U);
1570 __ mov(r2, 800U);
1571 __ str(lr, MemOperand(sp, 2312));
1572 __ str(r3, MemOperand(sp, 2320));
1573 __ ldr(Narrow, r3, MemOperand(sp, 28));
1574 // --------------
1575 __ bind(&l_0cb8);
1576 __ bl(&l_0cb8);
1577 __ movs(Narrow, r3, 0U);
1578 __ movs(Narrow, r2, 1U);
1579 __ movs(Narrow, r1, 4U);
1580 __ str(Narrow, r2, MemOperand(r5, 8));
1581 __ str(Narrow, r1, MemOperand(r5, 4));
1582 __ mov(Narrow, r0, r4);
1583 __ str(Narrow, r2, MemOperand(r5, 12));
1584 __ strb(r2, MemOperand(r5, 40));
1585 __ str(Narrow, r2, MemOperand(r5, 56));
1586 __ str(Narrow, r2, MemOperand(r5, 80));
1587 __ str(Narrow, r2, MemOperand(r5, 104));
1588 __ str(r2, MemOperand(r5, 128));
1589 __ strb(Narrow, r3, MemOperand(r5, 16));
1590 __ str(Narrow, r3, MemOperand(r5, 20));
1591 __ strb(Narrow, r3, MemOperand(r5, 24));
1592 __ strb(Narrow, r3, MemOperand(r5, 28));
1593 __ str(Narrow, r3, MemOperand(r5, 44));
1594 __ str(Narrow, r3, MemOperand(r5, 48));
1595 __ str(Narrow, r3, MemOperand(r5, 52));
1596 __ str(Narrow, r3, MemOperand(r5, 60));
1597 __ str(Narrow, r3, MemOperand(r5, 64));
1598 __ str(Narrow, r3, MemOperand(r5, 68));
1599 __ str(Narrow, r3, MemOperand(r5, 72));
1600 __ str(Narrow, r3, MemOperand(r5, 76));
1601 __ str(Narrow, r3, MemOperand(r5, 84));
1602 __ str(Narrow, r3, MemOperand(r5, 88));
1603 __ str(Narrow, r3, MemOperand(r5, 92));
1604 __ str(Narrow, r3, MemOperand(r5, 96));
1605 __ str(Narrow, r3, MemOperand(r5, 100));
1606 __ str(Narrow, r3, MemOperand(r5, 108));
1607 __ str(Narrow, r3, MemOperand(r5, 112));
1608 __ str(Narrow, r3, MemOperand(r5, 116));
1609 __ str(Narrow, r3, MemOperand(r5, 120));
1610 __ str(Narrow, r3, MemOperand(r5, 124));
1611 __ str(r3, MemOperand(r5, 132));
1612 __ b(Narrow, &l_0d28);
1613 __ nop(Narrow);
1614 __ nop(Wide);
1615 // --------------
1616 __ bind(&l_0d10);
1617 __ nop(Wide);
1618 __ nop(Wide);
1619 // --------------
1620 __ bind(&l_0d18);
1621 __ Emit32(0x00000008);
1622 // --------------
1623 __ bind(&l_0d1c);
1624 __ Emit32(0x00000008);
1625 // --------------
1626 __ bind(&l_0d20);
1627 __ Emit32(0x00000008);
1628 // --------------
1629 __ bind(&l_0d24);
1630 __ Emit32(0xbff40000);
1631 // --------------
1632 __ bind(&l_0d28);
1633 __ str(r3, MemOperand(r5, 136));
1634 __ str(r3, MemOperand(r5, 140));
1635 __ str(r3, MemOperand(r5, 144));
1636 __ str(r2, MemOperand(sp, 2312));
1637 __ str(r2, MemOperand(sp, 2316));
1638 __ strb(r2, MemOperand(sp, 2344));
1639 __ str(r2, MemOperand(sp, 2360));
1640 __ str(r2, MemOperand(sp, 2384));
1641 __ str(r2, MemOperand(sp, 2408));
1642 __ str(r2, MemOperand(sp, 2432));
1643 __ ldr(Narrow, r2, &l_1064);
1644 __ str(r1, MemOperand(sp, 2308));
1645 __ mov(Narrow, r1, r5);
1646 __ strb(r3, MemOperand(sp, 2320));
1647 __ str(r3, MemOperand(sp, 2324));
1648 __ strb(r3, MemOperand(sp, 2328));
1649 __ strb(r3, MemOperand(sp, 2332));
1650 __ str(r3, MemOperand(sp, 2348));
1651 __ str(r3, MemOperand(sp, 2352));
1652 __ str(r3, MemOperand(sp, 2356));
1653 __ str(r3, MemOperand(sp, 2364));
1654 __ str(r3, MemOperand(sp, 2368));
1655 __ str(r3, MemOperand(sp, 2372));
1656 }
Generate_13(TestAssembler * assembler)1657 void Generate_13(TestAssembler* assembler) {
1658 __ str(r3, MemOperand(sp, 2376));
1659 __ str(r3, MemOperand(sp, 2380));
1660 __ str(r3, MemOperand(sp, 2388));
1661 __ str(r3, MemOperand(sp, 2392));
1662 __ str(r3, MemOperand(sp, 2396));
1663 __ str(r3, MemOperand(sp, 2400));
1664 __ str(r3, MemOperand(sp, 2404));
1665 __ str(r3, MemOperand(sp, 2412));
1666 __ str(r3, MemOperand(sp, 2416));
1667 __ str(r3, MemOperand(sp, 2420));
1668 __ str(r3, MemOperand(sp, 2424));
1669 __ str(r3, MemOperand(sp, 2428));
1670 __ str(r3, MemOperand(sp, 2436));
1671 __ str(r3, MemOperand(sp, 2440));
1672 __ str(Narrow, r2, MemOperand(r5));
1673 __ str(r3, MemOperand(sp, 2444));
1674 __ str(r3, MemOperand(sp, 2448));
1675 __ ldr(Narrow, r2, MemOperand(r4));
1676 __ ldr(Narrow, r3, &l_1064);
1677 __ str(r3, MemOperand(sp, 2304));
1678 __ ldr(Narrow, r3, MemOperand(r2, 8));
1679 __ blx(r3);
1680 __ ldr(Narrow, r1, MemOperand(r7, 40));
1681 __ mov(lr, 0U);
1682 __ ldr(Narrow, r2, MemOperand(r7, 88));
1683 __ mov(ip, 1U);
1684 __ str(sl, MemOperand(sp));
1685 __ mov(Narrow, r0, r4);
1686 __ str(r1, MemOperand(sl, 4));
1687 __ str(r1, MemOperand(sl, 16));
1688 __ mov(Narrow, r3, r2);
1689 __ movs(Narrow, r1, 14U);
1690 __ str(ip, MemOperand(sl));
1691 __ str(lr, MemOperand(sl, 8));
1692 __ str(lr, MemOperand(sl, 12));
1693 // --------------
1694 __ bind(&l_0df8);
1695 __ bl(&l_0df8);
1696 __ mov(Narrow, r0, r4);
1697 __ movs(Narrow, r1, 13U);
1698 __ mov(Narrow, r2, fp);
1699 __ movs(Narrow, r3, 2U);
1700 // --------------
1701 __ bind(&l_0e04);
1702 __ bl(&l_0e04);
1703 __ ldr(Narrow, r3, MemOperand(r7, 104));
1704 __ mov(Narrow, r0, r4);
1705 __ str(r8, MemOperand(sp));
1706 __ movs(Narrow, r1, 14U);
1707 __ str(Narrow, r6, MemOperand(sp, 4));
1708 __ mov(r2, 800U);
1709 // --------------
1710 __ bind(&l_0e18);
1711 __ bl(&l_0e18);
1712 __ str(r8, MemOperand(sp));
1713 __ mov(Narrow, r0, r4);
1714 __ str(r8, MemOperand(sp, 4));
1715 __ movs(Narrow, r1, 14U);
1716 __ mov(r2, 800U);
1717 __ mov(Narrow, r3, r8);
1718 // --------------
1719 __ bind(&l_0e2e);
1720 __ bl(&l_0e2e);
1721 __ ldr(Narrow, r3, MemOperand(sp, 64));
1722 __ mov(Narrow, r0, r4);
1723 __ str(r8, MemOperand(sp, 4));
1724 __ movs(Narrow, r1, 14U);
1725 __ mov(r2, 800U);
1726 __ str(Narrow, r3, MemOperand(sp));
1727 __ mov(Narrow, r3, r8);
1728 // --------------
1729 __ bind(&l_0e44);
1730 __ bl(&l_0e44);
1731 __ ldr(Narrow, r1, MemOperand(sp, 20));
1732 __ movs(Narrow, r3, 0U);
1733 __ movs(Narrow, r2, 14U);
1734 __ str(r9, MemOperand(sp, 192));
1735 __ str(Narrow, r2, MemOperand(sp, 92));
1736 __ str(Narrow, r3, MemOperand(sp, 196));
1737 __ strb(r3, MemOperand(sp, 209));
1738 __ cbz(r1, &l_0ea4);
1739 __ ldr(Narrow, r3, MemOperand(r4, 44));
1740 __ movs(Narrow, r2, 1U);
1741 __ str(Narrow, r1, MemOperand(sp, 212));
1742 __ mov(Narrow, r0, r1);
1743 __ str(Narrow, r2, MemOperand(sp, 216));
1744 __ movs(Narrow, r1, 32U);
1745 __ ldr(Narrow, r3, MemOperand(r3, 32));
1746 __ blx(r3);
1747 __ ldr(Narrow, r3, MemOperand(r4, 44));
1748 __ ldr(Narrow, r0, MemOperand(sp, 20));
1749 __ ldr(Narrow, r3, MemOperand(r3, 24));
1750 __ blx(r3);
1751 __ ldr(Narrow, r2, MemOperand(r4, 44));
1752 __ movw(r3, 0U);
1753 __ movt(r3, 0U);
1754 __ ldr(Narrow, r0, MemOperand(sp, 20));
1755 __ ldr(Narrow, r2, MemOperand(r2));
1756 __ cmp(Narrow, r2, r3);
1757 __ b(ne, &l_1d56);
1758 // --------------
1759 __ bind(&l_0e88);
1760 __ bl(&l_0e88);
1761 // --------------
1762 __ bind(&l_0e8c);
1763 __ str(Narrow, r0, MemOperand(sp, 196));
1764 __ ldr(Narrow, r1, MemOperand(r0, 20));
1765 __ ldr(Narrow, r3, MemOperand(r0, 4));
1766 __ ldr(Narrow, r2, MemOperand(r0, 12));
1767 __ add(Narrow, r3, r3, r1);
1768 __ subs(Narrow, r3, r3, r2);
1769 __ cmp(Narrow, r3, 31U);
1770 __ b(ls, &l_1c72);
1771 // --------------
1772 __ bind(&l_0e9e);
1773 __ movs(Narrow, r3, 1U);
1774 }
Generate_14(TestAssembler * assembler)1775 void Generate_14(TestAssembler* assembler) {
1776 __ strb(r3, MemOperand(sp, 209));
1777 // --------------
1778 __ bind(&l_0ea4);
1779 __ ldr(Narrow, r3, &l_1068);
1780 __ mov(Narrow, r1, r4);
1781 __ add(Narrow, r0, sp, 792U);
1782 __ add(Narrow, r2, sp, 92U);
1783 __ str(Narrow, r3, MemOperand(sp, 192));
1784 __ bl(&l_0000);
1785 __ ldr(Narrow, r1, MemOperand(sp, 92));
1786 __ mov(Narrow, r0, r4);
1787 __ str(Narrow, r6, MemOperand(sp));
1788 __ mov(r2, 800U);
1789 __ str(Narrow, r6, MemOperand(sp, 4));
1790 __ mov(Narrow, r3, r8);
1791 // --------------
1792 __ bind(&l_0ec0);
1793 __ bl(&l_0ec0);
1794 __ add(Narrow, r0, sp, 792U);
1795 // --------------
1796 __ bind(&l_0ec6);
1797 __ bl(&l_0ec6);
1798 __ ldrb(r3, MemOperand(sp, 209));
1799 __ str(r9, MemOperand(sp, 192));
1800 __ cmp(Narrow, r3, 0U);
1801 __ b(ne, &l_1ba8);
1802 // --------------
1803 __ bind(&l_0ed8);
1804 __ ldr(Narrow, r3, MemOperand(sp, 36));
1805 __ mov(ip, 0U);
1806 __ mov(lr, 1056U);
1807 __ str(sl, MemOperand(sp));
1808 __ mov(Narrow, r0, r4);
1809 __ movs(Narrow, r1, 14U);
1810 __ str(r3, MemOperand(sl, 16));
1811 __ mov(r2, 800U);
1812 __ mov(Narrow, r3, r6);
1813 __ str(ip, MemOperand(sl));
1814 __ str(lr, MemOperand(sl, 8));
1815 // --------------
1816 __ bind(&l_0efc);
1817 __ bl(&l_0efc);
1818 __ ldr(Narrow, r1, MemOperand(sp, 76));
1819 __ movs(Narrow, r3, 14U);
1820 __ str(Narrow, r3, MemOperand(sp, 96));
1821 __ movs(Narrow, r3, 0U);
1822 __ str(Narrow, r3, MemOperand(sp, 224));
1823 __ movs(Narrow, r2, 1U);
1824 __ str(Narrow, r1, MemOperand(sp, 128));
1825 __ ldr(Narrow, r1, MemOperand(sp, 20));
1826 __ strb(r3, MemOperand(sp, 237));
1827 __ ldr(Narrow, r3, MemOperand(r7, 104));
1828 __ str(Narrow, r2, MemOperand(sp, 132));
1829 __ str(r9, MemOperand(sp, 220));
1830 __ str(Narrow, r3, MemOperand(sp, 76));
1831 __ cbz(r1, &l_0f66);
1832 __ ldr(Narrow, r3, MemOperand(r4, 44));
1833 __ mov(Narrow, r0, r1);
1834 __ str(Narrow, r1, MemOperand(sp, 240));
1835 __ movs(Narrow, r1, 32U);
1836 __ str(Narrow, r2, MemOperand(sp, 244));
1837 __ ldr(Narrow, r3, MemOperand(r3, 32));
1838 __ blx(r3);
1839 __ ldr(Narrow, r3, MemOperand(r4, 44));
1840 __ ldr(Narrow, r0, MemOperand(sp, 20));
1841 __ ldr(Narrow, r3, MemOperand(r3, 24));
1842 __ blx(r3);
1843 __ ldr(Narrow, r2, MemOperand(r4, 44));
1844 __ movw(r3, 0U);
1845 __ movt(r3, 0U);
1846 __ ldr(Narrow, r0, MemOperand(sp, 20));
1847 __ ldr(Narrow, r2, MemOperand(r2));
1848 __ cmp(Narrow, r2, r3);
1849 __ b(ne, &l_1d5c);
1850 // --------------
1851 __ bind(&l_0f4a);
1852 __ bl(&l_0f4a);
1853 // --------------
1854 __ bind(&l_0f4e);
1855 __ str(Narrow, r0, MemOperand(sp, 224));
1856 __ ldr(Narrow, r1, MemOperand(r0, 20));
1857 __ ldr(Narrow, r3, MemOperand(r0, 4));
1858 __ ldr(Narrow, r2, MemOperand(r0, 12));
1859 __ add(Narrow, r3, r3, r1);
1860 __ subs(Narrow, r3, r3, r2);
1861 __ cmp(Narrow, r3, 31U);
1862 __ b(ls, &l_1c80);
1863 // --------------
1864 __ bind(&l_0f60);
1865 __ movs(Narrow, r3, 1U);
1866 __ strb(r3, MemOperand(sp, 237));
1867 // --------------
1868 __ bind(&l_0f66);
1869 __ ldr(Narrow, r3, &l_1068);
1870 __ mov(Narrow, r1, r4);
1871 __ add(Narrow, r0, sp, 960U);
1872 __ add(Narrow, r2, sp, 96U);
1873 __ str(Narrow, r3, MemOperand(sp, 220));
1874 __ bl(&l_0000);
1875 __ add(Narrow, r2, sp, 128U);
1876 __ ldr(lr, MemOperand(sp, 96));
1877 __ ldm(r2, NO_WRITE_BACK, RegisterList(r0, r1));
1878 __ mov(Narrow, r3, sp);
1879 __ ldr(Narrow, r2, MemOperand(sp, 76));
1880 __ str(r2, MemOperand(r3, 4, PostIndex));
1881 __ mov(r2, 800U);
1882 __ stm(r3, NO_WRITE_BACK, RegisterList(r0, r1));
1883 __ mov(Narrow, r3, r6);
1884 __ mov(Narrow, r1, lr);
1885 __ mov(Narrow, r0, r4);
1886 // --------------
1887 __ bind(&l_0f94);
1888 __ bl(&l_0f94);
1889 __ add(Narrow, r0, sp, 960U);
1890 // --------------
1891 __ bind(&l_0f9a);
1892 __ bl(&l_0f9a);
1893 __ ldrb(r3, MemOperand(sp, 237));
1894 __ str(r9, MemOperand(sp, 220));
1895 __ cmp(Narrow, r3, 0U);
1896 __ b(ne, &l_1b88);
1897 // --------------
1898 __ bind(&l_0fac);
1899 __ ldr(Narrow, r3, MemOperand(r7, 104));
1900 }
Generate_15(TestAssembler * assembler)1901 void Generate_15(TestAssembler* assembler) {
1902 __ mov(Narrow, r0, r4);
1903 __ str(r8, MemOperand(sp));
1904 __ movs(Narrow, r1, 14U);
1905 __ str(r8, MemOperand(sp, 4));
1906 __ mov(r2, 800U);
1907 // --------------
1908 __ bind(&l_0fbe);
1909 __ bl(&l_0fbe);
1910 __ ldr(Narrow, r1, MemOperand(sp, 20));
1911 __ movs(Narrow, r3, 0U);
1912 __ movs(Narrow, r2, 14U);
1913 __ str(r9, MemOperand(sp, 248));
1914 __ str(Narrow, r2, MemOperand(sp, 100));
1915 __ str(Narrow, r3, MemOperand(sp, 252));
1916 __ strb(r3, MemOperand(sp, 265));
1917 __ ldr(r8, MemOperand(r7, 104));
1918 __ cbz(r1, &l_1022);
1919 __ ldr(Narrow, r3, MemOperand(r4, 44));
1920 __ movs(Narrow, r2, 1U);
1921 __ str(Narrow, r1, MemOperand(sp, 268));
1922 __ mov(Narrow, r0, r1);
1923 __ str(Narrow, r2, MemOperand(sp, 272));
1924 __ movs(Narrow, r1, 32U);
1925 __ ldr(Narrow, r3, MemOperand(r3, 32));
1926 __ blx(r3);
1927 __ ldr(Narrow, r3, MemOperand(r4, 44));
1928 __ ldr(Narrow, r0, MemOperand(sp, 20));
1929 __ ldr(Narrow, r3, MemOperand(r3, 24));
1930 __ blx(r3);
1931 __ ldr(Narrow, r2, MemOperand(r4, 44));
1932 __ movw(r3, 0U);
1933 __ movt(r3, 0U);
1934 __ ldr(Narrow, r0, MemOperand(sp, 20));
1935 __ ldr(Narrow, r2, MemOperand(r2));
1936 __ cmp(Narrow, r2, r3);
1937 __ b(ne, &l_1d72);
1938 // --------------
1939 __ bind(&l_1006);
1940 __ bl(&l_1006);
1941 // --------------
1942 __ bind(&l_100a);
1943 __ str(Narrow, r0, MemOperand(sp, 252));
1944 __ ldr(Narrow, r1, MemOperand(r0, 20));
1945 __ ldr(Narrow, r3, MemOperand(r0, 4));
1946 __ ldr(Narrow, r2, MemOperand(r0, 12));
1947 __ add(Narrow, r3, r3, r1);
1948 __ subs(Narrow, r3, r3, r2);
1949 __ cmp(Narrow, r3, 31U);
1950 __ b(ls, &l_1c8e);
1951 // --------------
1952 __ bind(&l_101c);
1953 __ movs(Narrow, r3, 1U);
1954 __ strb(r3, MemOperand(sp, 265));
1955 // --------------
1956 __ bind(&l_1022);
1957 __ ldr(Narrow, r3, &l_1068);
1958 __ mov(Narrow, r1, r4);
1959 __ add(r0, sp, 1128U);
1960 __ add(Narrow, r2, sp, 100U);
1961 __ str(Narrow, r3, MemOperand(sp, 248));
1962 __ bl(&l_0000);
1963 __ ldr(Narrow, r1, MemOperand(sp, 100));
1964 __ mov(Narrow, r3, r8);
1965 __ str(Narrow, r6, MemOperand(sp));
1966 __ mov(Narrow, r0, r4);
1967 __ str(Narrow, r6, MemOperand(sp, 4));
1968 __ mov(r2, 800U);
1969 // --------------
1970 __ bind(&l_1040);
1971 __ bl(&l_1040);
1972 __ add(r0, sp, 1128U);
1973 // --------------
1974 __ bind(&l_1048);
1975 __ bl(&l_1048);
1976 __ ldr(Narrow, r3, &l_1068);
1977 __ add(Narrow, r0, sp, 248U);
1978 __ str(Narrow, r3, MemOperand(sp, 248));
1979 // --------------
1980 __ bind(&l_1052);
1981 __ bl(&l_1052);
1982 __ movs(Narrow, r3, 0U);
1983 __ movs(Narrow, r2, 14U);
1984 __ str(Narrow, r3, MemOperand(sp, 280));
1985 __ strb(r3, MemOperand(sp, 293));
1986 __ ldr(Narrow, r3, MemOperand(sp, 20));
1987 __ b(Narrow, &l_106c);
1988 // --------------
1989 __ bind(&l_1064);
1990 __ Emit32(0x00000008);
1991 // --------------
1992 __ bind(&l_1068);
1993 __ Emit32(0x00000008);
1994 // --------------
1995 __ bind(&l_106c);
1996 __ str(Narrow, r2, MemOperand(sp, 104));
1997 __ str(r9, MemOperand(sp, 276));
1998 __ ldr(r8, MemOperand(r7, 104));
1999 __ cbz(r3, &l_10c2);
2000 __ mov(Narrow, r6, r3);
2001 __ ldr(Narrow, r3, MemOperand(r4, 44));
2002 __ movs(Narrow, r2, 1U);
2003 __ str(Narrow, r6, MemOperand(sp, 296));
2004 __ mov(Narrow, r0, r6);
2005 __ str(Narrow, r2, MemOperand(sp, 300));
2006 __ movs(Narrow, r1, 32U);
2007 __ ldr(Narrow, r3, MemOperand(r3, 32));
2008 __ blx(r3);
2009 __ ldr(Narrow, r3, MemOperand(r4, 44));
2010 __ mov(Narrow, r0, r6);
2011 __ ldr(Narrow, r3, MemOperand(r3, 24));
2012 __ blx(r3);
2013 __ ldr(Narrow, r2, MemOperand(r4, 44));
2014 __ movw(r3, 0U);
2015 __ movt(r3, 0U);
2016 __ ldr(Narrow, r2, MemOperand(r2));
2017 __ cmp(Narrow, r2, r3);
2018 __ b(ne, &l_1d3a);
2019 __ mov(Narrow, r0, r6);
2020 // --------------
2021 __ bind(&l_10a6);
2022 __ bl(&l_10a6);
2023 // --------------
2024 __ bind(&l_10aa);
2025 __ str(Narrow, r0, MemOperand(sp, 280));
2026 __ ldr(Narrow, r1, MemOperand(r0, 20));
2027 __ ldr(Narrow, r3, MemOperand(r0, 4));
2028 }
Generate_16(TestAssembler * assembler)2029 void Generate_16(TestAssembler* assembler) {
2030 __ ldr(Narrow, r2, MemOperand(r0, 12));
2031 __ add(Narrow, r3, r3, r1);
2032 __ subs(Narrow, r3, r3, r2);
2033 __ cmp(Narrow, r3, 31U);
2034 __ b(ls, &l_1cc6);
2035 // --------------
2036 __ bind(&l_10bc);
2037 __ movs(Narrow, r3, 1U);
2038 __ strb(r3, MemOperand(sp, 293));
2039 // --------------
2040 __ bind(&l_10c2);
2041 __ ldr(Narrow, r3, &l_13fc);
2042 __ mov(Narrow, r1, r4);
2043 __ add(r0, sp, 1296U);
2044 __ add(Narrow, r2, sp, 104U);
2045 __ str(Narrow, r3, MemOperand(sp, 276));
2046 __ bl(&l_0000);
2047 __ ldr(Narrow, r2, MemOperand(sp, 52));
2048 __ mov(Narrow, r3, r8);
2049 __ ldr(Narrow, r1, MemOperand(sp, 104));
2050 __ mov(Narrow, r0, r4);
2051 __ str(r8, MemOperand(sp));
2052 __ str(Narrow, r2, MemOperand(sp, 4));
2053 __ mov(r2, 800U);
2054 // --------------
2055 __ bind(&l_10e4);
2056 __ bl(&l_10e4);
2057 __ add(r0, sp, 1296U);
2058 // --------------
2059 __ bind(&l_10ec);
2060 __ bl(&l_10ec);
2061 __ ldrb(r3, MemOperand(sp, 293));
2062 __ str(r9, MemOperand(sp, 276));
2063 __ cmp(Narrow, r3, 0U);
2064 __ b(ne, &l_1b68);
2065 // --------------
2066 __ bind(&l_10fe);
2067 __ movs(Narrow, r3, 0U);
2068 __ ldr(Narrow, r2, MemOperand(r7, 104));
2069 __ str(r3, MemOperand(sl));
2070 __ mov(r1, 1056U);
2071 __ str(Narrow, r3, MemOperand(sp, 308));
2072 __ strb(r3, MemOperand(sp, 321));
2073 __ ldr(Narrow, r3, MemOperand(sp, 20));
2074 __ str(r2, MemOperand(sl, 16));
2075 __ movs(Narrow, r2, 14U);
2076 __ str(r9, MemOperand(sp, 304));
2077 __ str(r1, MemOperand(sl, 8));
2078 __ str(Narrow, r2, MemOperand(sp, 108));
2079 __ cbz(r3, &l_116e);
2080 __ mov(Narrow, r6, r3);
2081 __ ldr(Narrow, r3, MemOperand(r4, 44));
2082 __ movs(Narrow, r2, 1U);
2083 __ str(Narrow, r6, MemOperand(sp, 324));
2084 __ mov(Narrow, r0, r6);
2085 __ str(Narrow, r2, MemOperand(sp, 328));
2086 __ movs(Narrow, r1, 32U);
2087 __ ldr(Narrow, r3, MemOperand(r3, 32));
2088 __ blx(r3);
2089 __ ldr(Narrow, r3, MemOperand(r4, 44));
2090 __ mov(Narrow, r0, r6);
2091 __ ldr(Narrow, r3, MemOperand(r3, 24));
2092 __ blx(r3);
2093 __ ldr(Narrow, r2, MemOperand(r4, 44));
2094 __ movw(r3, 0U);
2095 __ movt(r3, 0U);
2096 __ ldr(Narrow, r2, MemOperand(r2));
2097 __ cmp(Narrow, r2, r3);
2098 __ b(ne, &l_1d42);
2099 __ mov(Narrow, r0, r6);
2100 // --------------
2101 __ bind(&l_1152);
2102 __ bl(&l_1152);
2103 // --------------
2104 __ bind(&l_1156);
2105 __ str(Narrow, r0, MemOperand(sp, 308));
2106 __ ldr(Narrow, r1, MemOperand(r0, 20));
2107 __ ldr(Narrow, r3, MemOperand(r0, 4));
2108 __ ldr(Narrow, r2, MemOperand(r0, 12));
2109 __ add(Narrow, r3, r3, r1);
2110 __ subs(Narrow, r3, r3, r2);
2111 __ cmp(Narrow, r3, 31U);
2112 __ b(ls, &l_1cd4);
2113 // --------------
2114 __ bind(&l_1168);
2115 __ movs(Narrow, r3, 1U);
2116 __ strb(r3, MemOperand(sp, 321));
2117 // --------------
2118 __ bind(&l_116e);
2119 __ ldr(Narrow, r3, &l_13fc);
2120 __ mov(Narrow, r1, r4);
2121 __ add(r0, sp, 1464U);
2122 __ add(Narrow, r2, sp, 108U);
2123 __ str(Narrow, r3, MemOperand(sp, 304));
2124 __ bl(&l_0000);
2125 __ ldr(Narrow, r3, MemOperand(sp, 28));
2126 __ mov(Narrow, r0, r4);
2127 __ ldr(Narrow, r1, MemOperand(sp, 108));
2128 __ mov(r2, 800U);
2129 __ str(sl, MemOperand(sp, 4));
2130 __ str(Narrow, r3, MemOperand(sp));
2131 // --------------
2132 __ bind(&l_118e);
2133 __ bl(&l_118e);
2134 __ add(r0, sp, 1464U);
2135 // --------------
2136 __ bind(&l_1196);
2137 __ bl(&l_1196);
2138 __ ldr(Narrow, r3, &l_13fc);
2139 __ add(Narrow, r0, sp, 304U);
2140 __ str(Narrow, r3, MemOperand(sp, 304));
2141 // --------------
2142 __ bind(&l_11a0);
2143 __ bl(&l_11a0);
2144 __ mov(Narrow, r0, r4);
2145 __ movs(Narrow, r1, 14U);
2146 __ mov(Narrow, r2, r5);
2147 __ movs(Narrow, r3, 2U);
2148 // --------------
2149 __ bind(&l_11ac);
2150 __ bl(&l_11ac);
2151 __ ldr(Narrow, r3, MemOperand(r4));
2152 __ mov(Narrow, r0, r4);
2153 __ mov(Narrow, r1, fp);
2154 __ ldr(Narrow, r3, MemOperand(r3, 8));
2155 __ blx(r3);
2156 }
Generate_17(TestAssembler * assembler)2157 void Generate_17(TestAssembler* assembler) {
2158 __ ldr(Narrow, r6, MemOperand(sp, 24));
2159 __ add(r0, sp, 2332U);
2160 __ str(r6, MemOperand(sp, 2304));
2161 // --------------
2162 __ bind(&l_11c4);
2163 __ bl(&l_11c4);
2164 __ str(Narrow, r6, MemOperand(r5));
2165 __ add(r0, sp, 2164U);
2166 // --------------
2167 __ bind(&l_11ce);
2168 __ bl(&l_11ce);
2169 __ ldr(Narrow, r6, MemOperand(sp, 20));
2170 __ movs(Narrow, r3, 0U);
2171 __ str(r9, MemOperand(sp, 332));
2172 __ str(Narrow, r3, MemOperand(sp, 336));
2173 __ strb(r3, MemOperand(sp, 349));
2174 __ cbz(r6, &l_122a);
2175 __ ldr(Narrow, r3, MemOperand(r4, 44));
2176 __ movs(Narrow, r2, 1U);
2177 __ str(Narrow, r6, MemOperand(sp, 352));
2178 __ mov(Narrow, r0, r6);
2179 __ str(Narrow, r2, MemOperand(sp, 356));
2180 __ movs(Narrow, r1, 32U);
2181 __ ldr(Narrow, r3, MemOperand(r3, 32));
2182 __ blx(r3);
2183 __ ldr(Narrow, r3, MemOperand(r4, 44));
2184 __ mov(Narrow, r0, r6);
2185 __ ldr(Narrow, r3, MemOperand(r3, 24));
2186 __ blx(r3);
2187 __ ldr(Narrow, r2, MemOperand(r4, 44));
2188 __ movw(r3, 0U);
2189 __ movt(r3, 0U);
2190 __ ldr(Narrow, r2, MemOperand(r2));
2191 __ cmp(Narrow, r2, r3);
2192 __ b(ne, &l_1d6a);
2193 __ mov(Narrow, r0, r6);
2194 // --------------
2195 __ bind(&l_120e);
2196 __ bl(&l_120e);
2197 // --------------
2198 __ bind(&l_1212);
2199 __ str(Narrow, r0, MemOperand(sp, 336));
2200 __ ldr(Narrow, r1, MemOperand(r0, 20));
2201 __ ldr(Narrow, r3, MemOperand(r0, 4));
2202 __ ldr(Narrow, r2, MemOperand(r0, 12));
2203 __ add(Narrow, r3, r3, r1);
2204 __ subs(Narrow, r3, r3, r2);
2205 __ cmp(Narrow, r3, 31U);
2206 __ b(ls, &l_1cb8);
2207 // --------------
2208 __ bind(&l_1224);
2209 __ movs(Narrow, r3, 1U);
2210 __ strb(r3, MemOperand(sp, 349));
2211 // --------------
2212 __ bind(&l_122a);
2213 __ ldr(Narrow, r1, &l_13fc);
2214 __ mov(lr, 0U);
2215 __ mov(ip, 1U);
2216 __ movs(Narrow, r3, 14U);
2217 __ movs(Narrow, r2, 4U);
2218 __ str(r3, MemOperand(sp, 1636));
2219 __ str(Narrow, r1, MemOperand(sp, 332));
2220 __ mov(Narrow, r1, r3);
2221 __ str(r2, MemOperand(sp, 1644));
2222 __ mov(Narrow, r0, r4);
2223 __ str(r4, MemOperand(sp, 1632));
2224 __ mov(r2, 1056U);
2225 __ str(ip, MemOperand(sp, 1648));
2226 __ ldr(Narrow, r3, MemOperand(sp, 32));
2227 __ str(ip, MemOperand(sp, 1652));
2228 __ strb(ip, MemOperand(sp, 1680));
2229 __ str(ip, MemOperand(sp, 1696));
2230 __ str(ip, MemOperand(sp, 1720));
2231 __ str(ip, MemOperand(sp, 1744));
2232 __ str(ip, MemOperand(sp, 1768));
2233 __ strb(lr, MemOperand(sp, 1656));
2234 __ str(lr, MemOperand(sp, 1660));
2235 __ strb(lr, MemOperand(sp, 1664));
2236 __ strb(lr, MemOperand(sp, 1668));
2237 __ str(lr, MemOperand(sp, 1684));
2238 __ str(lr, MemOperand(sp, 1688));
2239 __ str(lr, MemOperand(sp, 1692));
2240 __ str(lr, MemOperand(sp, 1700));
2241 __ str(lr, MemOperand(sp, 1704));
2242 __ str(lr, MemOperand(sp, 1708));
2243 __ str(lr, MemOperand(sp, 1712));
2244 __ str(lr, MemOperand(sp, 1716));
2245 __ str(lr, MemOperand(sp, 1724));
2246 __ str(lr, MemOperand(sp, 1728));
2247 __ str(lr, MemOperand(sp, 1732));
2248 __ str(lr, MemOperand(sp, 1736));
2249 __ str(lr, MemOperand(sp, 1740));
2250 __ str(lr, MemOperand(sp, 1748));
2251 __ str(lr, MemOperand(sp, 1752));
2252 __ str(lr, MemOperand(sp, 1756));
2253 __ str(lr, MemOperand(sp, 1760));
2254 __ str(lr, MemOperand(sp, 1764));
2255 __ ldr(Narrow, r6, MemOperand(sp, 28));
2256 __ str(lr, MemOperand(sp, 1772));
2257 __ str(lr, MemOperand(sp, 1776));
2258 __ str(Narrow, r6, MemOperand(sp));
2259 __ ldr(Narrow, r6, &l_1400);
2260 __ str(lr, MemOperand(sp, 1780));
2261 __ str(lr, MemOperand(sp, 1784));
2262 __ str(r6, MemOperand(sp, 1640));
2263 __ strb(lr, MemOperand(sp, 1792));
2264 // --------------
2265 __ bind(&l_12e2);
2266 __ bl(&l_12e2);
2267 __ add(r0, sp, 1632U);
2268 // --------------
2269 __ bind(&l_12ea);
2270 __ bl(&l_12ea);
2271 __ ldrb(r3, MemOperand(sp, 349));
2272 __ str(r9, MemOperand(sp, 332));
2273 __ cmp(Narrow, r3, 0U);
2274 }
Generate_18(TestAssembler * assembler)2275 void Generate_18(TestAssembler* assembler) {
2276 __ b(ne, &l_1bc8);
2277 // --------------
2278 __ bind(&l_12fc);
2279 __ movs(Narrow, r3, 0U);
2280 __ str(r9, MemOperand(sp, 360));
2281 __ str(Narrow, r3, MemOperand(sp, 364));
2282 __ strb(r3, MemOperand(sp, 377));
2283 __ ldr(Narrow, r3, MemOperand(sp, 20));
2284 __ cbz(r3, &l_1356);
2285 __ mov(Narrow, r6, r3);
2286 __ ldr(Narrow, r3, MemOperand(r4, 44));
2287 __ movs(Narrow, r2, 1U);
2288 __ str(Narrow, r6, MemOperand(sp, 380));
2289 __ mov(Narrow, r0, r6);
2290 __ str(Narrow, r2, MemOperand(sp, 384));
2291 __ movs(Narrow, r1, 32U);
2292 __ ldr(Narrow, r3, MemOperand(r3, 32));
2293 __ blx(r3);
2294 __ ldr(Narrow, r3, MemOperand(r4, 44));
2295 __ mov(Narrow, r0, r6);
2296 __ ldr(Narrow, r3, MemOperand(r3, 24));
2297 __ blx(r3);
2298 __ ldr(Narrow, r2, MemOperand(r4, 44));
2299 __ movw(r3, 0U);
2300 __ movt(r3, 0U);
2301 __ ldr(Narrow, r2, MemOperand(r2));
2302 __ cmp(Narrow, r2, r3);
2303 __ b(ne, &l_1d62);
2304 __ mov(Narrow, r0, r6);
2305 // --------------
2306 __ bind(&l_133a);
2307 __ bl(&l_133a);
2308 // --------------
2309 __ bind(&l_133e);
2310 __ str(Narrow, r0, MemOperand(sp, 364));
2311 __ ldr(Narrow, r1, MemOperand(r0, 20));
2312 __ ldr(Narrow, r3, MemOperand(r0, 4));
2313 __ ldr(Narrow, r2, MemOperand(r0, 12));
2314 __ add(Narrow, r3, r3, r1);
2315 __ subs(Narrow, r3, r3, r2);
2316 __ cmp(Narrow, r3, 31U);
2317 __ b(ls, &l_1caa);
2318 // --------------
2319 __ bind(&l_1350);
2320 __ movs(Narrow, r3, 1U);
2321 __ strb(r3, MemOperand(sp, 377));
2322 // --------------
2323 __ bind(&l_1356);
2324 __ ldr(Narrow, r0, &l_13fc);
2325 __ mov(lr, 0U);
2326 __ movs(Narrow, r3, 1U);
2327 __ movs(Narrow, r2, 14U);
2328 __ movs(Narrow, r1, 4U);
2329 __ str(r2, MemOperand(sp, 1804));
2330 __ str(Narrow, r0, MemOperand(sp, 360));
2331 __ mov(Narrow, r0, r4);
2332 __ str(r1, MemOperand(sp, 1812));
2333 __ mov(Narrow, r1, r2);
2334 __ str(r3, MemOperand(sp, 1816));
2335 __ mov(r2, 1040U);
2336 __ str(r3, MemOperand(sp, 1820));
2337 __ strb(r3, MemOperand(sp, 1848));
2338 __ str(r3, MemOperand(sp, 1864));
2339 __ str(r3, MemOperand(sp, 1888));
2340 __ str(r3, MemOperand(sp, 1912));
2341 __ str(r3, MemOperand(sp, 1936));
2342 __ str(r4, MemOperand(sp, 1800));
2343 __ ldr(Narrow, r3, MemOperand(sp, 32));
2344 __ strb(lr, MemOperand(sp, 1824));
2345 __ str(lr, MemOperand(sp, 1828));
2346 __ strb(lr, MemOperand(sp, 1832));
2347 __ strb(lr, MemOperand(sp, 1836));
2348 __ str(lr, MemOperand(sp, 1852));
2349 __ str(lr, MemOperand(sp, 1856));
2350 __ str(lr, MemOperand(sp, 1860));
2351 __ str(lr, MemOperand(sp, 1868));
2352 __ str(lr, MemOperand(sp, 1872));
2353 __ str(lr, MemOperand(sp, 1876));
2354 __ str(lr, MemOperand(sp, 1880));
2355 __ str(lr, MemOperand(sp, 1884));
2356 __ str(lr, MemOperand(sp, 1892));
2357 __ str(lr, MemOperand(sp, 1896));
2358 __ str(lr, MemOperand(sp, 1900));
2359 __ str(lr, MemOperand(sp, 1904));
2360 __ str(lr, MemOperand(sp, 1908));
2361 __ str(lr, MemOperand(sp, 1916));
2362 __ str(lr, MemOperand(sp, 1920));
2363 __ str(lr, MemOperand(sp, 1924));
2364 __ str(lr, MemOperand(sp, 1928));
2365 __ str(lr, MemOperand(sp, 1932));
2366 __ ldr(Narrow, r6, MemOperand(sp, 28));
2367 __ str(lr, MemOperand(sp, 1940));
2368 __ str(lr, MemOperand(sp, 1944));
2369 __ str(Narrow, r6, MemOperand(sp));
2370 __ b(Narrow, &l_1404);
2371 // --------------
2372 __ bind(&l_13fc);
2373 __ Emit32(0x00000008);
2374 // --------------
2375 __ bind(&l_1400);
2376 __ Emit32(0x00000008);
2377 // --------------
2378 __ bind(&l_1404);
2379 __ ldr(Narrow, r6, &l_1724);
2380 __ str(lr, MemOperand(sp, 1948));
2381 __ str(lr, MemOperand(sp, 1952));
2382 __ str(r6, MemOperand(sp, 1808));
2383 __ strb(lr, MemOperand(sp, 1960));
2384 // --------------
2385 __ bind(&l_1416);
2386 __ bl(&l_1416);
2387 __ add(r0, sp, 1800U);
2388 // --------------
2389 __ bind(&l_141e);
2390 __ bl(&l_141e);
2391 __ ldrb(r3, MemOperand(sp, 377));
2392 __ str(r9, MemOperand(sp, 360));
2393 __ cmp(Narrow, r3, 0U);
2394 __ b(ne, &l_1bf0);
2395 // --------------
2396 __ bind(&l_1430);
2397 __ movs(Narrow, r3, 0U);
2398 }
Generate_19(TestAssembler * assembler)2399 void Generate_19(TestAssembler* assembler) {
2400 __ movs(Narrow, r2, 14U);
2401 __ str(Narrow, r3, MemOperand(sp, 392));
2402 __ strb(r3, MemOperand(sp, 405));
2403 __ ldr(Narrow, r3, MemOperand(sp, 20));
2404 __ str(Narrow, r2, MemOperand(sp, 112));
2405 __ str(r9, MemOperand(sp, 388));
2406 __ cbz(r3, &l_148e);
2407 __ mov(Narrow, r6, r3);
2408 __ ldr(Narrow, r3, MemOperand(r4, 44));
2409 __ movs(Narrow, r2, 1U);
2410 __ str(Narrow, r6, MemOperand(sp, 408));
2411 __ mov(Narrow, r0, r6);
2412 __ str(Narrow, r2, MemOperand(sp, 412));
2413 __ movs(Narrow, r1, 32U);
2414 __ ldr(Narrow, r3, MemOperand(r3, 32));
2415 __ blx(r3);
2416 __ ldr(Narrow, r3, MemOperand(r4, 44));
2417 __ mov(Narrow, r0, r6);
2418 __ ldr(Narrow, r3, MemOperand(r3, 24));
2419 __ blx(r3);
2420 __ ldr(Narrow, r2, MemOperand(r4, 44));
2421 __ movw(r3, 0U);
2422 __ movt(r3, 0U);
2423 __ ldr(Narrow, r2, MemOperand(r2));
2424 __ cmp(Narrow, r2, r3);
2425 __ b(ne, &l_1d78);
2426 __ mov(Narrow, r0, r6);
2427 // --------------
2428 __ bind(&l_1472);
2429 __ bl(&l_1472);
2430 // --------------
2431 __ bind(&l_1476);
2432 __ str(Narrow, r0, MemOperand(sp, 392));
2433 __ ldr(Narrow, r1, MemOperand(r0, 20));
2434 __ ldr(Narrow, r3, MemOperand(r0, 4));
2435 __ ldr(Narrow, r2, MemOperand(r0, 12));
2436 __ add(Narrow, r3, r3, r1);
2437 __ subs(Narrow, r3, r3, r2);
2438 __ cmp(Narrow, r3, 31U);
2439 __ b(ls, &l_1c9c);
2440 // --------------
2441 __ bind(&l_1488);
2442 __ movs(Narrow, r3, 1U);
2443 __ strb(r3, MemOperand(sp, 405));
2444 // --------------
2445 __ bind(&l_148e);
2446 __ ldr(Narrow, r3, &l_1728);
2447 __ mov(Narrow, r0, sl);
2448 __ mov(Narrow, r1, r4);
2449 __ add(Narrow, r2, sp, 112U);
2450 __ str(Narrow, r3, MemOperand(sp, 388));
2451 __ bl(&l_0000);
2452 __ ldr(Narrow, r3, MemOperand(sp, 44));
2453 __ mov(Narrow, r0, r4);
2454 __ ldr(Narrow, r6, MemOperand(sp, 32));
2455 __ mov(r2, 1568U);
2456 __ ldr(Narrow, r1, MemOperand(sp, 112));
2457 __ str(Narrow, r3, MemOperand(sp));
2458 __ ldr(Narrow, r3, MemOperand(sp, 48));
2459 __ str(Narrow, r3, MemOperand(sp, 4));
2460 __ mov(Narrow, r3, r6);
2461 // --------------
2462 __ bind(&l_14b0);
2463 __ bl(&l_14b0);
2464 __ mov(Narrow, r0, sl);
2465 // --------------
2466 __ bind(&l_14b6);
2467 __ bl(&l_14b6);
2468 __ ldr(Narrow, r3, &l_1728);
2469 __ add(Narrow, r0, sp, 388U);
2470 __ str(Narrow, r3, MemOperand(sp, 388));
2471 // --------------
2472 __ bind(&l_14c0);
2473 __ bl(&l_14c0);
2474 __ and_(r3, r6, 0x1f);
2475 __ ldr(Narrow, r1, MemOperand(r7, 40));
2476 __ orr(r3, r3, 0x8000);
2477 __ movs(Narrow, r2, 0U);
2478 __ orr(r3, r3, 0x60);
2479 __ mov(lr, 1U);
2480 __ str(r3, MemOperand(sl));
2481 __ mov(r0, 4098U);
2482 __ ldr(Narrow, r3, MemOperand(sp, 40));
2483 __ str(r1, MemOperand(sp, 2316));
2484 __ str(r2, MemOperand(sl, 4));
2485 __ str(r3, MemOperand(sp, 2304));
2486 __ movs(Narrow, r3, 14U);
2487 __ str(Narrow, r3, MemOperand(sp, 116));
2488 __ ldr(Narrow, r3, MemOperand(sp, 20));
2489 __ str(r2, MemOperand(sl, 12));
2490 __ str(r2, MemOperand(sp, 2308));
2491 __ str(r2, MemOperand(sp, 2312));
2492 __ str(r2, MemOperand(sp, 2320));
2493 __ str(r2, MemOperand(sp, 2324));
2494 __ str(Narrow, r2, MemOperand(sp, 420));
2495 __ strb(r2, MemOperand(sp, 433));
2496 __ str(r9, MemOperand(sp, 416));
2497 __ str(lr, MemOperand(sl, 8));
2498 __ str(lr, MemOperand(sl, 16));
2499 __ str(lr, MemOperand(sp, 2332));
2500 __ str(r0, MemOperand(sp, 2328));
2501 __ cbz(r3, &l_156e);
2502 __ mov(Narrow, r6, r3);
2503 __ ldr(Narrow, r3, MemOperand(r4, 44));
2504 __ mov(Narrow, r0, r6);
2505 __ str(Narrow, r6, MemOperand(sp, 436));
2506 __ movs(Narrow, r1, 32U);
2507 __ str(lr, MemOperand(sp, 440));
2508 __ ldr(Narrow, r3, MemOperand(r3, 32));
2509 __ blx(r3);
2510 __ ldr(Narrow, r3, MemOperand(r4, 44));
2511 __ mov(Narrow, r0, r6);
2512 __ ldr(Narrow, r3, MemOperand(r3, 24));
2513 __ blx(r3);
2514 }
Generate_20(TestAssembler * assembler)2515 void Generate_20(TestAssembler* assembler) {
2516 __ ldr(Narrow, r2, MemOperand(r4, 44));
2517 __ movw(r3, 0U);
2518 __ movt(r3, 0U);
2519 __ ldr(Narrow, r2, MemOperand(r2));
2520 __ cmp(Narrow, r2, r3);
2521 __ b(ne, &l_1d2a);
2522 __ mov(Narrow, r0, r6);
2523 // --------------
2524 __ bind(&l_1552);
2525 __ bl(&l_1552);
2526 // --------------
2527 __ bind(&l_1556);
2528 __ str(Narrow, r0, MemOperand(sp, 420));
2529 __ ldr(Narrow, r1, MemOperand(r0, 20));
2530 __ ldr(Narrow, r3, MemOperand(r0, 4));
2531 __ ldr(Narrow, r2, MemOperand(r0, 12));
2532 __ add(Narrow, r3, r3, r1);
2533 __ subs(Narrow, r3, r3, r2);
2534 __ cmp(Narrow, r3, 31U);
2535 __ b(ls, &l_1c48);
2536 // --------------
2537 __ bind(&l_1568);
2538 __ movs(Narrow, r3, 1U);
2539 __ strb(r3, MemOperand(sp, 433));
2540 // --------------
2541 __ bind(&l_156e);
2542 __ ldr(Narrow, r3, &l_1728);
2543 __ mov(Narrow, r0, r5);
2544 __ mov(Narrow, r1, r4);
2545 __ add(Narrow, r2, sp, 116U);
2546 __ str(Narrow, r3, MemOperand(sp, 416));
2547 __ bl(&l_0000);
2548 __ ldr(Narrow, r1, MemOperand(sp, 116));
2549 __ mov(Narrow, r0, r4);
2550 __ str(fp, MemOperand(sp));
2551 __ mov(r2, 1568U);
2552 __ mov(Narrow, r3, sl);
2553 // --------------
2554 __ bind(&l_158a);
2555 __ bl(&l_158a);
2556 __ mov(Narrow, r0, r5);
2557 // --------------
2558 __ bind(&l_1590);
2559 __ bl(&l_1590);
2560 __ ldr(Narrow, r3, &l_1728);
2561 __ add(Narrow, r0, sp, 416U);
2562 __ str(Narrow, r3, MemOperand(sp, 416));
2563 // --------------
2564 __ bind(&l_159a);
2565 __ bl(&l_159a);
2566 __ ldr(Narrow, r2, MemOperand(sp, 60));
2567 __ mov(Narrow, r0, r4);
2568 __ ldr(Narrow, r3, MemOperand(sp, 64));
2569 __ movs(Narrow, r1, 14U);
2570 __ str(Narrow, r2, MemOperand(sp, 4));
2571 __ mov(r2, 800U);
2572 __ str(Narrow, r3, MemOperand(sp));
2573 // --------------
2574 __ bind(&l_15ae);
2575 __ bl(&l_15ae);
2576 __ ldr(Narrow, r1, MemOperand(r7, 40));
2577 __ mov(lr, 0U);
2578 __ ldr(Narrow, r2, MemOperand(r7, 28));
2579 __ mov(ip, 1U);
2580 __ str(fp, MemOperand(sp));
2581 __ mov(Narrow, r0, r4);
2582 __ str(r1, MemOperand(sp, 2308));
2583 __ str(r1, MemOperand(sp, 2320));
2584 __ mov(Narrow, r3, r2);
2585 __ movs(Narrow, r1, 14U);
2586 __ str(ip, MemOperand(sp, 2304));
2587 __ str(lr, MemOperand(sp, 2312));
2588 __ str(lr, MemOperand(sp, 2316));
2589 // --------------
2590 __ bind(&l_15dc);
2591 __ bl(&l_15dc);
2592 __ mov(Narrow, r0, r4);
2593 __ movs(Narrow, r1, 1U);
2594 __ add(Narrow, r2, sp, 624U);
2595 __ movs(Narrow, r3, 2U);
2596 // --------------
2597 __ bind(&l_15e8);
2598 __ bl(&l_15e8);
2599 __ ldr(Narrow, r3, MemOperand(sp, 24));
2600 __ add(Narrow, r0, sp, 652U);
2601 __ str(Narrow, r3, MemOperand(sp, 624));
2602 // --------------
2603 __ bind(&l_15f2);
2604 __ bl(&l_15f2);
2605 __ ldr(Narrow, r2, MemOperand(sp, 40));
2606 __ movs(Narrow, r3, 0U);
2607 __ ldr(Narrow, r6, MemOperand(sp, 20));
2608 __ ldr(Narrow, r1, MemOperand(r7, 40));
2609 __ stm(r5, NO_WRITE_BACK, RegisterList(r2, r3));
2610 __ mov(r2, 4096U);
2611 __ str(Narrow, r3, MemOperand(r5, 8));
2612 __ str(Narrow, r1, MemOperand(r5, 12));
2613 __ str(Narrow, r3, MemOperand(r5, 16));
2614 __ str(Narrow, r3, MemOperand(r5, 20));
2615 __ str(Narrow, r3, MemOperand(sp, 448));
2616 __ strb(r3, MemOperand(sp, 461));
2617 __ str(r9, MemOperand(sp, 444));
2618 __ str(Narrow, r2, MemOperand(r5, 24));
2619 __ cbz(r6, &l_1664);
2620 __ ldr(Narrow, r3, MemOperand(r4, 44));
2621 __ movs(Narrow, r2, 1U);
2622 __ str(Narrow, r6, MemOperand(sp, 464));
2623 __ mov(Narrow, r0, r6);
2624 __ str(Narrow, r2, MemOperand(sp, 468));
2625 __ movs(Narrow, r1, 32U);
2626 __ ldr(Narrow, r3, MemOperand(r3, 32));
2627 __ blx(r3);
2628 __ ldr(Narrow, r3, MemOperand(r4, 44));
2629 __ mov(Narrow, r0, r6);
2630 __ ldr(Narrow, r3, MemOperand(r3, 24));
2631 __ blx(r3);
2632 __ ldr(Narrow, r2, MemOperand(r4, 44));
2633 __ movw(r3, 0U);
2634 __ movt(r3, 0U);
2635 __ ldr(Narrow, r2, MemOperand(r2));
2636 __ cmp(Narrow, r2, r3);
2637 __ b(ne, &l_1d24);
2638 }
Generate_21(TestAssembler * assembler)2639 void Generate_21(TestAssembler* assembler) {
2640 __ mov(Narrow, r0, r6);
2641 // --------------
2642 __ bind(&l_1648);
2643 __ bl(&l_1648);
2644 // --------------
2645 __ bind(&l_164c);
2646 __ str(Narrow, r0, MemOperand(sp, 448));
2647 __ ldr(Narrow, r1, MemOperand(r0, 20));
2648 __ ldr(Narrow, r3, MemOperand(r0, 4));
2649 __ ldr(Narrow, r2, MemOperand(r0, 12));
2650 __ add(Narrow, r3, r3, r1);
2651 __ subs(Narrow, r3, r3, r2);
2652 __ cmp(Narrow, r3, 31U);
2653 __ b(ls, &l_1c54);
2654 // --------------
2655 __ bind(&l_165e);
2656 __ movs(Narrow, r3, 1U);
2657 __ strb(r3, MemOperand(sp, 461));
2658 // --------------
2659 __ bind(&l_1664);
2660 __ ldr(Narrow, r3, &l_1728);
2661 __ ldr(Narrow, r2, MemOperand(r5, 12));
2662 __ str(Narrow, r3, MemOperand(sp, 444));
2663 __ ubfx(r3, r2, 5U, 4U);
2664 __ cmp(Narrow, r3, 0U);
2665 __ b(ne, &l_1b04);
2666 __ ldr(Narrow, r2, MemOperand(sp, 72));
2667 __ and_(r2, r2, 0x1f);
2668 __ cmp(Narrow, r2, 7U);
2669 __ b(hi, &l_1b00);
2670 __ ldr(Narrow, r2, MemOperand(r5));
2671 __ and_(r2, r2, 0x1f);
2672 __ cmp(Narrow, r2, 7U);
2673 __ b(hi, &l_1b00);
2674 __ ldr(Narrow, r2, MemOperand(r5, 4));
2675 __ cmp(Narrow, r2, 31U);
2676 __ b(hi, &l_1b00);
2677 // --------------
2678 __ bind(&l_1694);
2679 __ ldr(Narrow, r3, MemOperand(r5, 24));
2680 __ ubfx(r3, r3, 0U, 12U);
2681 __ clz(ip, r3);
2682 __ lsr(ip, ip, 5U);
2683 // --------------
2684 __ bind(&l_16a2);
2685 __ ldr(Narrow, r6, &l_1724);
2686 __ mov(lr, 0U);
2687 __ movs(Narrow, r0, 1U);
2688 __ movs(Narrow, r2, 4U);
2689 __ movs(Narrow, r1, 14U);
2690 __ str(r2, MemOperand(sp, 2316));
2691 __ str(r0, MemOperand(sp, 2320));
2692 __ mov(Narrow, r2, lr);
2693 __ str(r0, MemOperand(sp, 2324));
2694 __ strb(r0, MemOperand(sp, 2352));
2695 __ str(r0, MemOperand(sp, 2368));
2696 __ str(r0, MemOperand(sp, 2392));
2697 __ str(r0, MemOperand(sp, 2416));
2698 __ str(r0, MemOperand(sp, 2440));
2699 __ mov(Narrow, r0, r4);
2700 __ str(r4, MemOperand(sp, 2304));
2701 __ ldr(Narrow, r3, MemOperand(sp, 72));
2702 __ str(r1, MemOperand(sp, 2308));
2703 __ strb(lr, MemOperand(sp, 2328));
2704 __ str(lr, MemOperand(sp, 2332));
2705 __ strb(lr, MemOperand(sp, 2336));
2706 __ strb(lr, MemOperand(sp, 2340));
2707 __ str(lr, MemOperand(sp, 2356));
2708 __ str(lr, MemOperand(sp, 2360));
2709 __ str(lr, MemOperand(sp, 2364));
2710 __ str(lr, MemOperand(sp, 2372));
2711 __ str(lr, MemOperand(sp, 2376));
2712 __ str(lr, MemOperand(sp, 2380));
2713 __ str(lr, MemOperand(sp, 2384));
2714 __ str(lr, MemOperand(sp, 2388));
2715 __ str(lr, MemOperand(sp, 2396));
2716 __ str(lr, MemOperand(sp, 2400));
2717 __ str(lr, MemOperand(sp, 2404));
2718 __ str(lr, MemOperand(sp, 2408));
2719 __ str(lr, MemOperand(sp, 2412));
2720 __ b(Narrow, &l_172c);
2721 __ nop(Narrow);
2722 // --------------
2723 __ bind(&l_1724);
2724 __ Emit32(0x00000008);
2725 // --------------
2726 __ bind(&l_1728);
2727 __ Emit32(0x00000008);
2728 // --------------
2729 __ bind(&l_172c);
2730 __ str(lr, MemOperand(sp, 2420));
2731 __ str(lr, MemOperand(sp, 2424));
2732 __ str(lr, MemOperand(sp, 2428));
2733 __ str(lr, MemOperand(sp, 2432));
2734 __ str(lr, MemOperand(sp, 2436));
2735 __ str(lr, MemOperand(sp, 2444));
2736 __ str(Narrow, r5, MemOperand(sp));
2737 __ str(lr, MemOperand(sp, 2448));
2738 __ str(lr, MemOperand(sp, 2452));
2739 __ str(lr, MemOperand(sp, 2456));
2740 __ str(r6, MemOperand(sp, 2312));
2741 __ strb(ip, MemOperand(sp, 2464));
2742 // --------------
2743 __ bind(&l_175a);
2744 __ bl(&l_175a);
2745 __ mov(Narrow, r0, fp);
2746 // --------------
2747 __ bind(&l_1760);
2748 __ bl(&l_1760);
2749 __ ldrb(r3, MemOperand(sp, 461));
2750 __ str(r9, MemOperand(sp, 444));
2751 __ cmp(Narrow, r3, 0U);
2752 __ b(ne, &l_1b4a);
2753 // --------------
2754 __ bind(&l_1772);
2755 __ ldr(lr, MemOperand(r7, 40));
2756 __ movw(r1, 0U);
2757 __ ldr(Narrow, r2, MemOperand(sp, 68));
2758 __ movt(r1, 0U);
2759 __ mov(Narrow, r0, r4);
2760 __ str(lr, MemOperand(sp));
2761 __ mov(Narrow, r3, lr);
2762 __ str(lr, MemOperand(sp, 4));
2763 // --------------
2764 __ bind(&l_178c);
2765 __ bl(&l_178c);
2766 }
Generate_22(TestAssembler * assembler)2767 void Generate_22(TestAssembler* assembler) {
2768 __ ldr(Narrow, r2, MemOperand(sp, 56));
2769 __ mov(Narrow, r0, r4);
2770 __ ldr(Narrow, r3, MemOperand(sp, 36));
2771 __ movs(Narrow, r1, 14U);
2772 __ str(Narrow, r2, MemOperand(sp, 4));
2773 __ mov(r2, 800U);
2774 __ str(Narrow, r3, MemOperand(sp));
2775 // --------------
2776 __ bind(&l_17a0);
2777 __ bl(&l_17a0);
2778 __ ldr(Narrow, r1, MemOperand(r7, 40));
2779 __ mov(lr, 0U);
2780 __ ldr(Narrow, r2, MemOperand(r7, 24));
2781 __ mov(ip, 1U);
2782 __ str(fp, MemOperand(sp));
2783 __ mov(Narrow, r0, r4);
2784 __ str(r1, MemOperand(sp, 2308));
2785 __ str(r1, MemOperand(sp, 2320));
2786 __ mov(Narrow, r3, r2);
2787 __ movs(Narrow, r1, 14U);
2788 __ str(ip, MemOperand(sp, 2304));
2789 __ str(lr, MemOperand(sp, 2312));
2790 __ str(lr, MemOperand(sp, 2316));
2791 // --------------
2792 __ bind(&l_17ce);
2793 __ bl(&l_17ce);
2794 __ mov(Narrow, r0, r4);
2795 __ movs(Narrow, r1, 1U);
2796 __ add(Narrow, r2, sp, 472U);
2797 __ movs(Narrow, r3, 2U);
2798 // --------------
2799 __ bind(&l_17da);
2800 __ bl(&l_17da);
2801 __ ldr(Narrow, r3, MemOperand(sp, 24));
2802 __ ldr(r8, MemOperand(sp, 616));
2803 __ str(Narrow, r3, MemOperand(sp, 472));
2804 __ cmp(r8, 0U);
2805 __ b(eq, Narrow, &l_17fc);
2806 __ ldr(r0, MemOperand(r8));
2807 __ cbz(r0, &l_17f6);
2808 // --------------
2809 __ bind(&l_17f2);
2810 __ bl(&l_17f2);
2811 // --------------
2812 __ bind(&l_17f6);
2813 __ mov(Narrow, r0, r8);
2814 // --------------
2815 __ bind(&l_17f8);
2816 __ bl(&l_17f8);
2817 // --------------
2818 __ bind(&l_17fc);
2819 __ ldr(Narrow, r1, MemOperand(r7, 40));
2820 __ mov(lr, 0U);
2821 __ ldr(Narrow, r2, MemOperand(r7, 56));
2822 __ mov(ip, 132U);
2823 __ mov(Narrow, r0, r4);
2824 __ str(fp, MemOperand(sp));
2825 __ str(r1, MemOperand(sp, 2308));
2826 __ mov(Narrow, r3, r2);
2827 __ str(r1, MemOperand(sp, 2320));
2828 __ movs(Narrow, r1, 14U);
2829 __ str(ip, MemOperand(sp, 2304));
2830 __ str(lr, MemOperand(sp, 2312));
2831 __ str(lr, MemOperand(sp, 2316));
2832 // --------------
2833 __ bind(&l_1826);
2834 __ bl(&l_1826);
2835 __ ldr(Narrow, r3, MemOperand(r7, 24));
2836 __ ldr(Narrow, r0, MemOperand(r7, 28));
2837 __ ldr(Narrow, r2, MemOperand(r7, 32));
2838 __ ubfx(r1, r3, 5U, 4U);
2839 __ cbz(r1, &l_1842);
2840 __ and_(lr, r3, 0x1f);
2841 __ mov(r8, 1U);
2842 __ lsl(r1, r8, lr);
2843 // --------------
2844 __ bind(&l_1842);
2845 __ ubfx(r3, r0, 5U, 4U);
2846 __ mov(Narrow, r8, r3);
2847 __ cbz(r3, &l_1856);
2848 __ and_(r0, r0, 0x1f);
2849 __ mov(r8, 1U);
2850 __ lsl(r8, r8, r0);
2851 // --------------
2852 __ bind(&l_1856);
2853 __ ubfx(r3, r2, 5U, 4U);
2854 __ orr(r8, r8, r1);
2855 __ cbz(r3, &l_1868);
2856 __ and_(r2, r2, 0x1f);
2857 __ movs(Narrow, r3, 1U);
2858 __ lsls(Narrow, r3, r3, r2);
2859 // --------------
2860 __ bind(&l_1868);
2861 __ ldr(Narrow, r6, MemOperand(sp, 20));
2862 __ movs(Narrow, r2, 0U);
2863 __ movs(Narrow, r1, 14U);
2864 __ orr(r8, r8, r3);
2865 __ str(r9, MemOperand(r5));
2866 __ str(r1, MemOperand(sl));
2867 __ str(Narrow, r2, MemOperand(r5, 4));
2868 __ strb(Narrow, r2, MemOperand(r5, 17));
2869 __ cbz(r6, &l_18ce);
2870 __ ldr(Narrow, r3, MemOperand(r4, 44));
2871 __ movs(Narrow, r2, 1U);
2872 __ str(Narrow, r2, MemOperand(r5, 24));
2873 __ mov(Narrow, r0, r6);
2874 __ str(Narrow, r6, MemOperand(r5, 20));
2875 __ movs(Narrow, r1, 32U);
2876 __ ldr(Narrow, r3, MemOperand(r3, 32));
2877 __ blx(r3);
2878 __ ldr(Narrow, r3, MemOperand(r4, 44));
2879 __ mov(Narrow, r0, r6);
2880 __ ldr(Narrow, r3, MemOperand(r3, 24));
2881 __ blx(r3);
2882 __ ldr(Narrow, r2, MemOperand(r4, 44));
2883 __ movw(r3, 0U);
2884 __ movt(r3, 0U);
2885 __ ldr(Narrow, r2, MemOperand(r2));
2886 __ cmp(Narrow, r2, r3);
2887 __ b(ne, &l_1d50);
2888 __ mov(Narrow, r0, r6);
2889 // --------------
2890 __ bind(&l_18ac);
2891 __ bl(&l_18ac);
2892 }
Generate_23(TestAssembler * assembler)2893 void Generate_23(TestAssembler* assembler) {
2894 // --------------
2895 __ bind(&l_18b0);
2896 __ str(Narrow, r0, MemOperand(r5, 4));
2897 __ ldr(Narrow, r1, MemOperand(r0, 20));
2898 __ ldr(Narrow, r3, MemOperand(r0, 4));
2899 __ ldr(Narrow, r2, MemOperand(r0, 12));
2900 __ add(Narrow, r3, r3, r1);
2901 __ subs(Narrow, r3, r3, r2);
2902 __ cmp(Narrow, r3, 31U);
2903 __ b(hi, Narrow, &l_18ca);
2904 __ lsls(Narrow, r1, r1, 1U);
2905 __ adds(r0, 4U);
2906 __ adds(Narrow, r1, r1, 32U);
2907 // --------------
2908 __ bind(&l_18c6);
2909 __ bl(&l_18c6);
2910 // --------------
2911 __ bind(&l_18ca);
2912 __ movs(Narrow, r3, 1U);
2913 __ strb(Narrow, r3, MemOperand(r5, 17));
2914 // --------------
2915 __ bind(&l_18ce);
2916 __ ldr(Narrow, r3, &l_1be8);
2917 __ mov(Narrow, r0, fp);
2918 __ mov(Narrow, r1, r4);
2919 __ mov(Narrow, r2, sl);
2920 __ str(Narrow, r3, MemOperand(r5));
2921 __ bl(&l_0000);
2922 __ mov(Narrow, r0, r4);
2923 __ ldr(r1, MemOperand(sl));
2924 __ mov(Narrow, r3, r8);
2925 __ movs(Narrow, r2, 0U);
2926 // --------------
2927 __ bind(&l_18e6);
2928 __ bl(&l_18e6);
2929 __ mov(Narrow, r0, fp);
2930 // --------------
2931 __ bind(&l_18ec);
2932 __ bl(&l_18ec);
2933 __ ldr(Narrow, r3, &l_1be8);
2934 __ mov(Narrow, r0, r5);
2935 __ str(Narrow, r3, MemOperand(r5));
2936 // --------------
2937 __ bind(&l_18f6);
2938 __ bl(&l_18f6);
2939 __ movs(Narrow, r3, 0U);
2940 __ ldr(Narrow, r7, MemOperand(r7, 108));
2941 __ str(Narrow, r3, MemOperand(r5, 4));
2942 __ strb(Narrow, r3, MemOperand(r5, 17));
2943 __ ldr(Narrow, r3, MemOperand(sp, 20));
2944 __ str(r9, MemOperand(r5));
2945 __ cbz(r3, &l_195a);
2946 __ mov(Narrow, r6, r3);
2947 __ ldr(Narrow, r3, MemOperand(r4, 44));
2948 __ movs(Narrow, r2, 1U);
2949 __ str(Narrow, r6, MemOperand(r5, 20));
2950 __ str(Narrow, r2, MemOperand(r5, 24));
2951 __ mov(Narrow, r0, r6);
2952 __ movs(Narrow, r1, 32U);
2953 __ ldr(Narrow, r3, MemOperand(r3, 32));
2954 __ blx(r3);
2955 __ ldr(Narrow, r3, MemOperand(r4, 44));
2956 __ mov(Narrow, r0, r6);
2957 __ ldr(Narrow, r3, MemOperand(r3, 24));
2958 __ blx(r3);
2959 __ ldr(Narrow, r2, MemOperand(r4, 44));
2960 __ movw(r3, 0U);
2961 __ movt(r3, 0U);
2962 __ ldr(Narrow, r2, MemOperand(r2));
2963 __ cmp(Narrow, r2, r3);
2964 __ b(ne, &l_1d4a);
2965 __ mov(Narrow, r0, r6);
2966 // --------------
2967 __ bind(&l_1938);
2968 __ bl(&l_1938);
2969 // --------------
2970 __ bind(&l_193c);
2971 __ str(Narrow, r0, MemOperand(r5, 4));
2972 __ ldr(Narrow, r1, MemOperand(r0, 20));
2973 __ ldr(Narrow, r3, MemOperand(r0, 4));
2974 __ ldr(Narrow, r2, MemOperand(r0, 12));
2975 __ add(Narrow, r3, r3, r1);
2976 __ subs(Narrow, r3, r3, r2);
2977 __ cmp(Narrow, r3, 31U);
2978 __ b(hi, Narrow, &l_1956);
2979 __ lsls(Narrow, r1, r1, 1U);
2980 __ adds(r0, 4U);
2981 __ adds(Narrow, r1, r1, 32U);
2982 // --------------
2983 __ bind(&l_1952);
2984 __ bl(&l_1952);
2985 // --------------
2986 __ bind(&l_1956);
2987 __ movs(Narrow, r3, 1U);
2988 __ strb(Narrow, r3, MemOperand(r5, 17));
2989 // --------------
2990 __ bind(&l_195a);
2991 __ movs(Narrow, r3, 1U);
2992 __ and_(r6, r7, 0x1f);
2993 __ subs(r8, r6, 15U);
2994 __ str(r3, MemOperand(sp, 2320));
2995 __ str(r3, MemOperand(sp, 2324));
2996 __ mov(lr, 14U);
2997 __ strb(r3, MemOperand(sp, 2352));
2998 __ mov(ip, 4U);
2999 __ str(r3, MemOperand(sp, 2368));
3000 __ it(ne);
3001 __ mov(ne, r8, 1U);
3002 __ str(r3, MemOperand(sp, 2392));
3003 __ mov(Narrow, r2, r7);
3004 __ str(r3, MemOperand(sp, 2416));
3005 __ movs(Narrow, r7, 0U);
3006 __ str(r3, MemOperand(sp, 2440));
3007 __ mov(Narrow, r0, r4);
3008 __ ldr(Narrow, r6, &l_1be8);
3009 __ mov(Narrow, r1, lr);
3010 __ ldr(Narrow, r3, &l_1bec);
3011 __ str(r4, MemOperand(sp, 2304));
3012 __ str(Narrow, r6, MemOperand(r5));
3013 __ str(lr, MemOperand(sp, 2308));
3014 __ str(ip, MemOperand(sp, 2316));
3015 __ strb(r7, MemOperand(sp, 2328));
3016 __ str(r7, MemOperand(sp, 2332));
3017 __ strb(r7, MemOperand(sp, 2336));
3018 }
Generate_24(TestAssembler * assembler)3019 void Generate_24(TestAssembler* assembler) {
3020 __ strb(r7, MemOperand(sp, 2340));
3021 __ str(r7, MemOperand(sp, 2356));
3022 __ str(r7, MemOperand(sp, 2360));
3023 __ str(r7, MemOperand(sp, 2364));
3024 __ str(r7, MemOperand(sp, 2372));
3025 __ str(r7, MemOperand(sp, 2376));
3026 __ str(r7, MemOperand(sp, 2380));
3027 __ str(r7, MemOperand(sp, 2384));
3028 __ str(r7, MemOperand(sp, 2388));
3029 __ str(r7, MemOperand(sp, 2396));
3030 __ str(r7, MemOperand(sp, 2400));
3031 __ str(r7, MemOperand(sp, 2404));
3032 __ str(r7, MemOperand(sp, 2408));
3033 __ str(r7, MemOperand(sp, 2412));
3034 __ str(r7, MemOperand(sp, 2420));
3035 __ str(r7, MemOperand(sp, 2424));
3036 __ str(r7, MemOperand(sp, 2428));
3037 __ str(r7, MemOperand(sp, 2432));
3038 __ str(r7, MemOperand(sp, 2436));
3039 __ str(r7, MemOperand(sp, 2444));
3040 __ str(r7, MemOperand(sp, 2448));
3041 __ str(r7, MemOperand(sp, 2452));
3042 __ str(r7, MemOperand(sp, 2456));
3043 __ str(r3, MemOperand(sp, 2312));
3044 __ strb(r8, MemOperand(sp, 2464));
3045 // --------------
3046 __ bind(&l_1a18);
3047 __ bl(&l_1a18);
3048 __ mov(Narrow, r0, fp);
3049 // --------------
3050 __ bind(&l_1a1e);
3051 __ bl(&l_1a1e);
3052 __ ldrb(Narrow, r3, MemOperand(r5, 17));
3053 __ str(r9, MemOperand(r5));
3054 __ cmp(Narrow, r3, 0U);
3055 __ b(ne, &l_1c2e);
3056 // --------------
3057 __ bind(&l_1a2e);
3058 __ add(sp, sp, 2476U);
3059 __ pop(RegisterList(0x8ff0));
3060 // --------------
3061 __ bind(&l_1a36);
3062 __ ldr(Narrow, r0, MemOperand(r5, 20));
3063 __ cmp(Narrow, r0, 0U);
3064 __ b(eq, &l_0604);
3065 __ ldr(Narrow, r3, MemOperand(r5, 24));
3066 __ movs(Narrow, r2, 0U);
3067 __ strb(Narrow, r2, MemOperand(r5, 17));
3068 __ cmp(Narrow, r3, 1U);
3069 __ b(ne, &l_0604);
3070 __ ldr(Narrow, r3, MemOperand(r0));
3071 __ ldr(Narrow, r3, MemOperand(r3, 28));
3072 __ blx(r3);
3073 __ b(&l_0604);
3074 // --------------
3075 __ bind(&l_1a54);
3076 __ ldr(Narrow, r0, MemOperand(r5, 20));
3077 __ cmp(Narrow, r0, 0U);
3078 __ b(eq, &l_04aa);
3079 __ ldr(Narrow, r3, MemOperand(r5, 24));
3080 __ movs(Narrow, r2, 0U);
3081 __ strb(Narrow, r2, MemOperand(r5, 17));
3082 __ cmp(Narrow, r3, 1U);
3083 __ b(ne, &l_04aa);
3084 __ ldr(Narrow, r3, MemOperand(r0));
3085 __ ldr(Narrow, r3, MemOperand(r3, 28));
3086 __ blx(r3);
3087 __ b(&l_04aa);
3088 // --------------
3089 __ bind(&l_1a72);
3090 __ ldr(Narrow, r0, MemOperand(r5, 20));
3091 __ cmp(Narrow, r0, 0U);
3092 __ b(eq, &l_02dc);
3093 __ ldr(Narrow, r3, MemOperand(r5, 24));
3094 __ movs(Narrow, r2, 0U);
3095 __ strb(Narrow, r2, MemOperand(r5, 17));
3096 __ cmp(Narrow, r3, 1U);
3097 __ b(ne, &l_02dc);
3098 __ ldr(Narrow, r3, MemOperand(r0));
3099 __ ldr(Narrow, r3, MemOperand(r3, 28));
3100 __ blx(r3);
3101 __ b(&l_02dc);
3102 // --------------
3103 __ bind(&l_1a90);
3104 __ ldr(Narrow, r0, MemOperand(sp, 20));
3105 __ blx(r2);
3106 __ b(&l_0670);
3107 // --------------
3108 __ bind(&l_1a98);
3109 __ ldr(Narrow, r0, MemOperand(sp, 20));
3110 __ blx(r2);
3111 __ b(&l_04fc);
3112 // --------------
3113 __ bind(&l_1aa0);
3114 __ ldr(Narrow, r0, MemOperand(sp, 20));
3115 __ blx(r2);
3116 __ b(&l_0782);
3117 // --------------
3118 __ bind(&l_1aa8);
3119 __ ldr(Narrow, r0, MemOperand(sp, 20));
3120 __ blx(r2);
3121 __ b(&l_028e);
3122 // --------------
3123 __ bind(&l_1ab0);
3124 __ ldr(Narrow, r0, MemOperand(sp, 20));
3125 __ blx(r2);
3126 __ b(&l_03be);
3127 // --------------
3128 __ bind(&l_1ab8);
3129 __ str(Narrow, r3, MemOperand(r5));
3130 __ and_(r3, r8, 0x1f);
3131 __ b(&l_07a8);
3132 // --------------
3133 __ bind(&l_1ac2);
3134 __ ldr(r2, MemOperand(sl, 8));
3135 __ cmp(Narrow, r2, 4U);
3136 __ b(eq, &l_1d80);
3137 __ ldr(r2, MemOperand(sl, 16));
3138 __ ubfx(r2, r2, 5U, 4U);
3139 __ cmp(Narrow, r2, 0U);
3140 __ b(ne, &l_1d80);
3141 __ ldr(r1, MemOperand(sl, 12));
3142 __ mov(Narrow, ip, r2);
3143 __ cmp(Narrow, r1, 0U);
3144 __ b(ne, &l_07dc);
3145 __ cmp(Narrow, r3, 7U);
3146 }
Generate_25(TestAssembler * assembler)3147 void Generate_25(TestAssembler* assembler) {
3148 __ b(hi, Narrow, &l_1b44);
3149 __ and_(ip, r0, 0x1f);
3150 __ cmp(ip, 7U);
3151 __ ite(hi);
3152 __ mov(hi, ip, 0U);
3153 __ mov(ls, ip, 1U);
3154 __ b(&l_07dc);
3155 // --------------
3156 __ bind(&l_1b00);
3157 __ mov(Narrow, ip, r3);
3158 __ b(Narrow, &l_16a2);
3159 // --------------
3160 __ bind(&l_1b04);
3161 __ ldr(Narrow, r3, MemOperand(r5, 16));
3162 __ mov(ip, 0U);
3163 __ cmp(Narrow, r3, 0U);
3164 __ b(ne, &l_16a2);
3165 __ ldr(Narrow, r1, MemOperand(r5, 20));
3166 __ cmp(Narrow, r1, 0U);
3167 __ b(ne, Narrow, &l_1b00);
3168 __ ldr(Narrow, r3, MemOperand(sp, 72));
3169 __ and_(r3, r3, 0x1f);
3170 __ cmp(Narrow, r3, 7U);
3171 __ b(hi, Narrow, &l_1b3a);
3172 __ ldr(Narrow, r3, MemOperand(r5));
3173 __ and_(r3, r3, 0x1f);
3174 __ cmp(Narrow, r3, 7U);
3175 __ b(hi, Narrow, &l_1b3a);
3176 __ and_(r2, r2, 0x1f);
3177 __ cmp(Narrow, r2, 7U);
3178 __ b(hi, Narrow, &l_1b3a);
3179 __ ldr(Narrow, r3, MemOperand(r5, 8));
3180 __ cmp(Narrow, r3, 0U);
3181 __ b(eq, &l_1694);
3182 // --------------
3183 __ bind(&l_1b3a);
3184 __ mov(Narrow, ip, r1);
3185 __ b(Narrow, &l_16a2);
3186 // --------------
3187 __ bind(&l_1b3e);
3188 __ cmp(Narrow, r2, 255U);
3189 __ b(ls, &l_07d0);
3190 // --------------
3191 __ bind(&l_1b44);
3192 __ mov(Narrow, ip, r1);
3193 __ b(&l_07dc);
3194 // --------------
3195 __ bind(&l_1b4a);
3196 __ ldr(Narrow, r0, MemOperand(sp, 464));
3197 __ cmp(Narrow, r0, 0U);
3198 __ b(eq, &l_1772);
3199 __ ldr(Narrow, r3, MemOperand(sp, 468));
3200 __ movs(Narrow, r2, 0U);
3201 __ strb(r2, MemOperand(sp, 461));
3202 __ cmp(Narrow, r3, 1U);
3203 __ b(ne, &l_1772);
3204 __ ldr(Narrow, r3, MemOperand(r0));
3205 __ ldr(Narrow, r3, MemOperand(r3, 28));
3206 __ blx(r3);
3207 __ b(Narrow, &l_1772);
3208 // --------------
3209 __ bind(&l_1b68);
3210 __ ldr(Narrow, r0, MemOperand(sp, 296));
3211 __ cmp(Narrow, r0, 0U);
3212 __ b(eq, &l_10fe);
3213 __ ldr(Narrow, r3, MemOperand(sp, 300));
3214 __ movs(Narrow, r2, 0U);
3215 __ strb(r2, MemOperand(sp, 293));
3216 __ cmp(Narrow, r3, 1U);
3217 __ b(ne, &l_10fe);
3218 __ ldr(Narrow, r3, MemOperand(r0));
3219 __ ldr(Narrow, r3, MemOperand(r3, 28));
3220 __ blx(r3);
3221 __ b(&l_10fe);
3222 // --------------
3223 __ bind(&l_1b88);
3224 __ ldr(Narrow, r0, MemOperand(sp, 240));
3225 __ cmp(Narrow, r0, 0U);
3226 __ b(eq, &l_0fac);
3227 __ ldr(Narrow, r3, MemOperand(sp, 244));
3228 __ movs(Narrow, r2, 0U);
3229 __ strb(r2, MemOperand(sp, 237));
3230 __ cmp(Narrow, r3, 1U);
3231 __ b(ne, &l_0fac);
3232 __ ldr(Narrow, r3, MemOperand(r0));
3233 __ ldr(Narrow, r3, MemOperand(r3, 28));
3234 __ blx(r3);
3235 __ b(&l_0fac);
3236 // --------------
3237 __ bind(&l_1ba8);
3238 __ ldr(Narrow, r0, MemOperand(sp, 212));
3239 __ cmp(Narrow, r0, 0U);
3240 __ b(eq, &l_0ed8);
3241 __ ldr(Narrow, r3, MemOperand(sp, 216));
3242 __ movs(Narrow, r2, 0U);
3243 __ strb(r2, MemOperand(sp, 209));
3244 __ cmp(Narrow, r3, 1U);
3245 __ b(ne, &l_0ed8);
3246 __ ldr(Narrow, r3, MemOperand(r0));
3247 __ ldr(Narrow, r3, MemOperand(r3, 28));
3248 __ blx(r3);
3249 __ b(&l_0ed8);
3250 // --------------
3251 __ bind(&l_1bc8);
3252 __ ldr(Narrow, r0, MemOperand(sp, 352));
3253 __ cmp(Narrow, r0, 0U);
3254 __ b(eq, &l_12fc);
3255 __ ldr(Narrow, r3, MemOperand(sp, 356));
3256 __ movs(Narrow, r2, 0U);
3257 __ strb(r2, MemOperand(sp, 349));
3258 __ cmp(Narrow, r3, 1U);
3259 __ b(ne, &l_12fc);
3260 __ ldr(Narrow, r3, MemOperand(r0));
3261 __ ldr(Narrow, r3, MemOperand(r3, 28));
3262 __ blx(r3);
3263 __ b(&l_12fc);
3264 // --------------
3265 __ bind(&l_1be8);
3266 __ Emit32(0x00000008);
3267 // --------------
3268 __ bind(&l_1bec);
3269 __ Emit32(0x00000008);
3270 // --------------
3271 __ bind(&l_1bf0);
3272 __ ldr(Narrow, r0, MemOperand(sp, 380));
3273 __ cmp(Narrow, r0, 0U);
3274 }
Generate_26(TestAssembler * assembler)3275 void Generate_26(TestAssembler* assembler) {
3276 __ b(eq, &l_1430);
3277 __ ldr(Narrow, r3, MemOperand(sp, 384));
3278 __ movs(Narrow, r2, 0U);
3279 __ strb(r2, MemOperand(sp, 377));
3280 __ cmp(Narrow, r3, 1U);
3281 __ b(ne, &l_1430);
3282 __ ldr(Narrow, r3, MemOperand(r0));
3283 __ ldr(Narrow, r3, MemOperand(r3, 28));
3284 __ blx(r3);
3285 __ b(Narrow, &l_1430);
3286 // --------------
3287 __ bind(&l_1c0e);
3288 __ ldr(Narrow, r0, MemOperand(sp, 184));
3289 __ cmp(Narrow, r0, 0U);
3290 __ b(eq, &l_0b2e);
3291 __ ldr(Narrow, r3, MemOperand(sp, 188));
3292 __ movs(Narrow, r2, 0U);
3293 __ strb(r2, MemOperand(sp, 181));
3294 __ cmp(Narrow, r3, 1U);
3295 __ b(ne, &l_0b2e);
3296 __ ldr(Narrow, r3, MemOperand(r0));
3297 __ ldr(Narrow, r3, MemOperand(r3, 28));
3298 __ blx(r3);
3299 __ b(&l_0b2e);
3300 // --------------
3301 __ bind(&l_1c2e);
3302 __ ldr(Narrow, r0, MemOperand(r5, 20));
3303 __ cmp(Narrow, r0, 0U);
3304 __ b(eq, &l_1a2e);
3305 __ ldr(Narrow, r3, MemOperand(r5, 24));
3306 __ strb(Narrow, r7, MemOperand(r5, 17));
3307 __ cmp(Narrow, r3, 1U);
3308 __ b(ne, &l_1a2e);
3309 __ ldr(Narrow, r3, MemOperand(r0));
3310 __ ldr(Narrow, r3, MemOperand(r3, 28));
3311 __ blx(r3);
3312 __ b(Narrow, &l_1a2e);
3313 // --------------
3314 __ bind(&l_1c48);
3315 __ lsls(Narrow, r1, r1, 1U);
3316 __ adds(r0, 4U);
3317 __ adds(Narrow, r1, r1, 32U);
3318 // --------------
3319 __ bind(&l_1c4e);
3320 __ bl(&l_1c4e);
3321 __ b(Narrow, &l_1568);
3322 // --------------
3323 __ bind(&l_1c54);
3324 __ lsls(Narrow, r1, r1, 1U);
3325 __ adds(r0, 4U);
3326 __ adds(Narrow, r1, r1, 32U);
3327 // --------------
3328 __ bind(&l_1c5a);
3329 __ bl(&l_1c5a);
3330 __ b(Narrow, &l_165e);
3331 // --------------
3332 __ bind(&l_1c60);
3333 __ lsls(Narrow, r1, r1, 1U);
3334 __ ldr(Narrow, r3, &l_1f4c);
3335 __ adds(r0, 4U);
3336 __ adds(Narrow, r1, r1, 32U);
3337 __ str(Narrow, r3, MemOperand(sp, 24));
3338 // --------------
3339 __ bind(&l_1c6a);
3340 __ bl(&l_1c6a);
3341 __ b(&l_09fa);
3342 // --------------
3343 __ bind(&l_1c72);
3344 __ lsls(Narrow, r1, r1, 1U);
3345 __ adds(r0, 4U);
3346 __ adds(Narrow, r1, r1, 32U);
3347 // --------------
3348 __ bind(&l_1c78);
3349 __ bl(&l_1c78);
3350 __ b(&l_0e9e);
3351 // --------------
3352 __ bind(&l_1c80);
3353 __ lsls(Narrow, r1, r1, 1U);
3354 __ adds(r0, 4U);
3355 __ adds(Narrow, r1, r1, 32U);
3356 // --------------
3357 __ bind(&l_1c86);
3358 __ bl(&l_1c86);
3359 __ b(&l_0f60);
3360 // --------------
3361 __ bind(&l_1c8e);
3362 __ lsls(Narrow, r1, r1, 1U);
3363 __ adds(r0, 4U);
3364 __ adds(Narrow, r1, r1, 32U);
3365 // --------------
3366 __ bind(&l_1c94);
3367 __ bl(&l_1c94);
3368 __ b(&l_101c);
3369 // --------------
3370 __ bind(&l_1c9c);
3371 __ lsls(Narrow, r1, r1, 1U);
3372 __ adds(r0, 4U);
3373 __ adds(Narrow, r1, r1, 32U);
3374 // --------------
3375 __ bind(&l_1ca2);
3376 __ bl(&l_1ca2);
3377 __ b(&l_1488);
3378 // --------------
3379 __ bind(&l_1caa);
3380 __ lsls(Narrow, r1, r1, 1U);
3381 __ adds(r0, 4U);
3382 __ adds(Narrow, r1, r1, 32U);
3383 // --------------
3384 __ bind(&l_1cb0);
3385 __ bl(&l_1cb0);
3386 __ b(&l_1350);
3387 // --------------
3388 __ bind(&l_1cb8);
3389 __ lsls(Narrow, r1, r1, 1U);
3390 __ adds(r0, 4U);
3391 __ adds(Narrow, r1, r1, 32U);
3392 // --------------
3393 __ bind(&l_1cbe);
3394 __ bl(&l_1cbe);
3395 __ b(&l_1224);
3396 // --------------
3397 __ bind(&l_1cc6);
3398 __ lsls(Narrow, r1, r1, 1U);
3399 __ adds(r0, 4U);
3400 __ adds(Narrow, r1, r1, 32U);
3401 // --------------
3402 __ bind(&l_1ccc);
3403 __ bl(&l_1ccc);
3404 __ b(&l_10bc);
3405 // --------------
3406 __ bind(&l_1cd4);
3407 __ lsls(Narrow, r1, r1, 1U);
3408 __ adds(r0, 4U);
3409 __ adds(Narrow, r1, r1, 32U);
3410 // --------------
3411 __ bind(&l_1cda);
3412 __ bl(&l_1cda);
3413 __ b(&l_1168);
3414 // --------------
3415 __ bind(&l_1ce2);
3416 __ ldr(Narrow, r0, MemOperand(r5, 20));
3417 __ cmp(Narrow, r0, 0U);
3418 __ b(eq, &l_08a4);
3419 __ ldr(Narrow, r3, MemOperand(r5, 24));
3420 __ movs(Narrow, r2, 0U);
3421 __ strb(Narrow, r2, MemOperand(r5, 17));
3422 __ cmp(Narrow, r3, 1U);
3423 __ b(ne, &l_08a4);
3424 __ ldr(Narrow, r3, MemOperand(r0));
3425 __ ldr(Narrow, r3, MemOperand(r3, 28));
3426 }
Generate_27(TestAssembler * assembler)3427 void Generate_27(TestAssembler* assembler) {
3428 __ blx(r3);
3429 __ b(&l_08a4);
3430 // --------------
3431 __ bind(&l_1d00);
3432 __ ldr(Narrow, r1, MemOperand(sp, 28));
3433 __ add(r2, r8, 96U);
3434 __ ldr(r3, MemOperand(r8, 132));
3435 __ mov(Narrow, r6, r2);
3436 __ mov(Narrow, r2, r1);
3437 __ cmp(Narrow, r1, r3);
3438 __ b(eq, Narrow, &l_1d9c);
3439 __ adds(r2, 2U);
3440 __ cmp(Narrow, r3, r2);
3441 __ b(lt, Narrow, &l_1d9c);
3442 __ add(r3, r8, 44U);
3443 __ str(Narrow, r3, MemOperand(sp, 24));
3444 __ mov(Narrow, r1, r3);
3445 __ b(&l_0aec);
3446 // --------------
3447 __ bind(&l_1d24);
3448 __ ldr(Narrow, r0, MemOperand(sp, 20));
3449 __ blx(r2);
3450 __ b(Narrow, &l_164c);
3451 // --------------
3452 __ bind(&l_1d2a);
3453 __ ldr(Narrow, r0, MemOperand(sp, 20));
3454 __ blx(r2);
3455 __ b(Narrow, &l_1556);
3456 // --------------
3457 __ bind(&l_1d30);
3458 __ ldr(Narrow, r3, &l_1f4c);
3459 __ str(Narrow, r3, MemOperand(sp, 24));
3460 __ blx(r2);
3461 __ b(&l_09e8);
3462 // --------------
3463 __ bind(&l_1d3a);
3464 __ ldr(Narrow, r0, MemOperand(sp, 20));
3465 __ blx(r2);
3466 __ b(&l_10aa);
3467 // --------------
3468 __ bind(&l_1d42);
3469 __ ldr(Narrow, r0, MemOperand(sp, 20));
3470 __ blx(r2);
3471 __ b(&l_1156);
3472 // --------------
3473 __ bind(&l_1d4a);
3474 __ ldr(Narrow, r0, MemOperand(sp, 20));
3475 __ blx(r2);
3476 __ b(Narrow, &l_193c);
3477 // --------------
3478 __ bind(&l_1d50);
3479 __ ldr(Narrow, r0, MemOperand(sp, 20));
3480 __ blx(r2);
3481 __ b(Narrow, &l_18b0);
3482 // --------------
3483 __ bind(&l_1d56);
3484 __ blx(r2);
3485 __ b(&l_0e8c);
3486 // --------------
3487 __ bind(&l_1d5c);
3488 __ blx(r2);
3489 __ b(&l_0f4e);
3490 // --------------
3491 __ bind(&l_1d62);
3492 __ ldr(Narrow, r0, MemOperand(sp, 20));
3493 __ blx(r2);
3494 __ b(&l_133e);
3495 // --------------
3496 __ bind(&l_1d6a);
3497 __ ldr(Narrow, r0, MemOperand(sp, 20));
3498 __ blx(r2);
3499 __ b(&l_1212);
3500 // --------------
3501 __ bind(&l_1d72);
3502 __ blx(r2);
3503 __ b(&l_100a);
3504 // --------------
3505 __ bind(&l_1d78);
3506 __ ldr(Narrow, r0, MemOperand(sp, 20));
3507 __ blx(r2);
3508 __ b(&l_1476);
3509 // --------------
3510 __ bind(&l_1d80);
3511 __ mov(ip, 0U);
3512 __ b(&l_07dc);
3513 // --------------
3514 __ bind(&l_1d88);
3515 __ mov(Narrow, r0, r5);
3516 // --------------
3517 __ bind(&l_1d8a);
3518 __ bl(&l_1d8a);
3519 __ b(&l_08a4);
3520 // --------------
3521 __ bind(&l_1d92);
3522 __ mov(Narrow, r0, r8);
3523 __ add(Narrow, r1, sp, 632U);
3524 __ blx(r2);
3525 __ b(&l_0b00);
3526 // --------------
3527 __ bind(&l_1d9c);
3528 __ add(r3, r8, 44U);
3529 __ ldr(Narrow, r2, MemOperand(sp, 28));
3530 __ mov(Narrow, r1, r3);
3531 __ str(Narrow, r3, MemOperand(sp, 24));
3532 __ movs(Narrow, r3, 0U);
3533 __ mov(Narrow, r0, r6);
3534 __ str(Narrow, r3, MemOperand(sp));
3535 __ movs(Narrow, r3, 2U);
3536 __ bl(&l_00b0);
3537 __ ldr(Narrow, r1, MemOperand(sp, 24));
3538 __ b(&l_0aec);
3539 __ mov(Narrow, r0, fp);
3540 // --------------
3541 __ bind(&l_1dba);
3542 __ bl(&l_1dba);
3543 // --------------
3544 __ bind(&l_1dbe);
3545 __ ldr(Narrow, r3, &l_1f50);
3546 __ mov(Narrow, r0, r5);
3547 __ str(Narrow, r3, MemOperand(r5));
3548 // --------------
3549 __ bind(&l_1dc4);
3550 __ bl(&l_1dc4);
3551 // --------------
3552 __ bind(&l_1dc8);
3553 __ bl(&l_1dc8);
3554 __ add(r0, sp, 1296U);
3555 // --------------
3556 __ bind(&l_1dd0);
3557 __ bl(&l_1dd0);
3558 // --------------
3559 __ bind(&l_1dd4);
3560 __ ldr(Narrow, r3, &l_1f50);
3561 __ add(Narrow, r0, sp, 276U);
3562 __ str(Narrow, r3, MemOperand(sp, 276));
3563 // --------------
3564 __ bind(&l_1dda);
3565 __ bl(&l_1dda);
3566 // --------------
3567 __ bind(&l_1dde);
3568 __ ldr(Narrow, r4, MemOperand(sp, 24));
3569 __ add(r0, sp, 2332U);
3570 __ str(r4, MemOperand(sp, 2304));
3571 // --------------
3572 __ bind(&l_1de8);
3573 __ bl(&l_1de8);
3574 __ add(r0, sp, 2164U);
3575 __ str(Narrow, r4, MemOperand(r5));
3576 // --------------
3577 __ bind(&l_1df2);
3578 __ bl(&l_1df2);
3579 // --------------
3580 __ bind(&l_1df6);
3581 __ ldr(Narrow, r3, MemOperand(sp, 24));
3582 __ add(Narrow, r0, sp, 652U);
3583 __ str(Narrow, r3, MemOperand(sp, 624));
3584 // --------------
3585 __ bind(&l_1dfc);
3586 __ bl(&l_1dfc);
3587 // --------------
3588 __ bind(&l_1e00);
3589 __ ldr(Narrow, r3, MemOperand(sp, 24));
3590 __ add(Narrow, r0, sp, 500U);
3591 __ str(Narrow, r3, MemOperand(sp, 472));
3592 }
Generate_28(TestAssembler * assembler)3593 void Generate_28(TestAssembler* assembler) {
3594 // --------------
3595 __ bind(&l_1e06);
3596 __ bl(&l_1e06);
3597 // --------------
3598 __ bind(&l_1e0a);
3599 __ bl(&l_1e0a);
3600 __ b(Narrow, &l_1dd4);
3601 // --------------
3602 __ bind(&l_1e10);
3603 __ ldr(Narrow, r3, &l_1f50);
3604 __ mov(Narrow, r0, r5);
3605 __ str(Narrow, r3, MemOperand(r5));
3606 // --------------
3607 __ bind(&l_1e16);
3608 __ bl(&l_1e16);
3609 // --------------
3610 __ bind(&l_1e1a);
3611 __ bl(&l_1e1a);
3612 __ mov(Narrow, r0, fp);
3613 // --------------
3614 __ bind(&l_1e20);
3615 __ bl(&l_1e20);
3616 __ b(Narrow, &l_1e10);
3617 // --------------
3618 __ bind(&l_1e26);
3619 __ ldr(Narrow, r3, &l_1f50);
3620 __ add(Narrow, r0, sp, 388U);
3621 __ str(Narrow, r3, MemOperand(sp, 388));
3622 // --------------
3623 __ bind(&l_1e2c);
3624 __ bl(&l_1e2c);
3625 __ b(Narrow, &l_1df6);
3626 __ ldr(Narrow, r3, &l_1f4c);
3627 __ add(Narrow, r0, sp, 624U);
3628 __ str(Narrow, r3, MemOperand(sp, 24));
3629 // --------------
3630 __ bind(&l_1e38);
3631 __ bl(&l_1e38);
3632 // --------------
3633 __ bind(&l_1e3c);
3634 __ ldr(Narrow, r3, &l_1f50);
3635 __ add(Narrow, r0, sp, 164U);
3636 __ str(Narrow, r3, MemOperand(sp, 164));
3637 // --------------
3638 __ bind(&l_1e42);
3639 __ bl(&l_1e42);
3640 __ b(Narrow, &l_1e00);
3641 // --------------
3642 __ bind(&l_1e48);
3643 __ ldr(Narrow, r3, &l_1f50);
3644 __ mov(Narrow, r0, r5);
3645 __ str(Narrow, r3, MemOperand(r5));
3646 // --------------
3647 __ bind(&l_1e4e);
3648 __ bl(&l_1e4e);
3649 // --------------
3650 __ bind(&l_1e52);
3651 __ bl(&l_1e52);
3652 __ ldr(Narrow, r3, &l_1f4c);
3653 __ add(Narrow, r0, sp, 660U);
3654 __ str(Narrow, r3, MemOperand(sp, 24));
3655 __ str(Narrow, r3, MemOperand(sp, 632));
3656 // --------------
3657 __ bind(&l_1e5e);
3658 __ bl(&l_1e5e);
3659 __ b(Narrow, &l_1e3c);
3660 // --------------
3661 __ bind(&l_1e64);
3662 __ ldr(Narrow, r3, &l_1f50);
3663 __ add(Narrow, r0, sp, 220U);
3664 __ str(Narrow, r3, MemOperand(sp, 220));
3665 // --------------
3666 __ bind(&l_1e6a);
3667 __ bl(&l_1e6a);
3668 __ b(Narrow, &l_1dde);
3669 // --------------
3670 __ bind(&l_1e70);
3671 __ ldr(Narrow, r3, &l_1f50);
3672 __ add(Narrow, r0, sp, 332U);
3673 __ str(Narrow, r3, MemOperand(sp, 332));
3674 // --------------
3675 __ bind(&l_1e76);
3676 __ bl(&l_1e76);
3677 __ b(Narrow, &l_1df6);
3678 // --------------
3679 __ bind(&l_1e7c);
3680 __ ldr(Narrow, r3, &l_1f50);
3681 __ mov(Narrow, r0, r5);
3682 __ str(Narrow, r3, MemOperand(r5));
3683 // --------------
3684 __ bind(&l_1e82);
3685 __ bl(&l_1e82);
3686 // --------------
3687 __ bind(&l_1e86);
3688 __ bl(&l_1e86);
3689 __ mov(Narrow, r0, fp);
3690 // --------------
3691 __ bind(&l_1e8c);
3692 __ bl(&l_1e8c);
3693 __ b(Narrow, &l_1e7c);
3694 __ add(r0, sp, 1128U);
3695 // --------------
3696 __ bind(&l_1e96);
3697 __ bl(&l_1e96);
3698 // --------------
3699 __ bind(&l_1e9a);
3700 __ ldr(Narrow, r3, &l_1f50);
3701 __ add(Narrow, r0, sp, 248U);
3702 __ str(Narrow, r3, MemOperand(sp, 248));
3703 // --------------
3704 __ bind(&l_1ea0);
3705 __ bl(&l_1ea0);
3706 __ b(Narrow, &l_1dde);
3707 __ b(Narrow, &l_1e9a);
3708 __ b(Narrow, &l_1e00);
3709 // --------------
3710 __ bind(&l_1eaa);
3711 __ ldr(Narrow, r3, &l_1f50);
3712 __ mov(Narrow, r0, r5);
3713 __ str(Narrow, r3, MemOperand(r5));
3714 // --------------
3715 __ bind(&l_1eb0);
3716 __ bl(&l_1eb0);
3717 // --------------
3718 __ bind(&l_1eb4);
3719 __ bl(&l_1eb4);
3720 // --------------
3721 __ bind(&l_1eb8);
3722 __ ldr(Narrow, r3, &l_1f50);
3723 __ add(Narrow, r0, sp, 360U);
3724 __ str(Narrow, r3, MemOperand(sp, 360));
3725 // --------------
3726 __ bind(&l_1ebe);
3727 __ bl(&l_1ebe);
3728 __ b(Narrow, &l_1df6);
3729 __ add(r0, sp, 1800U);
3730 // --------------
3731 __ bind(&l_1ec8);
3732 __ bl(&l_1ec8);
3733 __ b(Narrow, &l_1eb8);
3734 __ mov(Narrow, r0, fp);
3735 // --------------
3736 __ bind(&l_1ed0);
3737 __ bl(&l_1ed0);
3738 __ b(Narrow, &l_1e48);
3739 // --------------
3740 __ bind(&l_1ed6);
3741 __ ldr(Narrow, r3, &l_1f50);
3742 __ mov(Narrow, r0, r5);
3743 __ str(Narrow, r3, MemOperand(r5));
3744 // --------------
3745 __ bind(&l_1edc);
3746 __ bl(&l_1edc);
3747 // --------------
3748 __ bind(&l_1ee0);
3749 __ bl(&l_1ee0);
3750 __ mov(Narrow, r0, fp);
3751 // --------------
3752 __ bind(&l_1ee6);
3753 __ bl(&l_1ee6);
3754 __ b(Narrow, &l_1eaa);
3755 // --------------
3756 __ bind(&l_1eec);
3757 __ ldr(Narrow, r3, &l_1f50);
3758 __ mov(Narrow, r0, r5);
3759 __ str(Narrow, r3, MemOperand(r5));
3760 // --------------
3761 __ bind(&l_1ef2);
3762 __ bl(&l_1ef2);
3763 // --------------
3764 __ bind(&l_1ef6);
3765 __ bl(&l_1ef6);
3766 __ b(Narrow, &l_1dbe);
3767 // --------------
3768 __ bind(&l_1efc);
3769 __ ldr(Narrow, r3, &l_1f50);
3770 __ add(Narrow, r0, sp, 444U);
3771 __ str(Narrow, r3, MemOperand(sp, 444));
3772 // --------------
3773 __ bind(&l_1f02);
3774 __ bl(&l_1f02);
3775 __ b(Narrow, &l_1e00);
3776 __ mov(Narrow, r0, fp);
3777 // --------------
3778 __ bind(&l_1f0a);
3779 __ bl(&l_1f0a);
3780 }
Generate_29(TestAssembler * assembler)3781 void Generate_29(TestAssembler* assembler) {
3782 __ b(Narrow, &l_1eec);
3783 __ mov(Narrow, r0, fp);
3784 // --------------
3785 __ bind(&l_1f12);
3786 __ bl(&l_1f12);
3787 __ b(Narrow, &l_1ed6);
3788 __ mov(Narrow, r0, fp);
3789 // --------------
3790 __ bind(&l_1f1a);
3791 __ bl(&l_1f1a);
3792 __ b(Narrow, &l_1efc);
3793 __ mov(Narrow, r0, r5);
3794 // --------------
3795 __ bind(&l_1f22);
3796 __ bl(&l_1f22);
3797 // --------------
3798 __ bind(&l_1f26);
3799 __ ldr(Narrow, r3, &l_1f50);
3800 __ add(Narrow, r0, sp, 416U);
3801 __ str(Narrow, r3, MemOperand(sp, 416));
3802 // --------------
3803 __ bind(&l_1f2c);
3804 __ bl(&l_1f2c);
3805 __ b(Narrow, &l_1df6);
3806 __ b(Narrow, &l_1f26);
3807 __ mov(Narrow, r0, sl);
3808 // --------------
3809 __ bind(&l_1f36);
3810 __ bl(&l_1f36);
3811 __ b(Narrow, &l_1e26);
3812 __ b(Narrow, &l_1dde);
3813 __ b(Narrow, &l_1df6);
3814 // --------------
3815 __ bind(&l_1f40);
3816 __ ldr(Narrow, r3, &l_1f50);
3817 __ add(Narrow, r0, sp, 304U);
3818 __ str(Narrow, r3, MemOperand(sp, 304));
3819 // --------------
3820 __ bind(&l_1f46);
3821 __ bl(&l_1f46);
3822 __ b(Narrow, &l_1dde);
3823 // --------------
3824 __ bind(&l_1f4c);
3825 __ Emit32(0x00000008);
3826 // --------------
3827 __ bind(&l_1f50);
3828 __ Emit32(0x00000008);
3829 __ add(Narrow, r0, sp, 960U);
3830 // --------------
3831 __ bind(&l_1f56);
3832 __ bl(&l_1f56);
3833 __ b(Narrow, &l_1e64);
3834 __ add(Narrow, r0, sp, 792U);
3835 // --------------
3836 __ bind(&l_1f5e);
3837 __ bl(&l_1f5e);
3838 // --------------
3839 __ bind(&l_1f62);
3840 __ ldr(Narrow, r3, &l_1f84);
3841 __ add(Narrow, r0, sp, 192U);
3842 __ str(Narrow, r3, MemOperand(sp, 192));
3843 // --------------
3844 __ bind(&l_1f68);
3845 __ bl(&l_1f68);
3846 __ b(Narrow, &l_1dde);
3847 __ b(Narrow, &l_1f62);
3848 __ add(r0, sp, 1632U);
3849 // --------------
3850 __ bind(&l_1f74);
3851 __ bl(&l_1f74);
3852 __ b(Narrow, &l_1e70);
3853 __ add(r0, sp, 1464U);
3854 // --------------
3855 __ bind(&l_1f7e);
3856 __ bl(&l_1f7e);
3857 __ b(Narrow, &l_1f40);
3858 // --------------
3859 __ bind(&l_1f84);
3860 __ Emit32(0x00000008);
3861 __ bx(lr);
3862 __ nop(Narrow);
3863 __ movs(Narrow, r0, 1U);
3864 __ bx(lr);
3865 __ bx(lr);
3866 __ nop(Narrow);
3867 __ movs(Narrow, r0, 1U);
3868 __ bx(lr);
3869 __ movs(Narrow, r0, 0U);
3870 __ bx(lr);
3871 __ movs(Narrow, r0, 0U);
3872 __ bx(lr);
3873 __ movs(Narrow, r0, 0U);
3874 __ bx(lr);
3875 __ movs(Narrow, r0, 0U);
3876 __ bx(lr);
3877 __ movs(Narrow, r0, 0U);
3878 __ bx(lr);
3879 __ push(Narrow, RegisterList(r4, lr));
3880 __ mov(Narrow, r4, r0);
3881 // --------------
3882 __ bind(&l_1fb0);
3883 __ bl(&l_1fb0);
3884 __ mov(Narrow, r0, r4);
3885 __ pop(Narrow, RegisterList(r4, pc));
3886 __ ldr(Narrow, r2, &l_1fcc);
3887 __ push(Narrow, RegisterList(r4, lr));
3888 __ mov(Narrow, r4, r0);
3889 __ str(r2, MemOperand(r0, 4, PostIndex));
3890 // --------------
3891 __ bind(&l_1fc2);
3892 __ bl(&l_1fc2);
3893 __ mov(Narrow, r0, r4);
3894 __ pop(Narrow, RegisterList(r4, pc));
3895 __ nop(Narrow);
3896 // --------------
3897 __ bind(&l_1fcc);
3898 __ Emit32(0x00000008);
3899 __ ldr(Narrow, r3, &l_1fe8);
3900 __ push(Narrow, RegisterList(r4, lr));
3901 __ mov(Narrow, r4, r0);
3902 __ str(r3, MemOperand(r0, 4, PostIndex));
3903 // --------------
3904 __ bind(&l_1fda);
3905 __ bl(&l_1fda);
3906 __ mov(Narrow, r0, r4);
3907 // --------------
3908 __ bind(&l_1fe0);
3909 __ bl(&l_1fe0);
3910 __ mov(Narrow, r0, r4);
3911 __ pop(Narrow, RegisterList(r4, pc));
3912 // --------------
3913 __ bind(&l_1fe8);
3914 __ Emit32(0x00000008);
3915 __ ldr(Narrow, r2, MemOperand(r0, 8));
3916 __ ldr(Narrow, r3, MemOperand(r1, 8));
3917 __ cmp(Narrow, r2, r3);
3918 __ b(eq, Narrow, &l_1ffc);
3919 // --------------
3920 __ bind(&l_1ff4);
3921 __ ite(lt);
3922 __ mov(lt, Narrow, r0, 1U);
3923 __ mov(ge, Narrow, r0, 0U);
3924 __ bx(lr);
3925 // --------------
3926 __ bind(&l_1ffc);
3927 __ ldr(Narrow, r2, MemOperand(r0));
3928 __ ldr(Narrow, r3, MemOperand(r1));
3929 __ ldr(Narrow, r2, MemOperand(r2, 4));
3930 __ ldr(Narrow, r3, MemOperand(r3, 4));
3931 __ cmp(Narrow, r2, r3);
3932 }
Generate_30(TestAssembler * assembler)3933 void Generate_30(TestAssembler* assembler) {
3934 __ b(ne, Narrow, &l_1ff4);
3935 __ ldr(Narrow, r2, MemOperand(r0, 12));
3936 __ ldr(Narrow, r3, MemOperand(r1, 12));
3937 __ cmp(Narrow, r2, r3);
3938 __ b(ne, Narrow, &l_1ff4);
3939 __ ldr(Narrow, r2, MemOperand(r0, 4));
3940 __ ldr(Narrow, r3, MemOperand(r1, 4));
3941 __ cmp(Narrow, r2, r3);
3942 __ b(ne, Narrow, &l_1ff4);
3943 __ movs(Narrow, r0, 0U);
3944 __ bx(lr);
3945 __ ldrb(Narrow, r3, MemOperand(r0, 17));
3946 __ ldr(Narrow, r2, &l_2044);
3947 __ push(Narrow, RegisterList(r4, lr));
3948 __ mov(Narrow, r4, r0);
3949 __ str(Narrow, r2, MemOperand(r0));
3950 __ cbnz(r3, &l_202c);
3951 // --------------
3952 __ bind(&l_2028);
3953 __ mov(Narrow, r0, r4);
3954 __ pop(Narrow, RegisterList(r4, pc));
3955 // --------------
3956 __ bind(&l_202c);
3957 __ ldr(Narrow, r0, MemOperand(r0, 20));
3958 __ cmp(Narrow, r0, 0U);
3959 __ b(eq, Narrow, &l_2028);
3960 __ ldr(Narrow, r3, MemOperand(r4, 24));
3961 __ movs(Narrow, r2, 0U);
3962 __ strb(Narrow, r2, MemOperand(r4, 17));
3963 __ cmp(Narrow, r3, 1U);
3964 __ b(ne, Narrow, &l_2028);
3965 __ ldr(Narrow, r3, MemOperand(r0));
3966 __ ldr(Narrow, r3, MemOperand(r3, 28));
3967 __ blx(r3);
3968 __ b(Narrow, &l_2028);
3969 // --------------
3970 __ bind(&l_2044);
3971 __ Emit32(0x00000008);
3972 __ ldrb(Narrow, r3, MemOperand(r0, 17));
3973 __ ldr(Narrow, r2, &l_2070);
3974 __ push(Narrow, RegisterList(r4, lr));
3975 __ mov(Narrow, r4, r0);
3976 __ str(Narrow, r2, MemOperand(r0));
3977 __ cbnz(r3, &l_2058);
3978 // --------------
3979 __ bind(&l_2054);
3980 __ mov(Narrow, r0, r4);
3981 __ pop(Narrow, RegisterList(r4, pc));
3982 // --------------
3983 __ bind(&l_2058);
3984 __ ldr(Narrow, r0, MemOperand(r0, 20));
3985 __ cmp(Narrow, r0, 0U);
3986 __ b(eq, Narrow, &l_2054);
3987 __ ldr(Narrow, r3, MemOperand(r4, 24));
3988 __ movs(Narrow, r2, 0U);
3989 __ strb(Narrow, r2, MemOperand(r4, 17));
3990 __ cmp(Narrow, r3, 1U);
3991 __ b(ne, Narrow, &l_2054);
3992 __ ldr(Narrow, r3, MemOperand(r0));
3993 __ ldr(Narrow, r3, MemOperand(r3, 28));
3994 __ blx(r3);
3995 __ b(Narrow, &l_2054);
3996 // --------------
3997 __ bind(&l_2070);
3998 __ Emit32(0x00000008);
3999 __ ldrb(Narrow, r3, MemOperand(r0, 17));
4000 __ ldr(Narrow, r2, &l_20a4);
4001 __ push(Narrow, RegisterList(r4, lr));
4002 __ mov(Narrow, r4, r0);
4003 __ str(Narrow, r2, MemOperand(r0));
4004 __ cbnz(r3, &l_208a);
4005 // --------------
4006 __ bind(&l_2080);
4007 __ mov(Narrow, r0, r4);
4008 // --------------
4009 __ bind(&l_2082);
4010 __ bl(&l_2082);
4011 __ mov(Narrow, r0, r4);
4012 __ pop(Narrow, RegisterList(r4, pc));
4013 // --------------
4014 __ bind(&l_208a);
4015 __ ldr(Narrow, r0, MemOperand(r0, 20));
4016 __ cmp(Narrow, r0, 0U);
4017 __ b(eq, Narrow, &l_2080);
4018 __ ldr(Narrow, r3, MemOperand(r4, 24));
4019 __ movs(Narrow, r2, 0U);
4020 __ strb(Narrow, r2, MemOperand(r4, 17));
4021 __ cmp(Narrow, r3, 1U);
4022 __ b(ne, Narrow, &l_2080);
4023 __ ldr(Narrow, r3, MemOperand(r0));
4024 __ ldr(Narrow, r3, MemOperand(r3, 28));
4025 __ blx(r3);
4026 __ b(Narrow, &l_2080);
4027 __ nop(Narrow);
4028 // --------------
4029 __ bind(&l_20a4);
4030 __ Emit32(0x00000008);
4031 __ ldrb(Narrow, r3, MemOperand(r0, 17));
4032 __ ldr(Narrow, r2, &l_20d8);
4033 __ push(Narrow, RegisterList(r4, lr));
4034 __ mov(Narrow, r4, r0);
4035 __ str(Narrow, r2, MemOperand(r0));
4036 __ cbnz(r3, &l_20be);
4037 // --------------
4038 __ bind(&l_20b4);
4039 __ mov(Narrow, r0, r4);
4040 // --------------
4041 __ bind(&l_20b6);
4042 __ bl(&l_20b6);
4043 __ mov(Narrow, r0, r4);
4044 __ pop(Narrow, RegisterList(r4, pc));
4045 // --------------
4046 __ bind(&l_20be);
4047 __ ldr(Narrow, r0, MemOperand(r0, 20));
4048 __ cmp(Narrow, r0, 0U);
4049 __ b(eq, Narrow, &l_20b4);
4050 __ ldr(Narrow, r3, MemOperand(r4, 24));
4051 __ movs(Narrow, r2, 0U);
4052 __ strb(Narrow, r2, MemOperand(r4, 17));
4053 __ cmp(Narrow, r3, 1U);
4054 __ b(ne, Narrow, &l_20b4);
4055 __ ldr(Narrow, r3, MemOperand(r0));
4056 __ ldr(Narrow, r3, MemOperand(r3, 28));
4057 __ blx(r3);
4058 __ b(Narrow, &l_20b4);
4059 __ nop(Narrow);
4060 }
Generate_31(TestAssembler * assembler)4061 void Generate_31(TestAssembler* assembler) {
4062 // --------------
4063 __ bind(&l_20d8);
4064 __ Emit32(0x00000008);
4065 // --------------
4066 __ bind(&l_20dc);
4067 __ bx(lr);
4068 __ nop(Narrow);
4069 __ sub(r0, r0, 44U);
4070 __ b(Narrow, &l_20dc);
4071 __ nop(Narrow);
4072 __ push(Narrow, RegisterList(r3, r4, r5, lr));
4073 __ mov(Narrow, r5, r0);
4074 __ ldr(Narrow, r4, MemOperand(r0, 116));
4075 __ cbz(r4, &l_20fe);
4076 __ ldr(Narrow, r0, MemOperand(r4));
4077 __ cbz(r0, &l_20f8);
4078 // --------------
4079 __ bind(&l_20f4);
4080 __ bl(&l_20f4);
4081 // --------------
4082 __ bind(&l_20f8);
4083 __ mov(Narrow, r0, r4);
4084 // --------------
4085 __ bind(&l_20fa);
4086 __ bl(&l_20fa);
4087 // --------------
4088 __ bind(&l_20fe);
4089 __ mov(Narrow, r0, r5);
4090 __ pop(Narrow, RegisterList(r3, r4, r5, pc));
4091 __ nop(Narrow);
4092 __ push(RegisterList(0x4ff0));
4093 __ sub(Narrow, sp, sp, 12U);
4094 __ ldr(Narrow, r6, MemOperand(r0, 36));
4095 __ ldr(Narrow, r4, MemOperand(sp, 48));
4096 __ cmp(Narrow, r6, r1);
4097 __ b(eq, &l_22de);
4098 __ adds(Narrow, r5, r1, r2);
4099 __ cmp(Narrow, r6, r5);
4100 __ b(lt, &l_22de);
4101 __ cmp(Narrow, r3, 0U);
4102 __ b(eq, &l_2304);
4103 __ ldr(Narrow, r7, MemOperand(r0));
4104 __ ldr(Narrow, r6, MemOperand(r0, 4));
4105 __ cmp(Narrow, r7, r6);
4106 __ b(eq, &l_2304);
4107 // --------------
4108 __ bind(&l_212c);
4109 __ ldr(Narrow, r1, MemOperand(r7));
4110 __ cmp(Narrow, r4, r1);
4111 __ b(eq, &l_22e6);
4112 __ adds(Narrow, r7, r7, 24U);
4113 __ cmp(Narrow, r6, r7);
4114 __ b(ne, Narrow, &l_212c);
4115 __ movs(Narrow, r7, 0U);
4116 // --------------
4117 __ bind(&l_213c);
4118 __ mov(Narrow, r9, r3);
4119 __ ldr(Narrow, r3, MemOperand(r4));
4120 __ mov(Narrow, fp, r0);
4121 __ str(Narrow, r2, MemOperand(sp, 4));
4122 __ mov(Narrow, r0, r4);
4123 __ ldr(sl, MemOperand(r4, 8));
4124 __ ldr(Narrow, r3, MemOperand(r3, 32));
4125 __ blx(r3);
4126 __ cbz(r0, &l_2158);
4127 __ ldr(Narrow, r3, MemOperand(r4));
4128 __ mov(Narrow, r0, r4);
4129 __ ldr(Narrow, r3, MemOperand(r3, 36));
4130 __ blx(r3);
4131 // --------------
4132 __ bind(&l_2158);
4133 __ ldr(r3, MemOperand(r9, 12));
4134 __ mov(Narrow, r0, r4);
4135 __ ldr(Narrow, r2, MemOperand(r4));
4136 __ ldr(r1, MemOperand(r9, 16));
4137 __ ldr(Narrow, r2, MemOperand(r2, 32));
4138 __ bic(r8, r3, Operand(r3, ASR, 31));
4139 __ str(Narrow, r1, MemOperand(sp));
4140 __ blx(r2);
4141 __ cbz(r0, &l_2178);
4142 __ ldr(Narrow, r3, MemOperand(r4));
4143 __ mov(Narrow, r0, r4);
4144 __ ldr(Narrow, r3, MemOperand(r3, 36));
4145 __ blx(r3);
4146 // --------------
4147 __ bind(&l_2178);
4148 __ ldr(r3, MemOperand(r9, 8));
4149 __ cmp(Narrow, sl, r3);
4150 __ it(lt);
4151 __ mov(lt, Narrow, sl, r3);
4152 __ cbz(r7, &l_21ae);
4153 __ ldr(Narrow, r2, MemOperand(r7, 4));
4154 __ mov(Narrow, r0, r4);
4155 __ ldr(Narrow, r3, MemOperand(r7, 8));
4156 __ ldr(Narrow, r1, MemOperand(r4));
4157 __ cmp(Narrow, r8, r2);
4158 __ it(lt);
4159 __ mov(lt, Narrow, r8, r2);
4160 __ ldr(Narrow, r2, MemOperand(sp));
4161 __ ldr(Narrow, r1, MemOperand(r1, 32));
4162 __ cmp(Narrow, r2, r3);
4163 __ it(ge);
4164 __ mov(ge, Narrow, r2, r3);
4165 __ str(Narrow, r2, MemOperand(sp));
4166 __ blx(r1);
4167 __ cmp(Narrow, r0, 0U);
4168 __ b(ne, &l_230c);
4169 // --------------
4170 __ bind(&l_21a6);
4171 __ ldr(Narrow, r3, MemOperand(r7, 12));
4172 __ cmp(Narrow, sl, r3);
4173 __ it(lt);
4174 __ mov(lt, Narrow, sl, r3);
4175 // --------------
4176 __ bind(&l_21ae);
4177 __ ldr(r1, MemOperand(fp, 4));
4178 __ rsb(lr, sl, 0U);
4179 __ ldr(Narrow, r3, MemOperand(sp));
4180 __ ldr(r7, MemOperand(r1, -12));
4181 __ and_(r2, lr, r3);
4182 __ ldr(r3, MemOperand(r1, -24));
4183 __ ldr(r0, MemOperand(r1, -16));
4184 __ ldr(ip, MemOperand(r3, 4));
4185 __ rsbs(Narrow, r3, r7, 0U);
4186 }
Generate_32(TestAssembler * assembler)4187 void Generate_32(TestAssembler* assembler) {
4188 __ ands(Narrow, r3, r3, r0);
4189 __ add(Narrow, r3, r3, ip);
4190 __ cmp(Narrow, r3, r2);
4191 __ b(le, &l_2304);
4192 __ ldr(r3, MemOperand(fp, 40));
4193 __ mov(Narrow, r6, r3);
4194 __ ldr(Narrow, r3, MemOperand(sp, 4));
4195 __ add(Narrow, r3, r3, r5);
4196 __ mov(Narrow, r9, r3);
4197 __ mov(Narrow, r3, r6);
4198 __ add(Narrow, r3, r3, r9);
4199 __ cmp(Narrow, r3, r2);
4200 __ b(le, &l_2304);
4201 __ ldr(Narrow, r3, MemOperand(sp));
4202 __ cmp(Narrow, r0, r3);
4203 __ b(eq, &l_233a);
4204 // --------------
4205 __ bind(&l_21f6);
4206 __ ite(lt);
4207 __ mov(lt, Narrow, r3, 1U);
4208 __ mov(ge, Narrow, r3, 0U);
4209 // --------------
4210 __ bind(&l_21fc);
4211 __ cmp(Narrow, r3, 0U);
4212 __ b(eq, &l_2334);
4213 __ ldr(Narrow, r3, MemOperand(r4, 4));
4214 __ mov(r2, 65535U);
4215 __ movt(r2, 32767U);
4216 __ subs(Narrow, r2, r2, r3);
4217 __ ldr(Narrow, r3, MemOperand(sp));
4218 __ cmp(Narrow, r3, r2);
4219 __ ite(le);
4220 __ and_(le, r2, lr, r3);
4221 __ and_(gt, r2, lr, r2);
4222 __ cmp(Narrow, r2, r8);
4223 __ b(lt, Narrow, &l_22de);
4224 // --------------
4225 __ bind(&l_2220);
4226 __ ldr(r0, MemOperand(fp));
4227 __ mov(r3, 43691U);
4228 __ movt(r3, 43690U);
4229 __ subs(Narrow, r1, r1, r0);
4230 __ asrs(Narrow, r1, r1, 3U);
4231 __ mul(r1, r3, r1);
4232 __ subs(Narrow, r3, r1, 1U);
4233 __ b(mi, Narrow, &l_22c8);
4234 __ lsls(Narrow, r7, r3, 5U);
4235 __ sub(ip, r0, 112U);
4236 __ movs(Narrow, r1, 1U);
4237 __ sub(r3, r7, Operand(r3, LSL, 3));
4238 __ subs(Narrow, r3, r3, 88U);
4239 __ add(Narrow, r3, r3, r0);
4240 // --------------
4241 __ bind(&l_2248);
4242 __ cbz(r1, &l_2282);
4243 __ ldr(Narrow, r0, MemOperand(r3, 96));
4244 __ ldr(Narrow, r6, MemOperand(sp));
4245 __ pld(MemOperand(r3));
4246 __ cmp(Narrow, r0, r6);
4247 __ b(eq, Narrow, &l_2316);
4248 // --------------
4249 __ bind(&l_2256);
4250 __ ite(lt);
4251 __ mov(lt, Narrow, r0, 1U);
4252 __ mov(ge, Narrow, r0, 0U);
4253 // --------------
4254 __ bind(&l_225c);
4255 __ cbz(r0, &l_2282);
4256 __ ldr(Narrow, r1, MemOperand(r4, 4));
4257 __ subs(Narrow, r2, r2, r1);
4258 __ ldr(Narrow, r1, MemOperand(sp));
4259 __ cmp(Narrow, r2, r1);
4260 __ ite(le);
4261 __ and_(le, r2, lr, r2);
4262 __ and_(gt, r2, lr, r1);
4263 __ cmp(Narrow, r5, r2);
4264 __ ite(le);
4265 __ mov(le, Narrow, r1, 0U);
4266 __ mov(gt, Narrow, r1, 1U);
4267 __ cmp(Narrow, r2, r8);
4268 __ it(lt);
4269 __ orr(lt, r1, r1, 0x1);
4270 __ cbnz(r1, &l_22de);
4271 // --------------
4272 __ bind(&l_2282);
4273 __ ldr(Narrow, r0, MemOperand(r3, 88));
4274 // --------------
4275 __ bind(&l_2284);
4276 __ cmp(Narrow, r4, r0);
4277 __ b(eq, Narrow, &l_22a8);
4278 __ ldr(Narrow, r0, MemOperand(r0, 4));
4279 __ ldr(Narrow, r7, MemOperand(r3, 100));
4280 __ subs(Narrow, r2, r2, r0);
4281 __ ldr(Narrow, r0, MemOperand(r3, 92));
4282 __ rsbs(Narrow, r7, r7, 0U);
4283 __ mov(Narrow, r6, r0);
4284 __ ldr(Narrow, r0, MemOperand(r3, 96));
4285 __ cmp(Narrow, r2, r0);
4286 __ ite(le);
4287 __ and_(le, Narrow, r2, r2, r7);
4288 __ and_(gt, r2, r7, r0);
4289 __ cmp(Narrow, r5, r2);
4290 __ it(le);
4291 __ cmp(le, Narrow, r6, r2);
4292 __ b(gt, Narrow, &l_22de);
4293 // --------------
4294 __ bind(&l_22a8);
4295 __ subs(Narrow, r3, r3, 24U);
4296 __ cmp(Narrow, r3, ip);
4297 __ b(ne, Narrow, &l_2248);
4298 __ cbnz(r1, &l_22c8);
4299 // --------------
4300 __ bind(&l_22b0);
4301 __ ldr(r3, MemOperand(fp, 24));
4302 __ ldr(r0, MemOperand(fp, 28));
4303 __ subs(Narrow, r2, r2, r3);
4304 __ rsbs(Narrow, r0, r0, 0U);
4305 __ ands(Narrow, r2, r2, r0);
4306 __ cmp(Narrow, r5, r2);
4307 __ ite(le);
4308 }
Generate_33(TestAssembler * assembler)4309 void Generate_33(TestAssembler* assembler) {
4310 __ mov(le, Narrow, r0, 0U);
4311 __ mov(gt, Narrow, r0, 1U);
4312 __ b(Narrow, &l_22e0);
4313 // --------------
4314 __ bind(&l_22c8);
4315 __ ldr(Narrow, r3, MemOperand(r4, 4));
4316 __ subs(Narrow, r2, r2, r3);
4317 __ ldr(Narrow, r3, MemOperand(sp));
4318 __ cmp(Narrow, r2, r3);
4319 __ ite(le);
4320 __ and_(le, r2, lr, r2);
4321 __ and_(gt, r2, lr, r3);
4322 __ cmp(Narrow, r2, r8);
4323 __ b(ge, Narrow, &l_22b0);
4324 // --------------
4325 __ bind(&l_22de);
4326 __ movs(Narrow, r0, 1U);
4327 // --------------
4328 __ bind(&l_22e0);
4329 __ add(Narrow, sp, sp, 12U);
4330 __ pop(RegisterList(0x8ff0));
4331 // --------------
4332 __ bind(&l_22e6);
4333 __ ldr(Narrow, r6, MemOperand(r3, 12));
4334 __ ldr(Narrow, r1, MemOperand(r7, 4));
4335 __ cmp(Narrow, r6, r1);
4336 __ b(gt, &l_213c);
4337 __ ldr(Narrow, r6, MemOperand(r3, 16));
4338 __ ldr(Narrow, r1, MemOperand(r7, 8));
4339 __ cmp(Narrow, r6, r1);
4340 __ b(lt, &l_213c);
4341 __ ldr(Narrow, r6, MemOperand(r3, 8));
4342 __ ldr(Narrow, r1, MemOperand(r7, 12));
4343 __ cmp(Narrow, r6, r1);
4344 __ b(gt, &l_213c);
4345 // --------------
4346 __ bind(&l_2304);
4347 __ movs(Narrow, r0, 0U);
4348 __ add(Narrow, sp, sp, 12U);
4349 __ pop(RegisterList(0x8ff0));
4350 // --------------
4351 __ bind(&l_230c);
4352 __ ldr(Narrow, r3, MemOperand(r4));
4353 __ mov(Narrow, r0, r4);
4354 __ ldr(Narrow, r3, MemOperand(r3, 36));
4355 __ blx(r3);
4356 __ b(Narrow, &l_21a6);
4357 // --------------
4358 __ bind(&l_2316);
4359 __ ldr(Narrow, r0, MemOperand(r3, 88));
4360 __ ldr(Narrow, r7, MemOperand(r4, 4));
4361 __ ldr(Narrow, r6, MemOperand(r0, 4));
4362 __ cmp(Narrow, r6, r7);
4363 __ b(ne, Narrow, &l_2256);
4364 __ ldr(Narrow, r7, MemOperand(r3, 100));
4365 __ cmp(Narrow, r7, sl);
4366 __ b(ne, Narrow, &l_2256);
4367 __ ldr(Narrow, r7, MemOperand(r3, 92));
4368 __ cmp(Narrow, r8, r7);
4369 __ b(eq, Narrow, &l_2284);
4370 __ ite(gt);
4371 __ mov(gt, Narrow, r0, 1U);
4372 __ mov(le, Narrow, r0, 0U);
4373 __ b(Narrow, &l_225c);
4374 // --------------
4375 __ bind(&l_2334);
4376 __ mvn(r2, 2147483648U);
4377 __ b(Narrow, &l_2220);
4378 // --------------
4379 __ bind(&l_233a);
4380 __ ldr(Narrow, r3, MemOperand(r4, 4));
4381 __ cmp(Narrow, ip, r3);
4382 __ b(ne, &l_21f6);
4383 __ cmp(Narrow, r7, sl);
4384 __ b(ne, &l_21f6);
4385 __ ldr(r3, MemOperand(r1, -20));
4386 __ cmp(Narrow, r8, r3);
4387 __ b(eq, Narrow, &l_2334);
4388 __ ite(gt);
4389 __ mov(gt, Narrow, r3, 1U);
4390 __ mov(le, Narrow, r3, 0U);
4391 __ b(Narrow, &l_21fc);
4392 __ push(RegisterList(0x43f0));
4393 __ mov(Narrow, r5, r0);
4394 __ mov(Narrow, r6, r1);
4395 __ ldr(Narrow, r0, MemOperand(r0, 4));
4396 __ sub(Narrow, sp, sp, 12U);
4397 __ ldr(Narrow, r1, MemOperand(r5, 8));
4398 __ cmp(Narrow, r0, r1);
4399 __ b(eq, Narrow, &l_2394);
4400 __ cbz(r0, &l_2374);
4401 __ ldr(r1, MemOperand(r0, -4));
4402 __ str(Narrow, r1, MemOperand(r0));
4403 __ ldr(Narrow, r0, MemOperand(r5, 4));
4404 // --------------
4405 __ bind(&l_2374);
4406 __ subs(Narrow, r4, r0, 4U);
4407 __ adds(Narrow, r1, r0, 4U);
4408 __ subs(Narrow, r4, r4, r6);
4409 __ str(Narrow, r1, MemOperand(r5, 4));
4410 __ lsrs(Narrow, r3, r4, 2U);
4411 __ ldr(Narrow, r5, MemOperand(r2));
4412 __ b(eq, Narrow, &l_238c);
4413 __ subs(Narrow, r0, r0, r4);
4414 __ mov(Narrow, r2, r4);
4415 __ mov(Narrow, r1, r6);
4416 // --------------
4417 __ bind(&l_2388);
4418 __ bl(&l_2388);
4419 // --------------
4420 __ bind(&l_238c);
4421 __ str(Narrow, r5, MemOperand(r6));
4422 // --------------
4423 __ bind(&l_238e);
4424 __ add(Narrow, sp, sp, 12U);
4425 __ pop(RegisterList(0x83f0));
4426 // --------------
4427 __ bind(&l_2394);
4428 __ ldr(Narrow, r1, MemOperand(r5));
4429 __ subs(Narrow, r3, r0, r1);
4430 __ asrs(Narrow, r3, r3, 2U);
4431 __ b(eq, Narrow, &l_23ee);
4432 __ lsls(Narrow, r0, r3, 1U);
4433 __ cmp(Narrow, r3, r0);
4434 __ b(ls, Narrow, &l_240a);
4435 // --------------
4436 __ bind(&l_23a2);
4437 __ subs(Narrow, r7, r6, r1);
4438 __ mvn(r4, 3U);
4439 // --------------
4440 __ bind(&l_23a8);
4441 __ mov(Narrow, r0, r4);
4442 }
Generate_34(TestAssembler * assembler)4443 void Generate_34(TestAssembler* assembler) {
4444 __ str(Narrow, r2, MemOperand(sp, 4));
4445 // --------------
4446 __ bind(&l_23ac);
4447 __ bl(&l_23ac);
4448 __ ldr(Narrow, r2, MemOperand(sp, 4));
4449 __ mov(Narrow, r9, r0);
4450 // --------------
4451 __ bind(&l_23b4);
4452 __ cmn(r9, r7);
4453 __ itt(ne);
4454 __ ldr(ne, Narrow, r3, MemOperand(r2));
4455 __ str(ne, r3, MemOperand(r9, r7));
4456 __ ldr(Narrow, r1, MemOperand(r5));
4457 __ subs(Narrow, r7, r6, r1);
4458 __ lsrs(Narrow, r3, r7, 2U);
4459 __ b(ne, Narrow, &l_2400);
4460 // --------------
4461 __ bind(&l_23c8);
4462 __ ldr(Narrow, r3, MemOperand(r5, 4));
4463 __ adds(r7, 4U);
4464 __ add(Narrow, r7, r7, r9);
4465 __ rsb(r8, r6, r3);
4466 __ lsrs(r3, r8, 2U);
4467 __ b(ne, Narrow, &l_23f4);
4468 // --------------
4469 __ bind(&l_23d8);
4470 __ ldr(Narrow, r0, MemOperand(r5));
4471 __ add(Narrow, r7, r7, r8);
4472 __ cbz(r0, &l_23e2);
4473 // --------------
4474 __ bind(&l_23de);
4475 __ bl(&l_23de);
4476 // --------------
4477 __ bind(&l_23e2);
4478 __ add(Narrow, r4, r4, r9);
4479 __ str(r9, MemOperand(r5));
4480 __ str(Narrow, r4, MemOperand(r5, 8));
4481 __ str(Narrow, r7, MemOperand(r5, 4));
4482 __ b(Narrow, &l_238e);
4483 // --------------
4484 __ bind(&l_23ee);
4485 __ subs(Narrow, r7, r6, r1);
4486 __ movs(Narrow, r4, 4U);
4487 __ b(Narrow, &l_23a8);
4488 // --------------
4489 __ bind(&l_23f4);
4490 __ mov(Narrow, r1, r6);
4491 __ mov(Narrow, r0, r7);
4492 __ mov(Narrow, r2, r8);
4493 // --------------
4494 __ bind(&l_23fa);
4495 __ bl(&l_23fa);
4496 __ b(Narrow, &l_23d8);
4497 // --------------
4498 __ bind(&l_2400);
4499 __ mov(Narrow, r0, r9);
4500 __ mov(Narrow, r2, r7);
4501 // --------------
4502 __ bind(&l_2404);
4503 __ bl(&l_2404);
4504 __ b(Narrow, &l_23c8);
4505 // --------------
4506 __ bind(&l_240a);
4507 __ cmp(r0, 1073741824U);
4508 __ b(cs, Narrow, &l_23a2);
4509 __ lsls(Narrow, r4, r3, 3U);
4510 __ subs(Narrow, r7, r6, r1);
4511 __ mov(Narrow, r9, r0);
4512 __ cmp(Narrow, r0, 0U);
4513 __ b(eq, Narrow, &l_23b4);
4514 __ b(Narrow, &l_23a8);
4515 __ ldr(Narrow, r3, MemOperand(r1));
4516 __ push(Narrow, RegisterList(r4, r5, r6, lr));
4517 __ sub(Narrow, sp, sp, 8U);
4518 __ mov(Narrow, r6, r0);
4519 __ mov(Narrow, r5, r1);
4520 __ mov(Narrow, r0, r3);
4521 __ ldr(Narrow, r2, MemOperand(r3));
4522 __ str(Narrow, r3, MemOperand(sp, 4));
4523 __ ldr(Narrow, r3, MemOperand(r2, 12));
4524 __ blx(r3);
4525 __ cbnz(r0, &l_2474);
4526 // --------------
4527 __ bind(&l_2432);
4528 __ ldr(Narrow, r0, MemOperand(sp, 4));
4529 __ ldr(Narrow, r3, MemOperand(r0));
4530 __ ldr(Narrow, r3, MemOperand(r3, 8));
4531 __ blx(r3);
4532 __ cbz(r0, &l_2446);
4533 __ ldr(Narrow, r0, MemOperand(sp, 4));
4534 __ cbz(r0, &l_2446);
4535 __ ldr(Narrow, r3, MemOperand(r0));
4536 __ ldr(Narrow, r3, MemOperand(r3, 4));
4537 __ blx(r3);
4538 // --------------
4539 __ bind(&l_2446);
4540 __ ldr(Narrow, r4, MemOperand(r6, 4));
4541 __ add(r1, r5, 24U);
4542 __ cmp(Narrow, r1, r4);
4543 __ b(eq, Narrow, &l_246a);
4544 __ subs(Narrow, r2, r4, r1);
4545 __ mov(r3, 43691U);
4546 __ asrs(Narrow, r0, r2, 3U);
4547 __ movt(r3, 43690U);
4548 __ mul(r3, r3, r0);
4549 __ cmp(Narrow, r3, 0U);
4550 __ b(le, Narrow, &l_246a);
4551 __ mov(Narrow, r0, r5);
4552 // --------------
4553 __ bind(&l_2466);
4554 __ bl(&l_2466);
4555 // --------------
4556 __ bind(&l_246a);
4557 __ subs(Narrow, r4, r4, 24U);
4558 __ mov(Narrow, r0, r5);
4559 __ str(Narrow, r4, MemOperand(r6, 4));
4560 __ add(Narrow, sp, sp, 8U);
4561 __ pop(Narrow, RegisterList(r4, r5, r6, pc));
4562 // --------------
4563 __ bind(&l_2474);
4564 __ ldr(Narrow, r1, MemOperand(r6, 16));
4565 __ ldr(Narrow, r3, MemOperand(r6, 20));
4566 __ cmp(Narrow, r1, r3);
4567 __ b(eq, Narrow, &l_248a);
4568 __ cbz(r1, &l_2484);
4569 __ ldr(Narrow, r3, MemOperand(sp, 4));
4570 __ str(Narrow, r3, MemOperand(r1));
4571 __ ldr(Narrow, r1, MemOperand(r6, 16));
4572 // --------------
4573 __ bind(&l_2484);
4574 __ adds(r1, 4U);
4575 __ str(Narrow, r1, MemOperand(r6, 16));
4576 __ b(Narrow, &l_2432);
4577 // --------------
4578 __ bind(&l_248a);
4579 __ add(r0, r6, 12U);
4580 __ add(Narrow, r2, sp, 4U);
4581 // --------------
4582 __ bind(&l_2490);
4583 __ bl(&l_2490);
4584 }
Generate_35(TestAssembler * assembler)4585 void Generate_35(TestAssembler* assembler) {
4586 __ b(Narrow, &l_2432);
4587 __ nop(Narrow);
4588 __ push(RegisterList(0x4ff8));
4589 __ mov(Narrow, r5, r0);
4590 __ mov(Narrow, r6, r1);
4591 __ ldr(Narrow, r0, MemOperand(r0));
4592 __ mov(Narrow, r8, r2);
4593 __ mov(Narrow, fp, r3);
4594 __ ldr(Narrow, r1, MemOperand(r5, 4));
4595 __ cmp(Narrow, r0, r1);
4596 __ b(eq, Narrow, &l_24ca);
4597 __ ldr(Narrow, r3, MemOperand(r0));
4598 __ cmp(Narrow, r2, r3);
4599 __ it(ne);
4600 __ add(ne, r4, r0, 24U);
4601 __ b(ne, Narrow, &l_24c4);
4602 __ b(Narrow, &l_25ce);
4603 // --------------
4604 __ bind(&l_24ba);
4605 __ ldr(r2, MemOperand(r4, 24, PostIndex));
4606 __ cmp(Narrow, r8, r2);
4607 __ b(eq, &l_25ce);
4608 // --------------
4609 __ bind(&l_24c4);
4610 __ cmp(Narrow, r4, r1);
4611 __ mov(Narrow, r0, r4);
4612 __ b(ne, Narrow, &l_24ba);
4613 // --------------
4614 __ bind(&l_24ca);
4615 __ ldr(r3, MemOperand(r8));
4616 __ mov(Narrow, r0, r8);
4617 __ mov(sl, 0U);
4618 __ ldr(Narrow, r3, MemOperand(r3, 40));
4619 __ blx(r3);
4620 __ ldr(r3, MemOperand(r8));
4621 __ mov(Narrow, r7, r0);
4622 __ mov(Narrow, r0, r8);
4623 __ ldr(Narrow, r3, MemOperand(r3, 44));
4624 __ blx(r3);
4625 __ mov(Narrow, r9, r0);
4626 // --------------
4627 __ bind(&l_24e6);
4628 __ subs(Narrow, r4, r7, 1U);
4629 __ ldr(Narrow, r2, MemOperand(r6));
4630 __ add(r3, r4, fp);
4631 __ mov(Narrow, r0, r6);
4632 __ bic(r4, r3, r4);
4633 __ rsb(r1, fp, r4);
4634 __ ldr(Narrow, r3, MemOperand(r2, 48));
4635 __ blx(r3);
4636 __ cmp(Narrow, r9, r4);
4637 __ b(le, Narrow, &l_2510);
4638 // --------------
4639 __ bind(&l_2500);
4640 __ ldr(Narrow, r3, MemOperand(r6));
4641 __ add(Narrow, r4, r4, r7);
4642 __ mov(Narrow, r0, r6);
4643 __ mov(Narrow, r1, r7);
4644 __ ldr(Narrow, r3, MemOperand(r3, 48));
4645 __ blx(r3);
4646 __ cmp(Narrow, r9, r4);
4647 __ b(gt, Narrow, &l_2500);
4648 // --------------
4649 __ bind(&l_2510);
4650 __ ldr(Narrow, r2, MemOperand(r6));
4651 __ movw(r3, 0U);
4652 __ movt(r3, 0U);
4653 __ mov(Narrow, r0, r6);
4654 __ ldr(Narrow, r2, MemOperand(r2));
4655 __ cmp(Narrow, r2, r3);
4656 __ b(ne, Narrow, &l_25f4);
4657 // --------------
4658 __ bind(&l_2522);
4659 __ bl(&l_2522);
4660 __ mov(Narrow, r1, r0);
4661 // --------------
4662 __ bind(&l_2528);
4663 __ ldr(r3, MemOperand(r8));
4664 __ mov(Narrow, r0, r8);
4665 __ str(r4, MemOperand(r8, 20));
4666 __ ldr(Narrow, r3, MemOperand(r3, 20));
4667 __ blx(r3);
4668 __ movs(Narrow, r3, 1U);
4669 __ strb(r3, MemOperand(r8, 16));
4670 __ cmp(sl, 0U);
4671 __ b(eq, Narrow, &l_25c8);
4672 __ ldr(Narrow, r7, MemOperand(r5));
4673 __ ldr(Narrow, r0, MemOperand(r5, 4));
4674 __ cmp(Narrow, r7, r0);
4675 __ b(eq, Narrow, &l_25fa);
4676 __ ldr(Narrow, r3, MemOperand(r7));
4677 __ ldr(r6, MemOperand(sl));
4678 __ cmp(Narrow, r3, r6);
4679 __ it(ne);
4680 __ add(ne, r3, r7, 24U);
4681 __ b(ne, Narrow, &l_2564);
4682 __ b(Narrow, &l_25d8);
4683 // --------------
4684 __ bind(&l_255c);
4685 __ ldr(r2, MemOperand(r3, 24, PostIndex));
4686 __ cmp(Narrow, r2, r6);
4687 __ b(eq, Narrow, &l_25da);
4688 // --------------
4689 __ bind(&l_2564);
4690 __ cmp(Narrow, r3, r0);
4691 __ mov(Narrow, r1, r3);
4692 __ b(ne, Narrow, &l_255c);
4693 // --------------
4694 __ bind(&l_256a);
4695 __ subs(Narrow, r2, r3, r7);
4696 __ mov(r0, 43691U);
4697 __ asrs(Narrow, r2, r2, 3U);
4698 __ movt(r0, 43690U);
4699 __ ldr(Narrow, r1, MemOperand(r5, 28));
4700 __ mvn(r6, 2147483648U);
4701 __ mul(r2, r0, r2);
4702 __ ldr(ip, MemOperand(r5, 24));
4703 __ add(lr, r1, 4294967295U);
4704 __ add(r0, ip, Operand(lr, LSL, 1));
4705 __ cmp(Narrow, r2, 0U);
4706 __ str(Narrow, r0, MemOperand(r5, 40));
4707 __ b(le, Narrow, &l_25be);
4708 }
Generate_36(TestAssembler * assembler)4709 void Generate_36(TestAssembler* assembler) {
4710 // --------------
4711 __ bind(&l_2592);
4712 __ ldr(r1, MemOperand(r3, -24));
4713 __ subs(Narrow, r3, r3, 24U);
4714 __ ldr(Narrow, r2, MemOperand(r3, 12));
4715 __ ldr(r8, MemOperand(r3, 8));
4716 __ ldr(Narrow, r1, MemOperand(r1, 4));
4717 __ subs(r2, 1U);
4718 __ mvn(r9, r2);
4719 __ add(Narrow, r2, r2, r1);
4720 __ subs(Narrow, r1, r6, r1);
4721 __ cmp(Narrow, r1, r8);
4722 __ ite(le);
4723 __ and_(le, r6, r9, r1);
4724 __ and_(gt, r6, r9, r8);
4725 __ cmp(Narrow, r3, r7);
4726 __ add(Narrow, r0, r0, r2);
4727 __ str(Narrow, r0, MemOperand(r5, 40));
4728 __ b(ne, Narrow, &l_2592);
4729 // --------------
4730 __ bind(&l_25be);
4731 __ rsb(r1, ip, r6);
4732 __ bic(r1, r1, lr);
4733 __ str(Narrow, r1, MemOperand(r5, 36));
4734 // --------------
4735 __ bind(&l_25c8);
4736 __ mov(Narrow, r0, r4);
4737 __ pop(RegisterList(0x8ff8));
4738 // --------------
4739 __ bind(&l_25ce);
4740 __ ldr(Narrow, r7, MemOperand(r0, 12));
4741 __ mov(Narrow, sl, r0);
4742 __ ldr(r9, MemOperand(r0, 4));
4743 __ b(Narrow, &l_24e6);
4744 // --------------
4745 __ bind(&l_25d8);
4746 __ mov(Narrow, r1, r7);
4747 // --------------
4748 __ bind(&l_25da);
4749 __ mov(Narrow, r0, r5);
4750 // --------------
4751 __ bind(&l_25dc);
4752 __ bl(&l_25dc);
4753 __ ldr(Narrow, r7, MemOperand(r5));
4754 __ movs(Narrow, r2, 0U);
4755 __ ldr(Narrow, r3, MemOperand(r5, 4));
4756 __ str(Narrow, r2, MemOperand(r5, 40));
4757 __ cmp(Narrow, r7, r3);
4758 __ b(ne, Narrow, &l_256a);
4759 // --------------
4760 __ bind(&l_25ec);
4761 __ mvn(r3, 2147483648U);
4762 __ str(Narrow, r3, MemOperand(r5, 36));
4763 __ b(Narrow, &l_25c8);
4764 // --------------
4765 __ bind(&l_25f4);
4766 __ blx(r2);
4767 __ mov(Narrow, r1, r0);
4768 __ b(Narrow, &l_2528);
4769 // --------------
4770 __ bind(&l_25fa);
4771 __ movs(Narrow, r3, 0U);
4772 __ str(Narrow, r3, MemOperand(r5, 40));
4773 __ b(Narrow, &l_25ec);
4774 __ push(RegisterList(0x4ff0));
4775 __ mov(Narrow, r8, r0);
4776 __ ldr(Narrow, r4, MemOperand(r0, 4));
4777 __ sub(Narrow, sp, sp, 36U);
4778 __ mov(Narrow, r5, r1);
4779 __ mov(Narrow, r6, r2);
4780 __ ldr(Narrow, r3, MemOperand(r0, 8));
4781 __ cmp(Narrow, r4, r3);
4782 __ b(eq, Narrow, &l_2694);
4783 __ mvn(ip, 23U);
4784 __ cbz(r4, &l_2630);
4785 __ sub(ip, r4, 24U);
4786 __ mov(Narrow, r7, r4);
4787 __ mov(Narrow, lr, ip);
4788 __ ldm(lr, WRITE_BACK, RegisterList(r0, r1, r2, r3));
4789 __ stm(Narrow, r7, WRITE_BACK, RegisterList(r0, r1, r2, r3));
4790 __ ldm(lr, NO_WRITE_BACK, RegisterList(r0, r1));
4791 __ stm(r7, NO_WRITE_BACK, RegisterList(r0, r1));
4792 // --------------
4793 __ bind(&l_2630);
4794 __ rsb(lr, r5, ip);
4795 __ mov(r9, 43691U);
4796 __ asr(lr, lr, 3U);
4797 __ ldm(Narrow, r6, WRITE_BACK, RegisterList(r0, r1, r2, r3));
4798 __ movt(r9, 43690U);
4799 __ mul(lr, r9, lr);
4800 __ add(Narrow, r7, sp, 8U);
4801 __ stm(Narrow, r7, WRITE_BACK, RegisterList(r0, r1, r2, r3));
4802 __ ldm(r6, NO_WRITE_BACK, RegisterList(r0, r1));
4803 __ add(r3, r4, 24U);
4804 __ cmp(lr, 0U);
4805 __ str(r3, MemOperand(r8, 4));
4806 __ stm(r7, NO_WRITE_BACK, RegisterList(r0, r1));
4807 __ b(le, Narrow, &l_2680);
4808 // --------------
4809 __ bind(&l_2660);
4810 __ sub(r7, ip, 24U);
4811 __ sub(r6, r4, 24U);
4812 __ ldm(Narrow, r7, WRITE_BACK, RegisterList(r0, r1, r2, r3));
4813 __ mov(Narrow, r4, r6);
4814 __ subs(lr, lr, 1U);
4815 __ sub(ip, ip, 24U);
4816 __ stm(Narrow, r6, WRITE_BACK, RegisterList(r0, r1, r2, r3));
4817 __ ldm(r7, NO_WRITE_BACK, RegisterList(r0, r1));
4818 __ stm(r6, NO_WRITE_BACK, RegisterList(r0, r1));
4819 __ b(ne, Narrow, &l_2660);
4820 // --------------
4821 __ bind(&l_2680);
4822 __ add(Narrow, r4, sp, 8U);
4823 __ ldm(Narrow, r4, WRITE_BACK, RegisterList(r0, r1, r2, r3));
4824 __ stm(Narrow, r5, WRITE_BACK, RegisterList(r0, r1, r2, r3));
4825 __ ldm(r4, NO_WRITE_BACK, RegisterList(r0, r1));
4826 __ stm(r5, NO_WRITE_BACK, RegisterList(r0, r1));
4827 // --------------
4828 __ bind(&l_268e);
4829 __ add(Narrow, sp, sp, 36U);
4830 __ pop(RegisterList(0x8ff0));
4831 // --------------
4832 __ bind(&l_2694);
4833 __ ldr(Narrow, r1, MemOperand(r0));
4834 __ mov(r3, 43691U);
4835 __ movt(r3, 43690U);
4836 __ subs(Narrow, r2, r4, r1);
4837 __ asrs(Narrow, r2, r2, 3U);
4838 __ mul(r3, r3, r2);
4839 __ cmp(Narrow, r3, 0U);
4840 }
Generate_37(TestAssembler * assembler)4841 void Generate_37(TestAssembler* assembler) {
4842 __ b(ne, Narrow, &l_2794);
4843 __ subs(Narrow, r7, r5, r1);
4844 __ movs(Narrow, r3, 24U);
4845 __ str(Narrow, r3, MemOperand(sp, 4));
4846 // --------------
4847 __ bind(&l_26b0);
4848 __ ldr(Narrow, r0, MemOperand(sp, 4));
4849 // --------------
4850 __ bind(&l_26b2);
4851 __ bl(&l_26b2);
4852 __ ldr(r4, MemOperand(r8, 4));
4853 __ mov(Narrow, sl, r0);
4854 __ ldr(fp, MemOperand(r8));
4855 __ add(r9, r0, 24U);
4856 // --------------
4857 __ bind(&l_26c4);
4858 __ adds(r7, sl, r7);
4859 __ itttt(ne);
4860 __ ldm(ne, Narrow, r6, WRITE_BACK, RegisterList(r0, r1, r2, r3));
4861 __ stm(ne, Narrow, r7, WRITE_BACK, RegisterList(r0, r1, r2, r3));
4862 __ ldm(ne, r6, NO_WRITE_BACK, RegisterList(r0, r1));
4863 __ stm(ne, r7, NO_WRITE_BACK, RegisterList(r0, r1));
4864 __ cmp(Narrow, r5, fp);
4865 __ b(eq, Narrow, &l_272a);
4866 __ mov(Narrow, r3, r4);
4867 __ mov(Narrow, ip, fp);
4868 __ mov(Narrow, r4, sl);
4869 __ mov(Narrow, lr, r3);
4870 // --------------
4871 __ bind(&l_26e2);
4872 __ mov(Narrow, r7, ip);
4873 __ mov(Narrow, r6, r4);
4874 __ add(ip, ip, 24U);
4875 __ cbz(r4, &l_26f8);
4876 __ ldm(Narrow, r7, WRITE_BACK, RegisterList(r0, r1, r2, r3));
4877 __ stm(Narrow, r6, WRITE_BACK, RegisterList(r0, r1, r2, r3));
4878 __ ldm(r7, NO_WRITE_BACK, RegisterList(r0, r1));
4879 __ stm(r6, NO_WRITE_BACK, RegisterList(r0, r1));
4880 // --------------
4881 __ bind(&l_26f8);
4882 __ cmp(Narrow, r5, ip);
4883 __ add(r4, r4, 24U);
4884 __ b(ne, Narrow, &l_26e2);
4885 __ add(r2, fp, 24U);
4886 __ mov(r3, 43691U);
4887 __ subs(Narrow, r2, r5, r2);
4888 __ movt(r3, 2730U);
4889 __ lsrs(Narrow, r2, r2, 3U);
4890 __ mov(Narrow, r4, lr);
4891 __ mul(r3, r3, r2);
4892 __ bic(r3, r3, 0xe0000000);
4893 __ adds(r3, 1U);
4894 __ lsl(r9, r3, 5U);
4895 __ sub(r9, r9, Operand(r3, LSL, 3));
4896 __ add(r9, r9, 24U);
4897 __ add(Narrow, r9, r9, sl);
4898 // --------------
4899 __ bind(&l_272a);
4900 __ cmp(Narrow, r5, r4);
4901 __ b(eq, Narrow, &l_2776);
4902 __ mov(Narrow, ip, r4);
4903 __ mov(Narrow, lr, r5);
4904 __ mov(Narrow, r4, r9);
4905 // --------------
4906 __ bind(&l_2734);
4907 __ mov(Narrow, r7, lr);
4908 __ mov(Narrow, r6, r4);
4909 __ add(lr, lr, 24U);
4910 __ cbz(r4, &l_274a);
4911 __ ldm(Narrow, r7, WRITE_BACK, RegisterList(r0, r1, r2, r3));
4912 __ stm(Narrow, r6, WRITE_BACK, RegisterList(r0, r1, r2, r3));
4913 __ ldm(r7, NO_WRITE_BACK, RegisterList(r0, r1));
4914 __ stm(r6, NO_WRITE_BACK, RegisterList(r0, r1));
4915 // --------------
4916 __ bind(&l_274a);
4917 __ cmp(Narrow, lr, ip);
4918 __ add(r4, r4, 24U);
4919 __ b(ne, Narrow, &l_2734);
4920 __ add(r3, r5, 24U);
4921 __ mov(r2, 43691U);
4922 __ rsb(r3, r3, lr);
4923 __ movt(r2, 2730U);
4924 __ lsrs(Narrow, r3, r3, 3U);
4925 __ mul(r3, r2, r3);
4926 __ bic(r3, r3, 0xe0000000);
4927 __ adds(r3, 1U);
4928 __ lsls(Narrow, r2, r3, 5U);
4929 __ sub(r3, r2, Operand(r3, LSL, 3));
4930 __ add(Narrow, r9, r9, r3);
4931 // --------------
4932 __ bind(&l_2776);
4933 __ cmp(fp, 0U);
4934 __ b(eq, Narrow, &l_2782);
4935 __ mov(Narrow, r0, fp);
4936 // --------------
4937 __ bind(&l_277e);
4938 __ bl(&l_277e);
4939 // --------------
4940 __ bind(&l_2782);
4941 __ ldr(Narrow, r3, MemOperand(sp, 4));
4942 __ str(sl, MemOperand(r8));
4943 __ str(r9, MemOperand(r8, 4));
4944 __ add(Narrow, r3, r3, sl);
4945 __ str(r3, MemOperand(r8, 8));
4946 __ b(Narrow, &l_268e);
4947 // --------------
4948 __ bind(&l_2794);
4949 __ lsls(Narrow, r2, r3, 1U);
4950 __ cmp(Narrow, r3, r2);
4951 __ b(ls, Narrow, &l_27a4);
4952 // --------------
4953 __ bind(&l_279a);
4954 __ mvn(r3, 15U);
4955 __ subs(Narrow, r7, r5, r1);
4956 __ str(Narrow, r3, MemOperand(sp, 4));
4957 __ b(Narrow, &l_26b0);
4958 // --------------
4959 __ bind(&l_27a4);
4960 __ mov(r0, 43690U);
4961 __ movt(r0, 2730U);
4962 __ cmp(Narrow, r2, r0);
4963 __ b(hi, Narrow, &l_279a);
4964 __ lsls(Narrow, r0, r3, 6U);
4965 __ subs(Narrow, r7, r5, r1);
4966 __ mov(Narrow, fp, r1);
4967 __ sub(r3, r0, Operand(r3, LSL, 4));
4968 __ mov(Narrow, sl, r2);
4969 __ mov(r9, 24U);
4970 }
Generate_38(TestAssembler * assembler)4971 void Generate_38(TestAssembler* assembler) {
4972 __ str(Narrow, r3, MemOperand(sp, 4));
4973 __ cmp(Narrow, r2, 0U);
4974 __ b(eq, &l_26c4);
4975 __ b(Narrow, &l_26b0);
4976 __ nop(Narrow);
4977 __ push(Narrow, RegisterList(0x40f8));
4978 __ mov(Narrow, r2, r1);
4979 __ ldm(r0, NO_WRITE_BACK, RegisterList(r3, r5));
4980 __ mov(Narrow, r7, r0);
4981 __ cmp(Narrow, r3, r5);
4982 __ b(eq, Narrow, &l_27f0);
4983 __ ldr(Narrow, r1, MemOperand(r1, 8));
4984 // --------------
4985 __ bind(&l_27dc);
4986 __ ldr(Narrow, r4, MemOperand(r3, 8));
4987 __ cmp(Narrow, r4, r1);
4988 __ ite(lt);
4989 __ mov(lt, Narrow, r4, 1U);
4990 __ mov(ge, Narrow, r4, 0U);
4991 __ b(eq, Narrow, &l_280e);
4992 // --------------
4993 __ bind(&l_27e8);
4994 __ cbz(r4, &l_283c);
4995 __ adds(Narrow, r3, r3, 24U);
4996 __ cmp(Narrow, r3, r5);
4997 __ b(ne, Narrow, &l_27dc);
4998 // --------------
4999 __ bind(&l_27f0);
5000 __ ldr(Narrow, r3, MemOperand(r7, 8));
5001 __ cmp(Narrow, r5, r3);
5002 __ b(eq, Narrow, &l_2846);
5003 __ cbz(r5, &l_2808);
5004 __ mov(Narrow, r6, r2);
5005 __ mov(Narrow, r4, r5);
5006 __ ldm(Narrow, r6, WRITE_BACK, RegisterList(r0, r1, r2, r3));
5007 __ stm(Narrow, r4, WRITE_BACK, RegisterList(r0, r1, r2, r3));
5008 __ ldm(r6, NO_WRITE_BACK, RegisterList(r0, r1));
5009 __ stm(r4, NO_WRITE_BACK, RegisterList(r0, r1));
5010 // --------------
5011 __ bind(&l_2808);
5012 __ adds(Narrow, r5, r5, 24U);
5013 __ str(Narrow, r5, MemOperand(r7, 4));
5014 __ pop(Narrow, RegisterList(0x80f8));
5015 // --------------
5016 __ bind(&l_280e);
5017 __ ldr(Narrow, r0, MemOperand(r3));
5018 __ ldr(Narrow, r4, MemOperand(r2));
5019 __ ldr(Narrow, r6, MemOperand(r0, 4));
5020 __ ldr(Narrow, r4, MemOperand(r4, 4));
5021 __ cmp(Narrow, r6, r4);
5022 __ ite(lt);
5023 __ mov(lt, Narrow, r4, 1U);
5024 __ mov(ge, Narrow, r4, 0U);
5025 __ b(ne, Narrow, &l_27e8);
5026 __ ldr(Narrow, r4, MemOperand(r3, 12));
5027 __ ldr(Narrow, r0, MemOperand(r2, 12));
5028 __ cmp(Narrow, r4, r0);
5029 __ ite(lt);
5030 __ mov(lt, Narrow, r4, 1U);
5031 __ mov(ge, Narrow, r4, 0U);
5032 __ b(ne, Narrow, &l_27e8);
5033 __ ldr(Narrow, r4, MemOperand(r3, 4));
5034 __ ldr(Narrow, r0, MemOperand(r2, 4));
5035 __ cmp(Narrow, r4, r0);
5036 __ ite(lt);
5037 __ mov(lt, Narrow, r4, 1U);
5038 __ mov(ge, Narrow, r4, 0U);
5039 __ b(ne, Narrow, &l_27e8);
5040 // --------------
5041 __ bind(&l_283c);
5042 __ mov(Narrow, r0, r7);
5043 __ mov(Narrow, r1, r3);
5044 // --------------
5045 __ bind(&l_2840);
5046 __ bl(&l_2840);
5047 __ pop(Narrow, RegisterList(0x80f8));
5048 // --------------
5049 __ bind(&l_2846);
5050 __ mov(Narrow, r0, r7);
5051 __ mov(Narrow, r1, r5);
5052 // --------------
5053 __ bind(&l_284a);
5054 __ bl(&l_284a);
5055 __ pop(Narrow, RegisterList(0x80f8));
5056 __ push(RegisterList(0x41f0));
5057 __ mov(Narrow, r5, r0);
5058 __ ldr(Narrow, r4, MemOperand(r0));
5059 __ sub(Narrow, sp, sp, 24U);
5060 __ mov(Narrow, r7, r1);
5061 __ ldr(Narrow, r0, MemOperand(r0, 4));
5062 __ cmp(Narrow, r4, r0);
5063 __ b(ne, Narrow, &l_286c);
5064 __ b(Narrow, &l_2982);
5065 // --------------
5066 __ bind(&l_2864);
5067 __ adds(Narrow, r4, r4, 24U);
5068 __ cmp(Narrow, r4, r0);
5069 __ b(eq, &l_2982);
5070 // --------------
5071 __ bind(&l_286c);
5072 __ ldr(Narrow, r3, MemOperand(r4));
5073 __ cmp(Narrow, r2, r3);
5074 __ b(ne, Narrow, &l_2864);
5075 __ ldr(Narrow, r2, MemOperand(r7, 16));
5076 __ mov(Narrow, r0, r3);
5077 __ ldr(Narrow, r1, MemOperand(r3));
5078 __ ldr(Narrow, r3, MemOperand(r4, 8));
5079 __ ldr(Narrow, r6, MemOperand(r7, 12));
5080 __ cmp(Narrow, r2, r3);
5081 __ it(ge);
5082 __ mov(ge, Narrow, r2, r3);
5083 __ ldr(Narrow, r3, MemOperand(r4, 4));
5084 __ str(Narrow, r2, MemOperand(r4, 8));
5085 __ cmp(Narrow, r3, r6);
5086 __ it(lt);
5087 __ mov(lt, Narrow, r3, r6);
5088 __ str(Narrow, r3, MemOperand(r4, 4));
5089 __ ldr(Narrow, r3, MemOperand(r1, 32));
5090 __ blx(r3);
5091 __ cbz(r0, &l_28a2);
5092 __ ldr(Narrow, r0, MemOperand(r4));
5093 __ ldr(Narrow, r6, MemOperand(r4, 8));
5094 }
Generate_39(TestAssembler * assembler)5095 void Generate_39(TestAssembler* assembler) {
5096 __ ldr(Narrow, r3, MemOperand(r0));
5097 __ ldr(Narrow, r3, MemOperand(r3, 36));
5098 __ blx(r3);
5099 __ subs(Narrow, r0, r6, r0);
5100 __ str(Narrow, r0, MemOperand(r4, 16));
5101 // --------------
5102 __ bind(&l_28a2);
5103 __ ldr(lr, MemOperand(r5));
5104 __ mov(ip, 43691U);
5105 __ ldr(Narrow, r6, MemOperand(r5, 4));
5106 __ movt(ip, 43690U);
5107 __ ldr(Narrow, r1, MemOperand(r7, 8));
5108 __ ldr(Narrow, r2, MemOperand(r4, 12));
5109 __ rsb(r3, lr, r6);
5110 __ asrs(Narrow, r3, r3, 3U);
5111 __ cmp(Narrow, r2, r1);
5112 __ mul(r3, ip, r3);
5113 __ it(lt);
5114 __ mov(lt, Narrow, r2, r1);
5115 __ str(Narrow, r2, MemOperand(r4, 12));
5116 __ cmp(Narrow, r3, 1U);
5117 __ b(eq, Narrow, &l_2910);
5118 __ mov(Narrow, lr, r4);
5119 __ mov(Narrow, r7, sp);
5120 __ ldm(lr, WRITE_BACK, RegisterList(r0, r1, r2, r3));
5121 __ add(r8, r4, 24U);
5122 __ cmp(Narrow, r6, r8);
5123 __ stm(Narrow, r7, WRITE_BACK, RegisterList(r0, r1, r2, r3));
5124 __ ldm(lr, NO_WRITE_BACK, RegisterList(r0, r1));
5125 __ stm(r7, NO_WRITE_BACK, RegisterList(r0, r1));
5126 __ b(eq, Narrow, &l_28fc);
5127 __ rsb(r2, r8, r6);
5128 __ asrs(Narrow, r3, r2, 3U);
5129 __ mul(ip, ip, r3);
5130 __ cmp(ip, 0U);
5131 __ b(le, Narrow, &l_28fc);
5132 __ mov(Narrow, r0, r4);
5133 __ mov(Narrow, r1, r8);
5134 // --------------
5135 __ bind(&l_28f8);
5136 __ bl(&l_28f8);
5137 // --------------
5138 __ bind(&l_28fc);
5139 __ sub(r2, r6, 24U);
5140 __ mov(Narrow, r1, sp);
5141 __ str(Narrow, r2, MemOperand(r5, 4));
5142 __ mov(Narrow, r0, r5);
5143 // --------------
5144 __ bind(&l_2906);
5145 __ bl(&l_2906);
5146 __ ldr(lr, MemOperand(r5));
5147 __ ldr(Narrow, r6, MemOperand(r5, 4));
5148 // --------------
5149 __ bind(&l_2910);
5150 __ movs(Narrow, r3, 0U);
5151 __ cmp(Narrow, r6, lr);
5152 __ str(Narrow, r3, MemOperand(r5, 40));
5153 __ itt(eq);
5154 __ mvn(eq, r3, 2147483648U);
5155 __ str(eq, Narrow, r3, MemOperand(r5, 36));
5156 __ b(eq, Narrow, &l_297c);
5157 __ rsb(r3, lr, r6);
5158 __ mov(r2, 43691U);
5159 __ asrs(Narrow, r3, r3, 3U);
5160 __ movt(r2, 43690U);
5161 __ ldr(Narrow, r1, MemOperand(r5, 28));
5162 __ ldr(r8, MemOperand(r5, 24));
5163 __ mul(r3, r2, r3);
5164 __ add(ip, r1, 4294967295U);
5165 __ add(r0, r8, Operand(ip, LSL, 1));
5166 __ cmp(Narrow, r3, 0U);
5167 __ str(Narrow, r0, MemOperand(r5, 40));
5168 __ b(le, Narrow, &l_2a00);
5169 __ mov(Narrow, r2, r6);
5170 __ mvn(r1, 2147483648U);
5171 // --------------
5172 __ bind(&l_294c);
5173 __ ldr(r4, MemOperand(r2, -24));
5174 __ subs(Narrow, r2, r2, 24U);
5175 __ ldr(Narrow, r3, MemOperand(r2, 12));
5176 __ ldr(Narrow, r7, MemOperand(r2, 8));
5177 __ ldr(Narrow, r4, MemOperand(r4, 4));
5178 __ subs(r3, 1U);
5179 __ mvns(Narrow, r6, r3);
5180 __ subs(Narrow, r1, r1, r4);
5181 __ add(Narrow, r3, r3, r4);
5182 __ cmp(Narrow, r1, r7);
5183 __ ite(le);
5184 __ and_(le, Narrow, r1, r1, r6);
5185 __ and_(gt, r1, r6, r7);
5186 __ cmp(Narrow, r2, lr);
5187 __ add(Narrow, r0, r0, r3);
5188 __ str(Narrow, r0, MemOperand(r5, 40));
5189 __ b(ne, Narrow, &l_294c);
5190 // --------------
5191 __ bind(&l_2972);
5192 __ rsb(r1, r8, r1);
5193 __ bic(r1, r1, ip);
5194 __ str(Narrow, r1, MemOperand(r5, 36));
5195 // --------------
5196 __ bind(&l_297c);
5197 __ add(Narrow, sp, sp, 24U);
5198 __ pop(RegisterList(0x81f0));
5199 // --------------
5200 __ bind(&l_2982);
5201 __ ldr(Narrow, r0, MemOperand(r2, 12));
5202 __ movs(Narrow, r3, 0U);
5203 __ ldr(Narrow, r6, MemOperand(r2, 8));
5204 __ mvn(r1, 2147483648U);
5205 __ ldr(Narrow, r4, MemOperand(r2));
5206 __ str(Narrow, r0, MemOperand(sp, 20));
5207 __ mov(Narrow, r0, r2);
5208 __ str(Narrow, r2, MemOperand(sp));
5209 __ str(Narrow, r6, MemOperand(sp, 12));
5210 __ ldr(Narrow, r2, MemOperand(r4, 32));
5211 __ str(Narrow, r3, MemOperand(sp, 4));
5212 __ str(Narrow, r3, MemOperand(sp, 16));
5213 __ str(Narrow, r1, MemOperand(sp, 8));
5214 }
Generate_40(TestAssembler * assembler)5215 void Generate_40(TestAssembler* assembler) {
5216 __ blx(r2);
5217 __ cbnz(r0, &l_29f0);
5218 // --------------
5219 __ bind(&l_29a2);
5220 __ ldr(Narrow, r2, MemOperand(r7, 16));
5221 __ ldr(Narrow, r6, MemOperand(sp, 8));
5222 __ ldr(Narrow, r1, MemOperand(sp));
5223 __ ldr(Narrow, r4, MemOperand(sp, 4));
5224 __ ldr(Narrow, r3, MemOperand(r7, 12));
5225 __ cmp(Narrow, r2, r6);
5226 __ mov(Narrow, r0, r1);
5227 __ ldr(Narrow, r1, MemOperand(r1));
5228 __ it(ge);
5229 __ mov(ge, Narrow, r2, r6);
5230 __ cmp(Narrow, r3, r4);
5231 __ str(Narrow, r2, MemOperand(sp, 8));
5232 __ it(lt);
5233 __ mov(lt, Narrow, r3, r4);
5234 __ ldr(Narrow, r2, MemOperand(r1, 32));
5235 __ str(Narrow, r3, MemOperand(sp, 4));
5236 __ blx(r2);
5237 __ cbz(r0, &l_29d4);
5238 __ ldr(Narrow, r0, MemOperand(sp));
5239 __ ldr(Narrow, r4, MemOperand(sp, 8));
5240 __ ldr(Narrow, r3, MemOperand(r0));
5241 __ ldr(Narrow, r3, MemOperand(r3, 36));
5242 __ blx(r3);
5243 __ subs(Narrow, r0, r4, r0);
5244 __ str(Narrow, r0, MemOperand(sp, 16));
5245 // --------------
5246 __ bind(&l_29d4);
5247 __ ldr(Narrow, r3, MemOperand(r7, 8));
5248 __ mov(Narrow, r0, r5);
5249 __ ldr(Narrow, r2, MemOperand(sp, 12));
5250 __ mov(Narrow, r1, sp);
5251 __ cmp(Narrow, r3, r2);
5252 __ it(lt);
5253 __ mov(lt, Narrow, r3, r2);
5254 __ str(Narrow, r3, MemOperand(sp, 12));
5255 // --------------
5256 __ bind(&l_29e4);
5257 __ bl(&l_29e4);
5258 __ ldr(lr, MemOperand(r5));
5259 __ ldr(Narrow, r6, MemOperand(r5, 4));
5260 __ b(Narrow, &l_2910);
5261 // --------------
5262 __ bind(&l_29f0);
5263 __ ldr(Narrow, r0, MemOperand(sp));
5264 __ ldr(Narrow, r4, MemOperand(sp, 8));
5265 __ ldr(Narrow, r3, MemOperand(r0));
5266 __ ldr(Narrow, r3, MemOperand(r3, 36));
5267 __ blx(r3);
5268 __ subs(Narrow, r0, r4, r0);
5269 __ str(Narrow, r0, MemOperand(sp, 16));
5270 __ b(Narrow, &l_29a2);
5271 // --------------
5272 __ bind(&l_2a00);
5273 __ mvn(r1, 2147483648U);
5274 __ b(Narrow, &l_2972);
5275 __ nop(Narrow);
5276 __ cmp(Narrow, r0, r1);
5277 __ b(eq, Narrow, &l_2b02);
5278 __ push(RegisterList(0x4ff0));
5279 __ add(r6, r0, 24U);
5280 __ cmp(Narrow, r6, r1);
5281 __ sub(Narrow, sp, sp, 44U);
5282 __ b(eq, Narrow, &l_2afc);
5283 __ mov(r3, 43691U);
5284 __ str(Narrow, r1, MemOperand(sp, 8));
5285 __ movt(r3, 43690U);
5286 __ mov(Narrow, r9, r0);
5287 __ str(Narrow, r3, MemOperand(sp, 12));
5288 __ add(r8, r0, 48U);
5289 __ str(Narrow, r2, MemOperand(sp, 4));
5290 __ b(Narrow, &l_2a86);
5291 // --------------
5292 __ bind(&l_2a30);
5293 __ ldr(Narrow, r7, MemOperand(sp, 12));
5294 __ rsb(lr, r9, r6);
5295 __ sub(r5, r8, 24U);
5296 __ asr(ip, lr, 3U);
5297 __ ldm(Narrow, r5, WRITE_BACK, RegisterList(r0, r1, r2, r3));
5298 __ add(Narrow, r4, sp, 16U);
5299 __ mul(ip, r7, ip);
5300 __ stm(Narrow, r4, WRITE_BACK, RegisterList(r0, r1, r2, r3));
5301 __ ldm(r5, NO_WRITE_BACK, RegisterList(r0, r1));
5302 __ cmp(ip, 0U);
5303 __ stm(r4, NO_WRITE_BACK, RegisterList(r0, r1));
5304 __ b(le, Narrow, &l_2a66);
5305 __ rsb(r0, lr, 24U);
5306 __ rsb(r1, lr, r6);
5307 __ add(Narrow, r0, r0, r6);
5308 __ mov(Narrow, r2, lr);
5309 // --------------
5310 __ bind(&l_2a62);
5311 __ bl(&l_2a62);
5312 // --------------
5313 __ bind(&l_2a66);
5314 __ add(Narrow, r5, sp, 16U);
5315 __ mov(Narrow, r4, r9);
5316 __ ldm(Narrow, r5, WRITE_BACK, RegisterList(r0, r1, r2, r3));
5317 __ mov(Narrow, lr, r8);
5318 __ add(sl, r8, 24U);
5319 __ adds(Narrow, r6, r6, 24U);
5320 __ mov(Narrow, r8, sl);
5321 __ stm(Narrow, r4, WRITE_BACK, RegisterList(r0, r1, r2, r3));
5322 __ ldr(Narrow, r3, MemOperand(sp, 8));
5323 __ ldm(r5, NO_WRITE_BACK, RegisterList(r0, r1));
5324 __ cmp(Narrow, lr, r3);
5325 __ stm(r4, NO_WRITE_BACK, RegisterList(r0, r1));
5326 __ b(eq, Narrow, &l_2afc);
5327 // --------------
5328 __ bind(&l_2a86);
5329 __ mov(Narrow, r0, r6);
5330 __ mov(Narrow, r1, r9);
5331 __ ldr(Narrow, r3, MemOperand(sp, 4));
5332 __ blx(r3);
5333 __ cmp(Narrow, r0, 0U);
5334 }
Generate_41(TestAssembler * assembler)5335 void Generate_41(TestAssembler* assembler) {
5336 __ b(ne, Narrow, &l_2a30);
5337 __ sub(lr, r8, 24U);
5338 __ add(sl, r8, 24U);
5339 __ ldm(lr, WRITE_BACK, RegisterList(r0, r1, r2, r3));
5340 __ add(Narrow, r4, sp, 16U);
5341 __ sub(fp, r8, 48U);
5342 __ sub(r5, r8, 24U);
5343 __ pld(MemOperand(sl));
5344 __ ldr(Narrow, r7, MemOperand(sp, 4));
5345 __ stm(Narrow, r4, WRITE_BACK, RegisterList(r0, r1, r2, r3));
5346 __ ldm(lr, NO_WRITE_BACK, RegisterList(r0, r1));
5347 __ stm(r4, NO_WRITE_BACK, RegisterList(r0, r1));
5348 __ b(Narrow, &l_2ad2);
5349 // --------------
5350 __ bind(&l_2aba);
5351 __ add(r5, fp, 24U);
5352 __ add(r4, fp, 48U);
5353 __ mov(Narrow, lr, r5);
5354 __ ldm(lr, WRITE_BACK, RegisterList(r0, r1, r2, r3));
5355 __ stm(Narrow, r4, WRITE_BACK, RegisterList(r0, r1, r2, r3));
5356 __ ldm(lr, NO_WRITE_BACK, RegisterList(r0, r1));
5357 __ stm(r4, NO_WRITE_BACK, RegisterList(r0, r1));
5358 // --------------
5359 __ bind(&l_2ad2);
5360 __ mov(Narrow, r1, fp);
5361 __ add(Narrow, r0, sp, 16U);
5362 __ blx(r7);
5363 __ sub(fp, fp, 24U);
5364 __ cmp(Narrow, r0, 0U);
5365 __ b(ne, Narrow, &l_2aba);
5366 __ add(Narrow, r4, sp, 16U);
5367 __ mov(Narrow, lr, r8);
5368 __ ldm(Narrow, r4, WRITE_BACK, RegisterList(r0, r1, r2, r3));
5369 __ adds(Narrow, r6, r6, 24U);
5370 __ mov(Narrow, r8, sl);
5371 __ str(Narrow, r7, MemOperand(sp, 4));
5372 __ stm(Narrow, r5, WRITE_BACK, RegisterList(r0, r1, r2, r3));
5373 __ ldr(Narrow, r3, MemOperand(sp, 8));
5374 __ ldm(r4, NO_WRITE_BACK, RegisterList(r0, r1));
5375 __ cmp(Narrow, lr, r3);
5376 __ stm(r5, NO_WRITE_BACK, RegisterList(r0, r1));
5377 __ b(ne, Narrow, &l_2a86);
5378 // --------------
5379 __ bind(&l_2afc);
5380 __ add(Narrow, sp, sp, 44U);
5381 __ pop(RegisterList(0x8ff0));
5382 // --------------
5383 __ bind(&l_2b02);
5384 __ bx(lr);
5385 __ sub(Narrow, sp, sp, 8U);
5386 __ push(RegisterList(0x4ff0));
5387 __ add(r8, r2, 4294967295U);
5388 __ add(r8, r8, Operand(r8, LSR, 31));
5389 __ sub(Narrow, sp, sp, 36U);
5390 __ mov(Narrow, fp, r0);
5391 __ asr(r8, r8, 1U);
5392 __ stm(sp, NO_WRITE_BACK, RegisterList(r1, r2));
5393 __ str(Narrow, r3, MemOperand(sp, 76));
5394 __ cmp(Narrow, r1, r8);
5395 __ ldr(r9, MemOperand(sp, 100));
5396 __ b(ge, &l_2c2e);
5397 __ mov(Narrow, r7, r1);
5398 __ b(Narrow, &l_2b4e);
5399 // --------------
5400 __ bind(&l_2b2e);
5401 __ mov(Narrow, r6, sl);
5402 // --------------
5403 __ bind(&l_2b30);
5404 __ lsls(Narrow, r5, r7, 5U);
5405 __ mov(Narrow, lr, r4);
5406 __ ldm(lr, WRITE_BACK, RegisterList(r0, r1, r2, r3));
5407 __ cmp(Narrow, r6, r8);
5408 __ sub(r5, r5, Operand(r7, LSL, 3));
5409 __ mov(Narrow, r7, r6);
5410 __ add(Narrow, r5, r5, fp);
5411 __ stm(Narrow, r5, WRITE_BACK, RegisterList(r0, r1, r2, r3));
5412 __ ldm(lr, NO_WRITE_BACK, RegisterList(r0, r1));
5413 __ stm(r5, NO_WRITE_BACK, RegisterList(r0, r1));
5414 __ b(ge, Narrow, &l_2b76);
5415 // --------------
5416 __ bind(&l_2b4e);
5417 __ adds(Narrow, r5, r7, 1U);
5418 __ lsls(Narrow, r6, r5, 1U);
5419 __ lsls(Narrow, r2, r5, 6U);
5420 __ add(sl, r6, 4294967295U);
5421 __ sub(r5, r2, Operand(r5, LSL, 4));
5422 __ lsl(r4, sl, 5U);
5423 __ add(Narrow, r5, r5, fp);
5424 __ sub(r4, r4, Operand(sl, LSL, 3));
5425 __ mov(Narrow, r0, r5);
5426 __ add(Narrow, r4, r4, fp);
5427 __ mov(Narrow, r1, r4);
5428 __ blx(r9);
5429 __ cmp(Narrow, r0, 0U);
5430 __ b(ne, Narrow, &l_2b2e);
5431 __ mov(Narrow, r4, r5);
5432 __ b(Narrow, &l_2b30);
5433 // --------------
5434 __ bind(&l_2b76);
5435 __ ldr(Narrow, r3, MemOperand(sp, 4));
5436 __ lsls(Narrow, r2, r3, 31U);
5437 __ b(mi, Narrow, &l_2b8a);
5438 // --------------
5439 __ bind(&l_2b7c);
5440 __ sub(sl, r3, 2U);
5441 __ add(sl, sl, Operand(sl, LSR, 31));
5442 __ cmp(r6, Operand(sl, ASR, 1));
5443 __ b(eq, Narrow, &l_2bbc);
5444 // --------------
5445 __ bind(&l_2b8a);
5446 __ add(lr, sp, 76U);
5447 __ add(Narrow, r5, sp, 8U);
5448 __ ldm(lr, WRITE_BACK, RegisterList(r0, r1, r2, r3));
5449 __ mov(Narrow, r7, r5);
5450 __ stm(Narrow, r7, WRITE_BACK, RegisterList(r0, r1, r2, r3));
5451 __ ldr(Narrow, r3, MemOperand(sp));
5452 __ ldm(lr, NO_WRITE_BACK, RegisterList(r0, r1));
5453 __ cmp(Narrow, r6, r3);
5454 __ stm(r7, NO_WRITE_BACK, RegisterList(r0, r1));
5455 __ b(gt, Narrow, &l_2bda);
5456 }
Generate_42(TestAssembler * assembler)5457 void Generate_42(TestAssembler* assembler) {
5458 // --------------
5459 __ bind(&l_2ba6);
5460 __ ldm(Narrow, r5, WRITE_BACK, RegisterList(r0, r1, r2, r3));
5461 __ stm(Narrow, r4, WRITE_BACK, RegisterList(r0, r1, r2, r3));
5462 __ ldm(r5, NO_WRITE_BACK, RegisterList(r0, r1));
5463 __ stm(r4, NO_WRITE_BACK, RegisterList(r0, r1));
5464 __ add(Narrow, sp, sp, 36U);
5465 __ pop(RegisterList(0x4ff0));
5466 __ add(Narrow, sp, sp, 8U);
5467 __ bx(lr);
5468 // --------------
5469 __ bind(&l_2bbc);
5470 __ lsls(Narrow, r6, r6, 1U);
5471 __ mov(Narrow, r7, r4);
5472 __ adds(r6, 1U);
5473 __ lsls(Narrow, r5, r6, 5U);
5474 __ sub(r5, r5, Operand(r6, LSL, 3));
5475 __ add(Narrow, r5, r5, fp);
5476 __ mov(Narrow, r4, r5);
5477 __ ldm(Narrow, r5, WRITE_BACK, RegisterList(r0, r1, r2, r3));
5478 __ stm(Narrow, r7, WRITE_BACK, RegisterList(r0, r1, r2, r3));
5479 __ ldm(r5, NO_WRITE_BACK, RegisterList(r0, r1));
5480 __ stm(r7, NO_WRITE_BACK, RegisterList(r0, r1));
5481 __ b(Narrow, &l_2b8a);
5482 // --------------
5483 __ bind(&l_2bda);
5484 __ subs(Narrow, r7, r6, 1U);
5485 __ add(r7, r7, Operand(r7, LSR, 31));
5486 __ asrs(Narrow, r7, r7, 1U);
5487 // --------------
5488 __ bind(&l_2be2);
5489 __ lsls(Narrow, r4, r7, 5U);
5490 __ mov(Narrow, r1, r5);
5491 __ sub(r4, r4, Operand(r7, LSL, 3));
5492 __ add(Narrow, r4, r4, fp);
5493 __ mov(Narrow, r0, r4);
5494 __ blx(r9);
5495 __ cbnz(r0, &l_2bfc);
5496 __ lsls(Narrow, r4, r6, 5U);
5497 __ sub(r4, r4, Operand(r6, LSL, 3));
5498 __ add(Narrow, r4, r4, fp);
5499 __ b(Narrow, &l_2ba6);
5500 // --------------
5501 __ bind(&l_2bfc);
5502 __ lsl(sl, r6, 5U);
5503 __ mov(Narrow, lr, r4);
5504 __ ldm(lr, WRITE_BACK, RegisterList(r0, r1, r2, r3));
5505 __ add(r8, r7, 4294967295U);
5506 __ sub(r6, sl, Operand(r6, LSL, 3));
5507 __ add(r8, r8, Operand(r8, LSR, 31));
5508 __ add(Narrow, r6, r6, fp);
5509 __ asr(r8, r8, 1U);
5510 __ stm(Narrow, r6, WRITE_BACK, RegisterList(r0, r1, r2, r3));
5511 __ ldr(Narrow, r3, MemOperand(sp));
5512 __ ldm(lr, NO_WRITE_BACK, RegisterList(r0, r1));
5513 __ cmp(Narrow, r3, r7);
5514 __ stm(r6, NO_WRITE_BACK, RegisterList(r0, r1));
5515 __ b(ge, Narrow, &l_2ba6);
5516 __ mov(Narrow, r6, r7);
5517 __ mov(Narrow, r7, r8);
5518 __ b(Narrow, &l_2be2);
5519 // --------------
5520 __ bind(&l_2c2e);
5521 __ mov(Narrow, r3, r2);
5522 __ lsls(Narrow, r3, r3, 31U);
5523 __ b(mi, Narrow, &l_2c44);
5524 __ ldr(Narrow, r3, MemOperand(sp));
5525 __ mov(Narrow, r6, r3);
5526 __ lsls(Narrow, r4, r3, 5U);
5527 __ sub(r4, r4, Operand(r3, LSL, 3));
5528 __ ldr(Narrow, r3, MemOperand(sp, 4));
5529 __ add(Narrow, r4, r4, r0);
5530 __ b(Narrow, &l_2b7c);
5531 // --------------
5532 __ bind(&l_2c44);
5533 __ ldr(Narrow, r4, MemOperand(sp));
5534 __ add(Narrow, r7, sp, 76U);
5535 __ ldm(Narrow, r7, WRITE_BACK, RegisterList(r0, r1, r2, r3));
5536 __ add(Narrow, r5, sp, 8U);
5537 __ mov(Narrow, r6, r5);
5538 __ lsl(lr, r4, 5U);
5539 __ stm(Narrow, r6, WRITE_BACK, RegisterList(r0, r1, r2, r3));
5540 __ ldm(r7, NO_WRITE_BACK, RegisterList(r0, r1));
5541 __ sub(r4, lr, Operand(r4, LSL, 3));
5542 __ add(Narrow, r4, r4, fp);
5543 __ stm(r6, NO_WRITE_BACK, RegisterList(r0, r1));
5544 __ b(Narrow, &l_2ba6);
5545 __ push(RegisterList(0x4ff0));
5546 __ sub(Narrow, sp, sp, 68U);
5547 __ str(Narrow, r1, MemOperand(sp, 28));
5548 __ subs(Narrow, r1, r1, r0);
5549 __ cmp(Narrow, r1, 47U);
5550 __ mov(Narrow, r8, r0);
5551 __ str(Narrow, r1, MemOperand(sp, 32));
5552 __ mov(Narrow, sl, r2);
5553 __ mov(Narrow, r9, r3);
5554 __ b(le, Narrow, &l_2cf0);
5555 __ asr(fp, r1, 3U);
5556 __ mov(r3, 43691U);
5557 __ movt(r3, 43690U);
5558 __ str(sl, MemOperand(sp, 36));
5559 __ mul(r3, r3, fp);
5560 __ sub(ip, r3, 2U);
5561 __ asr(fp, ip, 1U);
5562 __ lsl(r7, fp, 5U);
5563 __ mov(Narrow, sl, fp);
5564 __ sub(r7, r7, Operand(fp, LSL, 3));
5565 __ mov(Narrow, fp, r3);
5566 __ subs(Narrow, r7, r7, 168U);
5567 __ add(Narrow, r7, r7, r0);
5568 __ b(Narrow, &l_2cac);
5569 // --------------
5570 __ bind(&l_2ca8);
5571 __ add(sl, sl, 4294967295U);
5572 // --------------
5573 __ bind(&l_2cac);
5574 __ add(r5, r7, 168U);
5575 __ add(Narrow, r4, sp, 40U);
5576 }
Generate_43(TestAssembler * assembler)5577 void Generate_43(TestAssembler* assembler) {
5578 __ ldm(Narrow, r5, WRITE_BACK, RegisterList(r0, r1, r2, r3));
5579 __ add(lr, sp, 44U);
5580 __ mov(Narrow, r6, sp);
5581 __ pld(MemOperand(r7));
5582 __ subs(Narrow, r7, r7, 24U);
5583 __ stm(Narrow, r4, WRITE_BACK, RegisterList(r0, r1, r2, r3));
5584 __ ldm(r5, NO_WRITE_BACK, RegisterList(r0, r1));
5585 __ str(r9, MemOperand(sp, 20));
5586 __ stm(r4, NO_WRITE_BACK, RegisterList(r0, r1));
5587 __ ldm(lr, WRITE_BACK, RegisterList(r0, r1, r2, r3));
5588 __ ldr(r4, MemOperand(lr));
5589 __ stm(Narrow, r6, WRITE_BACK, RegisterList(r0, r1, r2, r3));
5590 __ mov(Narrow, r0, r8);
5591 __ ldr(Narrow, r3, MemOperand(sp, 40));
5592 __ mov(Narrow, r1, sl);
5593 __ mov(Narrow, r2, fp);
5594 __ str(Narrow, r4, MemOperand(r6));
5595 // --------------
5596 __ bind(&l_2ce2);
5597 __ bl(&l_2ce2);
5598 __ cmp(sl, 0U);
5599 __ b(ne, Narrow, &l_2ca8);
5600 __ ldr(sl, MemOperand(sp, 36));
5601 // --------------
5602 __ bind(&l_2cf0);
5603 __ ldr(Narrow, r4, MemOperand(sp, 28));
5604 __ cmp(Narrow, r4, sl);
5605 __ b(cs, Narrow, &l_2d7a);
5606 __ ldr(Narrow, r3, MemOperand(sp, 32));
5607 __ mov(r2, 43691U);
5608 __ movt(r2, 43690U);
5609 __ adds(Narrow, r4, r4, 96U);
5610 __ asrs(Narrow, r3, r3, 3U);
5611 __ mul(r3, r2, r3);
5612 __ str(Narrow, r3, MemOperand(sp, 28));
5613 __ b(Narrow, &l_2d16);
5614 // --------------
5615 __ bind(&l_2d0c);
5616 __ sub(r3, r4, 72U);
5617 __ adds(Narrow, r4, r4, 24U);
5618 __ cmp(Narrow, sl, r3);
5619 __ b(ls, Narrow, &l_2d7a);
5620 // --------------
5621 __ bind(&l_2d16);
5622 __ sub(r5, r4, 96U);
5623 __ mov(Narrow, r1, r8);
5624 __ mov(Narrow, r0, r5);
5625 __ blx(r9);
5626 __ cmp(Narrow, r0, 0U);
5627 __ b(eq, Narrow, &l_2d0c);
5628 __ mov(Narrow, r6, r5);
5629 __ add(lr, sp, 40U);
5630 __ ldm(Narrow, r6, WRITE_BACK, RegisterList(r0, r1, r2, r3));
5631 __ mov(Narrow, r7, r8);
5632 __ add(fp, sp, 44U);
5633 __ mov(Narrow, ip, sp);
5634 __ pld(MemOperand(r4));
5635 __ stm(lr, WRITE_BACK, RegisterList(r0, r1, r2, r3));
5636 __ ldm(r6, NO_WRITE_BACK, RegisterList(r0, r1));
5637 __ stm(lr, NO_WRITE_BACK, RegisterList(r0, r1));
5638 __ ldm(Narrow, r7, WRITE_BACK, RegisterList(r0, r1, r2, r3));
5639 __ stm(Narrow, r5, WRITE_BACK, RegisterList(r0, r1, r2, r3));
5640 __ ldm(r7, NO_WRITE_BACK, RegisterList(r0, r1));
5641 __ stm(r6, NO_WRITE_BACK, RegisterList(r0, r1));
5642 __ ldm(fp, WRITE_BACK, RegisterList(r0, r1, r2, r3));
5643 __ str(r9, MemOperand(sp, 20));
5644 __ stm(ip, WRITE_BACK, RegisterList(r0, r1, r2, r3));
5645 __ mov(Narrow, r0, r8);
5646 __ ldr(r5, MemOperand(fp));
5647 __ movs(Narrow, r1, 0U);
5648 __ ldr(Narrow, r3, MemOperand(sp, 40));
5649 __ ldr(Narrow, r2, MemOperand(sp, 28));
5650 __ str(r5, MemOperand(ip));
5651 // --------------
5652 __ bind(&l_2d6c);
5653 __ bl(&l_2d6c);
5654 __ sub(r3, r4, 72U);
5655 __ adds(Narrow, r4, r4, 24U);
5656 __ cmp(Narrow, sl, r3);
5657 __ b(hi, Narrow, &l_2d16);
5658 // --------------
5659 __ bind(&l_2d7a);
5660 __ add(Narrow, sp, sp, 68U);
5661 __ pop(RegisterList(0x8ff0));
5662 __ push(RegisterList(0x4ff0));
5663 __ mov(Narrow, r6, r0);
5664 __ sub(Narrow, sp, sp, 76U);
5665 __ mov(Narrow, r4, r2);
5666 __ str(Narrow, r2, MemOperand(sp, 36));
5667 __ subs(Narrow, r2, r1, r6);
5668 __ cmp(r2, 408U);
5669 __ str(Narrow, r1, MemOperand(sp, 32));
5670 __ b(lt, &l_2fa4);
5671 __ mov(Narrow, r7, r3);
5672 __ cmp(Narrow, r4, 0U);
5673 __ b(eq, &l_2f20);
5674 __ mov(Narrow, r3, r1);
5675 __ mov(r2, 43691U);
5676 __ add(r1, r6, 24U);
5677 __ movt(r2, 43690U);
5678 __ mov(Narrow, r0, r1);
5679 __ str(Narrow, r2, MemOperand(sp, 44));
5680 __ add(Narrow, r2, sp, 48U);
5681 __ str(Narrow, r1, MemOperand(sp, 40));
5682 __ str(Narrow, r2, MemOperand(sp, 28));
5683 // --------------
5684 __ bind(&l_2db8);
5685 __ ldr(Narrow, r2, MemOperand(sp, 36));
5686 __ subs(Narrow, r3, r3, r6);
5687 __ asrs(Narrow, r3, r3, 3U);
5688 __ subs(r2, 1U);
5689 __ str(Narrow, r2, MemOperand(sp, 36));
5690 __ ldr(Narrow, r2, MemOperand(sp, 32));
5691 __ sub(r5, r2, 24U);
5692 }
Generate_44(TestAssembler * assembler)5693 void Generate_44(TestAssembler* assembler) {
5694 __ ldr(Narrow, r2, MemOperand(sp, 44));
5695 __ mul(r3, r2, r3);
5696 __ add(r3, r3, Operand(r3, LSR, 31));
5697 __ asrs(Narrow, r3, r3, 1U);
5698 __ lsls(Narrow, r4, r3, 5U);
5699 __ sub(r3, r4, Operand(r3, LSL, 3));
5700 __ adds(Narrow, r4, r6, r3);
5701 __ mov(Narrow, r1, r4);
5702 __ blx(r7);
5703 __ cmp(Narrow, r0, 0U);
5704 __ b(eq, Narrow, &l_2ebe);
5705 __ mov(Narrow, r0, r4);
5706 __ mov(Narrow, r1, r5);
5707 __ blx(r7);
5708 __ cmp(Narrow, r0, 0U);
5709 __ b(ne, Narrow, &l_2ed0);
5710 __ ldr(Narrow, r0, MemOperand(sp, 40));
5711 __ mov(Narrow, r1, r5);
5712 __ blx(r7);
5713 __ cmp(Narrow, r0, 0U);
5714 __ b(eq, &l_2f0a);
5715 // --------------
5716 __ bind(&l_2dfa);
5717 __ mov(Narrow, ip, r6);
5718 __ ldr(r8, MemOperand(sp, 28));
5719 __ ldm(ip, WRITE_BACK, RegisterList(r0, r1, r2, r3));
5720 __ mov(Narrow, r4, r5);
5721 __ mov(Narrow, r9, r6);
5722 __ mov(Narrow, lr, r8);
5723 __ stm(lr, WRITE_BACK, RegisterList(r0, r1, r2, r3));
5724 __ ldm(ip, NO_WRITE_BACK, RegisterList(r0, r1));
5725 __ stm(lr, NO_WRITE_BACK, RegisterList(r0, r1));
5726 __ ldm(Narrow, r4, WRITE_BACK, RegisterList(r0, r1, r2, r3));
5727 __ stm(r9, WRITE_BACK, RegisterList(r0, r1, r2, r3));
5728 __ ldm(r4, NO_WRITE_BACK, RegisterList(r0, r1));
5729 __ stm(ip, NO_WRITE_BACK, RegisterList(r0, r1));
5730 __ ldm(r8, WRITE_BACK, RegisterList(r0, r1, r2, r3));
5731 __ stm(Narrow, r5, WRITE_BACK, RegisterList(r0, r1, r2, r3));
5732 __ ldm(lr, NO_WRITE_BACK, RegisterList(r0, r1));
5733 __ stm(r4, NO_WRITE_BACK, RegisterList(r0, r1));
5734 // --------------
5735 __ bind(&l_2e32);
5736 __ ldr(r8, MemOperand(sp, 32));
5737 __ ldr(Narrow, r5, MemOperand(sp, 40));
5738 // --------------
5739 __ bind(&l_2e38);
5740 __ mov(Narrow, r0, r5);
5741 __ mov(Narrow, r1, r6);
5742 __ mov(Narrow, r4, r5);
5743 __ adds(Narrow, r5, r5, 24U);
5744 __ blx(r7);
5745 __ cmp(Narrow, r0, 0U);
5746 __ b(ne, Narrow, &l_2e38);
5747 __ sub(r5, r8, 24U);
5748 // --------------
5749 __ bind(&l_2e4a);
5750 __ mov(Narrow, r1, r5);
5751 __ mov(Narrow, r0, r6);
5752 __ mov(Narrow, r8, r5);
5753 __ subs(Narrow, r5, r5, 24U);
5754 __ blx(r7);
5755 __ cmp(Narrow, r0, 0U);
5756 __ b(ne, Narrow, &l_2e4a);
5757 __ cmp(Narrow, r8, r4);
5758 __ b(ls, Narrow, &l_2e9c);
5759 __ mov(Narrow, r9, r4);
5760 __ ldr(fp, MemOperand(sp, 28));
5761 __ ldm(r9, WRITE_BACK, RegisterList(r0, r1, r2, r3));
5762 __ mov(Narrow, lr, r8);
5763 __ add(r5, r4, 24U);
5764 __ mov(Narrow, sl, r8);
5765 __ mov(Narrow, ip, fp);
5766 __ stm(ip, WRITE_BACK, RegisterList(r0, r1, r2, r3));
5767 __ ldm(r9, NO_WRITE_BACK, RegisterList(r0, r1));
5768 __ stm(ip, NO_WRITE_BACK, RegisterList(r0, r1));
5769 __ ldm(lr, WRITE_BACK, RegisterList(r0, r1, r2, r3));
5770 __ stm(Narrow, r4, WRITE_BACK, RegisterList(r0, r1, r2, r3));
5771 __ ldm(lr, NO_WRITE_BACK, RegisterList(r0, r1));
5772 __ stm(r9, NO_WRITE_BACK, RegisterList(r0, r1));
5773 __ ldm(fp, WRITE_BACK, RegisterList(r0, r1, r2, r3));
5774 __ stm(sl, WRITE_BACK, RegisterList(r0, r1, r2, r3));
5775 __ ldm(ip, NO_WRITE_BACK, RegisterList(r0, r1));
5776 __ stm(lr, NO_WRITE_BACK, RegisterList(r0, r1));
5777 __ b(Narrow, &l_2e38);
5778 // --------------
5779 __ bind(&l_2e9c);
5780 __ ldr(Narrow, r2, MemOperand(sp, 36));
5781 __ mov(Narrow, r3, r7);
5782 __ ldr(Narrow, r1, MemOperand(sp, 32));
5783 __ mov(Narrow, r0, r4);
5784 // --------------
5785 __ bind(&l_2ea4);
5786 __ bl(&l_2ea4);
5787 __ subs(Narrow, r2, r4, r6);
5788 __ mov(Narrow, r3, r4);
5789 __ cmp(r2, 408U);
5790 __ b(lt, Narrow, &l_2fa4);
5791 __ ldr(Narrow, r2, MemOperand(sp, 36));
5792 __ cmp(Narrow, r2, 0U);
5793 __ b(eq, Narrow, &l_2f26);
5794 __ str(Narrow, r3, MemOperand(sp, 32));
5795 __ ldr(Narrow, r0, MemOperand(sp, 40));
5796 __ b(Narrow, &l_2db8);
5797 // --------------
5798 __ bind(&l_2ebe);
5799 __ ldr(Narrow, r0, MemOperand(sp, 40));
5800 __ mov(Narrow, r1, r5);
5801 __ blx(r7);
5802 __ cbnz(r0, &l_2f0a);
5803 __ mov(Narrow, r0, r4);
5804 __ mov(Narrow, r1, r5);
5805 __ blx(r7);
5806 __ cmp(Narrow, r0, 0U);
5807 __ b(ne, Narrow, &l_2dfa);
5808 }
Generate_45(TestAssembler * assembler)5809 void Generate_45(TestAssembler* assembler) {
5810 // --------------
5811 __ bind(&l_2ed0);
5812 __ mov(Narrow, lr, r6);
5813 __ ldr(r8, MemOperand(sp, 28));
5814 __ ldm(lr, WRITE_BACK, RegisterList(r0, r1, r2, r3));
5815 __ mov(Narrow, r9, r6);
5816 __ mov(Narrow, ip, r4);
5817 __ mov(Narrow, r5, r8);
5818 // --------------
5819 __ bind(&l_2ee0);
5820 __ stm(Narrow, r5, WRITE_BACK, RegisterList(r0, r1, r2, r3));
5821 __ ldm(lr, NO_WRITE_BACK, RegisterList(r0, r1));
5822 __ stm(r5, NO_WRITE_BACK, RegisterList(r0, r1));
5823 __ ldm(Narrow, r4, WRITE_BACK, RegisterList(r0, r1, r2, r3));
5824 __ stm(r9, WRITE_BACK, RegisterList(r0, r1, r2, r3));
5825 __ ldm(r4, NO_WRITE_BACK, RegisterList(r0, r1));
5826 __ stm(lr, NO_WRITE_BACK, RegisterList(r0, r1));
5827 __ ldm(r8, WRITE_BACK, RegisterList(r0, r1, r2, r3));
5828 __ stm(ip, WRITE_BACK, RegisterList(r0, r1, r2, r3));
5829 __ ldm(r5, NO_WRITE_BACK, RegisterList(r0, r1));
5830 __ stm(r4, NO_WRITE_BACK, RegisterList(r0, r1));
5831 __ b(Narrow, &l_2e32);
5832 // --------------
5833 __ bind(&l_2f0a);
5834 __ ldr(r8, MemOperand(sp, 28));
5835 __ mov(Narrow, lr, r6);
5836 __ ldr(ip, MemOperand(sp, 40));
5837 __ mov(Narrow, r9, r6);
5838 __ ldm(lr, WRITE_BACK, RegisterList(r0, r1, r2, r3));
5839 __ mov(Narrow, r5, r8);
5840 __ mov(Narrow, r4, ip);
5841 __ b(Narrow, &l_2ee0);
5842 // --------------
5843 __ bind(&l_2f20);
5844 __ mov(Narrow, r4, r1);
5845 __ add(Narrow, r3, sp, 48U);
5846 __ str(Narrow, r3, MemOperand(sp, 28));
5847 // --------------
5848 __ bind(&l_2f26);
5849 __ mov(fp, 43691U);
5850 __ mov(Narrow, r0, r6);
5851 __ mov(Narrow, r1, r4);
5852 __ mov(Narrow, r2, r4);
5853 __ mov(Narrow, r3, r7);
5854 __ sub(r8, r4, 144U);
5855 __ movt(fp, 43690U);
5856 // --------------
5857 __ bind(&l_2f3a);
5858 __ bl(&l_2f3a);
5859 // --------------
5860 __ bind(&l_2f3e);
5861 __ add(r4, r8, 120U);
5862 __ ldr(r9, MemOperand(sp, 28));
5863 __ ldm(Narrow, r4, WRITE_BACK, RegisterList(r0, r1, r2, r3));
5864 __ mov(Narrow, r5, r6);
5865 __ add(sl, r8, 120U);
5866 __ add(ip, sp, 52U);
5867 __ pld(MemOperand(r8));
5868 __ mov(Narrow, lr, sp);
5869 __ sub(r8, r8, 24U);
5870 __ stm(r9, WRITE_BACK, RegisterList(r0, r1, r2, r3));
5871 __ ldm(r4, NO_WRITE_BACK, RegisterList(r0, r1));
5872 __ stm(r9, NO_WRITE_BACK, RegisterList(r0, r1));
5873 __ rsb(r9, r6, sl);
5874 __ ldm(Narrow, r5, WRITE_BACK, RegisterList(r0, r1, r2, r3));
5875 __ stm(sl, WRITE_BACK, RegisterList(r0, r1, r2, r3));
5876 __ asr(sl, r9, 3U);
5877 __ ldm(r5, NO_WRITE_BACK, RegisterList(r0, r1));
5878 __ stm(r4, NO_WRITE_BACK, RegisterList(r0, r1));
5879 __ ldm(ip, WRITE_BACK, RegisterList(r0, r1, r2, r3));
5880 __ str(Narrow, r7, MemOperand(sp, 20));
5881 __ stm(lr, WRITE_BACK, RegisterList(r0, r1, r2, r3));
5882 __ mul(r2, fp, sl);
5883 __ ldr(r4, MemOperand(ip));
5884 __ mov(Narrow, r0, r6);
5885 __ movs(Narrow, r1, 0U);
5886 __ ldr(Narrow, r3, MemOperand(sp, 48));
5887 __ str(r4, MemOperand(lr));
5888 // --------------
5889 __ bind(&l_2f9a);
5890 __ bl(&l_2f9a);
5891 __ cmp(r9, 47U);
5892 __ b(gt, Narrow, &l_2f3e);
5893 // --------------
5894 __ bind(&l_2fa4);
5895 __ add(Narrow, sp, sp, 76U);
5896 __ pop(RegisterList(0x8ff0));
5897 __ nop(Narrow);
5898 __ push(RegisterList(0x47f0));
5899 __ movs(Narrow, r4, 0U);
5900 __ ldm(r0, NO_WRITE_BACK, RegisterList(r5, sl));
5901 __ sub(Narrow, sp, sp, 24U);
5902 __ str(Narrow, r4, MemOperand(r0, 40));
5903 __ cmp(Narrow, r5, sl);
5904 __ itt(eq);
5905 __ mvn(eq, r3, 2147483648U);
5906 __ str(eq, Narrow, r3, MemOperand(r0, 36));
5907 __ b(eq, Narrow, &l_302a);
5908 __ mov(Narrow, r7, r0);
5909 __ mov(Narrow, r2, sl);
5910 __ mov(Narrow, r0, r5);
5911 __ cbz(r1, &l_3030);
5912 // --------------
5913 __ bind(&l_2fce);
5914 __ subs(Narrow, r3, r2, r0);
5915 __ mov(r5, 43691U);
5916 __ asrs(Narrow, r3, r3, 3U);
5917 __ ldr(Narrow, r1, MemOperand(r7, 28));
5918 __ ldr(r8, MemOperand(r7, 24));
5919 __ movt(r5, 43690U);
5920 __ mul(r3, r5, r3);
5921 __ add(ip, r1, 4294967295U);
5922 __ add(r1, r8, Operand(ip, LSL, 1));
5923 __ cmp(Narrow, r3, 0U);
5924 __ add(Narrow, r4, r4, r1);
5925 __ mvn(r1, 2147483648U);
5926 __ str(Narrow, r4, MemOperand(r7, 40));
5927 __ b(le, Narrow, &l_3020);
5928 // --------------
5929 __ bind(&l_2ff8);
5930 __ ldr(r5, MemOperand(r2, -24));
5931 __ subs(Narrow, r2, r2, 24U);
5932 }
Generate_46(TestAssembler * assembler)5933 void Generate_46(TestAssembler* assembler) {
5934 __ ldr(Narrow, r3, MemOperand(r2, 12));
5935 __ ldr(lr, MemOperand(r2, 8));
5936 __ ldr(Narrow, r5, MemOperand(r5, 4));
5937 __ subs(r3, 1U);
5938 __ mvns(Narrow, r6, r3);
5939 __ subs(Narrow, r1, r1, r5);
5940 __ add(Narrow, r3, r3, r5);
5941 __ cmp(Narrow, r1, lr);
5942 __ ite(le);
5943 __ and_(le, Narrow, r1, r1, r6);
5944 __ and_(gt, r1, r6, lr);
5945 __ cmp(Narrow, r2, r0);
5946 __ add(Narrow, r4, r4, r3);
5947 __ str(Narrow, r4, MemOperand(r7, 40));
5948 __ b(ne, Narrow, &l_2ff8);
5949 // --------------
5950 __ bind(&l_3020);
5951 __ rsb(r1, r8, r1);
5952 __ bic(r1, r1, ip);
5953 __ str(Narrow, r1, MemOperand(r7, 36));
5954 // --------------
5955 __ bind(&l_302a);
5956 __ add(Narrow, sp, sp, 24U);
5957 __ pop(RegisterList(0x87f0));
5958 // --------------
5959 __ bind(&l_3030);
5960 __ rsb(r4, r5, sl);
5961 __ mov(r2, 43691U);
5962 __ asrs(Narrow, r1, r4, 3U);
5963 __ movt(r2, 43690U);
5964 __ movw(r3, 0U);
5965 __ mul(r2, r2, r1);
5966 __ movt(r3, 0U);
5967 __ mov(Narrow, r0, r5);
5968 __ mov(Narrow, r1, sl);
5969 __ clz(r2, r2);
5970 __ rsb(r2, r2, 31U);
5971 __ lsls(Narrow, r2, r2, 1U);
5972 // --------------
5973 __ bind(&l_3058);
5974 __ bl(&l_3058);
5975 __ cmp(r4, 408U);
5976 __ b(lt, Narrow, &l_30e2);
5977 __ add(r4, r5, 384U);
5978 __ movw(r2, 0U);
5979 __ mov(Narrow, r1, r4);
5980 __ movt(r2, 0U);
5981 __ mov(Narrow, r0, r5);
5982 // --------------
5983 __ bind(&l_3072);
5984 __ bl(&l_3072);
5985 __ cmp(Narrow, sl, r4);
5986 __ it(ne);
5987 __ add(ne, r9, r5, 504U);
5988 __ b(eq, Narrow, &l_30f2);
5989 // --------------
5990 __ bind(&l_3080);
5991 __ sub(r5, r9, 120U);
5992 __ mov(Narrow, r4, sp);
5993 __ ldm(Narrow, r5, WRITE_BACK, RegisterList(r0, r1, r2, r3));
5994 __ sub(r6, r9, 144U);
5995 __ sub(r8, r9, 120U);
5996 __ pld(MemOperand(r9));
5997 __ stm(Narrow, r4, WRITE_BACK, RegisterList(r0, r1, r2, r3));
5998 __ ldm(r5, NO_WRITE_BACK, RegisterList(r0, r1));
5999 __ stm(r4, NO_WRITE_BACK, RegisterList(r0, r1));
6000 __ b(Narrow, &l_30b6);
6001 // --------------
6002 __ bind(&l_30a0);
6003 __ add(r8, r6, 24U);
6004 __ add(r4, r6, 48U);
6005 __ mov(Narrow, r5, r8);
6006 __ ldm(Narrow, r5, WRITE_BACK, RegisterList(r0, r1, r2, r3));
6007 __ stm(Narrow, r4, WRITE_BACK, RegisterList(r0, r1, r2, r3));
6008 __ ldm(r5, NO_WRITE_BACK, RegisterList(r0, r1));
6009 __ stm(r4, NO_WRITE_BACK, RegisterList(r0, r1));
6010 // --------------
6011 __ bind(&l_30b6);
6012 __ mov(Narrow, r1, r6);
6013 __ mov(Narrow, r0, sp);
6014 // --------------
6015 __ bind(&l_30ba);
6016 __ bl(&l_30ba);
6017 __ subs(Narrow, r6, r6, 24U);
6018 __ cmp(Narrow, r0, 0U);
6019 __ b(ne, Narrow, &l_30a0);
6020 __ mov(Narrow, r4, sp);
6021 __ sub(r5, r9, 96U);
6022 __ ldm(Narrow, r4, WRITE_BACK, RegisterList(r0, r1, r2, r3));
6023 __ cmp(Narrow, sl, r5);
6024 __ add(r9, r9, 24U);
6025 __ stm(r8, WRITE_BACK, RegisterList(r0, r1, r2, r3));
6026 __ ldm(r4, NO_WRITE_BACK, RegisterList(r0, r1));
6027 __ stm(r8, NO_WRITE_BACK, RegisterList(r0, r1));
6028 __ b(ne, Narrow, &l_3080);
6029 __ b(Narrow, &l_30f2);
6030 // --------------
6031 __ bind(&l_30e2);
6032 __ movw(r2, 0U);
6033 __ mov(Narrow, r0, r5);
6034 __ mov(Narrow, r1, sl);
6035 __ movt(r2, 0U);
6036 // --------------
6037 __ bind(&l_30ee);
6038 __ bl(&l_30ee);
6039 // --------------
6040 __ bind(&l_30f2);
6041 __ ldr(Narrow, r4, MemOperand(r7, 40));
6042 __ ldm(r7, NO_WRITE_BACK, RegisterList(r0, r2));
6043 __ b(Narrow, &l_2fce);
6044 __ nop(Narrow);
6045 __ push(RegisterList(0x4ff0));
6046 __ mov(Narrow, r9, r2);
6047 __ ldrb(Narrow, r2, MemOperand(r2, 16));
6048 __ sub(Narrow, sp, sp, 92U);
6049 __ mov(Narrow, r8, r0);
6050 __ mov(sl, 0U);
6051 __ str(Narrow, r1, MemOperand(sp, 16));
6052 __ cmp(Narrow, r2, 0U);
6053 __ b(ne, &l_3384);
6054 __ clz(sl, r3);
6055 __ lsr(sl, sl, 5U);
6056 __ add(Narrow, r3, sp, 36U);
6057 __ str(Narrow, r3, MemOperand(sp));
6058 }
Generate_47(TestAssembler * assembler)6059 void Generate_47(TestAssembler* assembler) {
6060 __ mov(Narrow, r2, sl);
6061 __ mov(Narrow, r3, r9);
6062 // --------------
6063 __ bind(&l_3124);
6064 __ bl(&l_3124);
6065 __ cmp(Narrow, r0, 0U);
6066 __ b(eq, &l_3410);
6067 __ ldr(r3, MemOperand(r8, 4));
6068 __ ldr(r1, MemOperand(r8, 12));
6069 __ ldr(Narrow, r4, MemOperand(sp, 36));
6070 __ subs(Narrow, r1, r1, r3);
6071 __ ldr(Narrow, r3, MemOperand(sp, 16));
6072 __ ldr(Narrow, r5, MemOperand(r4));
6073 __ cmp(Narrow, r3, 14U);
6074 __ ldr(r3, MemOperand(r8, 28));
6075 __ b(eq, &l_33e0);
6076 __ cmp(Narrow, r3, 1U);
6077 __ ittte(eq);
6078 __ add(eq, Narrow, r2, r5, 4U);
6079 __ add(eq, Narrow, r6, r1, 4U);
6080 __ mov(eq, Narrow, r3, 4U);
6081 __ mov(ne, Narrow, r2, r5);
6082 __ itt(ne);
6083 __ mov(ne, Narrow, r6, r1);
6084 __ mov(ne, Narrow, r3, 8U);
6085 // --------------
6086 __ bind(&l_315a);
6087 __ ldr(Narrow, r0, MemOperand(r4, 16));
6088 __ add(Narrow, r3, r3, r6);
6089 __ cbz(r0, &l_3164);
6090 __ bic(r3, r3, 0x3);
6091 // --------------
6092 __ bind(&l_3164);
6093 __ add(r0, r8, 96U);
6094 __ ldr(Narrow, r7, MemOperand(r4, 4));
6095 __ str(Narrow, r0, MemOperand(sp, 24));
6096 __ ldr(Narrow, r0, MemOperand(r4, 8));
6097 __ ldr(fp, MemOperand(r4, 12));
6098 __ add(ip, r3, r7);
6099 __ str(r9, MemOperand(sp));
6100 __ add(lr, r3, r0);
6101 __ ldr(Narrow, r0, MemOperand(sp, 24));
6102 __ add(Narrow, r3, sp, 60U);
6103 __ str(ip, MemOperand(sp, 72));
6104 __ str(lr, MemOperand(sp, 76));
6105 __ str(fp, MemOperand(sp, 68));
6106 __ str(Narrow, r6, MemOperand(sp, 60));
6107 __ str(Narrow, r5, MemOperand(sp, 64));
6108 // --------------
6109 __ bind(&l_3192);
6110 __ bl(&l_3192);
6111 __ cmp(Narrow, r0, 0U);
6112 __ b(ne, Narrow, &l_3242);
6113 __ add(r3, r8, 44U);
6114 __ str(Narrow, r3, MemOperand(sp, 8));
6115 // --------------
6116 __ bind(&l_31a0);
6117 __ ldr(Narrow, r2, MemOperand(sp, 8));
6118 __ movw(r3, 0U);
6119 __ movt(r3, 0U);
6120 __ str(Narrow, r3, MemOperand(sp, 20));
6121 __ str(Narrow, r2, MemOperand(sp, 28));
6122 // --------------
6123 __ bind(&l_31ae);
6124 __ ldr(Narrow, r4, &l_3444);
6125 __ movs(Narrow, r3, 0U);
6126 __ str(Narrow, r2, MemOperand(sp, 80));
6127 __ str(Narrow, r3, MemOperand(sp, 64));
6128 __ str(Narrow, r4, MemOperand(sp, 60));
6129 __ strb(r3, MemOperand(sp, 77));
6130 __ str(Narrow, r3, MemOperand(sp, 84));
6131 // --------------
6132 __ bind(&l_31be);
6133 __ ldr(r3, MemOperand(r8, 44));
6134 __ ldr(Narrow, r2, MemOperand(sp, 20));
6135 __ ldr(Narrow, r0, MemOperand(sp, 28));
6136 __ ldr(Narrow, r3, MemOperand(r3));
6137 __ cmp(Narrow, r3, r2);
6138 __ b(ne, &l_33ee);
6139 // --------------
6140 __ bind(&l_31ce);
6141 __ bl(&l_31ce);
6142 // --------------
6143 __ bind(&l_31d2);
6144 __ str(Narrow, r0, MemOperand(sp, 64));
6145 __ ldr(Narrow, r1, MemOperand(r0, 20));
6146 __ ldr(Narrow, r3, MemOperand(r0, 4));
6147 __ ldr(Narrow, r2, MemOperand(r0, 12));
6148 __ add(Narrow, r3, r3, r1);
6149 __ subs(Narrow, r3, r3, r2);
6150 __ cmp(Narrow, r3, 31U);
6151 __ b(hi, Narrow, &l_31ec);
6152 __ lsls(Narrow, r1, r1, 1U);
6153 __ adds(r0, 4U);
6154 __ adds(Narrow, r1, r1, 32U);
6155 // --------------
6156 __ bind(&l_31e8);
6157 __ bl(&l_31e8);
6158 // --------------
6159 __ bind(&l_31ec);
6160 __ movs(Narrow, r3, 1U);
6161 __ strb(r3, MemOperand(sp, 77));
6162 // --------------
6163 __ bind(&l_31f2);
6164 __ ldr(Narrow, r6, &l_3448);
6165 __ mov(Narrow, r2, sl);
6166 __ ldr(Narrow, r1, MemOperand(sp, 16));
6167 __ mov(Narrow, r0, r8);
6168 __ mov(Narrow, r3, r9);
6169 __ str(Narrow, r6, MemOperand(sp, 60));
6170 // --------------
6171 __ bind(&l_31fe);
6172 __ bl(&l_31fe);
6173 __ ldrb(r3, MemOperand(r9, 16));
6174 __ cbnz(r3, &l_3230);
6175 __ ldr(r3, MemOperand(r9, 144));
6176 __ cmp(Narrow, r3, 0U);
6177 __ b(eq, &l_33fa);
6178 __ ldr(Narrow, r5, MemOperand(r3, 4));
6179 __ subs(Narrow, r5, r5, 24U);
6180 // --------------
6181 __ bind(&l_3216);
6182 __ ldm(Narrow, r5, WRITE_BACK, RegisterList(r0, r1, r2, r3));
6183 __ add(Narrow, r7, sp, 36U);
6184 __ stm(Narrow, r7, WRITE_BACK, RegisterList(r0, r1, r2, r3));
6185 __ mov(Narrow, r2, r9);
6186 __ ldm(r5, NO_WRITE_BACK, RegisterList(r0, r1));
6187 __ stm(r7, NO_WRITE_BACK, RegisterList(r0, r1));
6188 }
Generate_48(TestAssembler * assembler)6189 void Generate_48(TestAssembler* assembler) {
6190 __ add(r0, r8, 96U);
6191 __ add(Narrow, r1, sp, 36U);
6192 // --------------
6193 __ bind(&l_322c);
6194 __ bl(&l_322c);
6195 // --------------
6196 __ bind(&l_3230);
6197 __ ldrb(r3, MemOperand(sp, 77));
6198 __ str(Narrow, r4, MemOperand(sp, 60));
6199 __ cmp(Narrow, r3, 0U);
6200 __ b(ne, &l_3366);
6201 // --------------
6202 __ bind(&l_323c);
6203 __ add(Narrow, sp, sp, 92U);
6204 __ pop(RegisterList(0x8ff0));
6205 // --------------
6206 __ bind(&l_3242);
6207 __ add(r3, r8, 44U);
6208 __ ldr(r2, MemOperand(r8, 96));
6209 __ mov(Narrow, r5, r3);
6210 __ str(Narrow, r3, MemOperand(sp, 8));
6211 __ str(Narrow, r3, MemOperand(sp, 28));
6212 __ ldr(r3, MemOperand(r8, 100));
6213 __ ldr(Narrow, r4, MemOperand(r4));
6214 __ ldr(r0, MemOperand(r8, 12));
6215 __ ldr(r1, MemOperand(r8, 4));
6216 __ cmp(Narrow, r2, r3);
6217 __ str(Narrow, r4, MemOperand(sp, 12));
6218 __ sub(r4, r0, r1);
6219 __ b(eq, Narrow, &l_31a0);
6220 __ ldr(r3, MemOperand(r8, 44));
6221 __ mov(Narrow, r0, r5);
6222 __ ldr(Narrow, r3, MemOperand(r3, 36));
6223 __ blx(r3);
6224 __ ldr(r7, MemOperand(r8, 96));
6225 __ ldr(r2, MemOperand(r8, 100));
6226 __ ldr(r1, MemOperand(r8, 120));
6227 __ cmp(Narrow, r7, r2);
6228 __ add(Narrow, r1, r1, r4);
6229 __ b(eq, Narrow, &l_32a0);
6230 __ ldr(Narrow, r3, MemOperand(r7));
6231 __ cmp(Narrow, r9, r3);
6232 __ it(ne);
6233 __ add(ne, r3, r7, 24U);
6234 __ b(ne, Narrow, &l_329a);
6235 __ b(Narrow, &l_340c);
6236 // --------------
6237 __ bind(&l_3292);
6238 __ ldr(r0, MemOperand(r3, 24, PostIndex));
6239 __ cmp(Narrow, r9, r0);
6240 __ b(eq, Narrow, &l_32a4);
6241 // --------------
6242 __ bind(&l_329a);
6243 __ cmp(Narrow, r3, r2);
6244 __ mov(Narrow, fp, r3);
6245 __ b(ne, Narrow, &l_3292);
6246 // --------------
6247 __ bind(&l_32a0);
6248 __ mov(fp, 0U);
6249 // --------------
6250 __ bind(&l_32a4);
6251 __ movw(r3, 0U);
6252 __ movt(r3, 0U);
6253 __ str(Narrow, r3, MemOperand(sp, 20));
6254 // --------------
6255 __ bind(&l_32ae);
6256 __ cmp(Narrow, r7, r2);
6257 __ b(eq, Narrow, &l_3350);
6258 // --------------
6259 __ bind(&l_32b2);
6260 __ ldr(Narrow, r3, MemOperand(sp, 12));
6261 __ ldr(r6, MemOperand(r9, 8));
6262 __ ldr(r4, MemOperand(r8, 136));
6263 __ adds(Narrow, r5, r3, r1);
6264 __ ldr(Narrow, r3, MemOperand(sp, 68));
6265 __ ldr(Narrow, r0, MemOperand(r7, 8));
6266 __ add(Narrow, r4, r4, r5);
6267 __ cmp(Narrow, r3, r6);
6268 __ it(lt);
6269 __ mov(lt, Narrow, r3, r6);
6270 __ cmp(fp, 0U);
6271 __ b(eq, Narrow, &l_32da);
6272 __ ldr(r6, MemOperand(fp, 12));
6273 __ cmp(Narrow, r3, r6);
6274 __ it(lt);
6275 __ mov(lt, Narrow, r3, r6);
6276 // --------------
6277 __ bind(&l_32da);
6278 __ ldr(r5, MemOperand(r9, 4));
6279 __ add(Narrow, r5, r5, r3);
6280 __ subs(r5, 1U);
6281 __ add(Narrow, r4, r4, r5);
6282 __ cmp(Narrow, r0, r4);
6283 __ b(gt, Narrow, &l_33c8);
6284 // --------------
6285 __ bind(&l_32e8);
6286 __ ldr(Narrow, r4, MemOperand(r7, 12));
6287 __ ldr(Narrow, r6, MemOperand(sp, 8));
6288 __ ldr(r3, MemOperand(r8, 44));
6289 __ subs(r4, 1U);
6290 __ ldr(Narrow, r5, MemOperand(r7));
6291 __ adds(Narrow, r2, r1, r4);
6292 __ mov(Narrow, r0, r6);
6293 __ bic(r4, r2, r4);
6294 __ ldr(Narrow, r3, MemOperand(r3, 44));
6295 __ subs(Narrow, r1, r4, r1);
6296 __ blx(r3);
6297 __ ldr(r3, MemOperand(r8, 44));
6298 __ ldr(Narrow, r2, MemOperand(sp, 20));
6299 __ ldr(Narrow, r3, MemOperand(r3));
6300 __ cmp(Narrow, r3, r2);
6301 __ b(ne, Narrow, &l_33f2);
6302 __ mov(Narrow, r0, r6);
6303 // --------------
6304 __ bind(&l_3310);
6305 __ bl(&l_3310);
6306 __ mov(Narrow, r1, r0);
6307 // --------------
6308 __ bind(&l_3316);
6309 __ ldr(Narrow, r3, MemOperand(r5));
6310 __ mov(Narrow, r0, r5);
6311 __ str(Narrow, r4, MemOperand(r5, 20));
6312 __ ldr(Narrow, r3, MemOperand(r3, 20));
6313 __ blx(r3);
6314 __ ldr(Narrow, r3, MemOperand(r5));
6315 __ mov(Narrow, r0, r5);
6316 __ ldr(Narrow, r1, MemOperand(sp, 8));
6317 __ ldr(Narrow, r3, MemOperand(r3, 16));
6318 }
Generate_49(TestAssembler * assembler)6319 void Generate_49(TestAssembler* assembler) {
6320 __ blx(r3);
6321 __ ldr(Narrow, r3, MemOperand(r5));
6322 __ mov(Narrow, r0, r5);
6323 __ ldr(Narrow, r6, MemOperand(r5, 4));
6324 __ ldr(Narrow, r3, MemOperand(r3, 24));
6325 __ blx(r3);
6326 __ cmp(Narrow, r0, 0U);
6327 __ b(eq, Narrow, &l_33d2);
6328 __ movs(Narrow, r3, 1U);
6329 __ mov(Narrow, r1, r7);
6330 __ strb(Narrow, r3, MemOperand(r5, 16));
6331 __ ldr(Narrow, r0, MemOperand(sp, 24));
6332 // --------------
6333 __ bind(&l_3340);
6334 __ bl(&l_3340);
6335 __ mov(Narrow, r7, r0);
6336 // --------------
6337 __ bind(&l_3346);
6338 __ ldr(r2, MemOperand(r8, 100));
6339 __ adds(Narrow, r1, r4, r6);
6340 __ cmp(Narrow, r7, r2);
6341 __ b(ne, Narrow, &l_32b2);
6342 // --------------
6343 __ bind(&l_3350);
6344 __ ldr(Narrow, r0, MemOperand(sp, 24));
6345 __ movs(Narrow, r1, 0U);
6346 // --------------
6347 __ bind(&l_3354);
6348 __ bl(&l_3354);
6349 __ ldr(r3, MemOperand(r8, 44));
6350 __ ldr(Narrow, r0, MemOperand(sp, 8));
6351 __ ldr(Narrow, r3, MemOperand(r3, 40));
6352 __ blx(r3);
6353 __ ldr(Narrow, r2, MemOperand(sp, 8));
6354 __ b(Narrow, &l_31ae);
6355 // --------------
6356 __ bind(&l_3366);
6357 __ ldr(Narrow, r0, MemOperand(sp, 80));
6358 __ cmp(Narrow, r0, 0U);
6359 __ b(eq, &l_323c);
6360 __ ldr(Narrow, r3, MemOperand(sp, 84));
6361 __ movs(Narrow, r2, 0U);
6362 __ strb(r2, MemOperand(sp, 77));
6363 __ cmp(Narrow, r3, 1U);
6364 __ b(ne, &l_323c);
6365 __ ldr(Narrow, r3, MemOperand(r0));
6366 __ ldr(Narrow, r3, MemOperand(r3, 28));
6367 __ blx(r3);
6368 __ b(Narrow, &l_323c);
6369 // --------------
6370 __ bind(&l_3384);
6371 __ ldr(Narrow, r4, &l_3444);
6372 __ adds(r3, r0, 44U);
6373 __ str(sl, MemOperand(sp, 64));
6374 __ strb(sl, MemOperand(sp, 77));
6375 __ str(Narrow, r4, MemOperand(sp, 60));
6376 __ str(Narrow, r3, MemOperand(sp, 28));
6377 __ b(eq, &l_31f2);
6378 __ ldr(Narrow, r6, MemOperand(sp, 28));
6379 __ movs(Narrow, r2, 1U);
6380 __ ldr(r3, MemOperand(r8, 44));
6381 __ movs(Narrow, r1, 32U);
6382 __ str(Narrow, r2, MemOperand(sp, 84));
6383 __ movw(r2, 0U);
6384 __ str(Narrow, r6, MemOperand(sp, 80));
6385 __ mov(Narrow, r0, r6);
6386 __ ldr(Narrow, r3, MemOperand(r3, 32));
6387 __ mov(Narrow, r5, r2);
6388 __ blx(r3);
6389 __ ldr(r3, MemOperand(r8, 44));
6390 __ mov(Narrow, r2, r5);
6391 __ movt(r2, 0U);
6392 __ mov(Narrow, r0, r6);
6393 __ str(Narrow, r2, MemOperand(sp, 20));
6394 __ ldr(Narrow, r3, MemOperand(r3, 24));
6395 __ blx(r3);
6396 __ b(Narrow, &l_31be);
6397 // --------------
6398 __ bind(&l_33c8);
6399 __ ldr(Narrow, r3, MemOperand(r7, 16));
6400 __ cmp(Narrow, r1, r3);
6401 __ b(ge, Narrow, &l_32e8);
6402 __ adds(Narrow, r7, r7, 24U);
6403 __ b(Narrow, &l_32ae);
6404 // --------------
6405 __ bind(&l_33d2);
6406 __ ldr(Narrow, r0, MemOperand(r7));
6407 __ mov(Narrow, r1, r7);
6408 __ adds(Narrow, r7, r7, 24U);
6409 __ ldr(Narrow, r3, MemOperand(r0));
6410 __ ldr(Narrow, r3, MemOperand(r3, 28));
6411 __ blx(r3);
6412 __ b(Narrow, &l_3346);
6413 // --------------
6414 __ bind(&l_33e0);
6415 __ cmp(Narrow, r3, 1U);
6416 __ mov(Narrow, r2, r5);
6417 __ mov(Narrow, r6, r1);
6418 __ ite(eq);
6419 __ mov(eq, Narrow, r3, 4U);
6420 __ mov(ne, Narrow, r3, 8U);
6421 __ b(Narrow, &l_315a);
6422 // --------------
6423 __ bind(&l_33ee);
6424 __ blx(r3);
6425 __ b(Narrow, &l_31d2);
6426 // --------------
6427 __ bind(&l_33f2);
6428 __ ldr(Narrow, r0, MemOperand(sp, 8));
6429 __ blx(r3);
6430 __ mov(Narrow, r1, r0);
6431 __ b(Narrow, &l_3316);
6432 // --------------
6433 __ bind(&l_33fa);
6434 __ ldr(r5, MemOperand(r9, 44));
6435 __ subs(r5, 1U);
6436 __ lsls(Narrow, r3, r5, 5U);
6437 __ sub(r5, r3, Operand(r5, LSL, 3));
6438 __ add(Narrow, r5, r5, r9);
6439 __ adds(Narrow, r5, r5, 48U);
6440 __ b(Narrow, &l_3216);
6441 // --------------
6442 __ bind(&l_340c);
6443 __ mov(Narrow, fp, r7);
6444 __ b(Narrow, &l_32a4);
6445 // --------------
6446 __ bind(&l_3410);
6447 __ movw(r0, 0U);
6448 }
Generate_50(TestAssembler * assembler)6449 void Generate_50(TestAssembler* assembler) {
6450 __ movw(r1, 0U);
6451 __ movw(r2, 0U);
6452 __ movt(r1, 0U);
6453 __ movt(r2, 0U);
6454 __ mov(r3, 1306U);
6455 __ movt(r0, 0U);
6456 // --------------
6457 __ bind(&l_342c);
6458 __ bl(&l_342c);
6459 // --------------
6460 __ bind(&l_3430);
6461 __ bl(&l_3430);
6462 __ add(Narrow, r0, sp, 88U);
6463 __ str(r6, MemOperand(r0, -28, PreIndex));
6464 // --------------
6465 __ bind(&l_343a);
6466 __ bl(&l_343a);
6467 // --------------
6468 __ bind(&l_343e);
6469 __ bl(&l_343e);
6470 __ nop(Narrow);
6471 // --------------
6472 __ bind(&l_3444);
6473 __ Emit32(0x00000008);
6474 // --------------
6475 __ bind(&l_3448);
6476 __ Emit32(0x00000008);
6477 __ push(RegisterList(0x41f0));
6478 __ mov(Narrow, r4, r0);
6479 __ ldr(Narrow, r3, MemOperand(r0, 12));
6480 __ sub(Narrow, sp, sp, 8U);
6481 __ mov(Narrow, r6, r1);
6482 __ mov(Narrow, r0, r1);
6483 __ ldr(Narrow, r5, MemOperand(r4, 4));
6484 __ subs(Narrow, r5, r3, r5);
6485 __ mov(Narrow, r1, r5);
6486 // --------------
6487 __ bind(&l_3460);
6488 __ bl(&l_3460);
6489 __ cbnz(r0, &l_3484);
6490 // --------------
6491 __ bind(&l_3466);
6492 __ add(r8, r4, 96U);
6493 __ add(r7, r4, 44U);
6494 // --------------
6495 __ bind(&l_346e);
6496 __ ldr(Narrow, r5, MemOperand(r4, 12));
6497 __ mov(Narrow, r0, r8);
6498 __ ldr(Narrow, r3, MemOperand(r4, 4));
6499 __ mov(Narrow, r1, r7);
6500 __ mov(Narrow, r2, r6);
6501 __ subs(Narrow, r3, r5, r3);
6502 __ add(Narrow, sp, sp, 8U);
6503 __ pop(RegisterList(0x41f0));
6504 // --------------
6505 __ bind(&l_3480);
6506 __ b(Wide, &l_3480);
6507 // --------------
6508 __ bind(&l_3484);
6509 __ ldr(r3, MemOperand(r4, 132));
6510 __ cmp(Narrow, r5, r3);
6511 __ b(eq, Narrow, &l_3492);
6512 __ adds(Narrow, r2, r5, 2U);
6513 __ cmp(Narrow, r3, r2);
6514 __ b(ge, Narrow, &l_3466);
6515 // --------------
6516 __ bind(&l_3492);
6517 __ add(r8, r4, 96U);
6518 __ add(r7, r4, 44U);
6519 __ movs(Narrow, r3, 0U);
6520 __ mov(Narrow, r2, r5);
6521 __ str(Narrow, r3, MemOperand(sp));
6522 __ mov(Narrow, r0, r8);
6523 __ mov(Narrow, r1, r7);
6524 __ movs(Narrow, r3, 2U);
6525 // --------------
6526 __ bind(&l_34a6);
6527 __ bl(&l_34a6);
6528 __ b(Narrow, &l_346e);
6529 __ ldrb(r3, MemOperand(r0, 32));
6530 __ push(RegisterList(0x43f0));
6531 __ mov(Narrow, r4, r0);
6532 __ sub(Narrow, sp, sp, 12U);
6533 __ cbz(r3, &l_34f8);
6534 __ mov(Narrow, r6, r0);
6535 __ movw(r3, 0U);
6536 __ ldr(r5, MemOperand(r6, 8, PostIndex));
6537 __ movt(r3, 0U);
6538 __ ldr(Narrow, r2, MemOperand(r5));
6539 __ ldr(Narrow, r2, MemOperand(r2, 8));
6540 __ cmp(Narrow, r2, r3);
6541 __ b(ne, Narrow, &l_3518);
6542 __ ldr(Narrow, r7, MemOperand(r5, 12));
6543 __ mov(Narrow, r0, r6);
6544 __ ldr(Narrow, r3, MemOperand(r5, 4));
6545 __ subs(Narrow, r7, r7, r3);
6546 __ mov(Narrow, r1, r7);
6547 // --------------
6548 __ bind(&l_34da);
6549 __ bl(&l_34da);
6550 __ add(r9, r5, 96U);
6551 __ add(r8, r5, 44U);
6552 __ cbnz(r0, &l_3520);
6553 // --------------
6554 __ bind(&l_34e8);
6555 __ ldr(Narrow, r7, MemOperand(r5, 12));
6556 __ mov(Narrow, r0, r9);
6557 __ ldr(Narrow, r3, MemOperand(r5, 4));
6558 __ mov(Narrow, r1, r8);
6559 __ mov(Narrow, r2, r6);
6560 __ subs(Narrow, r3, r7, r3);
6561 // --------------
6562 __ bind(&l_34f4);
6563 __ bl(&l_34f4);
6564 // --------------
6565 __ bind(&l_34f8);
6566 __ ldr(r5, MemOperand(r4, 152));
6567 __ ldr(Narrow, r3, &l_3558);
6568 __ str(Narrow, r3, MemOperand(r4, 8));
6569 __ cbz(r5, &l_3510);
6570 __ ldr(Narrow, r0, MemOperand(r5));
6571 __ cbz(r0, &l_350a);
6572 // --------------
6573 __ bind(&l_3506);
6574 __ bl(&l_3506);
6575 // --------------
6576 __ bind(&l_350a);
6577 __ mov(Narrow, r0, r5);
6578 // --------------
6579 __ bind(&l_350c);
6580 __ bl(&l_350c);
6581 // --------------
6582 __ bind(&l_3510);
6583 __ mov(Narrow, r0, r4);
6584 __ add(Narrow, sp, sp, 12U);
6585 __ pop(RegisterList(0x83f0));
6586 // --------------
6587 __ bind(&l_3518);
6588 __ mov(Narrow, r0, r5);
6589 __ mov(Narrow, r1, r6);
6590 __ blx(r2);
6591 __ b(Narrow, &l_34f8);
6592 // --------------
6593 __ bind(&l_3520);
6594 __ ldr(r3, MemOperand(r5, 132));
6595 __ add(r9, r5, 96U);
6596 }
Generate_51(TestAssembler * assembler)6597 void Generate_51(TestAssembler* assembler) {
6598 __ add(r8, r5, 44U);
6599 __ cmp(Narrow, r7, r3);
6600 __ b(eq, Narrow, &l_3536);
6601 __ adds(Narrow, r2, r7, 2U);
6602 __ cmp(Narrow, r3, r2);
6603 __ b(ge, Narrow, &l_34e8);
6604 // --------------
6605 __ bind(&l_3536);
6606 __ movs(Narrow, r3, 0U);
6607 __ mov(Narrow, r2, r7);
6608 __ str(Narrow, r3, MemOperand(sp));
6609 __ mov(Narrow, r1, r8);
6610 __ mov(Narrow, r0, r9);
6611 __ movs(Narrow, r3, 2U);
6612 // --------------
6613 __ bind(&l_3542);
6614 __ bl(&l_3542);
6615 __ b(Narrow, &l_34e8);
6616 __ ldr(Narrow, r3, &l_3558);
6617 __ add(r0, r4, 36U);
6618 __ str(Narrow, r3, MemOperand(r4, 8));
6619 // --------------
6620 __ bind(&l_3550);
6621 __ bl(&l_3550);
6622 // --------------
6623 __ bind(&l_3554);
6624 __ bl(&l_3554);
6625 // --------------
6626 __ bind(&l_3558);
6627 __ Emit32(0x00000008);
6628 __ push(RegisterList(0x4ff0));
6629 __ adds(r7, r0, 44U);
6630 __ ldr(Narrow, r6, &l_3740);
6631 __ sub(Narrow, sp, sp, 212U);
6632 __ mov(Narrow, r5, r1);
6633 __ mov(r1, 0U);
6634 __ mov(Narrow, r4, r0);
6635 __ mov(Narrow, sl, r2);
6636 __ mov(Narrow, fp, r3);
6637 __ mov(Narrow, r8, r5);
6638 __ str(Narrow, r6, MemOperand(sp, 12));
6639 __ str(Narrow, r1, MemOperand(sp, 16));
6640 __ strb(r1, MemOperand(sp, 29));
6641 __ b(eq, Narrow, &l_35d0);
6642 __ ldr(Narrow, r3, MemOperand(r0, 44));
6643 __ movs(Narrow, r2, 1U);
6644 __ str(Narrow, r2, MemOperand(sp, 36));
6645 __ mov(Narrow, r0, r7);
6646 __ movs(Narrow, r1, 32U);
6647 __ str(Narrow, r7, MemOperand(sp, 32));
6648 __ ldr(Narrow, r3, MemOperand(r3, 32));
6649 __ blx(r3);
6650 __ ldr(Narrow, r3, MemOperand(r4, 44));
6651 __ mov(Narrow, r0, r7);
6652 __ ldr(Narrow, r3, MemOperand(r3, 24));
6653 __ blx(r3);
6654 __ ldr(Narrow, r2, MemOperand(r4, 44));
6655 __ movw(r3, 0U);
6656 __ movt(r3, 0U);
6657 __ mov(Narrow, r0, r7);
6658 __ ldr(Narrow, r2, MemOperand(r2));
6659 __ cmp(Narrow, r2, r3);
6660 __ b(ne, &l_3718);
6661 // --------------
6662 __ bind(&l_35ac);
6663 __ bl(&l_35ac);
6664 // --------------
6665 __ bind(&l_35b0);
6666 __ str(Narrow, r0, MemOperand(sp, 16));
6667 __ ldr(Narrow, r1, MemOperand(r0, 20));
6668 __ ldr(Narrow, r3, MemOperand(r0, 4));
6669 __ ldr(Narrow, r2, MemOperand(r0, 12));
6670 __ add(Narrow, r3, r3, r1);
6671 __ subs(Narrow, r3, r3, r2);
6672 __ cmp(Narrow, r3, 31U);
6673 __ b(hi, Narrow, &l_35ca);
6674 __ lsls(Narrow, r1, r1, 1U);
6675 __ adds(r0, 4U);
6676 __ adds(Narrow, r1, r1, 32U);
6677 // --------------
6678 __ bind(&l_35c6);
6679 __ bl(&l_35c6);
6680 // --------------
6681 __ bind(&l_35ca);
6682 __ movs(Narrow, r3, 1U);
6683 __ strb(r3, MemOperand(sp, 29));
6684 // --------------
6685 __ bind(&l_35d0);
6686 __ ldr(r9, &l_374c);
6687 __ cmp(Narrow, r5, 14U);
6688 __ ldr(Narrow, r1, &l_3744);
6689 __ mov(r3, 0U);
6690 __ mov(r2, 1U);
6691 __ mov(r0, 4U);
6692 __ str(Narrow, r4, MemOperand(sp, 40));
6693 __ str(Narrow, r5, MemOperand(sp, 44));
6694 __ str(r9, MemOperand(sp, 12));
6695 __ str(Narrow, r0, MemOperand(sp, 52));
6696 __ str(Narrow, r2, MemOperand(sp, 56));
6697 __ str(Narrow, r2, MemOperand(sp, 60));
6698 __ strb(r2, MemOperand(sp, 88));
6699 __ str(Narrow, r2, MemOperand(sp, 104));
6700 __ str(Narrow, r2, MemOperand(sp, 128));
6701 __ str(Narrow, r2, MemOperand(sp, 152));
6702 __ str(Narrow, r2, MemOperand(sp, 176));
6703 __ strb(r3, MemOperand(sp, 64));
6704 __ str(Narrow, r3, MemOperand(sp, 68));
6705 __ strb(r3, MemOperand(sp, 72));
6706 __ strb(r3, MemOperand(sp, 76));
6707 __ str(Narrow, r3, MemOperand(sp, 92));
6708 __ str(Narrow, r3, MemOperand(sp, 96));
6709 __ str(Narrow, r3, MemOperand(sp, 100));
6710 __ str(Narrow, r3, MemOperand(sp, 108));
6711 __ str(Narrow, r3, MemOperand(sp, 112));
6712 __ str(Narrow, r3, MemOperand(sp, 116));
6713 __ str(Narrow, r3, MemOperand(sp, 120));
6714 __ str(Narrow, r3, MemOperand(sp, 124));
6715 __ str(Narrow, r3, MemOperand(sp, 132));
6716 __ str(Narrow, r3, MemOperand(sp, 136));
6717 __ str(Narrow, r3, MemOperand(sp, 140));
6718 }
Generate_52(TestAssembler * assembler)6719 void Generate_52(TestAssembler* assembler) {
6720 __ str(Narrow, r3, MemOperand(sp, 144));
6721 __ str(Narrow, r3, MemOperand(sp, 148));
6722 __ str(Narrow, r3, MemOperand(sp, 156));
6723 __ str(Narrow, r3, MemOperand(sp, 160));
6724 __ str(Narrow, r3, MemOperand(sp, 164));
6725 __ str(Narrow, r3, MemOperand(sp, 168));
6726 __ str(Narrow, r3, MemOperand(sp, 172));
6727 __ str(Narrow, r3, MemOperand(sp, 180));
6728 __ str(Narrow, r3, MemOperand(sp, 184));
6729 __ str(Narrow, r3, MemOperand(sp, 188));
6730 __ str(Narrow, r3, MemOperand(sp, 192));
6731 __ strb(r3, MemOperand(sp, 200));
6732 __ str(Narrow, r1, MemOperand(sp, 48));
6733 __ b(eq, Narrow, &l_3646);
6734 __ ldr(Narrow, r2, MemOperand(r4, 28));
6735 __ cmp(Narrow, r2, 1U);
6736 __ b(eq, Narrow, &l_36d6);
6737 // --------------
6738 __ bind(&l_3646);
6739 __ ldr(Narrow, r3, MemOperand(sp, 248));
6740 __ mov(Narrow, r0, r4);
6741 __ mov(Narrow, r1, r8);
6742 __ mov(Narrow, r2, sl);
6743 __ str(Narrow, r3, MemOperand(sp));
6744 __ mov(Narrow, r3, fp);
6745 // --------------
6746 __ bind(&l_3652);
6747 __ bl(&l_3652);
6748 __ ldrb(r3, MemOperand(sp, 72));
6749 __ cbz(r3, &l_3698);
6750 __ ldr(Narrow, r4, MemOperand(sp, 40));
6751 __ movw(r3, 0U);
6752 __ movt(r3, 0U);
6753 __ ldr(Narrow, r2, MemOperand(r4));
6754 __ ldr(Narrow, r2, MemOperand(r2, 8));
6755 __ cmp(Narrow, r2, r3);
6756 __ b(ne, Narrow, &l_36e8);
6757 __ ldr(Narrow, r5, MemOperand(r4, 12));
6758 __ add(Narrow, r0, sp, 48U);
6759 __ ldr(Narrow, r3, MemOperand(r4, 4));
6760 __ subs(Narrow, r5, r5, r3);
6761 __ mov(Narrow, r1, r5);
6762 // --------------
6763 __ bind(&l_3678);
6764 __ bl(&l_3678);
6765 __ add(r8, r4, 96U);
6766 __ add(r7, r4, 44U);
6767 __ cmp(Narrow, r0, 0U);
6768 __ b(ne, Narrow, &l_36f0);
6769 // --------------
6770 __ bind(&l_3688);
6771 __ ldr(Narrow, r5, MemOperand(r4, 12));
6772 __ mov(Narrow, r0, r8);
6773 __ ldr(Narrow, r3, MemOperand(r4, 4));
6774 __ mov(Narrow, r1, r7);
6775 __ add(Narrow, r2, sp, 48U);
6776 __ subs(Narrow, r3, r5, r3);
6777 // --------------
6778 __ bind(&l_3694);
6779 __ bl(&l_3694);
6780 // --------------
6781 __ bind(&l_3698);
6782 __ ldr(Narrow, r4, MemOperand(sp, 192));
6783 __ ldr(Narrow, r3, &l_3748);
6784 __ str(Narrow, r3, MemOperand(sp, 48));
6785 __ cbz(r4, &l_36ae);
6786 __ ldr(Narrow, r0, MemOperand(r4));
6787 __ cbz(r0, &l_36a8);
6788 // --------------
6789 __ bind(&l_36a4);
6790 __ bl(&l_36a4);
6791 // --------------
6792 __ bind(&l_36a8);
6793 __ mov(Narrow, r0, r4);
6794 // --------------
6795 __ bind(&l_36aa);
6796 __ bl(&l_36aa);
6797 // --------------
6798 __ bind(&l_36ae);
6799 __ ldrb(r3, MemOperand(sp, 29));
6800 __ str(Narrow, r6, MemOperand(sp, 12));
6801 __ cbnz(r3, &l_36bc);
6802 // --------------
6803 __ bind(&l_36b6);
6804 __ add(Narrow, sp, sp, 212U);
6805 __ pop(RegisterList(0x8ff0));
6806 // --------------
6807 __ bind(&l_36bc);
6808 __ ldr(Narrow, r0, MemOperand(sp, 32));
6809 __ cmp(Narrow, r0, 0U);
6810 __ b(eq, Narrow, &l_36b6);
6811 __ ldr(Narrow, r3, MemOperand(sp, 36));
6812 __ movs(Narrow, r2, 0U);
6813 __ strb(r2, MemOperand(sp, 29));
6814 __ cmp(Narrow, r3, 1U);
6815 __ b(ne, Narrow, &l_36b6);
6816 __ ldr(Narrow, r3, MemOperand(r0));
6817 __ ldr(Narrow, r3, MemOperand(r3, 28));
6818 __ blx(r3);
6819 __ b(Narrow, &l_36b6);
6820 // --------------
6821 __ bind(&l_36d6);
6822 __ eor(r1, r5, 0x1);
6823 __ mov(Narrow, r0, r4);
6824 __ add(Narrow, r3, sp, 48U);
6825 // --------------
6826 __ bind(&l_36de);
6827 __ bl(&l_36de);
6828 __ mov(r8, 14U);
6829 __ b(Narrow, &l_3646);
6830 // --------------
6831 __ bind(&l_36e8);
6832 __ mov(Narrow, r0, r4);
6833 __ add(Narrow, r1, sp, 48U);
6834 __ blx(r2);
6835 __ b(Narrow, &l_3698);
6836 // --------------
6837 __ bind(&l_36f0);
6838 __ ldr(r3, MemOperand(r4, 132));
6839 __ add(r8, r4, 96U);
6840 __ add(r7, r4, 44U);
6841 __ cmp(Narrow, r5, r3);
6842 __ b(eq, Narrow, &l_3706);
6843 __ adds(Narrow, r2, r5, 2U);
6844 __ cmp(Narrow, r3, r2);
6845 __ b(ge, Narrow, &l_3688);
6846 // --------------
6847 __ bind(&l_3706);
6848 __ movs(Narrow, r3, 0U);
6849 __ mov(Narrow, r2, r5);
6850 __ str(Narrow, r3, MemOperand(sp));
6851 __ mov(Narrow, r1, r7);
6852 __ mov(Narrow, r0, r8);
6853 __ movs(Narrow, r3, 2U);
6854 }
Generate_53(TestAssembler * assembler)6855 void Generate_53(TestAssembler* assembler) {
6856 // --------------
6857 __ bind(&l_3712);
6858 __ bl(&l_3712);
6859 __ b(Narrow, &l_3688);
6860 // --------------
6861 __ bind(&l_3718);
6862 __ blx(r2);
6863 __ b(Narrow, &l_35b0);
6864 __ add(Narrow, r0, sp, 40U);
6865 // --------------
6866 __ bind(&l_371e);
6867 __ bl(&l_371e);
6868 // --------------
6869 __ bind(&l_3722);
6870 __ add(Narrow, r0, sp, 208U);
6871 __ str(r9, MemOperand(r0, -196, PreIndex));
6872 // --------------
6873 __ bind(&l_3728);
6874 __ bl(&l_3728);
6875 // --------------
6876 __ bind(&l_372c);
6877 __ bl(&l_372c);
6878 // --------------
6879 __ bind(&l_3730);
6880 __ ldr(Narrow, r3, &l_3748);
6881 __ add(Narrow, r0, sp, 76U);
6882 __ str(Narrow, r3, MemOperand(sp, 48));
6883 // --------------
6884 __ bind(&l_3736);
6885 __ bl(&l_3736);
6886 __ b(Narrow, &l_3722);
6887 __ b(Narrow, &l_3730);
6888 __ nop(Narrow);
6889 // --------------
6890 __ bind(&l_3740);
6891 __ Emit32(0x00000008);
6892 // --------------
6893 __ bind(&l_3744);
6894 __ Emit32(0x00000008);
6895 // --------------
6896 __ bind(&l_3748);
6897 __ Emit32(0x00000008);
6898 // --------------
6899 __ bind(&l_374c);
6900 __ Emit32(0x00000008);
6901 __ push(RegisterList(0x4ff0));
6902 __ adds(r7, r0, 44U);
6903 __ ldr(Narrow, r6, &l_3938);
6904 __ sub(Narrow, sp, sp, 212U);
6905 __ mov(Narrow, r5, r1);
6906 __ mov(r1, 0U);
6907 __ mov(Narrow, r4, r0);
6908 __ mov(Narrow, sl, r2);
6909 __ mov(Narrow, fp, r3);
6910 __ mov(Narrow, r8, r5);
6911 __ str(Narrow, r6, MemOperand(sp, 12));
6912 __ str(Narrow, r1, MemOperand(sp, 16));
6913 __ strb(r1, MemOperand(sp, 29));
6914 __ b(eq, Narrow, &l_37c4);
6915 __ ldr(Narrow, r3, MemOperand(r0, 44));
6916 __ movs(Narrow, r2, 1U);
6917 __ str(Narrow, r2, MemOperand(sp, 36));
6918 __ mov(Narrow, r0, r7);
6919 __ movs(Narrow, r1, 32U);
6920 __ str(Narrow, r7, MemOperand(sp, 32));
6921 __ ldr(Narrow, r3, MemOperand(r3, 32));
6922 __ blx(r3);
6923 __ ldr(Narrow, r3, MemOperand(r4, 44));
6924 __ mov(Narrow, r0, r7);
6925 __ ldr(Narrow, r3, MemOperand(r3, 24));
6926 __ blx(r3);
6927 __ ldr(Narrow, r2, MemOperand(r4, 44));
6928 __ movw(r3, 0U);
6929 __ movt(r3, 0U);
6930 __ mov(Narrow, r0, r7);
6931 __ ldr(Narrow, r2, MemOperand(r2));
6932 __ cmp(Narrow, r2, r3);
6933 __ b(ne, &l_3910);
6934 // --------------
6935 __ bind(&l_37a0);
6936 __ bl(&l_37a0);
6937 // --------------
6938 __ bind(&l_37a4);
6939 __ str(Narrow, r0, MemOperand(sp, 16));
6940 __ ldr(Narrow, r1, MemOperand(r0, 20));
6941 __ ldr(Narrow, r3, MemOperand(r0, 4));
6942 __ ldr(Narrow, r2, MemOperand(r0, 12));
6943 __ add(Narrow, r3, r3, r1);
6944 __ subs(Narrow, r3, r3, r2);
6945 __ cmp(Narrow, r3, 31U);
6946 __ b(hi, Narrow, &l_37be);
6947 __ lsls(Narrow, r1, r1, 1U);
6948 __ adds(r0, 4U);
6949 __ adds(Narrow, r1, r1, 32U);
6950 // --------------
6951 __ bind(&l_37ba);
6952 __ bl(&l_37ba);
6953 // --------------
6954 __ bind(&l_37be);
6955 __ movs(Narrow, r3, 1U);
6956 __ strb(r3, MemOperand(sp, 29));
6957 // --------------
6958 __ bind(&l_37c4);
6959 __ ldr(r9, &l_3944);
6960 __ cmp(Narrow, r5, 14U);
6961 __ ldr(Narrow, r1, &l_393c);
6962 __ mov(r3, 0U);
6963 __ mov(r2, 1U);
6964 __ mov(r0, 4U);
6965 __ str(Narrow, r4, MemOperand(sp, 40));
6966 __ str(Narrow, r5, MemOperand(sp, 44));
6967 __ str(r9, MemOperand(sp, 12));
6968 __ str(Narrow, r0, MemOperand(sp, 52));
6969 __ str(Narrow, r2, MemOperand(sp, 56));
6970 __ str(Narrow, r2, MemOperand(sp, 60));
6971 __ strb(r2, MemOperand(sp, 88));
6972 __ str(Narrow, r2, MemOperand(sp, 104));
6973 __ str(Narrow, r2, MemOperand(sp, 128));
6974 __ str(Narrow, r2, MemOperand(sp, 152));
6975 __ str(Narrow, r2, MemOperand(sp, 176));
6976 __ strb(r3, MemOperand(sp, 64));
6977 __ str(Narrow, r3, MemOperand(sp, 68));
6978 __ strb(r3, MemOperand(sp, 72));
6979 __ strb(r3, MemOperand(sp, 76));
6980 __ str(Narrow, r3, MemOperand(sp, 92));
6981 __ str(Narrow, r3, MemOperand(sp, 96));
6982 __ str(Narrow, r3, MemOperand(sp, 100));
6983 __ str(Narrow, r3, MemOperand(sp, 108));
6984 __ str(Narrow, r3, MemOperand(sp, 112));
6985 __ str(Narrow, r3, MemOperand(sp, 116));
6986 __ str(Narrow, r3, MemOperand(sp, 120));
6987 __ str(Narrow, r3, MemOperand(sp, 124));
6988 __ str(Narrow, r3, MemOperand(sp, 132));
6989 __ str(Narrow, r3, MemOperand(sp, 136));
6990 }
Generate_54(TestAssembler * assembler)6991 void Generate_54(TestAssembler* assembler) {
6992 __ str(Narrow, r3, MemOperand(sp, 140));
6993 __ str(Narrow, r3, MemOperand(sp, 144));
6994 __ str(Narrow, r3, MemOperand(sp, 148));
6995 __ str(Narrow, r3, MemOperand(sp, 156));
6996 __ str(Narrow, r3, MemOperand(sp, 160));
6997 __ str(Narrow, r3, MemOperand(sp, 164));
6998 __ str(Narrow, r3, MemOperand(sp, 168));
6999 __ str(Narrow, r3, MemOperand(sp, 172));
7000 __ str(Narrow, r3, MemOperand(sp, 180));
7001 __ str(Narrow, r3, MemOperand(sp, 184));
7002 __ str(Narrow, r3, MemOperand(sp, 188));
7003 __ str(Narrow, r3, MemOperand(sp, 192));
7004 __ strb(r3, MemOperand(sp, 200));
7005 __ str(Narrow, r1, MemOperand(sp, 48));
7006 __ b(eq, Narrow, &l_383a);
7007 __ ldr(Narrow, r2, MemOperand(r4, 28));
7008 __ cmp(Narrow, r2, 1U);
7009 __ b(eq, Narrow, &l_38ce);
7010 // --------------
7011 __ bind(&l_383a);
7012 __ ldr(Narrow, r3, MemOperand(sp, 248));
7013 __ mov(Narrow, r0, r4);
7014 __ mov(Narrow, r1, r8);
7015 __ mov(Narrow, r2, sl);
7016 __ str(Narrow, r3, MemOperand(sp));
7017 __ ldr(Narrow, r3, MemOperand(sp, 252));
7018 __ str(Narrow, r3, MemOperand(sp, 4));
7019 __ mov(Narrow, r3, fp);
7020 // --------------
7021 __ bind(&l_384a);
7022 __ bl(&l_384a);
7023 __ ldrb(r3, MemOperand(sp, 72));
7024 __ cbz(r3, &l_3890);
7025 __ ldr(Narrow, r4, MemOperand(sp, 40));
7026 __ movw(r3, 0U);
7027 __ movt(r3, 0U);
7028 __ ldr(Narrow, r2, MemOperand(r4));
7029 __ ldr(Narrow, r2, MemOperand(r2, 8));
7030 __ cmp(Narrow, r2, r3);
7031 __ b(ne, Narrow, &l_38e0);
7032 __ ldr(Narrow, r5, MemOperand(r4, 12));
7033 __ add(Narrow, r0, sp, 48U);
7034 __ ldr(Narrow, r3, MemOperand(r4, 4));
7035 __ subs(Narrow, r5, r5, r3);
7036 __ mov(Narrow, r1, r5);
7037 // --------------
7038 __ bind(&l_3870);
7039 __ bl(&l_3870);
7040 __ add(r8, r4, 96U);
7041 __ add(r7, r4, 44U);
7042 __ cmp(Narrow, r0, 0U);
7043 __ b(ne, Narrow, &l_38e8);
7044 // --------------
7045 __ bind(&l_3880);
7046 __ ldr(Narrow, r5, MemOperand(r4, 12));
7047 __ mov(Narrow, r0, r8);
7048 __ ldr(Narrow, r3, MemOperand(r4, 4));
7049 __ mov(Narrow, r1, r7);
7050 __ add(Narrow, r2, sp, 48U);
7051 __ subs(Narrow, r3, r5, r3);
7052 // --------------
7053 __ bind(&l_388c);
7054 __ bl(&l_388c);
7055 // --------------
7056 __ bind(&l_3890);
7057 __ ldr(Narrow, r4, MemOperand(sp, 192));
7058 __ ldr(Narrow, r3, &l_3940);
7059 __ str(Narrow, r3, MemOperand(sp, 48));
7060 __ cbz(r4, &l_38a6);
7061 __ ldr(Narrow, r0, MemOperand(r4));
7062 __ cbz(r0, &l_38a0);
7063 // --------------
7064 __ bind(&l_389c);
7065 __ bl(&l_389c);
7066 // --------------
7067 __ bind(&l_38a0);
7068 __ mov(Narrow, r0, r4);
7069 // --------------
7070 __ bind(&l_38a2);
7071 __ bl(&l_38a2);
7072 // --------------
7073 __ bind(&l_38a6);
7074 __ ldrb(r3, MemOperand(sp, 29));
7075 __ str(Narrow, r6, MemOperand(sp, 12));
7076 __ cbnz(r3, &l_38b4);
7077 // --------------
7078 __ bind(&l_38ae);
7079 __ add(Narrow, sp, sp, 212U);
7080 __ pop(RegisterList(0x8ff0));
7081 // --------------
7082 __ bind(&l_38b4);
7083 __ ldr(Narrow, r0, MemOperand(sp, 32));
7084 __ cmp(Narrow, r0, 0U);
7085 __ b(eq, Narrow, &l_38ae);
7086 __ ldr(Narrow, r3, MemOperand(sp, 36));
7087 __ movs(Narrow, r2, 0U);
7088 __ strb(r2, MemOperand(sp, 29));
7089 __ cmp(Narrow, r3, 1U);
7090 __ b(ne, Narrow, &l_38ae);
7091 __ ldr(Narrow, r3, MemOperand(r0));
7092 __ ldr(Narrow, r3, MemOperand(r3, 28));
7093 __ blx(r3);
7094 __ b(Narrow, &l_38ae);
7095 // --------------
7096 __ bind(&l_38ce);
7097 __ eor(r1, r5, 0x1);
7098 __ mov(Narrow, r0, r4);
7099 __ add(Narrow, r3, sp, 48U);
7100 // --------------
7101 __ bind(&l_38d6);
7102 __ bl(&l_38d6);
7103 __ mov(r8, 14U);
7104 __ b(Narrow, &l_383a);
7105 // --------------
7106 __ bind(&l_38e0);
7107 __ mov(Narrow, r0, r4);
7108 __ add(Narrow, r1, sp, 48U);
7109 __ blx(r2);
7110 __ b(Narrow, &l_3890);
7111 // --------------
7112 __ bind(&l_38e8);
7113 __ ldr(r3, MemOperand(r4, 132));
7114 __ add(r8, r4, 96U);
7115 __ add(r7, r4, 44U);
7116 __ cmp(Narrow, r5, r3);
7117 __ b(eq, Narrow, &l_38fe);
7118 __ adds(Narrow, r2, r5, 2U);
7119 __ cmp(Narrow, r3, r2);
7120 __ b(ge, Narrow, &l_3880);
7121 // --------------
7122 __ bind(&l_38fe);
7123 __ movs(Narrow, r3, 0U);
7124 __ mov(Narrow, r2, r5);
7125 __ str(Narrow, r3, MemOperand(sp));
7126 }
Generate_55(TestAssembler * assembler)7127 void Generate_55(TestAssembler* assembler) {
7128 __ mov(Narrow, r1, r7);
7129 __ mov(Narrow, r0, r8);
7130 __ movs(Narrow, r3, 2U);
7131 // --------------
7132 __ bind(&l_390a);
7133 __ bl(&l_390a);
7134 __ b(Narrow, &l_3880);
7135 // --------------
7136 __ bind(&l_3910);
7137 __ blx(r2);
7138 __ b(Narrow, &l_37a4);
7139 __ add(Narrow, r0, sp, 40U);
7140 // --------------
7141 __ bind(&l_3916);
7142 __ bl(&l_3916);
7143 // --------------
7144 __ bind(&l_391a);
7145 __ add(Narrow, r0, sp, 208U);
7146 __ str(r9, MemOperand(r0, -196, PreIndex));
7147 // --------------
7148 __ bind(&l_3920);
7149 __ bl(&l_3920);
7150 // --------------
7151 __ bind(&l_3924);
7152 __ bl(&l_3924);
7153 // --------------
7154 __ bind(&l_3928);
7155 __ ldr(Narrow, r3, &l_3940);
7156 __ add(Narrow, r0, sp, 76U);
7157 __ str(Narrow, r3, MemOperand(sp, 48));
7158 // --------------
7159 __ bind(&l_392e);
7160 __ bl(&l_392e);
7161 __ b(Narrow, &l_391a);
7162 __ b(Narrow, &l_3928);
7163 __ nop(Narrow);
7164 // --------------
7165 __ bind(&l_3938);
7166 __ Emit32(0x00000008);
7167 // --------------
7168 __ bind(&l_393c);
7169 __ Emit32(0x00000008);
7170 // --------------
7171 __ bind(&l_3940);
7172 __ Emit32(0x00000008);
7173 // --------------
7174 __ bind(&l_3944);
7175 __ Emit32(0x00000008);
7176 __ push(RegisterList(0x4ff0));
7177 __ adds(r7, r0, 44U);
7178 __ ldr(Narrow, r6, &l_3b30);
7179 __ sub(Narrow, sp, sp, 212U);
7180 __ mov(Narrow, r5, r1);
7181 __ mov(r1, 0U);
7182 __ mov(Narrow, r4, r0);
7183 __ mov(Narrow, sl, r2);
7184 __ mov(Narrow, fp, r3);
7185 __ mov(Narrow, r8, r5);
7186 __ str(Narrow, r6, MemOperand(sp, 12));
7187 __ str(Narrow, r1, MemOperand(sp, 16));
7188 __ strb(r1, MemOperand(sp, 29));
7189 __ b(eq, Narrow, &l_39bc);
7190 __ ldr(Narrow, r3, MemOperand(r0, 44));
7191 __ movs(Narrow, r2, 1U);
7192 __ str(Narrow, r2, MemOperand(sp, 36));
7193 __ mov(Narrow, r0, r7);
7194 __ movs(Narrow, r1, 32U);
7195 __ str(Narrow, r7, MemOperand(sp, 32));
7196 __ ldr(Narrow, r3, MemOperand(r3, 32));
7197 __ blx(r3);
7198 __ ldr(Narrow, r3, MemOperand(r4, 44));
7199 __ mov(Narrow, r0, r7);
7200 __ ldr(Narrow, r3, MemOperand(r3, 24));
7201 __ blx(r3);
7202 __ ldr(Narrow, r2, MemOperand(r4, 44));
7203 __ movw(r3, 0U);
7204 __ movt(r3, 0U);
7205 __ mov(Narrow, r0, r7);
7206 __ ldr(Narrow, r2, MemOperand(r2));
7207 __ cmp(Narrow, r2, r3);
7208 __ b(ne, &l_3b08);
7209 // --------------
7210 __ bind(&l_3998);
7211 __ bl(&l_3998);
7212 // --------------
7213 __ bind(&l_399c);
7214 __ str(Narrow, r0, MemOperand(sp, 16));
7215 __ ldr(Narrow, r1, MemOperand(r0, 20));
7216 __ ldr(Narrow, r3, MemOperand(r0, 4));
7217 __ ldr(Narrow, r2, MemOperand(r0, 12));
7218 __ add(Narrow, r3, r3, r1);
7219 __ subs(Narrow, r3, r3, r2);
7220 __ cmp(Narrow, r3, 31U);
7221 __ b(hi, Narrow, &l_39b6);
7222 __ lsls(Narrow, r1, r1, 1U);
7223 __ adds(r0, 4U);
7224 __ adds(Narrow, r1, r1, 32U);
7225 // --------------
7226 __ bind(&l_39b2);
7227 __ bl(&l_39b2);
7228 // --------------
7229 __ bind(&l_39b6);
7230 __ movs(Narrow, r3, 1U);
7231 __ strb(r3, MemOperand(sp, 29));
7232 // --------------
7233 __ bind(&l_39bc);
7234 __ ldr(r9, &l_3b3c);
7235 __ cmp(Narrow, r5, 14U);
7236 __ ldr(Narrow, r1, &l_3b34);
7237 __ mov(r3, 0U);
7238 __ mov(r2, 1U);
7239 __ mov(r0, 4U);
7240 __ str(Narrow, r4, MemOperand(sp, 40));
7241 __ str(Narrow, r5, MemOperand(sp, 44));
7242 __ str(r9, MemOperand(sp, 12));
7243 __ str(Narrow, r0, MemOperand(sp, 52));
7244 __ str(Narrow, r2, MemOperand(sp, 56));
7245 __ str(Narrow, r2, MemOperand(sp, 60));
7246 __ strb(r2, MemOperand(sp, 88));
7247 __ str(Narrow, r2, MemOperand(sp, 104));
7248 __ str(Narrow, r2, MemOperand(sp, 128));
7249 __ str(Narrow, r2, MemOperand(sp, 152));
7250 __ str(Narrow, r2, MemOperand(sp, 176));
7251 __ strb(r3, MemOperand(sp, 64));
7252 __ str(Narrow, r3, MemOperand(sp, 68));
7253 __ strb(r3, MemOperand(sp, 72));
7254 __ strb(r3, MemOperand(sp, 76));
7255 __ str(Narrow, r3, MemOperand(sp, 92));
7256 __ str(Narrow, r3, MemOperand(sp, 96));
7257 __ str(Narrow, r3, MemOperand(sp, 100));
7258 __ str(Narrow, r3, MemOperand(sp, 108));
7259 __ str(Narrow, r3, MemOperand(sp, 112));
7260 __ str(Narrow, r3, MemOperand(sp, 116));
7261 __ str(Narrow, r3, MemOperand(sp, 120));
7262 }
Generate_56(TestAssembler * assembler)7263 void Generate_56(TestAssembler* assembler) {
7264 __ str(Narrow, r3, MemOperand(sp, 124));
7265 __ str(Narrow, r3, MemOperand(sp, 132));
7266 __ str(Narrow, r3, MemOperand(sp, 136));
7267 __ str(Narrow, r3, MemOperand(sp, 140));
7268 __ str(Narrow, r3, MemOperand(sp, 144));
7269 __ str(Narrow, r3, MemOperand(sp, 148));
7270 __ str(Narrow, r3, MemOperand(sp, 156));
7271 __ str(Narrow, r3, MemOperand(sp, 160));
7272 __ str(Narrow, r3, MemOperand(sp, 164));
7273 __ str(Narrow, r3, MemOperand(sp, 168));
7274 __ str(Narrow, r3, MemOperand(sp, 172));
7275 __ str(Narrow, r3, MemOperand(sp, 180));
7276 __ str(Narrow, r3, MemOperand(sp, 184));
7277 __ str(Narrow, r3, MemOperand(sp, 188));
7278 __ str(Narrow, r3, MemOperand(sp, 192));
7279 __ strb(r3, MemOperand(sp, 200));
7280 __ str(Narrow, r1, MemOperand(sp, 48));
7281 __ b(eq, Narrow, &l_3a32);
7282 __ ldr(Narrow, r2, MemOperand(r4, 28));
7283 __ cmp(Narrow, r2, 1U);
7284 __ b(eq, Narrow, &l_3ac6);
7285 // --------------
7286 __ bind(&l_3a32);
7287 __ ldr(Narrow, r3, MemOperand(sp, 248));
7288 __ mov(Narrow, r0, r4);
7289 __ mov(Narrow, r1, r8);
7290 __ mov(Narrow, r2, sl);
7291 __ str(Narrow, r3, MemOperand(sp));
7292 __ ldr(Narrow, r3, MemOperand(sp, 252));
7293 __ str(Narrow, r3, MemOperand(sp, 4));
7294 __ mov(Narrow, r3, fp);
7295 // --------------
7296 __ bind(&l_3a42);
7297 __ bl(&l_3a42);
7298 __ ldrb(r3, MemOperand(sp, 72));
7299 __ cbz(r3, &l_3a88);
7300 __ ldr(Narrow, r4, MemOperand(sp, 40));
7301 __ movw(r3, 0U);
7302 __ movt(r3, 0U);
7303 __ ldr(Narrow, r2, MemOperand(r4));
7304 __ ldr(Narrow, r2, MemOperand(r2, 8));
7305 __ cmp(Narrow, r2, r3);
7306 __ b(ne, Narrow, &l_3ad8);
7307 __ ldr(Narrow, r5, MemOperand(r4, 12));
7308 __ add(Narrow, r0, sp, 48U);
7309 __ ldr(Narrow, r3, MemOperand(r4, 4));
7310 __ subs(Narrow, r5, r5, r3);
7311 __ mov(Narrow, r1, r5);
7312 // --------------
7313 __ bind(&l_3a68);
7314 __ bl(&l_3a68);
7315 __ add(r8, r4, 96U);
7316 __ add(r7, r4, 44U);
7317 __ cmp(Narrow, r0, 0U);
7318 __ b(ne, Narrow, &l_3ae0);
7319 // --------------
7320 __ bind(&l_3a78);
7321 __ ldr(Narrow, r5, MemOperand(r4, 12));
7322 __ mov(Narrow, r0, r8);
7323 __ ldr(Narrow, r3, MemOperand(r4, 4));
7324 __ mov(Narrow, r1, r7);
7325 __ add(Narrow, r2, sp, 48U);
7326 __ subs(Narrow, r3, r5, r3);
7327 // --------------
7328 __ bind(&l_3a84);
7329 __ bl(&l_3a84);
7330 // --------------
7331 __ bind(&l_3a88);
7332 __ ldr(Narrow, r4, MemOperand(sp, 192));
7333 __ ldr(Narrow, r3, &l_3b38);
7334 __ str(Narrow, r3, MemOperand(sp, 48));
7335 __ cbz(r4, &l_3a9e);
7336 __ ldr(Narrow, r0, MemOperand(r4));
7337 __ cbz(r0, &l_3a98);
7338 // --------------
7339 __ bind(&l_3a94);
7340 __ bl(&l_3a94);
7341 // --------------
7342 __ bind(&l_3a98);
7343 __ mov(Narrow, r0, r4);
7344 // --------------
7345 __ bind(&l_3a9a);
7346 __ bl(&l_3a9a);
7347 // --------------
7348 __ bind(&l_3a9e);
7349 __ ldrb(r3, MemOperand(sp, 29));
7350 __ str(Narrow, r6, MemOperand(sp, 12));
7351 __ cbnz(r3, &l_3aac);
7352 // --------------
7353 __ bind(&l_3aa6);
7354 __ add(Narrow, sp, sp, 212U);
7355 __ pop(RegisterList(0x8ff0));
7356 // --------------
7357 __ bind(&l_3aac);
7358 __ ldr(Narrow, r0, MemOperand(sp, 32));
7359 __ cmp(Narrow, r0, 0U);
7360 __ b(eq, Narrow, &l_3aa6);
7361 __ ldr(Narrow, r3, MemOperand(sp, 36));
7362 __ movs(Narrow, r2, 0U);
7363 __ strb(r2, MemOperand(sp, 29));
7364 __ cmp(Narrow, r3, 1U);
7365 __ b(ne, Narrow, &l_3aa6);
7366 __ ldr(Narrow, r3, MemOperand(r0));
7367 __ ldr(Narrow, r3, MemOperand(r3, 28));
7368 __ blx(r3);
7369 __ b(Narrow, &l_3aa6);
7370 // --------------
7371 __ bind(&l_3ac6);
7372 __ eor(r1, r5, 0x1);
7373 __ mov(Narrow, r0, r4);
7374 __ add(Narrow, r3, sp, 48U);
7375 // --------------
7376 __ bind(&l_3ace);
7377 __ bl(&l_3ace);
7378 __ mov(r8, 14U);
7379 __ b(Narrow, &l_3a32);
7380 // --------------
7381 __ bind(&l_3ad8);
7382 __ mov(Narrow, r0, r4);
7383 __ add(Narrow, r1, sp, 48U);
7384 __ blx(r2);
7385 __ b(Narrow, &l_3a88);
7386 // --------------
7387 __ bind(&l_3ae0);
7388 __ ldr(r3, MemOperand(r4, 132));
7389 __ add(r8, r4, 96U);
7390 __ add(r7, r4, 44U);
7391 __ cmp(Narrow, r5, r3);
7392 __ b(eq, Narrow, &l_3af6);
7393 __ adds(Narrow, r2, r5, 2U);
7394 __ cmp(Narrow, r3, r2);
7395 __ b(ge, Narrow, &l_3a78);
7396 }
Generate_57(TestAssembler * assembler)7397 void Generate_57(TestAssembler* assembler) {
7398 // --------------
7399 __ bind(&l_3af6);
7400 __ movs(Narrow, r3, 0U);
7401 __ mov(Narrow, r2, r5);
7402 __ str(Narrow, r3, MemOperand(sp));
7403 __ mov(Narrow, r1, r7);
7404 __ mov(Narrow, r0, r8);
7405 __ movs(Narrow, r3, 2U);
7406 // --------------
7407 __ bind(&l_3b02);
7408 __ bl(&l_3b02);
7409 __ b(Narrow, &l_3a78);
7410 // --------------
7411 __ bind(&l_3b08);
7412 __ blx(r2);
7413 __ b(Narrow, &l_399c);
7414 __ add(Narrow, r0, sp, 40U);
7415 // --------------
7416 __ bind(&l_3b0e);
7417 __ bl(&l_3b0e);
7418 // --------------
7419 __ bind(&l_3b12);
7420 __ add(Narrow, r0, sp, 208U);
7421 __ str(r9, MemOperand(r0, -196, PreIndex));
7422 // --------------
7423 __ bind(&l_3b18);
7424 __ bl(&l_3b18);
7425 // --------------
7426 __ bind(&l_3b1c);
7427 __ bl(&l_3b1c);
7428 // --------------
7429 __ bind(&l_3b20);
7430 __ ldr(Narrow, r3, &l_3b38);
7431 __ add(Narrow, r0, sp, 76U);
7432 __ str(Narrow, r3, MemOperand(sp, 48));
7433 // --------------
7434 __ bind(&l_3b26);
7435 __ bl(&l_3b26);
7436 __ b(Narrow, &l_3b12);
7437 __ b(Narrow, &l_3b20);
7438 __ nop(Narrow);
7439 // --------------
7440 __ bind(&l_3b30);
7441 __ Emit32(0x00000008);
7442 // --------------
7443 __ bind(&l_3b34);
7444 __ Emit32(0x00000008);
7445 // --------------
7446 __ bind(&l_3b38);
7447 __ Emit32(0x00000008);
7448 // --------------
7449 __ bind(&l_3b3c);
7450 __ Emit32(0x00000008);
7451 __ movw(r3, 0U);
7452 __ push(RegisterList(0x47f0));
7453 __ movt(r3, 0U);
7454 __ mov(Narrow, r6, r0);
7455 __ adds(r4, r6, 44U);
7456 __ sub(Narrow, sp, sp, 232U);
7457 __ ldr(Narrow, r0, MemOperand(r3));
7458 __ mov(r2, 800U);
7459 __ ldr(Narrow, r7, &l_3d1c);
7460 __ mov(r3, 0U);
7461 __ mov(Narrow, r8, r1);
7462 __ vstr(s0, MemOperand(sp, 8));
7463 __ str(Narrow, r0, MemOperand(sp, 24));
7464 __ str(Narrow, r7, MemOperand(sp, 36));
7465 __ str(Narrow, r2, MemOperand(sp, 16));
7466 __ str(Narrow, r3, MemOperand(sp, 40));
7467 __ strb(r3, MemOperand(sp, 53));
7468 __ b(eq, Narrow, &l_3bc4);
7469 __ ldr(Narrow, r3, MemOperand(r6, 44));
7470 __ movs(Narrow, r2, 1U);
7471 __ str(Narrow, r2, MemOperand(sp, 60));
7472 __ mov(Narrow, r0, r4);
7473 __ movs(Narrow, r1, 32U);
7474 __ str(Narrow, r4, MemOperand(sp, 56));
7475 __ ldr(Narrow, r3, MemOperand(r3, 32));
7476 __ blx(r3);
7477 __ ldr(Narrow, r3, MemOperand(r6, 44));
7478 __ mov(Narrow, r0, r4);
7479 __ ldr(Narrow, r3, MemOperand(r3, 24));
7480 __ blx(r3);
7481 __ ldr(Narrow, r2, MemOperand(r6, 44));
7482 __ movw(r3, 0U);
7483 __ movt(r3, 0U);
7484 __ mov(Narrow, r0, r4);
7485 __ ldr(Narrow, r2, MemOperand(r2));
7486 __ cmp(Narrow, r2, r3);
7487 __ b(ne, &l_3cf8);
7488 // --------------
7489 __ bind(&l_3ba0);
7490 __ bl(&l_3ba0);
7491 // --------------
7492 __ bind(&l_3ba4);
7493 __ str(Narrow, r0, MemOperand(sp, 40));
7494 __ ldr(Narrow, r1, MemOperand(r0, 20));
7495 __ ldr(Narrow, r2, MemOperand(r0, 4));
7496 __ ldr(Narrow, r3, MemOperand(r0, 12));
7497 __ add(Narrow, r2, r2, r1);
7498 __ subs(Narrow, r2, r2, r3);
7499 __ cmp(Narrow, r2, 31U);
7500 __ b(hi, Narrow, &l_3bbe);
7501 __ lsls(Narrow, r1, r1, 1U);
7502 __ adds(r0, 4U);
7503 __ adds(Narrow, r1, r1, 32U);
7504 // --------------
7505 __ bind(&l_3bba);
7506 __ bl(&l_3bba);
7507 // --------------
7508 __ bind(&l_3bbe);
7509 __ movs(Narrow, r3, 1U);
7510 __ strb(r3, MemOperand(sp, 53));
7511 // --------------
7512 __ bind(&l_3bc4);
7513 __ ldr(r9, &l_3d24);
7514 __ movs(Narrow, r4, 0U);
7515 __ ldr(lr, &l_3d28);
7516 __ movs(Narrow, r5, 1U);
7517 __ movs(Narrow, r2, 14U);
7518 __ mov(sl, 4U);
7519 __ add(ip, sp, 8U);
7520 __ str(Narrow, r2, MemOperand(sp, 68));
7521 __ str(Narrow, r6, MemOperand(sp, 64));
7522 __ mov(Narrow, r1, r2);
7523 __ str(r9, MemOperand(sp, 36));
7524 __ mov(Narrow, r0, r6);
7525 __ str(sl, MemOperand(sp, 76));
7526 __ mov(Narrow, r3, r8);
7527 __ str(Narrow, r5, MemOperand(sp, 80));
7528 __ mov(r2, 800U);
7529 __ str(Narrow, r5, MemOperand(sp, 84));
7530 __ strb(r5, MemOperand(sp, 112));
7531 __ str(Narrow, r5, MemOperand(sp, 128));
7532 __ str(Narrow, r5, MemOperand(sp, 152));
7533 __ str(Narrow, r5, MemOperand(sp, 176));
7534 }
Generate_58(TestAssembler * assembler)7535 void Generate_58(TestAssembler* assembler) {
7536 __ str(Narrow, r5, MemOperand(sp, 200));
7537 __ strb(r4, MemOperand(sp, 88));
7538 __ str(Narrow, r4, MemOperand(sp, 92));
7539 __ strb(r4, MemOperand(sp, 96));
7540 __ strb(r4, MemOperand(sp, 100));
7541 __ str(Narrow, r4, MemOperand(sp, 116));
7542 __ str(Narrow, r4, MemOperand(sp, 120));
7543 __ str(Narrow, r4, MemOperand(sp, 124));
7544 __ str(Narrow, r4, MemOperand(sp, 132));
7545 __ str(Narrow, r4, MemOperand(sp, 136));
7546 __ str(Narrow, r4, MemOperand(sp, 140));
7547 __ str(Narrow, r4, MemOperand(sp, 144));
7548 __ str(Narrow, r4, MemOperand(sp, 148));
7549 __ str(Narrow, r4, MemOperand(sp, 156));
7550 __ str(Narrow, r4, MemOperand(sp, 160));
7551 __ str(Narrow, r4, MemOperand(sp, 164));
7552 __ str(Narrow, r4, MemOperand(sp, 168));
7553 __ str(Narrow, r4, MemOperand(sp, 172));
7554 __ str(Narrow, r4, MemOperand(sp, 180));
7555 __ str(Narrow, r4, MemOperand(sp, 184));
7556 __ str(Narrow, r4, MemOperand(sp, 188));
7557 __ str(Narrow, r4, MemOperand(sp, 192));
7558 __ str(Narrow, r4, MemOperand(sp, 196));
7559 __ str(Narrow, r4, MemOperand(sp, 204));
7560 __ str(ip, MemOperand(sp));
7561 __ str(Narrow, r4, MemOperand(sp, 208));
7562 __ str(Narrow, r4, MemOperand(sp, 212));
7563 __ str(Narrow, r4, MemOperand(sp, 216));
7564 __ strb(r4, MemOperand(sp, 224));
7565 __ str(lr, MemOperand(sp, 72));
7566 // --------------
7567 __ bind(&l_3c46);
7568 __ bl(&l_3c46);
7569 __ ldrb(r3, MemOperand(sp, 96));
7570 __ cbz(r3, &l_3c8a);
7571 __ ldr(Narrow, r4, MemOperand(sp, 64));
7572 __ movw(r3, 0U);
7573 __ movt(r3, 0U);
7574 __ ldr(Narrow, r2, MemOperand(r4));
7575 __ ldr(Narrow, r2, MemOperand(r2, 8));
7576 __ cmp(Narrow, r2, r3);
7577 __ b(ne, Narrow, &l_3cc8);
7578 __ ldr(Narrow, r5, MemOperand(r4, 12));
7579 __ add(Narrow, r0, sp, 72U);
7580 __ ldr(Narrow, r3, MemOperand(r4, 4));
7581 __ subs(Narrow, r5, r5, r3);
7582 __ mov(Narrow, r1, r5);
7583 // --------------
7584 __ bind(&l_3c6c);
7585 __ bl(&l_3c6c);
7586 __ add(r8, r4, 96U);
7587 __ add(r6, r4, 44U);
7588 __ cbnz(r0, &l_3cd0);
7589 // --------------
7590 __ bind(&l_3c7a);
7591 __ ldr(Narrow, r5, MemOperand(r4, 12));
7592 __ mov(Narrow, r0, r8);
7593 __ ldr(Narrow, r3, MemOperand(r4, 4));
7594 __ mov(Narrow, r1, r6);
7595 __ add(Narrow, r2, sp, 72U);
7596 __ subs(Narrow, r3, r5, r3);
7597 // --------------
7598 __ bind(&l_3c86);
7599 __ bl(&l_3c86);
7600 // --------------
7601 __ bind(&l_3c8a);
7602 __ ldr(Narrow, r4, MemOperand(sp, 216));
7603 __ ldr(Narrow, r3, &l_3d20);
7604 __ str(Narrow, r3, MemOperand(sp, 72));
7605 __ cbz(r4, &l_3ca0);
7606 __ ldr(Narrow, r0, MemOperand(r4));
7607 __ cbz(r0, &l_3c9a);
7608 // --------------
7609 __ bind(&l_3c96);
7610 __ bl(&l_3c96);
7611 // --------------
7612 __ bind(&l_3c9a);
7613 __ mov(Narrow, r0, r4);
7614 // --------------
7615 __ bind(&l_3c9c);
7616 __ bl(&l_3c9c);
7617 // --------------
7618 __ bind(&l_3ca0);
7619 __ ldrb(r3, MemOperand(sp, 53));
7620 __ str(Narrow, r7, MemOperand(sp, 36));
7621 __ cbnz(r3, &l_3cae);
7622 // --------------
7623 __ bind(&l_3ca8);
7624 __ add(Narrow, sp, sp, 232U);
7625 __ pop(RegisterList(0x87f0));
7626 // --------------
7627 __ bind(&l_3cae);
7628 __ ldr(Narrow, r0, MemOperand(sp, 56));
7629 __ cmp(Narrow, r0, 0U);
7630 __ b(eq, Narrow, &l_3ca8);
7631 __ ldr(Narrow, r3, MemOperand(sp, 60));
7632 __ movs(Narrow, r2, 0U);
7633 __ strb(r2, MemOperand(sp, 53));
7634 __ cmp(Narrow, r3, 1U);
7635 __ b(ne, Narrow, &l_3ca8);
7636 __ ldr(Narrow, r3, MemOperand(r0));
7637 __ ldr(Narrow, r3, MemOperand(r3, 28));
7638 __ blx(r3);
7639 __ b(Narrow, &l_3ca8);
7640 // --------------
7641 __ bind(&l_3cc8);
7642 __ mov(Narrow, r0, r4);
7643 __ add(Narrow, r1, sp, 72U);
7644 __ blx(r2);
7645 __ b(Narrow, &l_3c8a);
7646 // --------------
7647 __ bind(&l_3cd0);
7648 __ ldr(r3, MemOperand(r4, 132));
7649 __ add(r8, r4, 96U);
7650 __ add(r6, r4, 44U);
7651 __ cmp(Narrow, r5, r3);
7652 __ b(eq, Narrow, &l_3ce6);
7653 __ adds(Narrow, r2, r5, 2U);
7654 __ cmp(Narrow, r3, r2);
7655 __ b(ge, Narrow, &l_3c7a);
7656 // --------------
7657 __ bind(&l_3ce6);
7658 __ movs(Narrow, r3, 0U);
7659 __ mov(Narrow, r2, r5);
7660 __ str(Narrow, r3, MemOperand(sp));
7661 __ mov(Narrow, r1, r6);
7662 __ mov(Narrow, r0, r8);
7663 __ movs(Narrow, r3, 2U);
7664 }
Generate_59(TestAssembler * assembler)7665 void Generate_59(TestAssembler* assembler) {
7666 // --------------
7667 __ bind(&l_3cf2);
7668 __ bl(&l_3cf2);
7669 __ b(Narrow, &l_3c7a);
7670 // --------------
7671 __ bind(&l_3cf8);
7672 __ blx(r2);
7673 __ b(Narrow, &l_3ba4);
7674 __ ldr(Narrow, r3, &l_3d20);
7675 __ add(Narrow, r0, sp, 100U);
7676 __ str(Narrow, r3, MemOperand(sp, 72));
7677 // --------------
7678 __ bind(&l_3d02);
7679 __ bl(&l_3d02);
7680 // --------------
7681 __ bind(&l_3d06);
7682 __ add(Narrow, r0, sp, 232U);
7683 __ str(r9, MemOperand(r0, -196, PreIndex));
7684 // --------------
7685 __ bind(&l_3d0c);
7686 __ bl(&l_3d0c);
7687 // --------------
7688 __ bind(&l_3d10);
7689 __ bl(&l_3d10);
7690 __ add(Narrow, r0, sp, 64U);
7691 // --------------
7692 __ bind(&l_3d16);
7693 __ bl(&l_3d16);
7694 __ b(Narrow, &l_3d06);
7695 // --------------
7696 __ bind(&l_3d1c);
7697 __ Emit32(0x00000008);
7698 // --------------
7699 __ bind(&l_3d20);
7700 __ Emit32(0x00000008);
7701 // --------------
7702 __ bind(&l_3d24);
7703 __ Emit32(0x00000008);
7704 // --------------
7705 __ bind(&l_3d28);
7706 __ Emit32(0x00000008);
7707 __ push(RegisterList(0x47f0));
7708 __ adds(r9, r0, 44U);
7709 __ ldr(Narrow, r6, &l_3f14);
7710 __ sub(Narrow, sp, sp, 208U);
7711 __ mov(Narrow, r5, r1);
7712 __ mov(r1, 0U);
7713 __ mov(Narrow, r4, r0);
7714 __ mov(Narrow, sl, r2);
7715 __ mov(Narrow, r7, r3);
7716 __ mov(Narrow, r8, r5);
7717 __ str(Narrow, r6, MemOperand(sp, 12));
7718 __ str(Narrow, r1, MemOperand(sp, 16));
7719 __ strb(r1, MemOperand(sp, 29));
7720 __ b(eq, Narrow, &l_3da2);
7721 __ ldr(Narrow, r3, MemOperand(r0, 44));
7722 __ movs(Narrow, r2, 1U);
7723 __ str(Narrow, r2, MemOperand(sp, 36));
7724 __ mov(Narrow, r0, r9);
7725 __ movs(Narrow, r1, 32U);
7726 __ str(r9, MemOperand(sp, 32));
7727 __ ldr(Narrow, r3, MemOperand(r3, 32));
7728 __ blx(r3);
7729 __ ldr(Narrow, r3, MemOperand(r4, 44));
7730 __ mov(Narrow, r0, r9);
7731 __ ldr(Narrow, r3, MemOperand(r3, 24));
7732 __ blx(r3);
7733 __ ldr(Narrow, r2, MemOperand(r4, 44));
7734 __ movw(r3, 0U);
7735 __ movt(r3, 0U);
7736 __ mov(Narrow, r0, r9);
7737 __ ldr(Narrow, r2, MemOperand(r2));
7738 __ cmp(Narrow, r2, r3);
7739 __ b(ne, &l_3eec);
7740 // --------------
7741 __ bind(&l_3d7e);
7742 __ bl(&l_3d7e);
7743 // --------------
7744 __ bind(&l_3d82);
7745 __ str(Narrow, r0, MemOperand(sp, 16));
7746 __ ldr(Narrow, r1, MemOperand(r0, 20));
7747 __ ldr(Narrow, r3, MemOperand(r0, 4));
7748 __ ldr(Narrow, r2, MemOperand(r0, 12));
7749 __ add(Narrow, r3, r3, r1);
7750 __ subs(Narrow, r3, r3, r2);
7751 __ cmp(Narrow, r3, 31U);
7752 __ b(hi, Narrow, &l_3d9c);
7753 __ lsls(Narrow, r1, r1, 1U);
7754 __ adds(r0, 4U);
7755 __ adds(Narrow, r1, r1, 32U);
7756 // --------------
7757 __ bind(&l_3d98);
7758 __ bl(&l_3d98);
7759 // --------------
7760 __ bind(&l_3d9c);
7761 __ movs(Narrow, r3, 1U);
7762 __ strb(r3, MemOperand(sp, 29));
7763 // --------------
7764 __ bind(&l_3da2);
7765 __ ldr(r9, &l_3f20);
7766 __ cmp(Narrow, r5, 14U);
7767 __ ldr(Narrow, r1, &l_3f18);
7768 __ mov(r3, 0U);
7769 __ mov(r2, 1U);
7770 __ mov(r0, 4U);
7771 __ str(Narrow, r4, MemOperand(sp, 40));
7772 __ str(Narrow, r5, MemOperand(sp, 44));
7773 __ str(r9, MemOperand(sp, 12));
7774 __ str(Narrow, r0, MemOperand(sp, 52));
7775 __ str(Narrow, r2, MemOperand(sp, 56));
7776 __ str(Narrow, r2, MemOperand(sp, 60));
7777 __ strb(r2, MemOperand(sp, 88));
7778 __ str(Narrow, r2, MemOperand(sp, 104));
7779 __ str(Narrow, r2, MemOperand(sp, 128));
7780 __ str(Narrow, r2, MemOperand(sp, 152));
7781 __ str(Narrow, r2, MemOperand(sp, 176));
7782 __ strb(r3, MemOperand(sp, 64));
7783 __ str(Narrow, r3, MemOperand(sp, 68));
7784 __ strb(r3, MemOperand(sp, 72));
7785 __ strb(r3, MemOperand(sp, 76));
7786 __ str(Narrow, r3, MemOperand(sp, 92));
7787 __ str(Narrow, r3, MemOperand(sp, 96));
7788 __ str(Narrow, r3, MemOperand(sp, 100));
7789 __ str(Narrow, r3, MemOperand(sp, 108));
7790 __ str(Narrow, r3, MemOperand(sp, 112));
7791 __ str(Narrow, r3, MemOperand(sp, 116));
7792 __ str(Narrow, r3, MemOperand(sp, 120));
7793 __ str(Narrow, r3, MemOperand(sp, 124));
7794 __ str(Narrow, r3, MemOperand(sp, 132));
7795 __ str(Narrow, r3, MemOperand(sp, 136));
7796 __ str(Narrow, r3, MemOperand(sp, 140));
7797 __ str(Narrow, r3, MemOperand(sp, 144));
7798 }
Generate_60(TestAssembler * assembler)7799 void Generate_60(TestAssembler* assembler) {
7800 __ str(Narrow, r3, MemOperand(sp, 148));
7801 __ str(Narrow, r3, MemOperand(sp, 156));
7802 __ str(Narrow, r3, MemOperand(sp, 160));
7803 __ str(Narrow, r3, MemOperand(sp, 164));
7804 __ str(Narrow, r3, MemOperand(sp, 168));
7805 __ str(Narrow, r3, MemOperand(sp, 172));
7806 __ str(Narrow, r3, MemOperand(sp, 180));
7807 __ str(Narrow, r3, MemOperand(sp, 184));
7808 __ str(Narrow, r3, MemOperand(sp, 188));
7809 __ str(Narrow, r3, MemOperand(sp, 192));
7810 __ strb(r3, MemOperand(sp, 200));
7811 __ str(Narrow, r1, MemOperand(sp, 48));
7812 __ b(eq, Narrow, &l_3e18);
7813 __ ldr(Narrow, r2, MemOperand(r4, 28));
7814 __ cmp(Narrow, r2, 1U);
7815 __ b(eq, Narrow, &l_3eaa);
7816 // --------------
7817 __ bind(&l_3e18);
7818 __ ldr(Narrow, r3, MemOperand(sp, 240));
7819 __ mov(Narrow, r0, r4);
7820 __ str(Narrow, r7, MemOperand(sp));
7821 __ mov(Narrow, r1, r8);
7822 __ movs(Narrow, r2, 0U);
7823 __ str(Narrow, r3, MemOperand(sp, 4));
7824 __ mov(Narrow, r3, sl);
7825 // --------------
7826 __ bind(&l_3e26);
7827 __ bl(&l_3e26);
7828 __ ldrb(r3, MemOperand(sp, 72));
7829 __ cbz(r3, &l_3e6c);
7830 __ ldr(Narrow, r4, MemOperand(sp, 40));
7831 __ movw(r3, 0U);
7832 __ movt(r3, 0U);
7833 __ ldr(Narrow, r2, MemOperand(r4));
7834 __ ldr(Narrow, r2, MemOperand(r2, 8));
7835 __ cmp(Narrow, r2, r3);
7836 __ b(ne, Narrow, &l_3ebc);
7837 __ ldr(Narrow, r5, MemOperand(r4, 12));
7838 __ add(Narrow, r0, sp, 48U);
7839 __ ldr(Narrow, r3, MemOperand(r4, 4));
7840 __ subs(Narrow, r5, r5, r3);
7841 __ mov(Narrow, r1, r5);
7842 // --------------
7843 __ bind(&l_3e4c);
7844 __ bl(&l_3e4c);
7845 __ add(r8, r4, 96U);
7846 __ add(r7, r4, 44U);
7847 __ cmp(Narrow, r0, 0U);
7848 __ b(ne, Narrow, &l_3ec4);
7849 // --------------
7850 __ bind(&l_3e5c);
7851 __ ldr(Narrow, r5, MemOperand(r4, 12));
7852 __ mov(Narrow, r0, r8);
7853 __ ldr(Narrow, r3, MemOperand(r4, 4));
7854 __ mov(Narrow, r1, r7);
7855 __ add(Narrow, r2, sp, 48U);
7856 __ subs(Narrow, r3, r5, r3);
7857 // --------------
7858 __ bind(&l_3e68);
7859 __ bl(&l_3e68);
7860 // --------------
7861 __ bind(&l_3e6c);
7862 __ ldr(Narrow, r4, MemOperand(sp, 192));
7863 __ ldr(Narrow, r3, &l_3f1c);
7864 __ str(Narrow, r3, MemOperand(sp, 48));
7865 __ cbz(r4, &l_3e82);
7866 __ ldr(Narrow, r0, MemOperand(r4));
7867 __ cbz(r0, &l_3e7c);
7868 // --------------
7869 __ bind(&l_3e78);
7870 __ bl(&l_3e78);
7871 // --------------
7872 __ bind(&l_3e7c);
7873 __ mov(Narrow, r0, r4);
7874 // --------------
7875 __ bind(&l_3e7e);
7876 __ bl(&l_3e7e);
7877 // --------------
7878 __ bind(&l_3e82);
7879 __ ldrb(r3, MemOperand(sp, 29));
7880 __ str(Narrow, r6, MemOperand(sp, 12));
7881 __ cbnz(r3, &l_3e90);
7882 // --------------
7883 __ bind(&l_3e8a);
7884 __ add(Narrow, sp, sp, 208U);
7885 __ pop(RegisterList(0x87f0));
7886 // --------------
7887 __ bind(&l_3e90);
7888 __ ldr(Narrow, r0, MemOperand(sp, 32));
7889 __ cmp(Narrow, r0, 0U);
7890 __ b(eq, Narrow, &l_3e8a);
7891 __ ldr(Narrow, r3, MemOperand(sp, 36));
7892 __ movs(Narrow, r2, 0U);
7893 __ strb(r2, MemOperand(sp, 29));
7894 __ cmp(Narrow, r3, 1U);
7895 __ b(ne, Narrow, &l_3e8a);
7896 __ ldr(Narrow, r3, MemOperand(r0));
7897 __ ldr(Narrow, r3, MemOperand(r3, 28));
7898 __ blx(r3);
7899 __ b(Narrow, &l_3e8a);
7900 // --------------
7901 __ bind(&l_3eaa);
7902 __ eor(r1, r5, 0x1);
7903 __ mov(Narrow, r0, r4);
7904 __ add(Narrow, r3, sp, 48U);
7905 // --------------
7906 __ bind(&l_3eb2);
7907 __ bl(&l_3eb2);
7908 __ mov(r8, 14U);
7909 __ b(Narrow, &l_3e18);
7910 // --------------
7911 __ bind(&l_3ebc);
7912 __ mov(Narrow, r0, r4);
7913 __ add(Narrow, r1, sp, 48U);
7914 __ blx(r2);
7915 __ b(Narrow, &l_3e6c);
7916 // --------------
7917 __ bind(&l_3ec4);
7918 __ ldr(r3, MemOperand(r4, 132));
7919 __ add(r8, r4, 96U);
7920 __ add(r7, r4, 44U);
7921 __ cmp(Narrow, r5, r3);
7922 __ b(eq, Narrow, &l_3eda);
7923 __ adds(Narrow, r2, r5, 2U);
7924 __ cmp(Narrow, r3, r2);
7925 __ b(ge, Narrow, &l_3e5c);
7926 // --------------
7927 __ bind(&l_3eda);
7928 __ movs(Narrow, r3, 0U);
7929 __ mov(Narrow, r2, r5);
7930 __ str(Narrow, r3, MemOperand(sp));
7931 __ mov(Narrow, r1, r7);
7932 __ mov(Narrow, r0, r8);
7933 __ movs(Narrow, r3, 2U);
7934 }
Generate_61(TestAssembler * assembler)7935 void Generate_61(TestAssembler* assembler) {
7936 // --------------
7937 __ bind(&l_3ee6);
7938 __ bl(&l_3ee6);
7939 __ b(Narrow, &l_3e5c);
7940 // --------------
7941 __ bind(&l_3eec);
7942 __ blx(r2);
7943 __ b(Narrow, &l_3d82);
7944 __ add(Narrow, r0, sp, 40U);
7945 // --------------
7946 __ bind(&l_3ef2);
7947 __ bl(&l_3ef2);
7948 // --------------
7949 __ bind(&l_3ef6);
7950 __ add(Narrow, r0, sp, 208U);
7951 __ str(r9, MemOperand(r0, -196, PreIndex));
7952 // --------------
7953 __ bind(&l_3efc);
7954 __ bl(&l_3efc);
7955 // --------------
7956 __ bind(&l_3f00);
7957 __ bl(&l_3f00);
7958 // --------------
7959 __ bind(&l_3f04);
7960 __ ldr(Narrow, r3, &l_3f1c);
7961 __ add(Narrow, r0, sp, 76U);
7962 __ str(Narrow, r3, MemOperand(sp, 48));
7963 // --------------
7964 __ bind(&l_3f0a);
7965 __ bl(&l_3f0a);
7966 __ b(Narrow, &l_3ef6);
7967 __ b(Narrow, &l_3f04);
7968 __ nop(Narrow);
7969 // --------------
7970 __ bind(&l_3f14);
7971 __ Emit32(0x00000008);
7972 // --------------
7973 __ bind(&l_3f18);
7974 __ Emit32(0x00000008);
7975 // --------------
7976 __ bind(&l_3f1c);
7977 __ Emit32(0x00000008);
7978 // --------------
7979 __ bind(&l_3f20);
7980 __ Emit32(0x00000008);
7981 __ push(RegisterList(0x4ff0));
7982 __ adds(r4, r0, 44U);
7983 __ ldr(r8, &l_41ec);
7984 __ sub(Narrow, sp, sp, 212U);
7985 __ mov(Narrow, r7, r1);
7986 __ mov(r1, 0U);
7987 __ mov(Narrow, r5, r0);
7988 __ mov(Narrow, r9, r2);
7989 __ mov(Narrow, r6, r3);
7990 __ mov(Narrow, sl, r7);
7991 __ str(r8, MemOperand(sp, 12));
7992 __ str(Narrow, r1, MemOperand(sp, 16));
7993 __ strb(r1, MemOperand(sp, 29));
7994 __ b(eq, Narrow, &l_3f9c);
7995 __ ldr(Narrow, r3, MemOperand(r0, 44));
7996 __ movs(Narrow, r2, 1U);
7997 __ str(Narrow, r2, MemOperand(sp, 36));
7998 __ mov(Narrow, r0, r4);
7999 __ movs(Narrow, r1, 32U);
8000 __ str(Narrow, r4, MemOperand(sp, 32));
8001 __ ldr(Narrow, r3, MemOperand(r3, 32));
8002 __ blx(r3);
8003 __ ldr(Narrow, r3, MemOperand(r5, 44));
8004 __ mov(Narrow, r0, r4);
8005 __ ldr(Narrow, r3, MemOperand(r3, 24));
8006 __ blx(r3);
8007 __ ldr(Narrow, r2, MemOperand(r5, 44));
8008 __ movw(r3, 0U);
8009 __ movt(r3, 0U);
8010 __ mov(Narrow, r0, r4);
8011 __ ldr(Narrow, r2, MemOperand(r2));
8012 __ cmp(Narrow, r2, r3);
8013 __ b(ne, &l_4160);
8014 // --------------
8015 __ bind(&l_3f78);
8016 __ bl(&l_3f78);
8017 // --------------
8018 __ bind(&l_3f7c);
8019 __ str(Narrow, r0, MemOperand(sp, 16));
8020 __ ldr(Narrow, r1, MemOperand(r0, 20));
8021 __ ldr(Narrow, r3, MemOperand(r0, 4));
8022 __ ldr(Narrow, r2, MemOperand(r0, 12));
8023 __ add(Narrow, r3, r3, r1);
8024 __ subs(Narrow, r3, r3, r2);
8025 __ cmp(Narrow, r3, 31U);
8026 __ b(hi, Narrow, &l_3f96);
8027 __ lsls(Narrow, r1, r1, 1U);
8028 __ adds(r0, 4U);
8029 __ adds(Narrow, r1, r1, 32U);
8030 // --------------
8031 __ bind(&l_3f92);
8032 __ bl(&l_3f92);
8033 // --------------
8034 __ bind(&l_3f96);
8035 __ movs(Narrow, r4, 1U);
8036 __ strb(r4, MemOperand(sp, 29));
8037 // --------------
8038 __ bind(&l_3f9c);
8039 __ ldr(Narrow, r2, MemOperand(r6, 4));
8040 __ ldr(fp, &l_41f0);
8041 __ ubfx(r3, r2, 5U, 4U);
8042 __ str(fp, MemOperand(sp, 12));
8043 __ cbz(r3, &l_4000);
8044 __ ldr(Narrow, r1, MemOperand(r6, 8));
8045 __ ldr(Narrow, r0, MemOperand(r6, 16));
8046 __ cmp(Narrow, r1, 4U);
8047 __ b(eq, &l_4118);
8048 __ tst(r0, 0x1e0);
8049 __ b(ne, &l_4126);
8050 __ ldr(Narrow, r3, MemOperand(r6, 12));
8051 __ and_(r0, r9, 0x1f);
8052 __ cbnz(r3, &l_3fd0);
8053 __ and_(lr, r2, 0x1f);
8054 __ cmp(Narrow, r0, lr);
8055 __ b(eq, &l_4146);
8056 // --------------
8057 __ bind(&l_3fd0);
8058 __ ldr(Narrow, r3, MemOperand(r6, 12));
8059 __ cbnz(r3, &l_3fe6);
8060 __ cmp(Narrow, r0, 15U);
8061 __ b(eq, &l_4142);
8062 __ and_(r3, r2, 0x1f);
8063 __ cmp(Narrow, r3, 15U);
8064 __ it(ne);
8065 __ mov(ne, Narrow, r1, 1U);
8066 __ b(ne, Narrow, &l_400c);
8067 // --------------
8068 __ bind(&l_3fe6);
8069 __ cmp(Narrow, r0, 7U);
8070 __ b(hi, &l_4142);
8071 __ and_(r2, r2, 0x1f);
8072 __ cmp(Narrow, r2, 7U);
8073 __ b(hi, &l_4142);
8074 }
Generate_62(TestAssembler * assembler)8075 void Generate_62(TestAssembler* assembler) {
8076 __ cmp(Narrow, r1, 2U);
8077 __ ite(hi);
8078 __ mov(hi, Narrow, r1, 0U);
8079 __ mov(ls, Narrow, r1, 1U);
8080 __ b(Narrow, &l_400c);
8081 // --------------
8082 __ bind(&l_4000);
8083 __ and_(r2, r9, 0x1f);
8084 __ cmp(Narrow, r2, 7U);
8085 __ b(ls, &l_410c);
8086 // --------------
8087 __ bind(&l_400a);
8088 __ mov(Narrow, r1, r3);
8089 // --------------
8090 __ bind(&l_400c);
8091 __ ldr(Narrow, r2, &l_41e4);
8092 __ cmp(Narrow, r7, 14U);
8093 __ mov(r4, 0U);
8094 __ mov(r3, 1U);
8095 __ mov(r0, 4U);
8096 __ str(Narrow, r5, MemOperand(sp, 40));
8097 __ str(Narrow, r7, MemOperand(sp, 44));
8098 __ str(Narrow, r0, MemOperand(sp, 52));
8099 __ str(Narrow, r3, MemOperand(sp, 56));
8100 __ str(Narrow, r3, MemOperand(sp, 60));
8101 __ strb(r3, MemOperand(sp, 88));
8102 __ str(Narrow, r3, MemOperand(sp, 104));
8103 __ str(Narrow, r3, MemOperand(sp, 128));
8104 __ str(Narrow, r3, MemOperand(sp, 152));
8105 __ str(Narrow, r3, MemOperand(sp, 176));
8106 __ strb(r4, MemOperand(sp, 64));
8107 __ str(Narrow, r4, MemOperand(sp, 68));
8108 __ strb(r4, MemOperand(sp, 72));
8109 __ strb(r4, MemOperand(sp, 76));
8110 __ str(Narrow, r4, MemOperand(sp, 92));
8111 __ str(Narrow, r4, MemOperand(sp, 96));
8112 __ str(Narrow, r4, MemOperand(sp, 100));
8113 __ str(Narrow, r4, MemOperand(sp, 108));
8114 __ str(Narrow, r4, MemOperand(sp, 112));
8115 __ str(Narrow, r4, MemOperand(sp, 116));
8116 __ str(Narrow, r4, MemOperand(sp, 120));
8117 __ str(Narrow, r4, MemOperand(sp, 124));
8118 __ str(Narrow, r4, MemOperand(sp, 132));
8119 __ str(Narrow, r4, MemOperand(sp, 136));
8120 __ str(Narrow, r4, MemOperand(sp, 140));
8121 __ str(Narrow, r4, MemOperand(sp, 144));
8122 __ str(Narrow, r4, MemOperand(sp, 148));
8123 __ str(Narrow, r4, MemOperand(sp, 156));
8124 __ str(Narrow, r4, MemOperand(sp, 160));
8125 __ str(Narrow, r4, MemOperand(sp, 164));
8126 __ str(Narrow, r4, MemOperand(sp, 168));
8127 __ str(Narrow, r4, MemOperand(sp, 172));
8128 __ str(Narrow, r4, MemOperand(sp, 180));
8129 __ str(Narrow, r4, MemOperand(sp, 184));
8130 __ str(Narrow, r4, MemOperand(sp, 188));
8131 __ str(Narrow, r4, MemOperand(sp, 192));
8132 __ strb(r1, MemOperand(sp, 200));
8133 __ str(Narrow, r2, MemOperand(sp, 48));
8134 __ b(eq, Narrow, &l_407a);
8135 __ ldr(Narrow, r2, MemOperand(r5, 28));
8136 __ cmp(Narrow, r2, r3);
8137 __ b(eq, Narrow, &l_4164);
8138 // --------------
8139 __ bind(&l_407a);
8140 __ str(Narrow, r6, MemOperand(sp));
8141 __ mov(Narrow, r0, r5);
8142 __ mov(Narrow, r1, sl);
8143 __ mov(Narrow, r3, r9);
8144 __ movs(Narrow, r2, 0U);
8145 // --------------
8146 __ bind(&l_4084);
8147 __ bl(&l_4084);
8148 __ ldrb(r3, MemOperand(sp, 72));
8149 __ cbz(r3, &l_40cc);
8150 __ ldr(Narrow, r4, MemOperand(sp, 40));
8151 __ movw(r3, 0U);
8152 __ movt(r3, 0U);
8153 __ ldr(Narrow, r2, MemOperand(r4));
8154 __ ldr(Narrow, r2, MemOperand(r2, 8));
8155 __ cmp(Narrow, r2, r3);
8156 __ b(ne, &l_41ac);
8157 __ ldr(Narrow, r5, MemOperand(r4, 12));
8158 __ add(Narrow, r0, sp, 48U);
8159 __ ldr(Narrow, r3, MemOperand(r4, 4));
8160 __ subs(Narrow, r5, r5, r3);
8161 __ mov(Narrow, r1, r5);
8162 // --------------
8163 __ bind(&l_40ac);
8164 __ bl(&l_40ac);
8165 __ add(r7, r4, 96U);
8166 __ add(r6, r4, 44U);
8167 __ cmp(Narrow, r0, 0U);
8168 __ b(ne, Narrow, &l_4184);
8169 // --------------
8170 __ bind(&l_40bc);
8171 __ ldr(Narrow, r5, MemOperand(r4, 12));
8172 __ mov(Narrow, r0, r7);
8173 __ ldr(Narrow, r3, MemOperand(r4, 4));
8174 __ mov(Narrow, r1, r6);
8175 __ add(Narrow, r2, sp, 48U);
8176 __ subs(Narrow, r3, r5, r3);
8177 // --------------
8178 __ bind(&l_40c8);
8179 __ bl(&l_40c8);
8180 // --------------
8181 __ bind(&l_40cc);
8182 __ ldr(Narrow, r4, MemOperand(sp, 192));
8183 __ ldr(Narrow, r3, &l_41e8);
8184 __ str(Narrow, r3, MemOperand(sp, 48));
8185 __ cbz(r4, &l_40e2);
8186 __ ldr(Narrow, r0, MemOperand(r4));
8187 __ cbz(r0, &l_40dc);
8188 // --------------
8189 __ bind(&l_40d8);
8190 __ bl(&l_40d8);
8191 // --------------
8192 __ bind(&l_40dc);
8193 __ mov(Narrow, r0, r4);
8194 // --------------
8195 __ bind(&l_40de);
8196 __ bl(&l_40de);
8197 // --------------
8198 __ bind(&l_40e2);
8199 __ ldrb(r3, MemOperand(sp, 29));
8200 __ str(r8, MemOperand(sp, 12));
8201 __ cbnz(r3, &l_40f2);
8202 }
Generate_63(TestAssembler * assembler)8203 void Generate_63(TestAssembler* assembler) {
8204 // --------------
8205 __ bind(&l_40ec);
8206 __ add(Narrow, sp, sp, 212U);
8207 __ pop(RegisterList(0x8ff0));
8208 // --------------
8209 __ bind(&l_40f2);
8210 __ ldr(Narrow, r0, MemOperand(sp, 32));
8211 __ cmp(Narrow, r0, 0U);
8212 __ b(eq, Narrow, &l_40ec);
8213 __ ldr(Narrow, r3, MemOperand(sp, 36));
8214 __ movs(Narrow, r2, 0U);
8215 __ strb(r2, MemOperand(sp, 29));
8216 __ cmp(Narrow, r3, 1U);
8217 __ b(ne, Narrow, &l_40ec);
8218 // --------------
8219 __ bind(&l_4104);
8220 __ ldr(Narrow, r3, MemOperand(r0));
8221 __ ldr(Narrow, r3, MemOperand(r3, 28));
8222 __ blx(r3);
8223 __ b(Narrow, &l_40ec);
8224 // --------------
8225 __ bind(&l_410c);
8226 __ ldr(Narrow, r3, MemOperand(r6));
8227 __ cmp(Narrow, r3, 255U);
8228 __ ite(hi);
8229 __ mov(hi, Narrow, r1, 0U);
8230 __ mov(ls, Narrow, r1, 1U);
8231 __ b(Narrow, &l_400c);
8232 // --------------
8233 __ bind(&l_4118);
8234 __ tst(r0, 0x1e0);
8235 __ it(eq);
8236 __ and_(eq, r0, r9, 0x1f);
8237 __ b(eq, &l_3fe6);
8238 // --------------
8239 __ bind(&l_4126);
8240 __ and_(r3, r2, 0x1f);
8241 __ and_(r2, r9, 0x1f);
8242 __ cmp(Narrow, r2, 7U);
8243 __ it(ls);
8244 __ cmp(ls, Narrow, r2, r3);
8245 __ ite(eq);
8246 __ mov(eq, Narrow, r3, 1U);
8247 __ mov(ne, Narrow, r3, 0U);
8248 __ b(ne, &l_400a);
8249 __ cmp(Narrow, r1, 3U);
8250 __ b(ls, Narrow, &l_41b4);
8251 // --------------
8252 __ bind(&l_4142);
8253 __ movs(Narrow, r1, 0U);
8254 __ b(Narrow, &l_400c);
8255 // --------------
8256 __ bind(&l_4146);
8257 __ str(r8, MemOperand(sp, 12));
8258 __ cmp(Narrow, r4, 0U);
8259 __ b(eq, Narrow, &l_40ec);
8260 __ ldr(Narrow, r0, MemOperand(sp, 32));
8261 __ cmp(Narrow, r0, 0U);
8262 __ b(eq, Narrow, &l_40ec);
8263 __ ldr(Narrow, r2, MemOperand(sp, 36));
8264 __ strb(r3, MemOperand(sp, 29));
8265 __ cmp(Narrow, r2, 1U);
8266 __ b(ne, Narrow, &l_40ec);
8267 __ b(Narrow, &l_4104);
8268 // --------------
8269 __ bind(&l_4160);
8270 __ blx(r2);
8271 __ b(Narrow, &l_3f7c);
8272 // --------------
8273 __ bind(&l_4164);
8274 __ cbz(r1, &l_4172);
8275 __ mov(Narrow, r1, r7);
8276 __ mov(Narrow, r0, r5);
8277 __ movs(Narrow, r2, 8U);
8278 // --------------
8279 __ bind(&l_416c);
8280 __ bl(&l_416c);
8281 __ b(Narrow, &l_407a);
8282 // --------------
8283 __ bind(&l_4172);
8284 __ eor(r1, r7, 0x1);
8285 __ mov(Narrow, r0, r5);
8286 __ add(Narrow, r3, sp, 48U);
8287 // --------------
8288 __ bind(&l_417a);
8289 __ bl(&l_417a);
8290 __ mov(sl, 14U);
8291 __ b(Narrow, &l_407a);
8292 // --------------
8293 __ bind(&l_4184);
8294 __ ldr(r3, MemOperand(r4, 132));
8295 __ add(r7, r4, 96U);
8296 __ add(r6, r4, 44U);
8297 __ cmp(Narrow, r5, r3);
8298 __ b(eq, Narrow, &l_419a);
8299 __ adds(Narrow, r2, r5, 2U);
8300 __ cmp(Narrow, r3, r2);
8301 __ b(ge, Narrow, &l_40bc);
8302 // --------------
8303 __ bind(&l_419a);
8304 __ movs(Narrow, r3, 0U);
8305 __ mov(Narrow, r2, r5);
8306 __ str(Narrow, r3, MemOperand(sp));
8307 __ mov(Narrow, r1, r6);
8308 __ mov(Narrow, r0, r7);
8309 __ movs(Narrow, r3, 2U);
8310 // --------------
8311 __ bind(&l_41a6);
8312 __ bl(&l_41a6);
8313 __ b(Narrow, &l_40bc);
8314 // --------------
8315 __ bind(&l_41ac);
8316 __ mov(Narrow, r0, r4);
8317 __ add(Narrow, r1, sp, 48U);
8318 __ blx(r2);
8319 __ b(Narrow, &l_40cc);
8320 // --------------
8321 __ bind(&l_41b4);
8322 __ and_(r3, r0, 0x1f);
8323 __ cmp(Narrow, r3, 7U);
8324 __ ite(hi);
8325 __ mov(hi, Narrow, r1, 0U);
8326 __ mov(ls, Narrow, r1, 1U);
8327 __ b(Narrow, &l_400c);
8328 __ add(Narrow, r0, sp, 40U);
8329 // --------------
8330 __ bind(&l_41c4);
8331 __ bl(&l_41c4);
8332 // --------------
8333 __ bind(&l_41c8);
8334 __ add(Narrow, r0, sp, 208U);
8335 __ str(fp, MemOperand(r0, -196, PreIndex));
8336 // --------------
8337 __ bind(&l_41ce);
8338 __ bl(&l_41ce);
8339 // --------------
8340 __ bind(&l_41d2);
8341 __ bl(&l_41d2);
8342 // --------------
8343 __ bind(&l_41d6);
8344 __ ldr(Narrow, r3, &l_41e8);
8345 __ add(Narrow, r0, sp, 76U);
8346 __ str(Narrow, r3, MemOperand(sp, 48));
8347 // --------------
8348 __ bind(&l_41dc);
8349 __ bl(&l_41dc);
8350 __ b(Narrow, &l_41c8);
8351 __ b(Narrow, &l_41d6);
8352 }
Generate_64(TestAssembler * assembler)8353 void Generate_64(TestAssembler* assembler) {
8354 // --------------
8355 __ bind(&l_41e4);
8356 __ Emit32(0x00000008);
8357 // --------------
8358 __ bind(&l_41e8);
8359 __ Emit32(0x00000008);
8360 // --------------
8361 __ bind(&l_41ec);
8362 __ Emit32(0x00000008);
8363 // --------------
8364 __ bind(&l_41f0);
8365 __ Emit32(0x00000008);
8366 __ push(RegisterList(0x4ff0));
8367 __ adds(r4, r0, 44U);
8368 __ ldr(r8, &l_4528);
8369 __ sub(Narrow, sp, sp, 212U);
8370 __ mov(Narrow, fp, r1);
8371 __ mov(r1, 0U);
8372 __ mov(Narrow, r5, r0);
8373 __ mov(Narrow, r9, r2);
8374 __ mov(Narrow, r7, r3);
8375 __ mov(Narrow, sl, fp);
8376 __ str(r8, MemOperand(sp, 12));
8377 __ str(Narrow, r1, MemOperand(sp, 16));
8378 __ strb(r1, MemOperand(sp, 29));
8379 __ ldr(Narrow, r6, MemOperand(sp, 248));
8380 __ b(eq, Narrow, &l_426e);
8381 __ ldr(Narrow, r3, MemOperand(r0, 44));
8382 __ movs(Narrow, r2, 1U);
8383 __ str(Narrow, r2, MemOperand(sp, 36));
8384 __ mov(Narrow, r0, r4);
8385 __ movs(Narrow, r1, 32U);
8386 __ str(Narrow, r4, MemOperand(sp, 32));
8387 __ ldr(Narrow, r3, MemOperand(r3, 32));
8388 __ blx(r3);
8389 __ ldr(Narrow, r3, MemOperand(r5, 44));
8390 __ mov(Narrow, r0, r4);
8391 __ ldr(Narrow, r3, MemOperand(r3, 24));
8392 __ blx(r3);
8393 __ ldr(Narrow, r2, MemOperand(r5, 44));
8394 __ movw(r3, 0U);
8395 __ movt(r3, 0U);
8396 __ mov(Narrow, r0, r4);
8397 __ ldr(Narrow, r2, MemOperand(r2));
8398 __ cmp(Narrow, r2, r3);
8399 __ b(ne, &l_445e);
8400 // --------------
8401 __ bind(&l_424a);
8402 __ bl(&l_424a);
8403 // --------------
8404 __ bind(&l_424e);
8405 __ str(Narrow, r0, MemOperand(sp, 16));
8406 __ ldr(Narrow, r1, MemOperand(r0, 20));
8407 __ ldr(Narrow, r3, MemOperand(r0, 4));
8408 __ ldr(Narrow, r2, MemOperand(r0, 12));
8409 __ add(Narrow, r3, r3, r1);
8410 __ subs(Narrow, r3, r3, r2);
8411 __ cmp(Narrow, r3, 31U);
8412 __ b(hi, Narrow, &l_4268);
8413 __ lsls(Narrow, r1, r1, 1U);
8414 __ adds(r0, 4U);
8415 __ adds(Narrow, r1, r1, 32U);
8416 // --------------
8417 __ bind(&l_4264);
8418 __ bl(&l_4264);
8419 // --------------
8420 __ bind(&l_4268);
8421 __ movs(Narrow, r4, 1U);
8422 __ strb(r4, MemOperand(sp, 29));
8423 // --------------
8424 __ bind(&l_426e);
8425 __ ldr(Narrow, r3, &l_451c);
8426 __ cmp(fp, 14U);
8427 __ str(Narrow, r3, MemOperand(sp, 12));
8428 __ b(eq, Narrow, &l_42a0);
8429 // --------------
8430 __ bind(&l_4278);
8431 __ ldr(Narrow, r3, MemOperand(r6, 4));
8432 __ tst(r3, 0x1e0);
8433 __ b(ne, Narrow, &l_42b6);
8434 __ ldr(Narrow, r1, MemOperand(r6));
8435 // --------------
8436 __ bind(&l_4282);
8437 __ cmp(Narrow, r1, 7U);
8438 __ b(hi, &l_443e);
8439 __ and_(r3, r7, 0x1f);
8440 __ cmp(Narrow, r3, 7U);
8441 __ b(hi, &l_43fc);
8442 __ and_(r3, r9, 0x1f);
8443 __ cmp(Narrow, r3, 7U);
8444 __ b(hi, &l_4404);
8445 // --------------
8446 __ bind(&l_429c);
8447 __ movs(Narrow, r1, 1U);
8448 __ b(Narrow, &l_4312);
8449 // --------------
8450 __ bind(&l_42a0);
8451 __ and_(r3, r9, 0x1f);
8452 __ and_(r2, r7, 0x1f);
8453 __ cmp(Narrow, r3, r2);
8454 __ b(ne, Narrow, &l_4278);
8455 __ ldr(Narrow, r3, MemOperand(r6, 4));
8456 __ tst(r3, 0x1e0);
8457 __ b(eq, &l_44d4);
8458 // --------------
8459 __ bind(&l_42b6);
8460 __ ldr(Narrow, r2, MemOperand(r6, 8));
8461 __ cmp(Narrow, r2, 4U);
8462 __ b(eq, Narrow, &l_4310);
8463 __ ldr(Narrow, r2, MemOperand(r6, 16));
8464 __ tst(r2, 0x1e0);
8465 __ b(ne, Narrow, &l_42e0);
8466 __ ldr(Narrow, r2, MemOperand(r6, 12));
8467 __ cbnz(r2, &l_42e0);
8468 __ and_(r2, r9, 0x1f);
8469 __ cmp(Narrow, r2, 7U);
8470 __ b(hi, Narrow, &l_42e0);
8471 __ and_(r2, r7, 0x1f);
8472 __ cmp(Narrow, r2, 7U);
8473 __ b(hi, Narrow, &l_42e0);
8474 __ and_(r2, r3, 0x1f);
8475 __ cmp(Narrow, r2, 7U);
8476 __ b(ls, Narrow, &l_429c);
8477 // --------------
8478 __ bind(&l_42e0);
8479 __ ldr(Narrow, r2, MemOperand(r6, 16));
8480 __ tst(r2, 0x1e0);
8481 __ b(ne, Narrow, &l_4304);
8482 __ ldr(Narrow, r2, MemOperand(r6, 12));
8483 __ cbnz(r2, &l_4304);
8484 }
Generate_65(TestAssembler * assembler)8485 void Generate_65(TestAssembler* assembler) {
8486 __ and_(r1, r9, 0x1f);
8487 __ cmp(Narrow, r1, 15U);
8488 __ b(eq, Narrow, &l_4304);
8489 __ and_(r2, r7, 0x1f);
8490 __ cmp(Narrow, r1, r2);
8491 __ b(ne, Narrow, &l_4304);
8492 __ and_(r2, r3, 0x1d);
8493 __ cmp(Narrow, r2, 13U);
8494 __ b(ne, Narrow, &l_429c);
8495 // --------------
8496 __ bind(&l_4304);
8497 __ ldr(Narrow, r1, MemOperand(r6, 16));
8498 __ ubfx(r2, r1, 5U, 4U);
8499 __ cmp(Narrow, r2, 0U);
8500 __ b(eq, &l_444c);
8501 // --------------
8502 __ bind(&l_4310);
8503 __ movs(Narrow, r1, 0U);
8504 // --------------
8505 __ bind(&l_4312);
8506 __ ldr(Narrow, r2, &l_4520);
8507 __ cmp(fp, 14U);
8508 __ mov(r4, 0U);
8509 __ mov(r3, 1U);
8510 __ mov(r0, 4U);
8511 __ str(Narrow, r5, MemOperand(sp, 40));
8512 __ str(fp, MemOperand(sp, 44));
8513 __ str(Narrow, r0, MemOperand(sp, 52));
8514 __ str(Narrow, r3, MemOperand(sp, 56));
8515 __ str(Narrow, r3, MemOperand(sp, 60));
8516 __ strb(r3, MemOperand(sp, 88));
8517 __ str(Narrow, r3, MemOperand(sp, 104));
8518 __ str(Narrow, r3, MemOperand(sp, 128));
8519 __ str(Narrow, r3, MemOperand(sp, 152));
8520 __ str(Narrow, r3, MemOperand(sp, 176));
8521 __ strb(r4, MemOperand(sp, 64));
8522 __ str(Narrow, r4, MemOperand(sp, 68));
8523 __ strb(r4, MemOperand(sp, 72));
8524 __ strb(r4, MemOperand(sp, 76));
8525 __ str(Narrow, r4, MemOperand(sp, 92));
8526 __ str(Narrow, r4, MemOperand(sp, 96));
8527 __ str(Narrow, r4, MemOperand(sp, 100));
8528 __ str(Narrow, r4, MemOperand(sp, 108));
8529 __ str(Narrow, r4, MemOperand(sp, 112));
8530 __ str(Narrow, r4, MemOperand(sp, 116));
8531 __ str(Narrow, r4, MemOperand(sp, 120));
8532 __ str(Narrow, r4, MemOperand(sp, 124));
8533 __ str(Narrow, r4, MemOperand(sp, 132));
8534 __ str(Narrow, r4, MemOperand(sp, 136));
8535 __ str(Narrow, r4, MemOperand(sp, 140));
8536 __ str(Narrow, r4, MemOperand(sp, 144));
8537 __ str(Narrow, r4, MemOperand(sp, 148));
8538 __ str(Narrow, r4, MemOperand(sp, 156));
8539 __ str(Narrow, r4, MemOperand(sp, 160));
8540 __ str(Narrow, r4, MemOperand(sp, 164));
8541 __ str(Narrow, r4, MemOperand(sp, 168));
8542 __ str(Narrow, r4, MemOperand(sp, 172));
8543 __ str(Narrow, r4, MemOperand(sp, 180));
8544 __ str(Narrow, r4, MemOperand(sp, 184));
8545 __ str(Narrow, r4, MemOperand(sp, 188));
8546 __ str(Narrow, r4, MemOperand(sp, 192));
8547 __ strb(r1, MemOperand(sp, 200));
8548 __ str(Narrow, r2, MemOperand(sp, 48));
8549 __ b(eq, Narrow, &l_4384);
8550 __ ldr(Narrow, r2, MemOperand(r5, 28));
8551 __ cmp(Narrow, r2, r3);
8552 __ b(eq, Narrow, &l_4462);
8553 // --------------
8554 __ bind(&l_4384);
8555 __ str(Narrow, r7, MemOperand(sp));
8556 __ mov(Narrow, r0, r5);
8557 __ str(Narrow, r6, MemOperand(sp, 4));
8558 __ mov(Narrow, r1, sl);
8559 __ mov(Narrow, r3, r9);
8560 __ movs(Narrow, r2, 0U);
8561 // --------------
8562 __ bind(&l_4390);
8563 __ bl(&l_4390);
8564 __ ldrb(r3, MemOperand(sp, 72));
8565 __ cbz(r3, &l_43d6);
8566 __ ldr(Narrow, r4, MemOperand(sp, 40));
8567 __ movw(r3, 0U);
8568 __ movt(r3, 0U);
8569 __ ldr(Narrow, r2, MemOperand(r4));
8570 __ ldr(Narrow, r2, MemOperand(r2, 8));
8571 __ cmp(Narrow, r2, r3);
8572 __ b(ne, Narrow, &l_44aa);
8573 __ ldr(Narrow, r5, MemOperand(r4, 12));
8574 __ add(Narrow, r0, sp, 48U);
8575 __ ldr(Narrow, r3, MemOperand(r4, 4));
8576 __ subs(Narrow, r5, r5, r3);
8577 __ mov(Narrow, r1, r5);
8578 // --------------
8579 __ bind(&l_43b6);
8580 __ bl(&l_43b6);
8581 __ add(r7, r4, 96U);
8582 __ add(r6, r4, 44U);
8583 __ cmp(Narrow, r0, 0U);
8584 __ b(ne, Narrow, &l_4482);
8585 // --------------
8586 __ bind(&l_43c6);
8587 __ ldr(Narrow, r5, MemOperand(r4, 12));
8588 __ mov(Narrow, r0, r7);
8589 __ ldr(Narrow, r3, MemOperand(r4, 4));
8590 __ mov(Narrow, r1, r6);
8591 __ add(Narrow, r2, sp, 48U);
8592 __ subs(Narrow, r3, r5, r3);
8593 // --------------
8594 __ bind(&l_43d2);
8595 __ bl(&l_43d2);
8596 // --------------
8597 __ bind(&l_43d6);
8598 __ ldr(Narrow, r4, MemOperand(sp, 192));
8599 __ ldr(Narrow, r3, &l_4524);
8600 __ str(Narrow, r3, MemOperand(sp, 48));
8601 __ cbz(r4, &l_43ec);
8602 __ ldr(Narrow, r0, MemOperand(r4));
8603 __ cbz(r0, &l_43e6);
8604 }
Generate_66(TestAssembler * assembler)8605 void Generate_66(TestAssembler* assembler) {
8606 // --------------
8607 __ bind(&l_43e2);
8608 __ bl(&l_43e2);
8609 // --------------
8610 __ bind(&l_43e6);
8611 __ mov(Narrow, r0, r4);
8612 // --------------
8613 __ bind(&l_43e8);
8614 __ bl(&l_43e8);
8615 // --------------
8616 __ bind(&l_43ec);
8617 __ ldrb(r3, MemOperand(sp, 29));
8618 __ str(r8, MemOperand(sp, 12));
8619 __ cbnz(r3, &l_4424);
8620 // --------------
8621 __ bind(&l_43f6);
8622 __ add(Narrow, sp, sp, 212U);
8623 __ pop(RegisterList(0x8ff0));
8624 // --------------
8625 __ bind(&l_43fc);
8626 __ and_(r3, r9, 0x1f);
8627 __ cmp(Narrow, r3, 7U);
8628 __ b(ls, Narrow, &l_4454);
8629 // --------------
8630 __ bind(&l_4404);
8631 __ ands(r1, r1, 0x3);
8632 __ b(ne, Narrow, &l_4310);
8633 __ and_(r3, r9, 0x1f);
8634 __ cmp(Narrow, r3, 7U);
8635 __ b(hi, &l_4312);
8636 __ and_(r1, r7, 0x1f);
8637 __ sub(r1, r1, 13U);
8638 __ clz(r1, r1);
8639 __ lsrs(Narrow, r1, r1, 5U);
8640 __ b(Narrow, &l_4312);
8641 // --------------
8642 __ bind(&l_4424);
8643 __ ldr(Narrow, r0, MemOperand(sp, 32));
8644 __ cmp(Narrow, r0, 0U);
8645 __ b(eq, Narrow, &l_43f6);
8646 __ ldr(Narrow, r3, MemOperand(sp, 36));
8647 __ movs(Narrow, r2, 0U);
8648 __ strb(r2, MemOperand(sp, 29));
8649 __ cmp(Narrow, r3, 1U);
8650 __ b(ne, Narrow, &l_43f6);
8651 // --------------
8652 __ bind(&l_4436);
8653 __ ldr(Narrow, r3, MemOperand(r0));
8654 __ ldr(Narrow, r3, MemOperand(r3, 28));
8655 __ blx(r3);
8656 __ b(Narrow, &l_43f6);
8657 // --------------
8658 __ bind(&l_443e);
8659 __ cmp(Narrow, r1, 255U);
8660 __ b(ls, Narrow, &l_43fc);
8661 __ cmp(r1, 1020U);
8662 __ b(hi, &l_4310);
8663 __ b(Narrow, &l_4404);
8664 // --------------
8665 __ bind(&l_444c);
8666 __ ldr(Narrow, r1, MemOperand(r6, 12));
8667 __ cbz(r1, &l_44b2);
8668 __ mov(Narrow, r1, r2);
8669 __ b(Narrow, &l_4312);
8670 // --------------
8671 __ bind(&l_4454);
8672 __ and_(r2, r7, 0x1f);
8673 __ cmp(Narrow, r3, r2);
8674 __ b(ne, Narrow, &l_4404);
8675 __ b(Narrow, &l_429c);
8676 // --------------
8677 __ bind(&l_445e);
8678 __ blx(r2);
8679 __ b(Narrow, &l_424e);
8680 // --------------
8681 __ bind(&l_4462);
8682 __ cbz(r1, &l_4470);
8683 __ mov(Narrow, r1, fp);
8684 __ mov(Narrow, r0, r5);
8685 __ movs(Narrow, r2, 8U);
8686 // --------------
8687 __ bind(&l_446a);
8688 __ bl(&l_446a);
8689 __ b(Narrow, &l_4384);
8690 // --------------
8691 __ bind(&l_4470);
8692 __ eor(r1, fp, 0x1);
8693 __ mov(Narrow, r0, r5);
8694 __ add(Narrow, r3, sp, 48U);
8695 // --------------
8696 __ bind(&l_4478);
8697 __ bl(&l_4478);
8698 __ mov(sl, 14U);
8699 __ b(Narrow, &l_4384);
8700 // --------------
8701 __ bind(&l_4482);
8702 __ ldr(r3, MemOperand(r4, 132));
8703 __ add(r7, r4, 96U);
8704 __ add(r6, r4, 44U);
8705 __ cmp(Narrow, r5, r3);
8706 __ b(eq, Narrow, &l_4498);
8707 __ adds(Narrow, r2, r5, 2U);
8708 __ cmp(Narrow, r3, r2);
8709 __ b(ge, Narrow, &l_43c6);
8710 // --------------
8711 __ bind(&l_4498);
8712 __ movs(Narrow, r3, 0U);
8713 __ mov(Narrow, r2, r5);
8714 __ str(Narrow, r3, MemOperand(sp));
8715 __ mov(Narrow, r1, r6);
8716 __ mov(Narrow, r0, r7);
8717 __ movs(Narrow, r3, 2U);
8718 // --------------
8719 __ bind(&l_44a4);
8720 __ bl(&l_44a4);
8721 __ b(Narrow, &l_43c6);
8722 // --------------
8723 __ bind(&l_44aa);
8724 __ mov(Narrow, r0, r4);
8725 __ add(Narrow, r1, sp, 48U);
8726 __ blx(r2);
8727 __ b(Narrow, &l_43d6);
8728 // --------------
8729 __ bind(&l_44b2);
8730 __ and_(r0, r9, 0x1f);
8731 __ cmp(Narrow, r0, 15U);
8732 __ b(eq, &l_4312);
8733 __ and_(r2, r7, 0x1f);
8734 __ cmp(Narrow, r2, 13U);
8735 __ b(ne, &l_4312);
8736 __ and_(r3, r3, 0x1f);
8737 __ subs(Narrow, r1, r0, r3);
8738 __ clz(r1, r1);
8739 __ lsrs(Narrow, r1, r1, 5U);
8740 __ b(Narrow, &l_4312);
8741 // --------------
8742 __ bind(&l_44d4);
8743 __ ldr(Narrow, r1, MemOperand(r6));
8744 __ cmp(Narrow, r1, 0U);
8745 __ b(ne, &l_4282);
8746 __ str(r8, MemOperand(sp, 12));
8747 __ cmp(Narrow, r4, 0U);
8748 __ b(eq, Narrow, &l_43f6);
8749 __ ldr(Narrow, r0, MemOperand(sp, 32));
8750 __ cmp(Narrow, r0, 0U);
8751 __ b(eq, Narrow, &l_43f6);
8752 }
Generate_67(TestAssembler * assembler)8753 void Generate_67(TestAssembler* assembler) {
8754 __ ldr(Narrow, r3, MemOperand(sp, 36));
8755 __ strb(r1, MemOperand(sp, 29));
8756 __ cmp(Narrow, r3, 1U);
8757 __ b(ne, Narrow, &l_43f6);
8758 __ b(Narrow, &l_4436);
8759 // --------------
8760 __ bind(&l_44f6);
8761 __ ldr(Narrow, r3, &l_4524);
8762 __ add(Narrow, r0, sp, 76U);
8763 __ str(Narrow, r3, MemOperand(sp, 48));
8764 // --------------
8765 __ bind(&l_44fc);
8766 __ bl(&l_44fc);
8767 // --------------
8768 __ bind(&l_4500);
8769 __ ldr(Narrow, r3, &l_451c);
8770 __ add(Narrow, r0, sp, 208U);
8771 __ str(r3, MemOperand(r0, -196, PreIndex));
8772 // --------------
8773 __ bind(&l_4508);
8774 __ bl(&l_4508);
8775 // --------------
8776 __ bind(&l_450c);
8777 __ bl(&l_450c);
8778 __ add(Narrow, r0, sp, 40U);
8779 // --------------
8780 __ bind(&l_4512);
8781 __ bl(&l_4512);
8782 __ b(Narrow, &l_4500);
8783 __ b(Narrow, &l_44f6);
8784 __ nop(Narrow);
8785 // --------------
8786 __ bind(&l_451c);
8787 __ Emit32(0x00000008);
8788 // --------------
8789 __ bind(&l_4520);
8790 __ Emit32(0x00000008);
8791 // --------------
8792 __ bind(&l_4524);
8793 __ Emit32(0x00000008);
8794 // --------------
8795 __ bind(&l_4528);
8796 __ Emit32(0x00000008);
8797 __ push(Narrow, RegisterList(r4, r5, r6, lr));
8798 __ mov(Narrow, r6, r0);
8799 __ ldr(Narrow, r4, MemOperand(r0, 108));
8800 __ ldr(Narrow, r5, MemOperand(r0, 112));
8801 __ ldr(Narrow, r3, &l_4594);
8802 __ cmp(Narrow, r4, r5);
8803 __ add(r2, r3, 504U);
8804 __ str(Narrow, r3, MemOperand(r0));
8805 __ str(Narrow, r2, MemOperand(r0, 44));
8806 __ b(eq, Narrow, &l_4554);
8807 // --------------
8808 __ bind(&l_4542);
8809 __ ldr(r0, MemOperand(r4, 4, PostIndex));
8810 __ cbz(r0, &l_454e);
8811 __ ldr(Narrow, r3, MemOperand(r0));
8812 __ ldr(Narrow, r3, MemOperand(r3, 4));
8813 __ blx(r3);
8814 // --------------
8815 __ bind(&l_454e);
8816 __ cmp(Narrow, r5, r4);
8817 __ b(ne, Narrow, &l_4542);
8818 __ ldr(Narrow, r5, MemOperand(r6, 108));
8819 // --------------
8820 __ bind(&l_4554);
8821 __ cbz(r5, &l_455c);
8822 __ mov(Narrow, r0, r5);
8823 // --------------
8824 __ bind(&l_4558);
8825 __ bl(&l_4558);
8826 // --------------
8827 __ bind(&l_455c);
8828 __ ldr(Narrow, r0, MemOperand(r6, 96));
8829 __ cbz(r0, &l_4564);
8830 // --------------
8831 __ bind(&l_4560);
8832 __ bl(&l_4560);
8833 // --------------
8834 __ bind(&l_4564);
8835 __ ldr(Narrow, r3, &l_4598);
8836 __ mov(Narrow, r0, r6);
8837 __ str(r3, MemOperand(r0, 4, PostIndex));
8838 // --------------
8839 __ bind(&l_456c);
8840 __ bl(&l_456c);
8841 __ mov(Narrow, r0, r6);
8842 __ pop(Narrow, RegisterList(r4, r5, r6, pc));
8843 __ ldr(Narrow, r0, MemOperand(r6, 108));
8844 __ cbz(r0, &l_457c);
8845 // --------------
8846 __ bind(&l_4578);
8847 __ bl(&l_4578);
8848 // --------------
8849 __ bind(&l_457c);
8850 __ ldr(Narrow, r0, MemOperand(r6, 96));
8851 __ cbz(r0, &l_4584);
8852 // --------------
8853 __ bind(&l_4580);
8854 __ bl(&l_4580);
8855 // --------------
8856 __ bind(&l_4584);
8857 __ ldr(Narrow, r3, &l_4598);
8858 __ mov(Narrow, r0, r6);
8859 __ str(r3, MemOperand(r0, 4, PostIndex));
8860 // --------------
8861 __ bind(&l_458c);
8862 __ bl(&l_458c);
8863 // --------------
8864 __ bind(&l_4590);
8865 __ bl(&l_4590);
8866 // --------------
8867 __ bind(&l_4594);
8868 __ Emit32(0x00000008);
8869 // --------------
8870 __ bind(&l_4598);
8871 __ Emit32(0x00000008);
8872 __ sub(r0, r0, 44U);
8873 // --------------
8874 __ bind(&l_45a0);
8875 __ b(Wide, &l_45a0);
8876 __ ldr(Narrow, r3, &l_4724);
8877 __ mov(r1, 4096U);
8878 __ push(Narrow, RegisterList(0x40f0));
8879 __ sub(Narrow, sp, sp, 316U);
8880 __ add(Narrow, r0, sp, 12U);
8881 __ ldr(Narrow, r4, &l_4728);
8882 __ str(Narrow, r3, MemOperand(sp, 8));
8883 // --------------
8884 __ bind(&l_45b4);
8885 __ bl(&l_45b4);
8886 __ movw(r3, 0U);
8887 __ movs(Narrow, r0, 14U);
8888 __ movt(r3, 0U);
8889 __ str(Narrow, r0, MemOperand(sp, 40));
8890 __ ldr(Narrow, r1, MemOperand(r3, 112));
8891 __ add(r5, r4, 504U);
8892 __ movs(Narrow, r3, 0U);
8893 __ movs(Narrow, r2, 1U);
8894 __ str(Narrow, r4, MemOperand(sp, 8));
8895 __ ubfx(r0, r1, 5U, 4U);
8896 __ str(Narrow, r5, MemOperand(sp, 52));
8897 __ strb(r3, MemOperand(sp, 32));
8898 __ str(Narrow, r3, MemOperand(sp, 36));
8899 __ strh(r3, MemOperand(sp, 44));
8900 __ strb(r3, MemOperand(sp, 47));
8901 __ strb(r3, MemOperand(sp, 48));
8902 __ strb(r2, MemOperand(sp, 46));
8903 __ cbz(r0, &l_45f6);
8904 __ and_(r1, r1, 0x1f);
8905 __ lsl(r0, r2, r1);
8906 // --------------
8907 __ bind(&l_45f6);
8908 __ ldr(Narrow, r5, &l_472c);
8909 __ movs(Narrow, r3, 0U);
8910 __ movs(Narrow, r2, 1U);
8911 __ movs(Narrow, r4, 4U);
8912 }
Generate_68(TestAssembler * assembler)8913 void Generate_68(TestAssembler* assembler) {
8914 __ movs(Narrow, r6, 0U);
8915 __ movs(Narrow, r7, 0U);
8916 __ mvn(lr, 2147483648U);
8917 __ add(Narrow, r1, sp, 312U);
8918 __ str(Narrow, r0, MemOperand(sp, 56));
8919 __ add(Narrow, r0, sp, 8U);
8920 __ strd(r6, r7, MemOperand(sp, 64));
8921 __ str(Narrow, r3, MemOperand(sp, 72));
8922 __ str(Narrow, r3, MemOperand(sp, 76));
8923 __ str(Narrow, r3, MemOperand(sp, 104));
8924 __ str(Narrow, r3, MemOperand(sp, 108));
8925 __ str(Narrow, r3, MemOperand(sp, 112));
8926 __ str(Narrow, r3, MemOperand(sp, 116));
8927 __ str(Narrow, r3, MemOperand(sp, 120));
8928 __ str(Narrow, r3, MemOperand(sp, 124));
8929 __ str(Narrow, r3, MemOperand(sp, 144));
8930 __ str(Narrow, r3, MemOperand(sp, 148));
8931 __ strb(r3, MemOperand(sp, 152));
8932 __ str(Narrow, r3, MemOperand(sp, 156));
8933 __ strb(r3, MemOperand(sp, 176));
8934 __ str(Narrow, r3, MemOperand(sp, 180));
8935 __ strb(r3, MemOperand(sp, 184));
8936 __ strb(r3, MemOperand(sp, 188));
8937 __ str(Narrow, r3, MemOperand(sp, 204));
8938 __ str(Narrow, r3, MemOperand(sp, 208));
8939 __ str(Narrow, r3, MemOperand(sp, 212));
8940 __ str(Narrow, r3, MemOperand(sp, 220));
8941 __ str(Narrow, r3, MemOperand(sp, 224));
8942 __ str(Narrow, r3, MemOperand(sp, 228));
8943 __ str(Narrow, r4, MemOperand(sp, 128));
8944 __ str(Narrow, r4, MemOperand(sp, 132));
8945 __ str(Narrow, r4, MemOperand(sp, 136));
8946 __ str(Narrow, r4, MemOperand(sp, 164));
8947 __ str(lr, MemOperand(sp, 140));
8948 __ str(Narrow, r2, MemOperand(sp, 168));
8949 __ str(Narrow, r2, MemOperand(sp, 172));
8950 __ strb(r2, MemOperand(sp, 200));
8951 __ str(Narrow, r2, MemOperand(sp, 216));
8952 __ str(Narrow, r3, MemOperand(sp, 232));
8953 __ str(r5, MemOperand(r1, -152, PreIndex));
8954 __ str(Narrow, r3, MemOperand(sp, 236));
8955 __ str(Narrow, r2, MemOperand(sp, 240));
8956 __ str(Narrow, r3, MemOperand(sp, 244));
8957 __ str(Narrow, r3, MemOperand(sp, 248));
8958 __ str(Narrow, r3, MemOperand(sp, 252));
8959 __ str(Narrow, r3, MemOperand(sp, 256));
8960 __ str(Narrow, r3, MemOperand(sp, 260));
8961 __ str(Narrow, r2, MemOperand(sp, 264));
8962 __ str(Narrow, r3, MemOperand(sp, 268));
8963 __ str(Narrow, r3, MemOperand(sp, 272));
8964 __ str(Narrow, r3, MemOperand(sp, 276));
8965 __ str(Narrow, r3, MemOperand(sp, 280));
8966 __ str(Narrow, r3, MemOperand(sp, 284));
8967 __ str(Narrow, r2, MemOperand(sp, 288));
8968 __ str(Narrow, r3, MemOperand(sp, 292));
8969 __ str(Narrow, r3, MemOperand(sp, 296));
8970 __ str(Narrow, r3, MemOperand(sp, 300));
8971 __ str(Narrow, r3, MemOperand(sp, 304));
8972 // --------------
8973 __ bind(&l_4684);
8974 __ bl(&l_4684);
8975 __ add(Narrow, r0, sp, 8U);
8976 // --------------
8977 __ bind(&l_468a);
8978 __ bl(&l_468a);
8979 __ ldr(Narrow, r4, MemOperand(sp, 20));
8980 __ movs(Narrow, r3, 1U);
8981 __ ldr(Narrow, r2, MemOperand(sp, 12));
8982 __ add(Narrow, r0, sp, 104U);
8983 __ str(Narrow, r3, MemOperand(sp));
8984 __ add(Narrow, r1, sp, 52U);
8985 __ movs(Narrow, r3, 0U);
8986 __ subs(Narrow, r2, r4, r2);
8987 // --------------
8988 __ bind(&l_469e);
8989 __ bl(&l_469e);
8990 __ ldr(Narrow, r6, MemOperand(sp, 12));
8991 __ movs(Narrow, r5, 0U);
8992 __ ldr(Narrow, r4, MemOperand(sp, 20));
8993 __ mov(r3, 4294967295U);
8994 __ str(Narrow, r5, MemOperand(sp, 4));
8995 __ mov(Narrow, r0, r5);
8996 __ str(Narrow, r3, MemOperand(sp));
8997 __ movs(Narrow, r2, 7U);
8998 __ subs(Narrow, r4, r4, r6);
8999 __ movs(Narrow, r3, 33U);
9000 __ mov(Narrow, r1, r4);
9001 __ strb(r5, MemOperand(sp, 24));
9002 // --------------
9003 __ bind(&l_46be);
9004 __ bl(&l_46be);
9005 __ mov(Narrow, r2, r4);
9006 __ mov(Narrow, r5, r0);
9007 __ mov(Narrow, r1, r6);
9008 // --------------
9009 __ bind(&l_46c8);
9010 __ bl(&l_46c8);
9011 __ mov(Narrow, r0, r5);
9012 __ adds(Narrow, r1, r5, r4);
9013 // --------------
9014 __ bind(&l_46d0);
9015 __ bl(&l_46d0);
9016 __ ldr(Narrow, r2, MemOperand(sp, 36));
9017 __ mov(r0, 1000U);
9018 __ ldr(Narrow, r3, MemOperand(sp, 180));
9019 __ cmp(Narrow, r2, 1U);
9020 __ it(eq);
9021 __ add(eq, r3, 1U);
9022 __ add(Narrow, r3, r3, r5);
9023 __ blx(r3);
9024 __ mov(Narrow, r1, r4);
9025 __ mov(Narrow, r0, r5);
9026 }
Generate_69(TestAssembler * assembler)9027 void Generate_69(TestAssembler* assembler) {
9028 // --------------
9029 __ bind(&l_46ea);
9030 __ bl(&l_46ea);
9031 __ ldr(Narrow, r3, &l_4730);
9032 __ add(Narrow, r0, sp, 188U);
9033 __ str(Narrow, r3, MemOperand(sp, 160));
9034 // --------------
9035 __ bind(&l_46f4);
9036 __ bl(&l_46f4);
9037 __ add(Narrow, r0, sp, 8U);
9038 // --------------
9039 __ bind(&l_46fa);
9040 __ bl(&l_46fa);
9041 __ movs(Narrow, r0, 0U);
9042 __ add(Narrow, sp, sp, 316U);
9043 __ pop(Narrow, RegisterList(0x80f0));
9044 // --------------
9045 __ bind(&l_4704);
9046 __ ldr(Narrow, r3, &l_4730);
9047 __ add(Narrow, r0, sp, 188U);
9048 __ str(Narrow, r3, MemOperand(sp, 160));
9049 // --------------
9050 __ bind(&l_470a);
9051 __ bl(&l_470a);
9052 __ add(Narrow, r0, sp, 8U);
9053 // --------------
9054 __ bind(&l_4710);
9055 __ bl(&l_4710);
9056 // --------------
9057 __ bind(&l_4714);
9058 __ bl(&l_4714);
9059 __ mov(Narrow, r0, r5);
9060 __ mov(Narrow, r1, r4);
9061 // --------------
9062 __ bind(&l_471c);
9063 __ bl(&l_471c);
9064 __ b(Narrow, &l_4704);
9065 __ nop(Narrow);
9066 // --------------
9067 __ bind(&l_4724);
9068 __ Emit32(0x00000008);
9069 // --------------
9070 __ bind(&l_4728);
9071 __ Emit32(0x00000008);
9072 // --------------
9073 __ bind(&l_472c);
9074 __ Emit32(0x00000008);
9075 // --------------
9076 __ bind(&l_4730);
9077 __ Emit32(0x00000008);
9078 __ movw(r3, 0U);
9079 __ push(RegisterList(0x4ff0));
9080 __ movt(r3, 0U);
9081 __ mov(r9, 16416U);
9082 __ mov(sl, 16417U);
9083 __ mov(r2, 16419U);
9084 __ str(r9, MemOperand(r3, 92));
9085 __ mov(r9, 16420U);
9086 __ str(sl, MemOperand(r3, 88));
9087 __ mov(sl, 16421U);
9088 __ str(r9, MemOperand(r3, 24));
9089 __ mov(r9, 16424U);
9090 __ str(Narrow, r2, MemOperand(r3, 76));
9091 __ mov(fp, 16418U);
9092 __ str(sl, MemOperand(r3, 28));
9093 __ mov(r2, 16423U);
9094 __ str(r9, MemOperand(r3, 124));
9095 __ mov(sl, 16425U);
9096 __ mov(r9, 16448U);
9097 __ str(fp, MemOperand(r3, 36));
9098 __ str(Narrow, r2, MemOperand(r3, 120));
9099 __ mov(fp, 16422U);
9100 __ str(sl, MemOperand(r3, 128));
9101 __ mov(r2, 16427U);
9102 __ str(r9, MemOperand(r3, 60));
9103 __ mov(sl, 16449U);
9104 __ mov(r9, 16452U);
9105 __ movs(Narrow, r1, 136U);
9106 __ sub(Narrow, sp, sp, 12U);
9107 __ str(fp, MemOperand(r3, 32));
9108 __ str(r2, MemOperand(r3, 136));
9109 __ movt(r1, 1U);
9110 __ str(sl, MemOperand(r3, 64));
9111 __ mov(fp, 16426U);
9112 __ str(r9, MemOperand(r3, 164));
9113 __ mov(r2, 16451U);
9114 __ mov(sl, 16453U);
9115 __ mov(r9, 16456U);
9116 __ str(Narrow, r1, MemOperand(sp, 4));
9117 __ movs(Narrow, r1, 15U);
9118 __ str(fp, MemOperand(r3, 132));
9119 __ mov(fp, 16450U);
9120 __ str(Narrow, r2, MemOperand(r3, 72));
9121 __ mov(r2, 16455U);
9122 __ str(sl, MemOperand(r3, 168));
9123 __ mov(sl, 16457U);
9124 __ str(r9, MemOperand(r3, 180));
9125 __ mov(r9, 16429U);
9126 __ str(fp, MemOperand(r3, 68));
9127 __ mov(fp, 16454U);
9128 __ str(r2, MemOperand(r3, 176));
9129 __ mov(r2, 16428U);
9130 __ str(sl, MemOperand(r3, 184));
9131 __ mov(sl, 16431U);
9132 __ str(Narrow, r1, MemOperand(r3, 116));
9133 __ mov(r1, 16430U);
9134 __ str(r9, MemOperand(r3, 140));
9135 __ mov(r8, 128U);
9136 __ str(r9, MemOperand(r3, 56));
9137 __ mov(r9, 16384U);
9138 __ str(fp, MemOperand(r3, 172));
9139 __ mov(ip, 129U);
9140 __ str(Narrow, r2, MemOperand(r3, 112));
9141 __ mov(lr, 130U);
9142 __ str(r2, MemOperand(r3, 152));
9143 __ movs(Narrow, r7, 131U);
9144 __ str(r1, MemOperand(r3, 144));
9145 __ movs(Narrow, r6, 132U);
9146 __ str(Narrow, r1, MemOperand(r3, 108));
9147 __ movs(Narrow, r1, 0U);
9148 __ str(sl, MemOperand(r3, 148));
9149 __ movs(Narrow, r5, 133U);
9150 __ str(sl, MemOperand(r3, 156));
9151 __ mov(sl, 16458U);
9152 }
Generate_70(TestAssembler * assembler)9153 void Generate_70(TestAssembler* assembler) {
9154 __ str(r9, MemOperand(r3, 40));
9155 __ movs(Narrow, r4, 134U);
9156 __ str(r9, MemOperand(r3, 272));
9157 __ mov(r9, 16459U);
9158 __ str(r9, MemOperand(r3, 192));
9159 __ mov(r9, 16460U);
9160 __ str(r9, MemOperand(r3, 196));
9161 __ mov(r9, 16461U);
9162 __ str(r9, MemOperand(r3, 200));
9163 __ mov(r9, 16462U);
9164 __ str(r9, MemOperand(r3, 204));
9165 __ mov(r9, 16463U);
9166 __ str(r9, MemOperand(r3, 52));
9167 __ mov(r9, 16464U);
9168 __ str(r9, MemOperand(r3, 208));
9169 __ mov(r9, 16465U);
9170 __ str(r9, MemOperand(r3, 212));
9171 __ mov(r9, 16466U);
9172 __ str(r9, MemOperand(r3, 216));
9173 __ mov(r9, 16467U);
9174 __ str(r9, MemOperand(r3, 220));
9175 __ mov(r9, 16468U);
9176 __ str(r9, MemOperand(r3, 224));
9177 __ mov(r9, 16469U);
9178 __ str(r9, MemOperand(r3, 228));
9179 __ mov(r9, 16470U);
9180 __ str(r9, MemOperand(r3, 232));
9181 __ mov(r9, 16471U);
9182 __ str(r9, MemOperand(r3, 236));
9183 __ mov(r9, 16472U);
9184 __ str(r9, MemOperand(r3, 240));
9185 __ mov(r9, 16473U);
9186 __ str(r9, MemOperand(r3, 244));
9187 __ mov(r9, 16474U);
9188 __ str(r9, MemOperand(r3, 248));
9189 __ mov(r9, 16475U);
9190 __ str(r9, MemOperand(r3, 252));
9191 __ mov(r9, 16476U);
9192 __ str(r9, MemOperand(r3, 256));
9193 __ mov(r9, 16477U);
9194 __ str(r9, MemOperand(r3, 260));
9195 __ mov(r9, 16478U);
9196 __ str(r9, MemOperand(r3, 264));
9197 __ mov(r9, 16479U);
9198 __ str(r9, MemOperand(r3, 268));
9199 __ mov(r9, 32864U);
9200 __ str(r9, MemOperand(r3, 276));
9201 __ mov(r9, 32865U);
9202 __ str(r9, MemOperand(r3, 280));
9203 __ mov(r9, 32866U);
9204 __ str(r9, MemOperand(r3, 284));
9205 __ mov(r9, 32867U);
9206 __ str(r9, MemOperand(r3, 288));
9207 __ mov(r9, 32868U);
9208 __ str(r9, MemOperand(r3, 84));
9209 __ mov(r9, 32869U);
9210 __ str(r9, MemOperand(r3, 292));
9211 __ mov(r9, 32870U);
9212 __ str(r9, MemOperand(r3, 44));
9213 __ mov(r9, 32871U);
9214 __ str(r9, MemOperand(r3, 48));
9215 __ mov(r9, 32872U);
9216 __ str(r9, MemOperand(r3, 296));
9217 __ mov(r9, 32873U);
9218 __ str(r1, MemOperand(r3, 160));
9219 __ movs(Narrow, r0, 135U);
9220 __ str(sl, MemOperand(r3, 188));
9221 __ mov(fp, 137U);
9222 __ str(r9, MemOperand(r3, 300));
9223 __ mov(r9, 32874U);
9224 __ str(r9, MemOperand(r3, 304));
9225 __ mov(r9, 32875U);
9226 __ str(r9, MemOperand(r3, 308));
9227 __ mov(r9, 32876U);
9228 __ str(r9, MemOperand(r3, 312));
9229 __ mov(r9, 32877U);
9230 __ str(r9, MemOperand(r3, 316));
9231 __ mov(r9, 32878U);
9232 __ str(r9, MemOperand(r3, 320));
9233 __ mov(r9, 32879U);
9234 __ str(r9, MemOperand(r3, 324));
9235 __ mov(r9, 32880U);
9236 __ str(r9, MemOperand(r3, 328));
9237 __ mov(r9, 32881U);
9238 __ str(r9, MemOperand(r3, 332));
9239 __ mov(r9, 32882U);
9240 __ str(r9, MemOperand(r3, 336));
9241 __ mov(r9, 32883U);
9242 __ str(r9, MemOperand(r3, 340));
9243 __ mov(r9, 32884U);
9244 __ str(r9, MemOperand(r3, 344));
9245 __ mov(r9, 32885U);
9246 __ str(r9, MemOperand(r3, 348));
9247 __ mov(r9, 32886U);
9248 __ str(r9, MemOperand(r3, 352));
9249 __ mov(r9, 32887U);
9250 __ str(r9, MemOperand(r3, 356));
9251 __ mov(r9, 32888U);
9252 __ str(r9, MemOperand(r3, 360));
9253 __ mov(r9, 32889U);
9254 }
Generate_71(TestAssembler * assembler)9255 void Generate_71(TestAssembler* assembler) {
9256 __ str(r9, MemOperand(r3, 364));
9257 __ mov(r9, 32890U);
9258 __ str(r9, MemOperand(r3, 368));
9259 __ mov(r9, 32891U);
9260 __ str(r9, MemOperand(r3, 372));
9261 __ mov(r9, 32892U);
9262 __ str(r9, MemOperand(r3, 376));
9263 __ mov(r9, 32893U);
9264 __ ldr(Narrow, r1, MemOperand(sp, 4));
9265 __ movs(Narrow, r2, 138U);
9266 __ str(r9, MemOperand(r3, 380));
9267 __ mov(r9, 32894U);
9268 __ str(r9, MemOperand(r3, 384));
9269 __ mov(r9, 32895U);
9270 __ str(r9, MemOperand(r3, 388));
9271 __ movt(r8, 1U);
9272 __ movt(ip, 1U);
9273 __ movt(lr, 1U);
9274 __ movt(r7, 1U);
9275 __ movt(r6, 1U);
9276 __ movt(r5, 1U);
9277 __ movt(r4, 1U);
9278 __ movt(r0, 1U);
9279 __ movt(fp, 1U);
9280 __ movt(r2, 1U);
9281 __ mov(r9, 32768U);
9282 __ str(r9, MemOperand(r3));
9283 __ mov(sl, 139U);
9284 __ str(r8, MemOperand(r3, 4));
9285 __ mov(r9, 140U);
9286 __ str(ip, MemOperand(r3, 8));
9287 __ mov(ip, 141U);
9288 __ str(lr, MemOperand(r3, 80));
9289 __ movt(sl, 1U);
9290 __ str(r7, MemOperand(r3, 392));
9291 __ movs(Narrow, r7, 142U);
9292 __ str(r6, MemOperand(r3, 396));
9293 __ movs(Narrow, r6, 143U);
9294 __ str(r5, MemOperand(r3, 400));
9295 __ movt(r9, 1U);
9296 __ str(r4, MemOperand(r3, 404));
9297 __ movt(ip, 1U);
9298 __ str(r0, MemOperand(r3, 408));
9299 __ movt(r7, 1U);
9300 __ str(Narrow, r1, MemOperand(r3, 96));
9301 __ movt(r6, 1U);
9302 __ str(fp, MemOperand(r3, 100));
9303 __ mov(r5, 65536U);
9304 __ str(Narrow, r2, MemOperand(r3, 104));
9305 __ movs(Narrow, r2, 0U);
9306 __ movs(Narrow, r4, 1U);
9307 __ str(r2, MemOperand(r3, 424));
9308 __ movs(Narrow, r2, 15U);
9309 __ movs(Narrow, r0, 2U);
9310 __ movs(Narrow, r1, 3U);
9311 __ mov(lr, 4U);
9312 __ str(sl, MemOperand(r3, 412));
9313 __ mov(r8, 6U);
9314 __ str(r9, MemOperand(r3, 416));
9315 __ mov(sl, 8U);
9316 __ mov(r9, 7U);
9317 __ str(r2, MemOperand(r3, 484));
9318 __ mov(fp, 9U);
9319 __ str(ip, MemOperand(r3, 12));
9320 __ str(Narrow, r7, MemOperand(r3, 16));
9321 __ mov(ip, 10U);
9322 __ movs(Narrow, r7, 11U);
9323 __ str(Narrow, r6, MemOperand(r3, 20));
9324 __ str(r5, MemOperand(r3, 420));
9325 __ movs(Narrow, r6, 12U);
9326 __ movs(Narrow, r5, 13U);
9327 __ str(r4, MemOperand(r3, 428));
9328 __ movs(Narrow, r2, 5U);
9329 __ movs(Narrow, r4, 14U);
9330 __ str(r0, MemOperand(r3, 432));
9331 __ str(r1, MemOperand(r3, 436));
9332 __ str(lr, MemOperand(r3, 440));
9333 __ str(r2, MemOperand(r3, 444));
9334 __ str(r8, MemOperand(r3, 448));
9335 __ str(r9, MemOperand(r3, 452));
9336 __ str(sl, MemOperand(r3, 456));
9337 __ str(fp, MemOperand(r3, 460));
9338 __ str(ip, MemOperand(r3, 464));
9339 __ str(r7, MemOperand(r3, 468));
9340 __ str(r6, MemOperand(r3, 472));
9341 __ str(r5, MemOperand(r3, 476));
9342 __ str(r4, MemOperand(r3, 480));
9343 __ add(Narrow, sp, sp, 12U);
9344 __ pop(RegisterList(0x8ff0));
9345 __ nop(Narrow);
9346 // --------------
9347 __ bind(&l_4b0c);
9348 __ push(Narrow, RegisterList(r4, r5, r6, lr));
9349 __ mov(Narrow, r6, r0);
9350 __ ldr(Narrow, r4, MemOperand(r0, 108));
9351 __ ldr(Narrow, r5, MemOperand(r0, 112));
9352 __ ldr(Narrow, r3, &l_4b7c);
9353 __ cmp(Narrow, r4, r5);
9354 __ add(r2, r3, 504U);
9355 __ str(Narrow, r3, MemOperand(r0));
9356 __ str(Narrow, r2, MemOperand(r0, 44));
9357 __ b(eq, Narrow, &l_4b34);
9358 }
Generate_72(TestAssembler * assembler)9359 void Generate_72(TestAssembler* assembler) {
9360 // --------------
9361 __ bind(&l_4b22);
9362 __ ldr(r0, MemOperand(r4, 4, PostIndex));
9363 __ cbz(r0, &l_4b2e);
9364 __ ldr(Narrow, r3, MemOperand(r0));
9365 __ ldr(Narrow, r3, MemOperand(r3, 4));
9366 __ blx(r3);
9367 // --------------
9368 __ bind(&l_4b2e);
9369 __ cmp(Narrow, r5, r4);
9370 __ b(ne, Narrow, &l_4b22);
9371 __ ldr(Narrow, r5, MemOperand(r6, 108));
9372 // --------------
9373 __ bind(&l_4b34);
9374 __ cbz(r5, &l_4b3c);
9375 __ mov(Narrow, r0, r5);
9376 // --------------
9377 __ bind(&l_4b38);
9378 __ bl(&l_4b38);
9379 // --------------
9380 __ bind(&l_4b3c);
9381 __ ldr(Narrow, r0, MemOperand(r6, 96));
9382 __ cbz(r0, &l_4b44);
9383 // --------------
9384 __ bind(&l_4b40);
9385 __ bl(&l_4b40);
9386 // --------------
9387 __ bind(&l_4b44);
9388 __ ldr(Narrow, r3, &l_4b80);
9389 __ mov(Narrow, r0, r6);
9390 __ str(r3, MemOperand(r0, 4, PostIndex));
9391 // --------------
9392 __ bind(&l_4b4c);
9393 __ bl(&l_4b4c);
9394 __ mov(Narrow, r0, r6);
9395 // --------------
9396 __ bind(&l_4b52);
9397 __ bl(&l_4b52);
9398 __ mov(Narrow, r0, r6);
9399 __ pop(Narrow, RegisterList(r4, r5, r6, pc));
9400 __ ldr(Narrow, r0, MemOperand(r6, 108));
9401 __ cbz(r0, &l_4b62);
9402 // --------------
9403 __ bind(&l_4b5e);
9404 __ bl(&l_4b5e);
9405 // --------------
9406 __ bind(&l_4b62);
9407 __ ldr(Narrow, r0, MemOperand(r6, 96));
9408 __ cbz(r0, &l_4b6a);
9409 // --------------
9410 __ bind(&l_4b66);
9411 __ bl(&l_4b66);
9412 // --------------
9413 __ bind(&l_4b6a);
9414 __ ldr(Narrow, r3, &l_4b80);
9415 __ mov(Narrow, r0, r6);
9416 __ str(r3, MemOperand(r0, 4, PostIndex));
9417 // --------------
9418 __ bind(&l_4b72);
9419 __ bl(&l_4b72);
9420 // --------------
9421 __ bind(&l_4b76);
9422 __ bl(&l_4b76);
9423 __ nop(Narrow);
9424 // --------------
9425 __ bind(&l_4b7c);
9426 __ Emit32(0x00000008);
9427 // --------------
9428 __ bind(&l_4b80);
9429 __ Emit32(0x00000008);
9430 __ sub(r0, r0, 44U);
9431 __ b(Narrow, &l_4b0c);
9432 __ nop(Narrow);
9433 }
9434
9435 public:
Generator(TestAssembler * assembler)9436 explicit Generator(TestAssembler* assembler) {
9437 Generate_1(assembler);
9438 Generate_2(assembler);
9439 Generate_3(assembler);
9440 Generate_4(assembler);
9441 Generate_5(assembler);
9442 Generate_6(assembler);
9443 Generate_7(assembler);
9444 Generate_8(assembler);
9445 Generate_9(assembler);
9446 Generate_10(assembler);
9447 Generate_11(assembler);
9448 Generate_12(assembler);
9449 Generate_13(assembler);
9450 Generate_14(assembler);
9451 Generate_15(assembler);
9452 Generate_16(assembler);
9453 Generate_17(assembler);
9454 Generate_18(assembler);
9455 Generate_19(assembler);
9456 Generate_20(assembler);
9457 Generate_21(assembler);
9458 Generate_22(assembler);
9459 Generate_23(assembler);
9460 Generate_24(assembler);
9461 Generate_25(assembler);
9462 Generate_26(assembler);
9463 Generate_27(assembler);
9464 Generate_28(assembler);
9465 Generate_29(assembler);
9466 Generate_30(assembler);
9467 Generate_31(assembler);
9468 Generate_32(assembler);
9469 Generate_33(assembler);
9470 Generate_34(assembler);
9471 Generate_35(assembler);
9472 Generate_36(assembler);
9473 Generate_37(assembler);
9474 Generate_38(assembler);
9475 Generate_39(assembler);
9476 Generate_40(assembler);
9477 Generate_41(assembler);
9478 Generate_42(assembler);
9479 Generate_43(assembler);
9480 Generate_44(assembler);
9481 Generate_45(assembler);
9482 Generate_46(assembler);
9483 Generate_47(assembler);
9484 Generate_48(assembler);
9485 Generate_49(assembler);
9486 Generate_50(assembler);
9487 Generate_51(assembler);
9488 Generate_52(assembler);
9489 Generate_53(assembler);
9490 Generate_54(assembler);
9491 Generate_55(assembler);
9492 Generate_56(assembler);
9493 Generate_57(assembler);
9494 Generate_58(assembler);
9495 Generate_59(assembler);
9496 Generate_60(assembler);
9497 Generate_61(assembler);
9498 Generate_62(assembler);
9499 Generate_63(assembler);
9500 Generate_64(assembler);
9501 Generate_65(assembler);
9502 Generate_66(assembler);
9503 Generate_67(assembler);
9504 Generate_68(assembler);
9505 Generate_69(assembler);
9506 Generate_70(assembler);
9507 Generate_71(assembler);
9508 Generate_72(assembler);
9509 }
9510 };
9511
9512 #ifdef __arm__
9513 const int kMaxPerfCpus = 10;
9514 #endif
9515
9516 class PerfScope {
9517 public:
9518 explicit PerfScope(int64_t* counter);
9519 ~PerfScope();
9520
9521 private:
9522 #ifdef __arm__
9523 int fd_[kMaxPerfCpus];
9524 #endif
9525 int64_t* counter_;
9526 };
9527
9528
PerfScope(int64_t * counter)9529 PerfScope::PerfScope(int64_t* counter) : counter_(counter) {
9530 *counter_ = -1;
9531 #ifdef __arm__
9532 perf_event_attr attr;
9533 memset(&attr, 0, sizeof(attr));
9534 attr.size = sizeof(attr);
9535 attr.type = PERF_TYPE_HARDWARE;
9536 attr.config = PERF_COUNT_HW_CPU_CYCLES;
9537 attr.exclude_kernel = 1;
9538 bool ok = false;
9539 for (int cpu = 0; cpu < kMaxPerfCpus; cpu++) {
9540 fd_[cpu] =
9541 static_cast<int>(syscall(__NR_perf_event_open, &attr, 0, cpu, -1, 0));
9542 if (fd_[cpu] >= 0) {
9543 if (ioctl(fd_[cpu], PERF_EVENT_IOC_ENABLE, 0) == 0) ok = true;
9544 }
9545 }
9546 if (!ok) printf("Can't set perf counter.\n");
9547 #endif
9548 }
9549
9550
~PerfScope()9551 PerfScope::~PerfScope() {
9552 *counter_ = 0;
9553 #ifdef __arm__
9554 for (int cpu = 0; cpu < 6; cpu++) {
9555 int64_t tmp;
9556 if (fd_[cpu] >= 0) {
9557 size_t size = read(fd_[cpu], &tmp, sizeof(tmp));
9558 if (size != sizeof(tmp)) {
9559 printf("Could not read counter for cpu %d.\n", cpu);
9560 } else if (tmp > *counter_) {
9561 *counter_ = tmp;
9562 }
9563 close(fd_[cpu]);
9564 }
9565 }
9566 #endif
9567 }
9568
9569
Benchmark()9570 void Benchmark() {
9571 TestAssembler assembler;
9572 {
9573 int64_t cycles = 0;
9574 timeval start;
9575 timeval end;
9576 {
9577 PerfScope scope(&cycles);
9578 gettimeofday(&start, NULL);
9579 Generator generator(&assembler);
9580 assembler.FinalizeCode();
9581 gettimeofday(&end, NULL);
9582 }
9583
9584 double delta = (end.tv_sec - start.tv_sec) +
9585 static_cast<double>(end.tv_usec - start.tv_usec) / 1000000;
9586 printf("T32 assembler: time: %gs, cycles: %" PRId64 "\n", delta, cycles);
9587 }
9588 {
9589 PrintDisassembler disassembler(std::cerr);
9590 int64_t cycles = 0;
9591 timeval start;
9592 timeval end;
9593 {
9594 PerfScope scope(&cycles);
9595 gettimeofday(&start, NULL);
9596 disassembler.DisassembleT32Buffer(assembler.GetBuffer()
9597 ->GetStartAddress<uint16_t*>(),
9598 assembler.GetCursorOffset());
9599 gettimeofday(&end, NULL);
9600 }
9601
9602 double delta = (end.tv_sec - start.tv_sec) +
9603 static_cast<double>(end.tv_usec - start.tv_usec) / 1000000;
9604 printf("T32 disassembler: time: %gs, cycles: %" PRId64 "\n", delta, cycles);
9605 }
9606 }
9607
9608
main(int argc,char * argv[])9609 int main(int argc, char* argv[]) {
9610 if (argc > 2) {
9611 printf("Usage: %s [iteration count]\n", argv[0]);
9612 exit(1);
9613 }
9614 #ifdef VIXL_INCLUDE_TARGET_T32
9615 int count = 1;
9616 if (argc == 2) count = atoi(argv[1]);
9617 while (count > 0) {
9618 Benchmark();
9619 count--;
9620 }
9621 #else
9622 printf("Speed test only available for T32.\n");
9623 exit(0); // Even if the test is not done, it must not fail.
9624 #endif
9625
9626 return 0;
9627 }
9628