• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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