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
27extern "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
56using namespace vixl;
57using namespace vixl::aarch32;
58
59#define __ assembler->
60
61const int kBufferSize = 512 * KBytes;
62const Register sl(10);
63const Register fp(11);
64
65class TestAssembler : public Assembler {
66 public:
67  TestAssembler() : Assembler(kBufferSize) {
68    UseInstructionSet(T32);
69    SetAllowAssembler(true);
70  }
71  void Emit8(uint8_t data) { GetBuffer()->Emit8(data); }
72  void Emit16(uint16_t data) { GetBuffer()->Emit16(data); }
73  void Emit32(uint32_t data) { GetBuffer()->Emit32(data); }
74};
75
76class 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;
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  }
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  }
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  }
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  }
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  }
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  }
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  }
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  }
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  }
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  }
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  }
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  }
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  }
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  }
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  }
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  }
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  }
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  }
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  }
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  }
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  }
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  }
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  }
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  }
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  }
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  }
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  }
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  }
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  }
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  }
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  }
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  }
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  }
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  }
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  }
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  }
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  }
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  }
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  }
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  }
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  }
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  }
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  }
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  }
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  }
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  }
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  }
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  }
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  }
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  }
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  }
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  }
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  }
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  }
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  }
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  }
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  }
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  }
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  }
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  }
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  }
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  }
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  }
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  }
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  }
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  }
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  }
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  }
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  }
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  }
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  }
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:
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__
9513const int kMaxPerfCpus = 10;
9514#endif
9515
9516class 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
9529PerfScope::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
9551PerfScope::~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
9570void 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
9609int 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