1*f5c631daSSadaf Ebrahimi // Copyright 2017, VIXL authors
2*f5c631daSSadaf Ebrahimi // All rights reserved.
3*f5c631daSSadaf Ebrahimi //
4*f5c631daSSadaf Ebrahimi // Redistribution and use in source and binary forms, with or without
5*f5c631daSSadaf Ebrahimi // modification, are permitted provided that the following conditions are met:
6*f5c631daSSadaf Ebrahimi //
7*f5c631daSSadaf Ebrahimi // * Redistributions of source code must retain the above copyright notice,
8*f5c631daSSadaf Ebrahimi // this list of conditions and the following disclaimer.
9*f5c631daSSadaf Ebrahimi // * Redistributions in binary form must reproduce the above copyright notice,
10*f5c631daSSadaf Ebrahimi // this list of conditions and the following disclaimer in the documentation
11*f5c631daSSadaf Ebrahimi // and/or other materials provided with the distribution.
12*f5c631daSSadaf Ebrahimi // * Neither the name of ARM Limited nor the names of its contributors may be
13*f5c631daSSadaf Ebrahimi // used to endorse or promote products derived from this software without
14*f5c631daSSadaf Ebrahimi // specific prior written permission.
15*f5c631daSSadaf Ebrahimi //
16*f5c631daSSadaf Ebrahimi // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS CONTRIBUTORS "AS IS" AND
17*f5c631daSSadaf Ebrahimi // ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18*f5c631daSSadaf Ebrahimi // WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19*f5c631daSSadaf Ebrahimi // DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
20*f5c631daSSadaf Ebrahimi // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
21*f5c631daSSadaf Ebrahimi // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
22*f5c631daSSadaf Ebrahimi // SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
23*f5c631daSSadaf Ebrahimi // CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
24*f5c631daSSadaf Ebrahimi // OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
25*f5c631daSSadaf Ebrahimi // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26*f5c631daSSadaf Ebrahimi
27*f5c631daSSadaf Ebrahimi extern "C" {
28*f5c631daSSadaf Ebrahimi #ifdef __arm__
29*f5c631daSSadaf Ebrahimi #include <linux/perf_event.h>
30*f5c631daSSadaf Ebrahimi #endif
31*f5c631daSSadaf Ebrahimi #include <stdint.h>
32*f5c631daSSadaf Ebrahimi #include <stdio.h>
33*f5c631daSSadaf Ebrahimi #include <sys/ioctl.h>
34*f5c631daSSadaf Ebrahimi #include <sys/syscall.h>
35*f5c631daSSadaf Ebrahimi #include <sys/time.h>
36*f5c631daSSadaf Ebrahimi #include <unistd.h>
37*f5c631daSSadaf Ebrahimi }
38*f5c631daSSadaf Ebrahimi #include <iostream>
39*f5c631daSSadaf Ebrahimi
40*f5c631daSSadaf Ebrahimi #include "aarch32/assembler-aarch32.h"
41*f5c631daSSadaf Ebrahimi #include "aarch32/constants-aarch32.h"
42*f5c631daSSadaf Ebrahimi #include "aarch32/disasm-aarch32.h"
43*f5c631daSSadaf Ebrahimi #include "aarch32/instructions-aarch32.h"
44*f5c631daSSadaf Ebrahimi #include "aarch32/operands-aarch32.h"
45*f5c631daSSadaf Ebrahimi
46*f5c631daSSadaf Ebrahimi // This benchmark tests the speed of the assembler and the disassembler.
47*f5c631daSSadaf Ebrahimi // 7210 instructions (19340 bytes):
48*f5c631daSSadaf Ebrahimi // The command is:
49*f5c631daSSadaf Ebrahimi // asm-disasm-speed-test 2> /dev/null
50*f5c631daSSadaf Ebrahimi // We redirect the output to check only the disassembler speed and not the time
51*f5c631daSSadaf Ebrahimi // to display the disassembly.
52*f5c631daSSadaf Ebrahimi // Example of output:
53*f5c631daSSadaf Ebrahimi // T32 assembler: time: 0.001333s, cycles: 850453
54*f5c631daSSadaf Ebrahimi // T32 disassembler: time: 0.166865s, cycles: 86770518
55*f5c631daSSadaf Ebrahimi
56*f5c631daSSadaf Ebrahimi using namespace vixl;
57*f5c631daSSadaf Ebrahimi using namespace vixl::aarch32;
58*f5c631daSSadaf Ebrahimi
59*f5c631daSSadaf Ebrahimi #define __ assembler->
60*f5c631daSSadaf Ebrahimi
61*f5c631daSSadaf Ebrahimi const int kBufferSize = 512 * KBytes;
62*f5c631daSSadaf Ebrahimi const Register sl(10);
63*f5c631daSSadaf Ebrahimi const Register fp(11);
64*f5c631daSSadaf Ebrahimi
65*f5c631daSSadaf Ebrahimi class TestAssembler : public Assembler {
66*f5c631daSSadaf Ebrahimi public:
TestAssembler()67*f5c631daSSadaf Ebrahimi TestAssembler() : Assembler(kBufferSize) {
68*f5c631daSSadaf Ebrahimi UseInstructionSet(T32);
69*f5c631daSSadaf Ebrahimi SetAllowAssembler(true);
70*f5c631daSSadaf Ebrahimi }
Emit8(uint8_t data)71*f5c631daSSadaf Ebrahimi void Emit8(uint8_t data) { GetBuffer()->Emit8(data); }
Emit16(uint16_t data)72*f5c631daSSadaf Ebrahimi void Emit16(uint16_t data) { GetBuffer()->Emit16(data); }
Emit32(uint32_t data)73*f5c631daSSadaf Ebrahimi void Emit32(uint32_t data) { GetBuffer()->Emit32(data); }
74*f5c631daSSadaf Ebrahimi };
75*f5c631daSSadaf Ebrahimi
76*f5c631daSSadaf Ebrahimi class Generator {
77*f5c631daSSadaf Ebrahimi Label l_0000, l_007c, l_0080, l_008a, l_009e, l_00a2, l_00a8, l_00ac;
78*f5c631daSSadaf Ebrahimi Label l_00b0, l_00d2, l_00dc, l_00e2, l_00e6, l_00ee, l_00f2, l_0100;
79*f5c631daSSadaf Ebrahimi Label l_0126, l_012a, l_0160, l_0166, l_016e, l_0172, l_018c, l_0196;
80*f5c631daSSadaf Ebrahimi Label l_019a, l_01a8, l_01b4, l_01c0, l_01ce, l_0212, l_0226, l_0238;
81*f5c631daSSadaf Ebrahimi Label l_028a, l_028e, l_02a4, l_02a8, l_02ac, l_02c6, l_02cc, l_02dc;
82*f5c631daSSadaf Ebrahimi Label l_030c, l_0334, l_035c, l_03ba, l_03be, l_03d4, l_03d8, l_03dc;
83*f5c631daSSadaf Ebrahimi Label l_0494, l_049a, l_04aa, l_04f8, l_04fc, l_0512, l_0516, l_051a;
84*f5c631daSSadaf Ebrahimi Label l_05d2, l_05d8, l_05f0, l_05f8, l_05fc, l_0600, l_0604, l_0622;
85*f5c631daSSadaf Ebrahimi Label l_066c, l_0670, l_0686, l_068a, l_068e, l_06b2, l_06b8, l_06c6;
86*f5c631daSSadaf Ebrahimi Label l_06f2, l_071a, l_077e, l_0782, l_0798, l_079c, l_07a8, l_07d0;
87*f5c631daSSadaf Ebrahimi Label l_07dc, l_088e, l_0894, l_08a4, l_08cc, l_096c, l_09d6, l_09dc;
88*f5c631daSSadaf Ebrahimi Label l_09e0, l_09e4, l_09e8, l_09fa, l_0a00, l_0aa2, l_0ad4, l_0aec;
89*f5c631daSSadaf Ebrahimi Label l_0afc, l_0b00, l_0b16, l_0b1a, l_0b1c, l_0b20, l_0b2e, l_0b36;
90*f5c631daSSadaf Ebrahimi Label l_0b42, l_0b6c, l_0b98, l_0c2e, l_0c60, l_0c8c, l_0cb8, l_0d10;
91*f5c631daSSadaf Ebrahimi Label l_0d18, l_0d1c, l_0d20, l_0d24, l_0d28, l_0df8, l_0e04, l_0e18;
92*f5c631daSSadaf Ebrahimi Label l_0e2e, l_0e44, l_0e88, l_0e8c, l_0e9e, l_0ea4, l_0ec0, l_0ec6;
93*f5c631daSSadaf Ebrahimi Label l_0ed8, l_0efc, l_0f4a, l_0f4e, l_0f60, l_0f66, l_0f94, l_0f9a;
94*f5c631daSSadaf Ebrahimi Label l_0fac, l_0fbe, l_1006, l_100a, l_101c, l_1022, l_1040, l_1048;
95*f5c631daSSadaf Ebrahimi Label l_1052, l_1064, l_1068, l_106c, l_10a6, l_10aa, l_10bc, l_10c2;
96*f5c631daSSadaf Ebrahimi Label l_10e4, l_10ec, l_10fe, l_1152, l_1156, l_1168, l_116e, l_118e;
97*f5c631daSSadaf Ebrahimi Label l_1196, l_11a0, l_11ac, l_11c4, l_11ce, l_120e, l_1212, l_1224;
98*f5c631daSSadaf Ebrahimi Label l_122a, l_12e2, l_12ea, l_12fc, l_133a, l_133e, l_1350, l_1356;
99*f5c631daSSadaf Ebrahimi Label l_13fc, l_1400, l_1404, l_1416, l_141e, l_1430, l_1472, l_1476;
100*f5c631daSSadaf Ebrahimi Label l_1488, l_148e, l_14b0, l_14b6, l_14c0, l_1552, l_1556, l_1568;
101*f5c631daSSadaf Ebrahimi Label l_156e, l_158a, l_1590, l_159a, l_15ae, l_15dc, l_15e8, l_15f2;
102*f5c631daSSadaf Ebrahimi Label l_1648, l_164c, l_165e, l_1664, l_1694, l_16a2, l_1724, l_1728;
103*f5c631daSSadaf Ebrahimi Label l_172c, l_175a, l_1760, l_1772, l_178c, l_17a0, l_17ce, l_17da;
104*f5c631daSSadaf Ebrahimi Label l_17f2, l_17f6, l_17f8, l_17fc, l_1826, l_1842, l_1856, l_1868;
105*f5c631daSSadaf Ebrahimi Label l_18ac, l_18b0, l_18c6, l_18ca, l_18ce, l_18e6, l_18ec, l_18f6;
106*f5c631daSSadaf Ebrahimi Label l_1938, l_193c, l_1952, l_1956, l_195a, l_1a18, l_1a1e, l_1a2e;
107*f5c631daSSadaf Ebrahimi Label l_1a36, l_1a54, l_1a72, l_1a90, l_1a98, l_1aa0, l_1aa8, l_1ab0;
108*f5c631daSSadaf Ebrahimi Label l_1ab8, l_1ac2, l_1b00, l_1b04, l_1b3a, l_1b3e, l_1b44, l_1b4a;
109*f5c631daSSadaf Ebrahimi Label l_1b68, l_1b88, l_1ba8, l_1bc8, l_1be8, l_1bec, l_1bf0, l_1c0e;
110*f5c631daSSadaf Ebrahimi Label l_1c2e, l_1c48, l_1c4e, l_1c54, l_1c5a, l_1c60, l_1c6a, l_1c72;
111*f5c631daSSadaf Ebrahimi Label l_1c78, l_1c80, l_1c86, l_1c8e, l_1c94, l_1c9c, l_1ca2, l_1caa;
112*f5c631daSSadaf Ebrahimi Label l_1cb0, l_1cb8, l_1cbe, l_1cc6, l_1ccc, l_1cd4, l_1cda, l_1ce2;
113*f5c631daSSadaf Ebrahimi Label l_1d00, l_1d24, l_1d2a, l_1d30, l_1d3a, l_1d42, l_1d4a, l_1d50;
114*f5c631daSSadaf Ebrahimi Label l_1d56, l_1d5c, l_1d62, l_1d6a, l_1d72, l_1d78, l_1d80, l_1d88;
115*f5c631daSSadaf Ebrahimi Label l_1d8a, l_1d92, l_1d9c, l_1dba, l_1dbe, l_1dc4, l_1dc8, l_1dd0;
116*f5c631daSSadaf Ebrahimi Label l_1dd4, l_1dda, l_1dde, l_1de8, l_1df2, l_1df6, l_1dfc, l_1e00;
117*f5c631daSSadaf Ebrahimi Label l_1e06, l_1e0a, l_1e10, l_1e16, l_1e1a, l_1e20, l_1e26, l_1e2c;
118*f5c631daSSadaf Ebrahimi Label l_1e38, l_1e3c, l_1e42, l_1e48, l_1e4e, l_1e52, l_1e5e, l_1e64;
119*f5c631daSSadaf Ebrahimi Label l_1e6a, l_1e70, l_1e76, l_1e7c, l_1e82, l_1e86, l_1e8c, l_1e96;
120*f5c631daSSadaf Ebrahimi Label l_1e9a, l_1ea0, l_1eaa, l_1eb0, l_1eb4, l_1eb8, l_1ebe, l_1ec8;
121*f5c631daSSadaf Ebrahimi Label l_1ed0, l_1ed6, l_1edc, l_1ee0, l_1ee6, l_1eec, l_1ef2, l_1ef6;
122*f5c631daSSadaf Ebrahimi Label l_1efc, l_1f02, l_1f0a, l_1f12, l_1f1a, l_1f22, l_1f26, l_1f2c;
123*f5c631daSSadaf Ebrahimi Label l_1f36, l_1f40, l_1f46, l_1f4c, l_1f50, l_1f56, l_1f5e, l_1f62;
124*f5c631daSSadaf Ebrahimi Label l_1f68, l_1f74, l_1f7e, l_1f84, l_1fb0, l_1fc2, l_1fcc, l_1fda;
125*f5c631daSSadaf Ebrahimi Label l_1fe0, l_1fe8, l_1ff4, l_1ffc, l_2028, l_202c, l_2044, l_2054;
126*f5c631daSSadaf Ebrahimi Label l_2058, l_2070, l_2080, l_2082, l_208a, l_20a4, l_20b4, l_20b6;
127*f5c631daSSadaf Ebrahimi Label l_20be, l_20d8, l_20dc, l_20f4, l_20f8, l_20fa, l_20fe, l_212c;
128*f5c631daSSadaf Ebrahimi Label l_213c, l_2158, l_2178, l_21a6, l_21ae, l_21f6, l_21fc, l_2220;
129*f5c631daSSadaf Ebrahimi Label l_2248, l_2256, l_225c, l_2282, l_2284, l_22a8, l_22b0, l_22c8;
130*f5c631daSSadaf Ebrahimi Label l_22de, l_22e0, l_22e6, l_2304, l_230c, l_2316, l_2334, l_233a;
131*f5c631daSSadaf Ebrahimi Label l_2374, l_2388, l_238c, l_238e, l_2394, l_23a2, l_23a8, l_23ac;
132*f5c631daSSadaf Ebrahimi Label l_23b4, l_23c8, l_23d8, l_23de, l_23e2, l_23ee, l_23f4, l_23fa;
133*f5c631daSSadaf Ebrahimi Label l_2400, l_2404, l_240a, l_2432, l_2446, l_2466, l_246a, l_2474;
134*f5c631daSSadaf Ebrahimi Label l_2484, l_248a, l_2490, l_24ba, l_24c4, l_24ca, l_24e6, l_2500;
135*f5c631daSSadaf Ebrahimi Label l_2510, l_2522, l_2528, l_255c, l_2564, l_256a, l_2592, l_25be;
136*f5c631daSSadaf Ebrahimi Label l_25c8, l_25ce, l_25d8, l_25da, l_25dc, l_25ec, l_25f4, l_25fa;
137*f5c631daSSadaf Ebrahimi Label l_2630, l_2660, l_2680, l_268e, l_2694, l_26b0, l_26b2, l_26c4;
138*f5c631daSSadaf Ebrahimi Label l_26e2, l_26f8, l_272a, l_2734, l_274a, l_2776, l_277e, l_2782;
139*f5c631daSSadaf Ebrahimi Label l_2794, l_279a, l_27a4, l_27dc, l_27e8, l_27f0, l_2808, l_280e;
140*f5c631daSSadaf Ebrahimi Label l_283c, l_2840, l_2846, l_284a, l_2864, l_286c, l_28a2, l_28f8;
141*f5c631daSSadaf Ebrahimi Label l_28fc, l_2906, l_2910, l_294c, l_2972, l_297c, l_2982, l_29a2;
142*f5c631daSSadaf Ebrahimi Label l_29d4, l_29e4, l_29f0, l_2a00, l_2a30, l_2a62, l_2a66, l_2a86;
143*f5c631daSSadaf Ebrahimi Label l_2aba, l_2ad2, l_2afc, l_2b02, l_2b2e, l_2b30, l_2b4e, l_2b76;
144*f5c631daSSadaf Ebrahimi Label l_2b7c, l_2b8a, l_2ba6, l_2bbc, l_2bda, l_2be2, l_2bfc, l_2c2e;
145*f5c631daSSadaf Ebrahimi Label l_2c44, l_2ca8, l_2cac, l_2ce2, l_2cf0, l_2d0c, l_2d16, l_2d6c;
146*f5c631daSSadaf Ebrahimi Label l_2d7a, l_2db8, l_2dfa, l_2e32, l_2e38, l_2e4a, l_2e9c, l_2ea4;
147*f5c631daSSadaf Ebrahimi Label l_2ebe, l_2ed0, l_2ee0, l_2f0a, l_2f20, l_2f26, l_2f3a, l_2f3e;
148*f5c631daSSadaf Ebrahimi Label l_2f9a, l_2fa4, l_2fce, l_2ff8, l_3020, l_302a, l_3030, l_3058;
149*f5c631daSSadaf Ebrahimi Label l_3072, l_3080, l_30a0, l_30b6, l_30ba, l_30e2, l_30ee, l_30f2;
150*f5c631daSSadaf Ebrahimi Label l_3124, l_315a, l_3164, l_3192, l_31a0, l_31ae, l_31be, l_31ce;
151*f5c631daSSadaf Ebrahimi Label l_31d2, l_31e8, l_31ec, l_31f2, l_31fe, l_3216, l_322c, l_3230;
152*f5c631daSSadaf Ebrahimi Label l_323c, l_3242, l_3292, l_329a, l_32a0, l_32a4, l_32ae, l_32b2;
153*f5c631daSSadaf Ebrahimi Label l_32da, l_32e8, l_3310, l_3316, l_3340, l_3346, l_3350, l_3354;
154*f5c631daSSadaf Ebrahimi Label l_3366, l_3384, l_33c8, l_33d2, l_33e0, l_33ee, l_33f2, l_33fa;
155*f5c631daSSadaf Ebrahimi Label l_340c, l_3410, l_342c, l_3430, l_343a, l_343e, l_3444, l_3448;
156*f5c631daSSadaf Ebrahimi Label l_3460, l_3466, l_346e, l_3480, l_3484, l_3492, l_34a6, l_34da;
157*f5c631daSSadaf Ebrahimi Label l_34e8, l_34f4, l_34f8, l_3506, l_350a, l_350c, l_3510, l_3518;
158*f5c631daSSadaf Ebrahimi Label l_3520, l_3536, l_3542, l_3550, l_3554, l_3558, l_35ac, l_35b0;
159*f5c631daSSadaf Ebrahimi Label l_35c6, l_35ca, l_35d0, l_3646, l_3652, l_3678, l_3688, l_3694;
160*f5c631daSSadaf Ebrahimi Label l_3698, l_36a4, l_36a8, l_36aa, l_36ae, l_36b6, l_36bc, l_36d6;
161*f5c631daSSadaf Ebrahimi Label l_36de, l_36e8, l_36f0, l_3706, l_3712, l_3718, l_371e, l_3722;
162*f5c631daSSadaf Ebrahimi Label l_3728, l_372c, l_3730, l_3736, l_3740, l_3744, l_3748, l_374c;
163*f5c631daSSadaf Ebrahimi Label l_37a0, l_37a4, l_37ba, l_37be, l_37c4, l_383a, l_384a, l_3870;
164*f5c631daSSadaf Ebrahimi Label l_3880, l_388c, l_3890, l_389c, l_38a0, l_38a2, l_38a6, l_38ae;
165*f5c631daSSadaf Ebrahimi Label l_38b4, l_38ce, l_38d6, l_38e0, l_38e8, l_38fe, l_390a, l_3910;
166*f5c631daSSadaf Ebrahimi Label l_3916, l_391a, l_3920, l_3924, l_3928, l_392e, l_3938, l_393c;
167*f5c631daSSadaf Ebrahimi Label l_3940, l_3944, l_3998, l_399c, l_39b2, l_39b6, l_39bc, l_3a32;
168*f5c631daSSadaf Ebrahimi Label l_3a42, l_3a68, l_3a78, l_3a84, l_3a88, l_3a94, l_3a98, l_3a9a;
169*f5c631daSSadaf Ebrahimi Label l_3a9e, l_3aa6, l_3aac, l_3ac6, l_3ace, l_3ad8, l_3ae0, l_3af6;
170*f5c631daSSadaf Ebrahimi Label l_3b02, l_3b08, l_3b0e, l_3b12, l_3b18, l_3b1c, l_3b20, l_3b26;
171*f5c631daSSadaf Ebrahimi Label l_3b30, l_3b34, l_3b38, l_3b3c, l_3ba0, l_3ba4, l_3bba, l_3bbe;
172*f5c631daSSadaf Ebrahimi Label l_3bc4, l_3c46, l_3c6c, l_3c7a, l_3c86, l_3c8a, l_3c96, l_3c9a;
173*f5c631daSSadaf Ebrahimi Label l_3c9c, l_3ca0, l_3ca8, l_3cae, l_3cc8, l_3cd0, l_3ce6, l_3cf2;
174*f5c631daSSadaf Ebrahimi Label l_3cf8, l_3d02, l_3d06, l_3d0c, l_3d10, l_3d16, l_3d1c, l_3d20;
175*f5c631daSSadaf Ebrahimi Label l_3d24, l_3d28, l_3d7e, l_3d82, l_3d98, l_3d9c, l_3da2, l_3e18;
176*f5c631daSSadaf Ebrahimi Label l_3e26, l_3e4c, l_3e5c, l_3e68, l_3e6c, l_3e78, l_3e7c, l_3e7e;
177*f5c631daSSadaf Ebrahimi Label l_3e82, l_3e8a, l_3e90, l_3eaa, l_3eb2, l_3ebc, l_3ec4, l_3eda;
178*f5c631daSSadaf Ebrahimi Label l_3ee6, l_3eec, l_3ef2, l_3ef6, l_3efc, l_3f00, l_3f04, l_3f0a;
179*f5c631daSSadaf Ebrahimi Label l_3f14, l_3f18, l_3f1c, l_3f20, l_3f78, l_3f7c, l_3f92, l_3f96;
180*f5c631daSSadaf Ebrahimi Label l_3f9c, l_3fd0, l_3fe6, l_4000, l_400a, l_400c, l_407a, l_4084;
181*f5c631daSSadaf Ebrahimi Label l_40ac, l_40bc, l_40c8, l_40cc, l_40d8, l_40dc, l_40de, l_40e2;
182*f5c631daSSadaf Ebrahimi Label l_40ec, l_40f2, l_4104, l_410c, l_4118, l_4126, l_4142, l_4146;
183*f5c631daSSadaf Ebrahimi Label l_4160, l_4164, l_416c, l_4172, l_417a, l_4184, l_419a, l_41a6;
184*f5c631daSSadaf Ebrahimi Label l_41ac, l_41b4, l_41c4, l_41c8, l_41ce, l_41d2, l_41d6, l_41dc;
185*f5c631daSSadaf Ebrahimi Label l_41e4, l_41e8, l_41ec, l_41f0, l_424a, l_424e, l_4264, l_4268;
186*f5c631daSSadaf Ebrahimi Label l_426e, l_4278, l_4282, l_429c, l_42a0, l_42b6, l_42e0, l_4304;
187*f5c631daSSadaf Ebrahimi Label l_4310, l_4312, l_4384, l_4390, l_43b6, l_43c6, l_43d2, l_43d6;
188*f5c631daSSadaf Ebrahimi Label l_43e2, l_43e6, l_43e8, l_43ec, l_43f6, l_43fc, l_4404, l_4424;
189*f5c631daSSadaf Ebrahimi Label l_4436, l_443e, l_444c, l_4454, l_445e, l_4462, l_446a, l_4470;
190*f5c631daSSadaf Ebrahimi Label l_4478, l_4482, l_4498, l_44a4, l_44aa, l_44b2, l_44d4, l_44f6;
191*f5c631daSSadaf Ebrahimi Label l_44fc, l_4500, l_4508, l_450c, l_4512, l_451c, l_4520, l_4524;
192*f5c631daSSadaf Ebrahimi Label l_4528, l_4542, l_454e, l_4554, l_4558, l_455c, l_4560, l_4564;
193*f5c631daSSadaf Ebrahimi Label l_456c, l_4578, l_457c, l_4580, l_4584, l_458c, l_4590, l_4594;
194*f5c631daSSadaf Ebrahimi Label l_4598, l_45a0, l_45b4, l_45f6, l_4684, l_468a, l_469e, l_46be;
195*f5c631daSSadaf Ebrahimi Label l_46c8, l_46d0, l_46ea, l_46f4, l_46fa, l_4704, l_470a, l_4710;
196*f5c631daSSadaf Ebrahimi Label l_4714, l_471c, l_4724, l_4728, l_472c, l_4730, l_4b0c, l_4b22;
197*f5c631daSSadaf Ebrahimi Label l_4b2e, l_4b34, l_4b38, l_4b3c, l_4b40, l_4b44, l_4b4c, l_4b52;
198*f5c631daSSadaf Ebrahimi Label l_4b5e, l_4b62, l_4b66, l_4b6a, l_4b72, l_4b76, l_4b7c, l_4b80;
Generate_1(TestAssembler * assembler)199*f5c631daSSadaf Ebrahimi void Generate_1(TestAssembler* assembler) {
200*f5c631daSSadaf Ebrahimi // --------------
201*f5c631daSSadaf Ebrahimi __ bind(&l_0000);
202*f5c631daSSadaf Ebrahimi __ push(Narrow, RegisterList(0x40f8));
203*f5c631daSSadaf Ebrahimi __ mov(Narrow, r7, r2);
204*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r6, MemOperand(r7));
205*f5c631daSSadaf Ebrahimi __ mov(Narrow, r4, r0);
206*f5c631daSSadaf Ebrahimi __ movs(Narrow, r3, 0U);
207*f5c631daSSadaf Ebrahimi __ movs(Narrow, r5, 1U);
208*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, &l_00a8);
209*f5c631daSSadaf Ebrahimi __ movs(Narrow, r0, 4U);
210*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r6, 14U);
211*f5c631daSSadaf Ebrahimi __ stm(r4, NO_WRITE_BACK, RegisterList(r1, r6));
212*f5c631daSSadaf Ebrahimi __ str(Narrow, r0, MemOperand(r4, 12));
213*f5c631daSSadaf Ebrahimi __ str(Narrow, r5, MemOperand(r4, 16));
214*f5c631daSSadaf Ebrahimi __ str(Narrow, r5, MemOperand(r4, 20));
215*f5c631daSSadaf Ebrahimi __ strb(r5, MemOperand(r4, 48));
216*f5c631daSSadaf Ebrahimi __ str(Narrow, r5, MemOperand(r4, 64));
217*f5c631daSSadaf Ebrahimi __ str(Narrow, r5, MemOperand(r4, 88));
218*f5c631daSSadaf Ebrahimi __ str(Narrow, r5, MemOperand(r4, 112));
219*f5c631daSSadaf Ebrahimi __ str(r5, MemOperand(r4, 136));
220*f5c631daSSadaf Ebrahimi __ strb(Narrow, r3, MemOperand(r4, 24));
221*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(r4, 28));
222*f5c631daSSadaf Ebrahimi __ strb(r3, MemOperand(r4, 32));
223*f5c631daSSadaf Ebrahimi __ strb(r3, MemOperand(r4, 36));
224*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(r4, 52));
225*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(r4, 56));
226*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(r4, 60));
227*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(r4, 68));
228*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(r4, 72));
229*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(r4, 76));
230*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(r4, 80));
231*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(r4, 84));
232*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(r4, 92));
233*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(r4, 96));
234*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(r4, 100));
235*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(r4, 104));
236*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(r4, 108));
237*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(r4, 116));
238*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(r4, 120));
239*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(r4, 124));
240*f5c631daSSadaf Ebrahimi __ str(r3, MemOperand(r4, 128));
241*f5c631daSSadaf Ebrahimi __ str(r3, MemOperand(r4, 132));
242*f5c631daSSadaf Ebrahimi __ str(r3, MemOperand(r4, 140));
243*f5c631daSSadaf Ebrahimi __ str(r3, MemOperand(r4, 144));
244*f5c631daSSadaf Ebrahimi __ str(r3, MemOperand(r4, 148));
245*f5c631daSSadaf Ebrahimi __ str(r3, MemOperand(r4, 152));
246*f5c631daSSadaf Ebrahimi __ strb(r3, MemOperand(r4, 160));
247*f5c631daSSadaf Ebrahimi __ str(Narrow, r2, MemOperand(r4, 8));
248*f5c631daSSadaf Ebrahimi __ b(eq, Narrow, &l_007c);
249*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r1, 28));
250*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r2, r5);
251*f5c631daSSadaf Ebrahimi __ b(eq, Narrow, &l_0080);
252*f5c631daSSadaf Ebrahimi // --------------
253*f5c631daSSadaf Ebrahimi __ bind(&l_007c);
254*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r4);
255*f5c631daSSadaf Ebrahimi __ pop(Narrow, RegisterList(0x80f8));
256*f5c631daSSadaf Ebrahimi // --------------
257*f5c631daSSadaf Ebrahimi __ bind(&l_0080);
258*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r1);
259*f5c631daSSadaf Ebrahimi __ add(r3, r4, 8U);
260*f5c631daSSadaf Ebrahimi __ eor(r1, r6, 0x1);
261*f5c631daSSadaf Ebrahimi // --------------
262*f5c631daSSadaf Ebrahimi __ bind(&l_008a);
263*f5c631daSSadaf Ebrahimi __ bl(&l_008a);
264*f5c631daSSadaf Ebrahimi __ movs(Narrow, r3, 14U);
265*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r4);
266*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(r7));
267*f5c631daSSadaf Ebrahimi __ pop(Narrow, RegisterList(0x80f8));
268*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, &l_00ac);
269*f5c631daSSadaf Ebrahimi __ add(r0, r4, 36U);
270*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(r4, 8));
271*f5c631daSSadaf Ebrahimi // --------------
272*f5c631daSSadaf Ebrahimi __ bind(&l_009e);
273*f5c631daSSadaf Ebrahimi __ bl(&l_009e);
274*f5c631daSSadaf Ebrahimi // --------------
275*f5c631daSSadaf Ebrahimi __ bind(&l_00a2);
276*f5c631daSSadaf Ebrahimi __ bl(&l_00a2);
277*f5c631daSSadaf Ebrahimi __ nop(Narrow);
278*f5c631daSSadaf Ebrahimi // --------------
279*f5c631daSSadaf Ebrahimi __ bind(&l_00a8);
280*f5c631daSSadaf Ebrahimi __ Emit32(0x00000008);
281*f5c631daSSadaf Ebrahimi // --------------
282*f5c631daSSadaf Ebrahimi __ bind(&l_00ac);
283*f5c631daSSadaf Ebrahimi __ Emit32(0x00000008);
284*f5c631daSSadaf Ebrahimi // --------------
285*f5c631daSSadaf Ebrahimi __ bind(&l_00b0);
286*f5c631daSSadaf Ebrahimi __ push(RegisterList(0x4ff8));
287*f5c631daSSadaf Ebrahimi __ mov(Narrow, r6, r1);
288*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r4, MemOperand(r0));
289*f5c631daSSadaf Ebrahimi __ mov(Narrow, r7, r0);
290*f5c631daSSadaf Ebrahimi __ mov(Narrow, r5, r2);
291*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r1, MemOperand(r0, 4));
292*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r4, r1);
293*f5c631daSSadaf Ebrahimi __ b(eq, &l_01ce);
294*f5c631daSSadaf Ebrahimi __ mov(Narrow, r9, r3);
295*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(sp, 40));
296*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r3, 0U);
297*f5c631daSSadaf Ebrahimi __ b(eq, Narrow, &l_01a8);
298*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r4, 4));
299*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r2, r3);
300*f5c631daSSadaf Ebrahimi __ b(lt, Narrow, &l_01c0);
301*f5c631daSSadaf Ebrahimi // --------------
302*f5c631daSSadaf Ebrahimi __ bind(&l_00d2);
303*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r4));
304*f5c631daSSadaf Ebrahimi __ cbz(r3, &l_00e6);
305*f5c631daSSadaf Ebrahimi __ add(r3, r4, 24U);
306*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_00e2);
307*f5c631daSSadaf Ebrahimi // --------------
308*f5c631daSSadaf Ebrahimi __ bind(&l_00dc);
309*f5c631daSSadaf Ebrahimi __ ldr(r2, MemOperand(r3, 24, PostIndex));
310*f5c631daSSadaf Ebrahimi __ cbz(r2, &l_00e6);
311*f5c631daSSadaf Ebrahimi // --------------
312*f5c631daSSadaf Ebrahimi __ bind(&l_00e2);
313*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r1, r3);
314*f5c631daSSadaf Ebrahimi __ b(ne, Narrow, &l_00dc);
315*f5c631daSSadaf Ebrahimi // --------------
316*f5c631daSSadaf Ebrahimi __ bind(&l_00e6);
317*f5c631daSSadaf Ebrahimi __ movw(sl, 0U);
318*f5c631daSSadaf Ebrahimi __ movt(sl, 0U);
319*f5c631daSSadaf Ebrahimi // --------------
320*f5c631daSSadaf Ebrahimi __ bind(&l_00ee);
321*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r1, r4);
322*f5c631daSSadaf Ebrahimi __ b(eq, Narrow, &l_016e);
323*f5c631daSSadaf Ebrahimi // --------------
324*f5c631daSSadaf Ebrahimi __ bind(&l_00f2);
325*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r7, 40));
326*f5c631daSSadaf Ebrahimi __ add(r0, r5, r9);
327*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r4, 8));
328*f5c631daSSadaf Ebrahimi __ add(Narrow, r3, r3, r0);
329*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r2, r3);
330*f5c631daSSadaf Ebrahimi }
Generate_2(TestAssembler * assembler)331*f5c631daSSadaf Ebrahimi void Generate_2(TestAssembler* assembler) {
332*f5c631daSSadaf Ebrahimi __ b(gt, Narrow, &l_018c);
333*f5c631daSSadaf Ebrahimi // --------------
334*f5c631daSSadaf Ebrahimi __ bind(&l_0100);
335*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r4, 12));
336*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r6);
337*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r6));
338*f5c631daSSadaf Ebrahimi __ ldr(fp, MemOperand(r4));
339*f5c631daSSadaf Ebrahimi __ subs(r3, 1U);
340*f5c631daSSadaf Ebrahimi __ add(r8, r5, r3);
341*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r2, 44));
342*f5c631daSSadaf Ebrahimi __ bic(r8, r8, r3);
343*f5c631daSSadaf Ebrahimi __ rsb(r1, r5, r8);
344*f5c631daSSadaf Ebrahimi __ blx(r2);
345*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r6));
346*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r6);
347*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r3));
348*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r3, sl);
349*f5c631daSSadaf Ebrahimi __ b(ne, Narrow, &l_0196);
350*f5c631daSSadaf Ebrahimi // --------------
351*f5c631daSSadaf Ebrahimi __ bind(&l_0126);
352*f5c631daSSadaf Ebrahimi __ bl(&l_0126);
353*f5c631daSSadaf Ebrahimi // --------------
354*f5c631daSSadaf Ebrahimi __ bind(&l_012a);
355*f5c631daSSadaf Ebrahimi __ ldr(r3, MemOperand(fp));
356*f5c631daSSadaf Ebrahimi __ mov(Narrow, r1, r0);
357*f5c631daSSadaf Ebrahimi __ str(r8, MemOperand(fp, 20));
358*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, fp);
359*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r3, 20));
360*f5c631daSSadaf Ebrahimi __ blx(r3);
361*f5c631daSSadaf Ebrahimi __ ldr(r3, MemOperand(fp));
362*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, fp);
363*f5c631daSSadaf Ebrahimi __ mov(Narrow, r1, r6);
364*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r3, 16));
365*f5c631daSSadaf Ebrahimi __ blx(r3);
366*f5c631daSSadaf Ebrahimi __ ldr(r3, MemOperand(fp));
367*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, fp);
368*f5c631daSSadaf Ebrahimi __ ldr(r5, MemOperand(fp, 4));
369*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r3, 24));
370*f5c631daSSadaf Ebrahimi __ blx(r3);
371*f5c631daSSadaf Ebrahimi __ cbz(r0, &l_019a);
372*f5c631daSSadaf Ebrahimi __ movs(Narrow, r3, 1U);
373*f5c631daSSadaf Ebrahimi __ mov(Narrow, r1, r4);
374*f5c631daSSadaf Ebrahimi __ strb(r3, MemOperand(fp, 16));
375*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r7);
376*f5c631daSSadaf Ebrahimi // --------------
377*f5c631daSSadaf Ebrahimi __ bind(&l_0160);
378*f5c631daSSadaf Ebrahimi __ bl(&l_0160);
379*f5c631daSSadaf Ebrahimi __ mov(Narrow, r4, r0);
380*f5c631daSSadaf Ebrahimi // --------------
381*f5c631daSSadaf Ebrahimi __ bind(&l_0166);
382*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r1, MemOperand(r7, 4));
383*f5c631daSSadaf Ebrahimi __ add(Narrow, r5, r5, r8);
384*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r1, r4);
385*f5c631daSSadaf Ebrahimi __ b(ne, Narrow, &l_00f2);
386*f5c631daSSadaf Ebrahimi // --------------
387*f5c631daSSadaf Ebrahimi __ bind(&l_016e);
388*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r7);
389*f5c631daSSadaf Ebrahimi __ movs(Narrow, r1, 0U);
390*f5c631daSSadaf Ebrahimi // --------------
391*f5c631daSSadaf Ebrahimi __ bind(&l_0172);
392*f5c631daSSadaf Ebrahimi __ bl(&l_0172);
393*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r6));
394*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r6);
395*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r3, 40));
396*f5c631daSSadaf Ebrahimi __ blx(r3);
397*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r0, MemOperand(r7, 28));
398*f5c631daSSadaf Ebrahimi __ subs(r0, 1U);
399*f5c631daSSadaf Ebrahimi __ add(Narrow, r5, r5, r0);
400*f5c631daSSadaf Ebrahimi __ bic(r0, r5, r0);
401*f5c631daSSadaf Ebrahimi __ pop(RegisterList(0x8ff8));
402*f5c631daSSadaf Ebrahimi // --------------
403*f5c631daSSadaf Ebrahimi __ bind(&l_018c);
404*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r4, 16));
405*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r5, r3);
406*f5c631daSSadaf Ebrahimi __ b(ge, Narrow, &l_0100);
407*f5c631daSSadaf Ebrahimi __ adds(Narrow, r4, r4, 24U);
408*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_00ee);
409*f5c631daSSadaf Ebrahimi // --------------
410*f5c631daSSadaf Ebrahimi __ bind(&l_0196);
411*f5c631daSSadaf Ebrahimi __ blx(r3);
412*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_012a);
413*f5c631daSSadaf Ebrahimi // --------------
414*f5c631daSSadaf Ebrahimi __ bind(&l_019a);
415*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r0, MemOperand(r4));
416*f5c631daSSadaf Ebrahimi __ mov(Narrow, r1, r4);
417*f5c631daSSadaf Ebrahimi __ adds(Narrow, r4, r4, 24U);
418*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r0));
419*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r3, 28));
420*f5c631daSSadaf Ebrahimi __ blx(r3);
421*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_0166);
422*f5c631daSSadaf Ebrahimi // --------------
423*f5c631daSSadaf Ebrahimi __ bind(&l_01a8);
424*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r6));
425*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r6);
426*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r3, 36));
427*f5c631daSSadaf Ebrahimi __ blx(r3);
428*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r7, 24));
429*f5c631daSSadaf Ebrahimi __ add(Narrow, r5, r5, r3);
430*f5c631daSSadaf Ebrahimi // --------------
431*f5c631daSSadaf Ebrahimi __ bind(&l_01b4);
432*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r4, MemOperand(r7));
433*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r1, MemOperand(r7, 4));
434*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r4, r1);
435*f5c631daSSadaf Ebrahimi __ b(ne, Narrow, &l_00d2);
436*f5c631daSSadaf Ebrahimi __ mov(Narrow, r1, r4);
437*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_00e6);
438*f5c631daSSadaf Ebrahimi // --------------
439*f5c631daSSadaf Ebrahimi __ bind(&l_01c0);
440*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r6));
441*f5c631daSSadaf Ebrahimi __ subs(Narrow, r1, r3, r5);
442*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r6);
443*f5c631daSSadaf Ebrahimi __ mov(Narrow, r5, r3);
444*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r2, 48));
445*f5c631daSSadaf Ebrahimi __ blx(r3);
446*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_01b4);
447*f5c631daSSadaf Ebrahimi // --------------
448*f5c631daSSadaf Ebrahimi __ bind(&l_01ce);
449*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r2);
450*f5c631daSSadaf Ebrahimi __ pop(RegisterList(0x8ff8));
451*f5c631daSSadaf Ebrahimi __ push(RegisterList(0x4ff0));
452*f5c631daSSadaf Ebrahimi __ movw(r7, 0U);
453*f5c631daSSadaf Ebrahimi __ movt(r7, 0U);
454*f5c631daSSadaf Ebrahimi __ sub(sp, sp, 2476U);
455*f5c631daSSadaf Ebrahimi __ mov(Narrow, r4, r0);
456*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r7, 4));
457*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r5, MemOperand(r7, 24));
458*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r0, MemOperand(r7, 28));
459*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 64));
460*f5c631daSSadaf Ebrahimi }
Generate_3(TestAssembler * assembler)461*f5c631daSSadaf Ebrahimi void Generate_3(TestAssembler* assembler) {
462*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r7, 8));
463*f5c631daSSadaf Ebrahimi __ ubfx(r2, r5, 5U, 4U);
464*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r1, MemOperand(r7, 32));
465*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 36));
466*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r7, 12));
467*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 60));
468*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r7, 16));
469*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 56));
470*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r7, 20));
471*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 52));
472*f5c631daSSadaf Ebrahimi __ cbz(r2, &l_0212);
473*f5c631daSSadaf Ebrahimi __ and_(r5, r5, 0x1f);
474*f5c631daSSadaf Ebrahimi __ mov(r8, 1U);
475*f5c631daSSadaf Ebrahimi __ lsl(r2, r8, r5);
476*f5c631daSSadaf Ebrahimi // --------------
477*f5c631daSSadaf Ebrahimi __ bind(&l_0212);
478*f5c631daSSadaf Ebrahimi __ ubfx(r3, r0, 5U, 4U);
479*f5c631daSSadaf Ebrahimi __ mov(Narrow, r8, r3);
480*f5c631daSSadaf Ebrahimi __ cbz(r3, &l_0226);
481*f5c631daSSadaf Ebrahimi __ and_(r0, r0, 0x1f);
482*f5c631daSSadaf Ebrahimi __ mov(r8, 1U);
483*f5c631daSSadaf Ebrahimi __ lsl(r8, r8, r0);
484*f5c631daSSadaf Ebrahimi // --------------
485*f5c631daSSadaf Ebrahimi __ bind(&l_0226);
486*f5c631daSSadaf Ebrahimi __ ubfx(r3, r1, 5U, 4U);
487*f5c631daSSadaf Ebrahimi __ orr(r8, r8, r2);
488*f5c631daSSadaf Ebrahimi __ cbz(r3, &l_0238);
489*f5c631daSSadaf Ebrahimi __ and_(r1, r1, 0x1f);
490*f5c631daSSadaf Ebrahimi __ movs(Narrow, r3, 1U);
491*f5c631daSSadaf Ebrahimi __ lsls(Narrow, r3, r3, r1);
492*f5c631daSSadaf Ebrahimi // --------------
493*f5c631daSSadaf Ebrahimi __ bind(&l_0238);
494*f5c631daSSadaf Ebrahimi __ movs(Narrow, r1, 14U);
495*f5c631daSSadaf Ebrahimi __ ldr(r9, &l_0600);
496*f5c631daSSadaf Ebrahimi __ str(Narrow, r1, MemOperand(sp, 84));
497*f5c631daSSadaf Ebrahimi __ adds(r1, r4, 44U);
498*f5c631daSSadaf Ebrahimi __ add(r5, sp, 2136U);
499*f5c631daSSadaf Ebrahimi __ mov(r2, 0U);
500*f5c631daSSadaf Ebrahimi __ orr(r8, r8, r3);
501*f5c631daSSadaf Ebrahimi __ str(r9, MemOperand(r5));
502*f5c631daSSadaf Ebrahimi __ str(Narrow, r2, MemOperand(r5, 4));
503*f5c631daSSadaf Ebrahimi __ mov(Narrow, r6, r1);
504*f5c631daSSadaf Ebrahimi __ strb(Narrow, r2, MemOperand(r5, 17));
505*f5c631daSSadaf Ebrahimi __ str(Narrow, r1, MemOperand(sp, 20));
506*f5c631daSSadaf Ebrahimi __ b(eq, Narrow, &l_02ac);
507*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r4, 44));
508*f5c631daSSadaf Ebrahimi __ movs(Narrow, r2, 1U);
509*f5c631daSSadaf Ebrahimi __ str(Narrow, r1, MemOperand(r5, 20));
510*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r1);
511*f5c631daSSadaf Ebrahimi __ str(Narrow, r2, MemOperand(r5, 24));
512*f5c631daSSadaf Ebrahimi __ movs(Narrow, r1, 32U);
513*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r3, 32));
514*f5c631daSSadaf Ebrahimi __ blx(r3);
515*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r4, 44));
516*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r6);
517*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r3, 24));
518*f5c631daSSadaf Ebrahimi __ blx(r3);
519*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r4, 44));
520*f5c631daSSadaf Ebrahimi __ movw(r3, 0U);
521*f5c631daSSadaf Ebrahimi __ movt(r3, 0U);
522*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r2));
523*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r2, r3);
524*f5c631daSSadaf Ebrahimi __ b(ne, &l_1aa8);
525*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r6);
526*f5c631daSSadaf Ebrahimi // --------------
527*f5c631daSSadaf Ebrahimi __ bind(&l_028a);
528*f5c631daSSadaf Ebrahimi __ bl(&l_028a);
529*f5c631daSSadaf Ebrahimi // --------------
530*f5c631daSSadaf Ebrahimi __ bind(&l_028e);
531*f5c631daSSadaf Ebrahimi __ str(Narrow, r0, MemOperand(r5, 4));
532*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r1, MemOperand(r0, 20));
533*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r0, 4));
534*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r0, 12));
535*f5c631daSSadaf Ebrahimi __ add(Narrow, r3, r3, r1);
536*f5c631daSSadaf Ebrahimi __ subs(Narrow, r3, r3, r2);
537*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r3, 31U);
538*f5c631daSSadaf Ebrahimi __ b(hi, Narrow, &l_02a8);
539*f5c631daSSadaf Ebrahimi __ lsls(Narrow, r1, r1, 1U);
540*f5c631daSSadaf Ebrahimi __ adds(r0, 4U);
541*f5c631daSSadaf Ebrahimi __ adds(Narrow, r1, r1, 32U);
542*f5c631daSSadaf Ebrahimi // --------------
543*f5c631daSSadaf Ebrahimi __ bind(&l_02a4);
544*f5c631daSSadaf Ebrahimi __ bl(&l_02a4);
545*f5c631daSSadaf Ebrahimi // --------------
546*f5c631daSSadaf Ebrahimi __ bind(&l_02a8);
547*f5c631daSSadaf Ebrahimi __ movs(Narrow, r3, 1U);
548*f5c631daSSadaf Ebrahimi __ strb(Narrow, r3, MemOperand(r5, 17));
549*f5c631daSSadaf Ebrahimi // --------------
550*f5c631daSSadaf Ebrahimi __ bind(&l_02ac);
551*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, &l_05f8);
552*f5c631daSSadaf Ebrahimi __ add(fp, sp, 2304U);
553*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, fp);
554*f5c631daSSadaf Ebrahimi __ mov(Narrow, r1, r4);
555*f5c631daSSadaf Ebrahimi __ add(Narrow, r2, sp, 84U);
556*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(r5));
557*f5c631daSSadaf Ebrahimi __ bl(&l_0000);
558*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r4);
559*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r1, MemOperand(sp, 84));
560*f5c631daSSadaf Ebrahimi __ mov(Narrow, r3, r8);
561*f5c631daSSadaf Ebrahimi __ movs(Narrow, r2, 0U);
562*f5c631daSSadaf Ebrahimi // --------------
563*f5c631daSSadaf Ebrahimi __ bind(&l_02c6);
564*f5c631daSSadaf Ebrahimi __ bl(&l_02c6);
565*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, fp);
566*f5c631daSSadaf Ebrahimi // --------------
567*f5c631daSSadaf Ebrahimi __ bind(&l_02cc);
568*f5c631daSSadaf Ebrahimi __ bl(&l_02cc);
569*f5c631daSSadaf Ebrahimi __ ldrb(Narrow, r3, MemOperand(r5, 17));
570*f5c631daSSadaf Ebrahimi __ str(r9, MemOperand(r5));
571*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r3, 0U);
572*f5c631daSSadaf Ebrahimi __ b(ne, &l_1a72);
573*f5c631daSSadaf Ebrahimi // --------------
574*f5c631daSSadaf Ebrahimi __ bind(&l_02dc);
575*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r7));
576*f5c631daSSadaf Ebrahimi __ add(r6, sp, 2304U);
577*f5c631daSSadaf Ebrahimi __ vmov(F64, d7, 0.12500);
578*f5c631daSSadaf Ebrahimi __ mov(sl, 832U);
579*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r4);
580*f5c631daSSadaf Ebrahimi __ str(fp, MemOperand(sp));
581*f5c631daSSadaf Ebrahimi __ str(r3, MemOperand(sp, 2320));
582*f5c631daSSadaf Ebrahimi __ movs(Narrow, r1, 14U);
583*f5c631daSSadaf Ebrahimi __ vstr(d7, MemOperand(r6));
584*f5c631daSSadaf Ebrahimi }
Generate_4(TestAssembler * assembler)585*f5c631daSSadaf Ebrahimi void Generate_4(TestAssembler* assembler) {
586*f5c631daSSadaf Ebrahimi __ mov(r2, 800U);
587*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(sp, 60));
588*f5c631daSSadaf Ebrahimi __ add(r6, sp, 2304U);
589*f5c631daSSadaf Ebrahimi __ str(sl, MemOperand(sp, 2312));
590*f5c631daSSadaf Ebrahimi __ mov(r8, 0U);
591*f5c631daSSadaf Ebrahimi // --------------
592*f5c631daSSadaf Ebrahimi __ bind(&l_030c);
593*f5c631daSSadaf Ebrahimi __ bl(&l_030c);
594*f5c631daSSadaf Ebrahimi __ vldr(d7, &l_05f0);
595*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r4);
596*f5c631daSSadaf Ebrahimi __ str(fp, MemOperand(sp));
597*f5c631daSSadaf Ebrahimi __ movs(Narrow, r1, 14U);
598*f5c631daSSadaf Ebrahimi __ str(sl, MemOperand(sp, 2312));
599*f5c631daSSadaf Ebrahimi __ mov(r2, 800U);
600*f5c631daSSadaf Ebrahimi __ vstr(d7, MemOperand(r6));
601*f5c631daSSadaf Ebrahimi __ add(sl, sp, 1968U);
602*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r6, MemOperand(r7));
603*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(sp, 56));
604*f5c631daSSadaf Ebrahimi __ str(r6, MemOperand(sp, 2320));
605*f5c631daSSadaf Ebrahimi // --------------
606*f5c631daSSadaf Ebrahimi __ bind(&l_0334);
607*f5c631daSSadaf Ebrahimi __ bl(&l_0334);
608*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r7, 36));
609*f5c631daSSadaf Ebrahimi __ movs(Narrow, r1, 14U);
610*f5c631daSSadaf Ebrahimi __ ldr(lr, MemOperand(r7, 40));
611*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r4);
612*f5c631daSSadaf Ebrahimi __ str(r8, MemOperand(sp, 2304));
613*f5c631daSSadaf Ebrahimi __ mov(Narrow, r2, r3);
614*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 72));
615*f5c631daSSadaf Ebrahimi __ mov(Narrow, r3, fp);
616*f5c631daSSadaf Ebrahimi __ str(r8, MemOperand(sp, 2312));
617*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 2308));
618*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 2320));
619*f5c631daSSadaf Ebrahimi __ str(r8, MemOperand(sp, 2316));
620*f5c631daSSadaf Ebrahimi // --------------
621*f5c631daSSadaf Ebrahimi __ bind(&l_035c);
622*f5c631daSSadaf Ebrahimi __ bl(&l_035c);
623*f5c631daSSadaf Ebrahimi __ mov(r3, 1056U);
624*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r1, MemOperand(r7));
625*f5c631daSSadaf Ebrahimi __ str(r3, MemOperand(sl, 8));
626*f5c631daSSadaf Ebrahimi __ movs(Narrow, r2, 42U);
627*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r7, 44));
628*f5c631daSSadaf Ebrahimi __ str(r8, MemOperand(r5, 4));
629*f5c631daSSadaf Ebrahimi __ strb(r8, MemOperand(r5, 17));
630*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 48));
631*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r7, 48));
632*f5c631daSSadaf Ebrahimi __ str(r9, MemOperand(r5));
633*f5c631daSSadaf Ebrahimi __ str(r1, MemOperand(sl, 16));
634*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 44));
635*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(sp, 20));
636*f5c631daSSadaf Ebrahimi __ str(r2, MemOperand(sl));
637*f5c631daSSadaf Ebrahimi __ cbz(r3, &l_03dc);
638*f5c631daSSadaf Ebrahimi __ mov(Narrow, r6, r3);
639*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r4, 44));
640*f5c631daSSadaf Ebrahimi __ movs(Narrow, r2, 1U);
641*f5c631daSSadaf Ebrahimi __ str(Narrow, r6, MemOperand(r5, 20));
642*f5c631daSSadaf Ebrahimi __ str(Narrow, r2, MemOperand(r5, 24));
643*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r6);
644*f5c631daSSadaf Ebrahimi __ movs(Narrow, r1, 32U);
645*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r3, 32));
646*f5c631daSSadaf Ebrahimi __ blx(r3);
647*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r4, 44));
648*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r6);
649*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r3, 24));
650*f5c631daSSadaf Ebrahimi __ blx(r3);
651*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r4, 44));
652*f5c631daSSadaf Ebrahimi __ movw(r3, 0U);
653*f5c631daSSadaf Ebrahimi __ movt(r3, 0U);
654*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r2));
655*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r2, r3);
656*f5c631daSSadaf Ebrahimi __ b(ne, &l_1ab0);
657*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r6);
658*f5c631daSSadaf Ebrahimi // --------------
659*f5c631daSSadaf Ebrahimi __ bind(&l_03ba);
660*f5c631daSSadaf Ebrahimi __ bl(&l_03ba);
661*f5c631daSSadaf Ebrahimi // --------------
662*f5c631daSSadaf Ebrahimi __ bind(&l_03be);
663*f5c631daSSadaf Ebrahimi __ str(Narrow, r0, MemOperand(r5, 4));
664*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r1, MemOperand(r0, 20));
665*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r0, 4));
666*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r0, 12));
667*f5c631daSSadaf Ebrahimi __ add(Narrow, r3, r3, r1);
668*f5c631daSSadaf Ebrahimi __ subs(Narrow, r3, r3, r2);
669*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r3, 31U);
670*f5c631daSSadaf Ebrahimi __ b(hi, Narrow, &l_03d8);
671*f5c631daSSadaf Ebrahimi __ lsls(Narrow, r1, r1, 1U);
672*f5c631daSSadaf Ebrahimi __ adds(r0, 4U);
673*f5c631daSSadaf Ebrahimi __ adds(Narrow, r1, r1, 32U);
674*f5c631daSSadaf Ebrahimi // --------------
675*f5c631daSSadaf Ebrahimi __ bind(&l_03d4);
676*f5c631daSSadaf Ebrahimi __ bl(&l_03d4);
677*f5c631daSSadaf Ebrahimi // --------------
678*f5c631daSSadaf Ebrahimi __ bind(&l_03d8);
679*f5c631daSSadaf Ebrahimi __ movs(Narrow, r3, 1U);
680*f5c631daSSadaf Ebrahimi __ strb(Narrow, r3, MemOperand(r5, 17));
681*f5c631daSSadaf Ebrahimi // --------------
682*f5c631daSSadaf Ebrahimi __ bind(&l_03dc);
683*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r1, &l_05f8);
684*f5c631daSSadaf Ebrahimi __ mov(lr, 0U);
685*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r6, &l_05fc);
686*f5c631daSSadaf Ebrahimi __ mov(ip, 1U);
687*f5c631daSSadaf Ebrahimi __ movs(Narrow, r3, 14U);
688*f5c631daSSadaf Ebrahimi __ movs(Narrow, r2, 4U);
689*f5c631daSSadaf Ebrahimi __ str(Narrow, r1, MemOperand(r5));
690*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r4);
691*f5c631daSSadaf Ebrahimi __ str(r3, MemOperand(sp, 2308));
692*f5c631daSSadaf Ebrahimi __ mov(Narrow, r1, r3);
693*f5c631daSSadaf Ebrahimi __ str(r2, MemOperand(sp, 2316));
694*f5c631daSSadaf Ebrahimi __ mov(r2, 1032U);
695*f5c631daSSadaf Ebrahimi __ str(r4, MemOperand(sp, 2304));
696*f5c631daSSadaf Ebrahimi __ str(ip, MemOperand(sp, 2320));
697*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(sp, 48));
698*f5c631daSSadaf Ebrahimi __ str(ip, MemOperand(sp, 2324));
699*f5c631daSSadaf Ebrahimi __ strb(ip, MemOperand(sp, 2352));
700*f5c631daSSadaf Ebrahimi __ str(ip, MemOperand(sp, 2368));
701*f5c631daSSadaf Ebrahimi __ str(ip, MemOperand(sp, 2392));
702*f5c631daSSadaf Ebrahimi }
Generate_5(TestAssembler * assembler)703*f5c631daSSadaf Ebrahimi void Generate_5(TestAssembler* assembler) {
704*f5c631daSSadaf Ebrahimi __ str(ip, MemOperand(sp, 2416));
705*f5c631daSSadaf Ebrahimi __ str(ip, MemOperand(sp, 2440));
706*f5c631daSSadaf Ebrahimi __ strb(lr, MemOperand(sp, 2328));
707*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 2332));
708*f5c631daSSadaf Ebrahimi __ strb(lr, MemOperand(sp, 2336));
709*f5c631daSSadaf Ebrahimi __ strb(lr, MemOperand(sp, 2340));
710*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 2356));
711*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 2360));
712*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 2364));
713*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 2372));
714*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 2376));
715*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 2380));
716*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 2384));
717*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 2388));
718*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 2396));
719*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 2400));
720*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 2404));
721*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 2408));
722*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 2412));
723*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 2420));
724*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 2424));
725*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 2428));
726*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 2432));
727*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 2436));
728*f5c631daSSadaf Ebrahimi __ str(sl, MemOperand(sp));
729*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 2444));
730*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 2448));
731*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 2452));
732*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 2456));
733*f5c631daSSadaf Ebrahimi __ strb(lr, MemOperand(sp, 2464));
734*f5c631daSSadaf Ebrahimi __ str(r6, MemOperand(sp, 2312));
735*f5c631daSSadaf Ebrahimi // --------------
736*f5c631daSSadaf Ebrahimi __ bind(&l_0494);
737*f5c631daSSadaf Ebrahimi __ bl(&l_0494);
738*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, fp);
739*f5c631daSSadaf Ebrahimi // --------------
740*f5c631daSSadaf Ebrahimi __ bind(&l_049a);
741*f5c631daSSadaf Ebrahimi __ bl(&l_049a);
742*f5c631daSSadaf Ebrahimi __ ldrb(Narrow, r3, MemOperand(r5, 17));
743*f5c631daSSadaf Ebrahimi __ str(r9, MemOperand(r5));
744*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r3, 0U);
745*f5c631daSSadaf Ebrahimi __ b(ne, &l_1a54);
746*f5c631daSSadaf Ebrahimi // --------------
747*f5c631daSSadaf Ebrahimi __ bind(&l_04aa);
748*f5c631daSSadaf Ebrahimi __ movs(Narrow, r3, 0U);
749*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r0, MemOperand(r7));
750*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(r5, 4));
751*f5c631daSSadaf Ebrahimi __ movs(Narrow, r1, 32U);
752*f5c631daSSadaf Ebrahimi __ strb(Narrow, r3, MemOperand(r5, 17));
753*f5c631daSSadaf Ebrahimi __ mov(r2, 1056U);
754*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(sp, 20));
755*f5c631daSSadaf Ebrahimi __ str(r9, MemOperand(r5));
756*f5c631daSSadaf Ebrahimi __ str(r1, MemOperand(sl));
757*f5c631daSSadaf Ebrahimi __ str(r0, MemOperand(sl, 16));
758*f5c631daSSadaf Ebrahimi __ str(r2, MemOperand(sl, 8));
759*f5c631daSSadaf Ebrahimi __ cbz(r3, &l_051a);
760*f5c631daSSadaf Ebrahimi __ mov(Narrow, r6, r3);
761*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r4, 44));
762*f5c631daSSadaf Ebrahimi __ movs(Narrow, r2, 1U);
763*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r6);
764*f5c631daSSadaf Ebrahimi __ str(Narrow, r2, MemOperand(r5, 24));
765*f5c631daSSadaf Ebrahimi __ str(Narrow, r6, MemOperand(r5, 20));
766*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r3, 32));
767*f5c631daSSadaf Ebrahimi __ blx(r3);
768*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r4, 44));
769*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r6);
770*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r3, 24));
771*f5c631daSSadaf Ebrahimi __ blx(r3);
772*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r4, 44));
773*f5c631daSSadaf Ebrahimi __ movw(r3, 0U);
774*f5c631daSSadaf Ebrahimi __ movt(r3, 0U);
775*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r2));
776*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r2, r3);
777*f5c631daSSadaf Ebrahimi __ b(ne, &l_1a98);
778*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r6);
779*f5c631daSSadaf Ebrahimi // --------------
780*f5c631daSSadaf Ebrahimi __ bind(&l_04f8);
781*f5c631daSSadaf Ebrahimi __ bl(&l_04f8);
782*f5c631daSSadaf Ebrahimi // --------------
783*f5c631daSSadaf Ebrahimi __ bind(&l_04fc);
784*f5c631daSSadaf Ebrahimi __ str(Narrow, r0, MemOperand(r5, 4));
785*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r1, MemOperand(r0, 20));
786*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r0, 4));
787*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r0, 12));
788*f5c631daSSadaf Ebrahimi __ add(Narrow, r3, r3, r1);
789*f5c631daSSadaf Ebrahimi __ subs(Narrow, r3, r3, r2);
790*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r3, 31U);
791*f5c631daSSadaf Ebrahimi __ b(hi, Narrow, &l_0516);
792*f5c631daSSadaf Ebrahimi __ lsls(Narrow, r1, r1, 1U);
793*f5c631daSSadaf Ebrahimi __ adds(r0, 4U);
794*f5c631daSSadaf Ebrahimi __ adds(Narrow, r1, r1, 32U);
795*f5c631daSSadaf Ebrahimi // --------------
796*f5c631daSSadaf Ebrahimi __ bind(&l_0512);
797*f5c631daSSadaf Ebrahimi __ bl(&l_0512);
798*f5c631daSSadaf Ebrahimi // --------------
799*f5c631daSSadaf Ebrahimi __ bind(&l_0516);
800*f5c631daSSadaf Ebrahimi __ movs(Narrow, r3, 1U);
801*f5c631daSSadaf Ebrahimi __ strb(Narrow, r3, MemOperand(r5, 17));
802*f5c631daSSadaf Ebrahimi // --------------
803*f5c631daSSadaf Ebrahimi __ bind(&l_051a);
804*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r1, &l_05f8);
805*f5c631daSSadaf Ebrahimi __ mov(lr, 0U);
806*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r6, &l_05fc);
807*f5c631daSSadaf Ebrahimi __ mov(ip, 1U);
808*f5c631daSSadaf Ebrahimi __ movs(Narrow, r3, 14U);
809*f5c631daSSadaf Ebrahimi __ movs(Narrow, r2, 4U);
810*f5c631daSSadaf Ebrahimi __ str(Narrow, r1, MemOperand(r5));
811*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r4);
812*f5c631daSSadaf Ebrahimi __ str(r3, MemOperand(sp, 2308));
813*f5c631daSSadaf Ebrahimi __ mov(Narrow, r1, r3);
814*f5c631daSSadaf Ebrahimi __ str(r2, MemOperand(sp, 2316));
815*f5c631daSSadaf Ebrahimi __ mov(r2, 1032U);
816*f5c631daSSadaf Ebrahimi __ str(r4, MemOperand(sp, 2304));
817*f5c631daSSadaf Ebrahimi __ str(ip, MemOperand(sp, 2320));
818*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(sp, 44));
819*f5c631daSSadaf Ebrahimi __ str(ip, MemOperand(sp, 2324));
820*f5c631daSSadaf Ebrahimi }
Generate_6(TestAssembler * assembler)821*f5c631daSSadaf Ebrahimi void Generate_6(TestAssembler* assembler) {
822*f5c631daSSadaf Ebrahimi __ strb(ip, MemOperand(sp, 2352));
823*f5c631daSSadaf Ebrahimi __ str(ip, MemOperand(sp, 2368));
824*f5c631daSSadaf Ebrahimi __ str(ip, MemOperand(sp, 2392));
825*f5c631daSSadaf Ebrahimi __ str(ip, MemOperand(sp, 2416));
826*f5c631daSSadaf Ebrahimi __ str(ip, MemOperand(sp, 2440));
827*f5c631daSSadaf Ebrahimi __ strb(lr, MemOperand(sp, 2328));
828*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 2332));
829*f5c631daSSadaf Ebrahimi __ strb(lr, MemOperand(sp, 2336));
830*f5c631daSSadaf Ebrahimi __ strb(lr, MemOperand(sp, 2340));
831*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 2356));
832*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 2360));
833*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 2364));
834*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 2372));
835*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 2376));
836*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 2380));
837*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 2384));
838*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 2388));
839*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 2396));
840*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 2400));
841*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 2404));
842*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 2408));
843*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 2412));
844*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 2420));
845*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 2424));
846*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 2428));
847*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 2432));
848*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 2436));
849*f5c631daSSadaf Ebrahimi __ str(sl, MemOperand(sp));
850*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 2444));
851*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 2448));
852*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 2452));
853*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 2456));
854*f5c631daSSadaf Ebrahimi __ strb(lr, MemOperand(sp, 2464));
855*f5c631daSSadaf Ebrahimi __ str(r6, MemOperand(sp, 2312));
856*f5c631daSSadaf Ebrahimi // --------------
857*f5c631daSSadaf Ebrahimi __ bind(&l_05d2);
858*f5c631daSSadaf Ebrahimi __ bl(&l_05d2);
859*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, fp);
860*f5c631daSSadaf Ebrahimi // --------------
861*f5c631daSSadaf Ebrahimi __ bind(&l_05d8);
862*f5c631daSSadaf Ebrahimi __ bl(&l_05d8);
863*f5c631daSSadaf Ebrahimi __ ldrb(Narrow, r3, MemOperand(r5, 17));
864*f5c631daSSadaf Ebrahimi __ str(r9, MemOperand(r5));
865*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r3, 0U);
866*f5c631daSSadaf Ebrahimi __ b(ne, &l_1a36);
867*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_0604);
868*f5c631daSSadaf Ebrahimi __ nop(Narrow);
869*f5c631daSSadaf Ebrahimi __ nop(Wide);
870*f5c631daSSadaf Ebrahimi // --------------
871*f5c631daSSadaf Ebrahimi __ bind(&l_05f0);
872*f5c631daSSadaf Ebrahimi __ Emit32(0x00000000);
873*f5c631daSSadaf Ebrahimi __ Emit32(0x3fb00000);
874*f5c631daSSadaf Ebrahimi // --------------
875*f5c631daSSadaf Ebrahimi __ bind(&l_05f8);
876*f5c631daSSadaf Ebrahimi __ Emit32(0x00000008);
877*f5c631daSSadaf Ebrahimi // --------------
878*f5c631daSSadaf Ebrahimi __ bind(&l_05fc);
879*f5c631daSSadaf Ebrahimi __ Emit32(0x00000008);
880*f5c631daSSadaf Ebrahimi // --------------
881*f5c631daSSadaf Ebrahimi __ bind(&l_0600);
882*f5c631daSSadaf Ebrahimi __ Emit32(0x00000008);
883*f5c631daSSadaf Ebrahimi // --------------
884*f5c631daSSadaf Ebrahimi __ bind(&l_0604);
885*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r7, 48));
886*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r4);
887*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r1, MemOperand(r7, 52));
888*f5c631daSSadaf Ebrahimi __ add(r8, sp, 120U);
889*f5c631daSSadaf Ebrahimi __ vmov(F32, s0, -2.0000);
890*f5c631daSSadaf Ebrahimi __ and_(r3, r3, 0x1f);
891*f5c631daSSadaf Ebrahimi __ orr(r3, r3, 0x8000);
892*f5c631daSSadaf Ebrahimi __ orr(r3, r3, 0x60);
893*f5c631daSSadaf Ebrahimi __ mov(Narrow, r6, r3);
894*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 76));
895*f5c631daSSadaf Ebrahimi // --------------
896*f5c631daSSadaf Ebrahimi __ bind(&l_0622);
897*f5c631daSSadaf Ebrahimi __ bl(&l_0622);
898*f5c631daSSadaf Ebrahimi __ movs(Narrow, r3, 0U);
899*f5c631daSSadaf Ebrahimi __ movs(Narrow, r2, 1U);
900*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(r5, 4));
901*f5c631daSSadaf Ebrahimi __ movs(Narrow, r1, 14U);
902*f5c631daSSadaf Ebrahimi __ strb(Narrow, r3, MemOperand(r5, 17));
903*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r6);
904*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(sp, 20));
905*f5c631daSSadaf Ebrahimi __ str(r9, MemOperand(r5));
906*f5c631daSSadaf Ebrahimi __ stm(r8, NO_WRITE_BACK, RegisterList(r0, r2));
907*f5c631daSSadaf Ebrahimi __ str(Narrow, r1, MemOperand(sp, 88));
908*f5c631daSSadaf Ebrahimi __ cbz(r3, &l_068e);
909*f5c631daSSadaf Ebrahimi __ mov(Narrow, r6, r3);
910*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r4, 44));
911*f5c631daSSadaf Ebrahimi __ str(Narrow, r2, MemOperand(r5, 24));
912*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r6);
913*f5c631daSSadaf Ebrahimi __ str(Narrow, r6, MemOperand(r5, 20));
914*f5c631daSSadaf Ebrahimi __ movs(Narrow, r1, 32U);
915*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r3, 32));
916*f5c631daSSadaf Ebrahimi __ blx(r3);
917*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r4, 44));
918*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r6);
919*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r3, 24));
920*f5c631daSSadaf Ebrahimi __ blx(r3);
921*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r4, 44));
922*f5c631daSSadaf Ebrahimi __ movw(r3, 0U);
923*f5c631daSSadaf Ebrahimi __ movt(r3, 0U);
924*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r2));
925*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r2, r3);
926*f5c631daSSadaf Ebrahimi __ b(ne, &l_1a90);
927*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r6);
928*f5c631daSSadaf Ebrahimi // --------------
929*f5c631daSSadaf Ebrahimi __ bind(&l_066c);
930*f5c631daSSadaf Ebrahimi __ bl(&l_066c);
931*f5c631daSSadaf Ebrahimi // --------------
932*f5c631daSSadaf Ebrahimi __ bind(&l_0670);
933*f5c631daSSadaf Ebrahimi __ str(Narrow, r0, MemOperand(r5, 4));
934*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r1, MemOperand(r0, 20));
935*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r0, 4));
936*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r0, 12));
937*f5c631daSSadaf Ebrahimi __ add(Narrow, r3, r3, r1);
938*f5c631daSSadaf Ebrahimi __ subs(Narrow, r3, r3, r2);
939*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r3, 31U);
940*f5c631daSSadaf Ebrahimi __ b(hi, Narrow, &l_068a);
941*f5c631daSSadaf Ebrahimi __ lsls(Narrow, r1, r1, 1U);
942*f5c631daSSadaf Ebrahimi }
Generate_7(TestAssembler * assembler)943*f5c631daSSadaf Ebrahimi void Generate_7(TestAssembler* assembler) {
944*f5c631daSSadaf Ebrahimi __ adds(r0, 4U);
945*f5c631daSSadaf Ebrahimi __ adds(Narrow, r1, r1, 32U);
946*f5c631daSSadaf Ebrahimi // --------------
947*f5c631daSSadaf Ebrahimi __ bind(&l_0686);
948*f5c631daSSadaf Ebrahimi __ bl(&l_0686);
949*f5c631daSSadaf Ebrahimi // --------------
950*f5c631daSSadaf Ebrahimi __ bind(&l_068a);
951*f5c631daSSadaf Ebrahimi __ movs(Narrow, r3, 1U);
952*f5c631daSSadaf Ebrahimi __ strb(Narrow, r3, MemOperand(r5, 17));
953*f5c631daSSadaf Ebrahimi // --------------
954*f5c631daSSadaf Ebrahimi __ bind(&l_068e);
955*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, &l_09dc);
956*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, fp);
957*f5c631daSSadaf Ebrahimi __ mov(Narrow, r1, r4);
958*f5c631daSSadaf Ebrahimi __ add(Narrow, r2, sp, 88U);
959*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(r5));
960*f5c631daSSadaf Ebrahimi __ bl(&l_0000);
961*f5c631daSSadaf Ebrahimi __ ldm(r8, NO_WRITE_BACK, RegisterList(r0, r1));
962*f5c631daSSadaf Ebrahimi __ mov(r2, 1568U);
963*f5c631daSSadaf Ebrahimi __ ldr(lr, MemOperand(sp, 88));
964*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(sp, 36));
965*f5c631daSSadaf Ebrahimi __ stm(sp, NO_WRITE_BACK, RegisterList(r0, r1));
966*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r4);
967*f5c631daSSadaf Ebrahimi __ mov(Narrow, r1, lr);
968*f5c631daSSadaf Ebrahimi // --------------
969*f5c631daSSadaf Ebrahimi __ bind(&l_06b2);
970*f5c631daSSadaf Ebrahimi __ bl(&l_06b2);
971*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, fp);
972*f5c631daSSadaf Ebrahimi // --------------
973*f5c631daSSadaf Ebrahimi __ bind(&l_06b8);
974*f5c631daSSadaf Ebrahimi __ bl(&l_06b8);
975*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, &l_09dc);
976*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r5);
977*f5c631daSSadaf Ebrahimi __ mov(r8, 0U);
978*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(r5));
979*f5c631daSSadaf Ebrahimi // --------------
980*f5c631daSSadaf Ebrahimi __ bind(&l_06c6);
981*f5c631daSSadaf Ebrahimi __ bl(&l_06c6);
982*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r7));
983*f5c631daSSadaf Ebrahimi __ mov(lr, 832U);
984*f5c631daSSadaf Ebrahimi __ vmov(F64, d7, 4.0000);
985*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r4);
986*f5c631daSSadaf Ebrahimi __ str(fp, MemOperand(sp));
987*f5c631daSSadaf Ebrahimi __ movs(Narrow, r1, 14U);
988*f5c631daSSadaf Ebrahimi __ str(r3, MemOperand(sp, 2320));
989*f5c631daSSadaf Ebrahimi __ add(r3, sp, 2304U);
990*f5c631daSSadaf Ebrahimi __ vstr(d7, MemOperand(r3));
991*f5c631daSSadaf Ebrahimi __ mov(r2, 800U);
992*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(sp, 52));
993*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 2312));
994*f5c631daSSadaf Ebrahimi // --------------
995*f5c631daSSadaf Ebrahimi __ bind(&l_06f2);
996*f5c631daSSadaf Ebrahimi __ bl(&l_06f2);
997*f5c631daSSadaf Ebrahimi __ ldr(lr, MemOperand(r7, 40));
998*f5c631daSSadaf Ebrahimi __ mov(ip, 64U);
999*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r7, 24));
1000*f5c631daSSadaf Ebrahimi __ mov(Narrow, r3, fp);
1001*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r4);
1002*f5c631daSSadaf Ebrahimi __ movs(Narrow, r1, 14U);
1003*f5c631daSSadaf Ebrahimi __ str(r8, MemOperand(sp, 2312));
1004*f5c631daSSadaf Ebrahimi __ str(r8, MemOperand(sp, 2316));
1005*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 2308));
1006*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 2320));
1007*f5c631daSSadaf Ebrahimi __ str(ip, MemOperand(sp, 2304));
1008*f5c631daSSadaf Ebrahimi // --------------
1009*f5c631daSSadaf Ebrahimi __ bind(&l_071a);
1010*f5c631daSSadaf Ebrahimi __ bl(&l_071a);
1011*f5c631daSSadaf Ebrahimi __ movs(Narrow, r2, 132U);
1012*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r7, 40));
1013*f5c631daSSadaf Ebrahimi __ str(r2, MemOperand(sl));
1014*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(sp, 20));
1015*f5c631daSSadaf Ebrahimi __ str(r8, MemOperand(sl, 8));
1016*f5c631daSSadaf Ebrahimi __ str(r8, MemOperand(sl, 12));
1017*f5c631daSSadaf Ebrahimi __ str(r8, MemOperand(r5, 4));
1018*f5c631daSSadaf Ebrahimi __ strb(r8, MemOperand(r5, 17));
1019*f5c631daSSadaf Ebrahimi __ str(r3, MemOperand(sl, 4));
1020*f5c631daSSadaf Ebrahimi __ str(r3, MemOperand(sl, 16));
1021*f5c631daSSadaf Ebrahimi __ str(r9, MemOperand(r5));
1022*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, &l_09dc);
1023*f5c631daSSadaf Ebrahimi __ ldr(r8, MemOperand(r7, 56));
1024*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r2, 0U);
1025*f5c631daSSadaf Ebrahimi __ b(eq, &l_1ab8);
1026*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r4, 44));
1027*f5c631daSSadaf Ebrahimi __ mov(Narrow, r6, r2);
1028*f5c631daSSadaf Ebrahimi __ movs(Narrow, r2, 1U);
1029*f5c631daSSadaf Ebrahimi __ str(Narrow, r6, MemOperand(r5, 20));
1030*f5c631daSSadaf Ebrahimi __ str(Narrow, r2, MemOperand(r5, 24));
1031*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r6);
1032*f5c631daSSadaf Ebrahimi __ movs(Narrow, r1, 32U);
1033*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r3, 32));
1034*f5c631daSSadaf Ebrahimi __ blx(r3);
1035*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r4, 44));
1036*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r6);
1037*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r3, 24));
1038*f5c631daSSadaf Ebrahimi __ blx(r3);
1039*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r4, 44));
1040*f5c631daSSadaf Ebrahimi __ movw(r3, 0U);
1041*f5c631daSSadaf Ebrahimi __ movt(r3, 0U);
1042*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r2));
1043*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r2, r3);
1044*f5c631daSSadaf Ebrahimi __ b(ne, &l_1aa0);
1045*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r6);
1046*f5c631daSSadaf Ebrahimi // --------------
1047*f5c631daSSadaf Ebrahimi __ bind(&l_077e);
1048*f5c631daSSadaf Ebrahimi __ bl(&l_077e);
1049*f5c631daSSadaf Ebrahimi // --------------
1050*f5c631daSSadaf Ebrahimi __ bind(&l_0782);
1051*f5c631daSSadaf Ebrahimi __ str(Narrow, r0, MemOperand(r5, 4));
1052*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r1, MemOperand(r0, 20));
1053*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r0, 4));
1054*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r0, 12));
1055*f5c631daSSadaf Ebrahimi __ add(Narrow, r3, r3, r1);
1056*f5c631daSSadaf Ebrahimi __ subs(Narrow, r3, r3, r2);
1057*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r3, 31U);
1058*f5c631daSSadaf Ebrahimi __ b(hi, Narrow, &l_079c);
1059*f5c631daSSadaf Ebrahimi __ lsls(Narrow, r1, r1, 1U);
1060*f5c631daSSadaf Ebrahimi __ adds(r0, 4U);
1061*f5c631daSSadaf Ebrahimi __ adds(Narrow, r1, r1, 32U);
1062*f5c631daSSadaf Ebrahimi // --------------
1063*f5c631daSSadaf Ebrahimi __ bind(&l_0798);
1064*f5c631daSSadaf Ebrahimi __ bl(&l_0798);
1065*f5c631daSSadaf Ebrahimi // --------------
1066*f5c631daSSadaf Ebrahimi __ bind(&l_079c);
1067*f5c631daSSadaf Ebrahimi __ movs(Narrow, r3, 1U);
1068*f5c631daSSadaf Ebrahimi }
Generate_8(TestAssembler * assembler)1069*f5c631daSSadaf Ebrahimi void Generate_8(TestAssembler* assembler) {
1070*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, &l_09dc);
1071*f5c631daSSadaf Ebrahimi __ strb(Narrow, r3, MemOperand(r5, 17));
1072*f5c631daSSadaf Ebrahimi __ and_(r3, r8, 0x1f);
1073*f5c631daSSadaf Ebrahimi __ str(Narrow, r2, MemOperand(r5));
1074*f5c631daSSadaf Ebrahimi // --------------
1075*f5c631daSSadaf Ebrahimi __ bind(&l_07a8);
1076*f5c631daSSadaf Ebrahimi __ ldr(r0, MemOperand(sl, 4));
1077*f5c631daSSadaf Ebrahimi __ ubfx(r1, r0, 5U, 4U);
1078*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r1, 0U);
1079*f5c631daSSadaf Ebrahimi __ b(ne, &l_1ac2);
1080*f5c631daSSadaf Ebrahimi __ ldr(r2, MemOperand(sl));
1081*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r2, 0U);
1082*f5c631daSSadaf Ebrahimi __ b(eq, &l_1d88);
1083*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r2, 7U);
1084*f5c631daSSadaf Ebrahimi __ b(hi, &l_1b3e);
1085*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r3, 7U);
1086*f5c631daSSadaf Ebrahimi __ it(ls);
1087*f5c631daSSadaf Ebrahimi __ mov(ls, ip, 1U);
1088*f5c631daSSadaf Ebrahimi __ b(ls, Narrow, &l_07dc);
1089*f5c631daSSadaf Ebrahimi // --------------
1090*f5c631daSSadaf Ebrahimi __ bind(&l_07d0);
1091*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r3, 7U);
1092*f5c631daSSadaf Ebrahimi __ ite(hi);
1093*f5c631daSSadaf Ebrahimi __ mov(hi, ip, 0U);
1094*f5c631daSSadaf Ebrahimi __ mov(ls, ip, 1U);
1095*f5c631daSSadaf Ebrahimi // --------------
1096*f5c631daSSadaf Ebrahimi __ bind(&l_07dc);
1097*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r6, &l_09e0);
1098*f5c631daSSadaf Ebrahimi __ mov(lr, 0U);
1099*f5c631daSSadaf Ebrahimi __ movs(Narrow, r3, 1U);
1100*f5c631daSSadaf Ebrahimi __ movs(Narrow, r2, 4U);
1101*f5c631daSSadaf Ebrahimi __ movs(Narrow, r1, 14U);
1102*f5c631daSSadaf Ebrahimi __ str(r2, MemOperand(sp, 2316));
1103*f5c631daSSadaf Ebrahimi __ str(r3, MemOperand(sp, 2320));
1104*f5c631daSSadaf Ebrahimi __ mov(Narrow, r2, lr);
1105*f5c631daSSadaf Ebrahimi __ str(r3, MemOperand(sp, 2324));
1106*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r4);
1107*f5c631daSSadaf Ebrahimi __ strb(r3, MemOperand(sp, 2352));
1108*f5c631daSSadaf Ebrahimi __ str(r3, MemOperand(sp, 2368));
1109*f5c631daSSadaf Ebrahimi __ str(r3, MemOperand(sp, 2392));
1110*f5c631daSSadaf Ebrahimi __ str(r3, MemOperand(sp, 2416));
1111*f5c631daSSadaf Ebrahimi __ str(r3, MemOperand(sp, 2440));
1112*f5c631daSSadaf Ebrahimi __ mov(Narrow, r3, r8);
1113*f5c631daSSadaf Ebrahimi __ str(r4, MemOperand(sp, 2304));
1114*f5c631daSSadaf Ebrahimi __ str(r1, MemOperand(sp, 2308));
1115*f5c631daSSadaf Ebrahimi __ strb(lr, MemOperand(sp, 2328));
1116*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 2332));
1117*f5c631daSSadaf Ebrahimi __ strb(lr, MemOperand(sp, 2336));
1118*f5c631daSSadaf Ebrahimi __ strb(lr, MemOperand(sp, 2340));
1119*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 2356));
1120*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 2360));
1121*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 2364));
1122*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 2372));
1123*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 2376));
1124*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 2380));
1125*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 2384));
1126*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 2388));
1127*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 2396));
1128*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 2400));
1129*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 2404));
1130*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 2408));
1131*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 2412));
1132*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 2420));
1133*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 2424));
1134*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 2428));
1135*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 2432));
1136*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 2436));
1137*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 2444));
1138*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 2448));
1139*f5c631daSSadaf Ebrahimi __ str(r8, MemOperand(sp));
1140*f5c631daSSadaf Ebrahimi __ str(sl, MemOperand(sp, 4));
1141*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 2452));
1142*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 2456));
1143*f5c631daSSadaf Ebrahimi __ str(r6, MemOperand(sp, 2312));
1144*f5c631daSSadaf Ebrahimi __ strb(ip, MemOperand(sp, 2464));
1145*f5c631daSSadaf Ebrahimi // --------------
1146*f5c631daSSadaf Ebrahimi __ bind(&l_088e);
1147*f5c631daSSadaf Ebrahimi __ bl(&l_088e);
1148*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, fp);
1149*f5c631daSSadaf Ebrahimi // --------------
1150*f5c631daSSadaf Ebrahimi __ bind(&l_0894);
1151*f5c631daSSadaf Ebrahimi __ bl(&l_0894);
1152*f5c631daSSadaf Ebrahimi __ ldrb(Narrow, r3, MemOperand(r5, 17));
1153*f5c631daSSadaf Ebrahimi __ str(r9, MemOperand(r5));
1154*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r3, 0U);
1155*f5c631daSSadaf Ebrahimi __ b(ne, &l_1ce2);
1156*f5c631daSSadaf Ebrahimi // --------------
1157*f5c631daSSadaf Ebrahimi __ bind(&l_08a4);
1158*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r7, 32));
1159*f5c631daSSadaf Ebrahimi __ mov(r8, 0U);
1160*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r6, MemOperand(r7, 40));
1161*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r4);
1162*f5c631daSSadaf Ebrahimi __ movs(Narrow, r1, 14U);
1163*f5c631daSSadaf Ebrahimi __ str(r8, MemOperand(sp, 2304));
1164*f5c631daSSadaf Ebrahimi __ mov(Narrow, r2, r3);
1165*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 68));
1166*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r7, 56));
1167*f5c631daSSadaf Ebrahimi __ str(r6, MemOperand(sp, 2320));
1168*f5c631daSSadaf Ebrahimi __ str(r8, MemOperand(sp, 2312));
1169*f5c631daSSadaf Ebrahimi __ str(r3, MemOperand(sp, 2308));
1170*f5c631daSSadaf Ebrahimi __ mov(Narrow, r3, fp);
1171*f5c631daSSadaf Ebrahimi __ str(r8, MemOperand(sp, 2316));
1172*f5c631daSSadaf Ebrahimi // --------------
1173*f5c631daSSadaf Ebrahimi __ bind(&l_08cc);
1174*f5c631daSSadaf Ebrahimi __ bl(&l_08cc);
1175*f5c631daSSadaf Ebrahimi __ movs(Narrow, r2, 4U);
1176*f5c631daSSadaf Ebrahimi __ movs(Narrow, r3, 1U);
1177*f5c631daSSadaf Ebrahimi __ str(Narrow, r2, MemOperand(sp, 476));
1178*f5c631daSSadaf Ebrahimi __ add(Narrow, r1, sp, 472U);
1179*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, &l_09e0);
1180*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r4);
1181*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 480));
1182*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 484));
1183*f5c631daSSadaf Ebrahimi __ strb(r3, MemOperand(sp, 512));
1184*f5c631daSSadaf Ebrahimi }
Generate_9(TestAssembler * assembler)1185*f5c631daSSadaf Ebrahimi void Generate_9(TestAssembler* assembler) {
1186*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 528));
1187*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 552));
1188*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 576));
1189*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 600));
1190*f5c631daSSadaf Ebrahimi __ strb(r8, MemOperand(sp, 488));
1191*f5c631daSSadaf Ebrahimi __ str(r8, MemOperand(sp, 492));
1192*f5c631daSSadaf Ebrahimi __ strb(r8, MemOperand(sp, 496));
1193*f5c631daSSadaf Ebrahimi __ strb(r8, MemOperand(sp, 500));
1194*f5c631daSSadaf Ebrahimi __ str(r8, MemOperand(sp, 516));
1195*f5c631daSSadaf Ebrahimi __ str(r8, MemOperand(sp, 520));
1196*f5c631daSSadaf Ebrahimi __ str(r8, MemOperand(sp, 524));
1197*f5c631daSSadaf Ebrahimi __ str(r8, MemOperand(sp, 532));
1198*f5c631daSSadaf Ebrahimi __ str(r8, MemOperand(sp, 536));
1199*f5c631daSSadaf Ebrahimi __ str(r8, MemOperand(sp, 540));
1200*f5c631daSSadaf Ebrahimi __ str(r8, MemOperand(sp, 544));
1201*f5c631daSSadaf Ebrahimi __ str(r8, MemOperand(sp, 548));
1202*f5c631daSSadaf Ebrahimi __ str(r8, MemOperand(sp, 556));
1203*f5c631daSSadaf Ebrahimi __ str(r8, MemOperand(sp, 560));
1204*f5c631daSSadaf Ebrahimi __ str(r8, MemOperand(sp, 564));
1205*f5c631daSSadaf Ebrahimi __ str(r8, MemOperand(sp, 568));
1206*f5c631daSSadaf Ebrahimi __ str(r8, MemOperand(sp, 572));
1207*f5c631daSSadaf Ebrahimi __ str(r8, MemOperand(sp, 580));
1208*f5c631daSSadaf Ebrahimi __ str(r8, MemOperand(sp, 584));
1209*f5c631daSSadaf Ebrahimi __ str(r8, MemOperand(sp, 588));
1210*f5c631daSSadaf Ebrahimi __ str(r8, MemOperand(sp, 592));
1211*f5c631daSSadaf Ebrahimi __ str(r8, MemOperand(sp, 596));
1212*f5c631daSSadaf Ebrahimi __ str(r8, MemOperand(sp, 604));
1213*f5c631daSSadaf Ebrahimi __ str(r8, MemOperand(sp, 608));
1214*f5c631daSSadaf Ebrahimi __ str(r8, MemOperand(sp, 612));
1215*f5c631daSSadaf Ebrahimi __ str(r8, MemOperand(sp, 616));
1216*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r4));
1217*f5c631daSSadaf Ebrahimi __ str(Narrow, r2, MemOperand(sp, 472));
1218*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, &l_09e4);
1219*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r3, 8));
1220*f5c631daSSadaf Ebrahimi __ str(Narrow, r2, MemOperand(sp, 24));
1221*f5c631daSSadaf Ebrahimi __ blx(r3);
1222*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, &l_09e4);
1223*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r4);
1224*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r1, MemOperand(r7, 60));
1225*f5c631daSSadaf Ebrahimi __ vmov(F32, s0, -2.0000);
1226*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 24));
1227*f5c631daSSadaf Ebrahimi // --------------
1228*f5c631daSSadaf Ebrahimi __ bind(&l_096c);
1229*f5c631daSSadaf Ebrahimi __ bl(&l_096c);
1230*f5c631daSSadaf Ebrahimi __ movs(Narrow, r3, 0U);
1231*f5c631daSSadaf Ebrahimi __ add(r8, sp, 136U);
1232*f5c631daSSadaf Ebrahimi __ movt(r3, 49148U);
1233*f5c631daSSadaf Ebrahimi __ mov(r1, 800U);
1234*f5c631daSSadaf Ebrahimi __ str(r1, MemOperand(r8, 8));
1235*f5c631daSSadaf Ebrahimi __ str(r3, MemOperand(r8));
1236*f5c631daSSadaf Ebrahimi __ movs(Narrow, r3, 0U);
1237*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r1, MemOperand(sp, 20));
1238*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r7));
1239*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 168));
1240*f5c631daSSadaf Ebrahimi __ strb(r3, MemOperand(sp, 181));
1241*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r7, 64));
1242*f5c631daSSadaf Ebrahimi __ str(r2, MemOperand(r8, 16));
1243*f5c631daSSadaf Ebrahimi __ str(r9, MemOperand(sp, 164));
1244*f5c631daSSadaf Ebrahimi __ mov(Narrow, r6, r3);
1245*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r1, 0U);
1246*f5c631daSSadaf Ebrahimi __ b(eq, Narrow, &l_0a00);
1247*f5c631daSSadaf Ebrahimi __ movs(Narrow, r2, 1U);
1248*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r4, 44));
1249*f5c631daSSadaf Ebrahimi __ str(Narrow, r2, MemOperand(sp, 188));
1250*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r1);
1251*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, &l_09e4);
1252*f5c631daSSadaf Ebrahimi __ str(Narrow, r1, MemOperand(sp, 184));
1253*f5c631daSSadaf Ebrahimi __ movs(Narrow, r1, 32U);
1254*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r3, 32));
1255*f5c631daSSadaf Ebrahimi __ str(Narrow, r2, MemOperand(sp, 24));
1256*f5c631daSSadaf Ebrahimi __ blx(r3);
1257*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r4, 44));
1258*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, &l_09e4);
1259*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r0, MemOperand(sp, 20));
1260*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r3, 24));
1261*f5c631daSSadaf Ebrahimi __ str(Narrow, r2, MemOperand(sp, 24));
1262*f5c631daSSadaf Ebrahimi __ blx(r3);
1263*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r4, 44));
1264*f5c631daSSadaf Ebrahimi __ movw(r3, 0U);
1265*f5c631daSSadaf Ebrahimi __ movt(r3, 0U);
1266*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r0, MemOperand(sp, 20));
1267*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r2));
1268*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r2, r3);
1269*f5c631daSSadaf Ebrahimi __ b(ne, &l_1d30);
1270*f5c631daSSadaf Ebrahimi // --------------
1271*f5c631daSSadaf Ebrahimi __ bind(&l_09d6);
1272*f5c631daSSadaf Ebrahimi __ bl(&l_09d6);
1273*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_09e8);
1274*f5c631daSSadaf Ebrahimi // --------------
1275*f5c631daSSadaf Ebrahimi __ bind(&l_09dc);
1276*f5c631daSSadaf Ebrahimi __ Emit32(0x00000008);
1277*f5c631daSSadaf Ebrahimi // --------------
1278*f5c631daSSadaf Ebrahimi __ bind(&l_09e0);
1279*f5c631daSSadaf Ebrahimi __ Emit32(0x00000008);
1280*f5c631daSSadaf Ebrahimi // --------------
1281*f5c631daSSadaf Ebrahimi __ bind(&l_09e4);
1282*f5c631daSSadaf Ebrahimi __ Emit32(0x00000008);
1283*f5c631daSSadaf Ebrahimi // --------------
1284*f5c631daSSadaf Ebrahimi __ bind(&l_09e8);
1285*f5c631daSSadaf Ebrahimi __ str(Narrow, r0, MemOperand(sp, 168));
1286*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r1, MemOperand(r0, 20));
1287*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r0, 4));
1288*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r0, 12));
1289*f5c631daSSadaf Ebrahimi __ add(Narrow, r3, r3, r1);
1290*f5c631daSSadaf Ebrahimi __ subs(Narrow, r3, r3, r2);
1291*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r3, 31U);
1292*f5c631daSSadaf Ebrahimi __ b(ls, &l_1c60);
1293*f5c631daSSadaf Ebrahimi // --------------
1294*f5c631daSSadaf Ebrahimi __ bind(&l_09fa);
1295*f5c631daSSadaf Ebrahimi __ movs(Narrow, r3, 1U);
1296*f5c631daSSadaf Ebrahimi __ strb(r3, MemOperand(sp, 181));
1297*f5c631daSSadaf Ebrahimi // --------------
1298*f5c631daSSadaf Ebrahimi __ bind(&l_0a00);
1299*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, &l_0d18);
1300*f5c631daSSadaf Ebrahimi __ mov(lr, 0U);
1301*f5c631daSSadaf Ebrahimi __ movs(Narrow, r2, 1U);
1302*f5c631daSSadaf Ebrahimi }
Generate_10(TestAssembler * assembler)1303*f5c631daSSadaf Ebrahimi void Generate_10(TestAssembler* assembler) {
1304*f5c631daSSadaf Ebrahimi __ movs(Narrow, r0, 14U);
1305*f5c631daSSadaf Ebrahimi __ movs(Narrow, r1, 4U);
1306*f5c631daSSadaf Ebrahimi __ str(Narrow, r0, MemOperand(sp, 628));
1307*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 164));
1308*f5c631daSSadaf Ebrahimi __ mov(Narrow, r3, r6);
1309*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r6, &l_0d1c);
1310*f5c631daSSadaf Ebrahimi __ str(Narrow, r1, MemOperand(sp, 636));
1311*f5c631daSSadaf Ebrahimi __ mov(Narrow, r1, r0);
1312*f5c631daSSadaf Ebrahimi __ str(Narrow, r2, MemOperand(sp, 640));
1313*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r4);
1314*f5c631daSSadaf Ebrahimi __ str(Narrow, r2, MemOperand(sp, 644));
1315*f5c631daSSadaf Ebrahimi __ strb(r2, MemOperand(sp, 672));
1316*f5c631daSSadaf Ebrahimi __ str(Narrow, r2, MemOperand(sp, 688));
1317*f5c631daSSadaf Ebrahimi __ str(Narrow, r2, MemOperand(sp, 712));
1318*f5c631daSSadaf Ebrahimi __ str(Narrow, r2, MemOperand(sp, 736));
1319*f5c631daSSadaf Ebrahimi __ str(Narrow, r2, MemOperand(sp, 760));
1320*f5c631daSSadaf Ebrahimi __ mov(r2, 800U);
1321*f5c631daSSadaf Ebrahimi __ str(Narrow, r4, MemOperand(sp, 624));
1322*f5c631daSSadaf Ebrahimi __ strb(lr, MemOperand(sp, 648));
1323*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 652));
1324*f5c631daSSadaf Ebrahimi __ strb(lr, MemOperand(sp, 656));
1325*f5c631daSSadaf Ebrahimi __ strb(lr, MemOperand(sp, 660));
1326*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 676));
1327*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 680));
1328*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 684));
1329*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 692));
1330*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 696));
1331*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 700));
1332*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 704));
1333*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 708));
1334*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 716));
1335*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 720));
1336*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 724));
1337*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 728));
1338*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 732));
1339*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 740));
1340*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 744));
1341*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 748));
1342*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 752));
1343*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 756));
1344*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 764));
1345*f5c631daSSadaf Ebrahimi __ str(r8, MemOperand(sp));
1346*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 768));
1347*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 772));
1348*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 776));
1349*f5c631daSSadaf Ebrahimi __ str(Narrow, r6, MemOperand(sp, 632));
1350*f5c631daSSadaf Ebrahimi __ strb(lr, MemOperand(sp, 784));
1351*f5c631daSSadaf Ebrahimi // --------------
1352*f5c631daSSadaf Ebrahimi __ bind(&l_0aa2);
1353*f5c631daSSadaf Ebrahimi __ bl(&l_0aa2);
1354*f5c631daSSadaf Ebrahimi __ ldrb(r3, MemOperand(sp, 656));
1355*f5c631daSSadaf Ebrahimi __ cbz(r3, &l_0b00);
1356*f5c631daSSadaf Ebrahimi __ ldr(r8, MemOperand(sp, 624));
1357*f5c631daSSadaf Ebrahimi __ movw(r3, 0U);
1358*f5c631daSSadaf Ebrahimi __ movt(r3, 0U);
1359*f5c631daSSadaf Ebrahimi __ ldr(r2, MemOperand(r8));
1360*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r2, 8));
1361*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r2, r3);
1362*f5c631daSSadaf Ebrahimi __ b(ne, &l_1d92);
1363*f5c631daSSadaf Ebrahimi __ ldr(r2, MemOperand(r8, 12));
1364*f5c631daSSadaf Ebrahimi __ add(Narrow, r0, sp, 632U);
1365*f5c631daSSadaf Ebrahimi __ ldr(r3, MemOperand(r8, 4));
1366*f5c631daSSadaf Ebrahimi __ subs(Narrow, r3, r2, r3);
1367*f5c631daSSadaf Ebrahimi __ mov(Narrow, r1, r3);
1368*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 28));
1369*f5c631daSSadaf Ebrahimi // --------------
1370*f5c631daSSadaf Ebrahimi __ bind(&l_0ad4);
1371*f5c631daSSadaf Ebrahimi __ bl(&l_0ad4);
1372*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r0, 0U);
1373*f5c631daSSadaf Ebrahimi __ b(ne, &l_1d00);
1374*f5c631daSSadaf Ebrahimi __ add(r3, r8, 96U);
1375*f5c631daSSadaf Ebrahimi __ mov(Narrow, r6, r3);
1376*f5c631daSSadaf Ebrahimi __ add(r3, r8, 44U);
1377*f5c631daSSadaf Ebrahimi __ mov(Narrow, r1, r3);
1378*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 24));
1379*f5c631daSSadaf Ebrahimi // --------------
1380*f5c631daSSadaf Ebrahimi __ bind(&l_0aec);
1381*f5c631daSSadaf Ebrahimi __ ldr(lr, MemOperand(r8, 12));
1382*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r6);
1383*f5c631daSSadaf Ebrahimi __ ldr(r3, MemOperand(r8, 4));
1384*f5c631daSSadaf Ebrahimi __ add(Narrow, r2, sp, 632U);
1385*f5c631daSSadaf Ebrahimi __ rsb(r3, r3, lr);
1386*f5c631daSSadaf Ebrahimi // --------------
1387*f5c631daSSadaf Ebrahimi __ bind(&l_0afc);
1388*f5c631daSSadaf Ebrahimi __ bl(&l_0afc);
1389*f5c631daSSadaf Ebrahimi // --------------
1390*f5c631daSSadaf Ebrahimi __ bind(&l_0b00);
1391*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, &l_0d20);
1392*f5c631daSSadaf Ebrahimi __ ldr(r8, MemOperand(sp, 776));
1393*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 24));
1394*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 632));
1395*f5c631daSSadaf Ebrahimi __ cmp(r8, 0U);
1396*f5c631daSSadaf Ebrahimi __ b(eq, Narrow, &l_0b20);
1397*f5c631daSSadaf Ebrahimi __ ldr(r0, MemOperand(r8));
1398*f5c631daSSadaf Ebrahimi __ cbz(r0, &l_0b1a);
1399*f5c631daSSadaf Ebrahimi // --------------
1400*f5c631daSSadaf Ebrahimi __ bind(&l_0b16);
1401*f5c631daSSadaf Ebrahimi __ bl(&l_0b16);
1402*f5c631daSSadaf Ebrahimi // --------------
1403*f5c631daSSadaf Ebrahimi __ bind(&l_0b1a);
1404*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r8);
1405*f5c631daSSadaf Ebrahimi // --------------
1406*f5c631daSSadaf Ebrahimi __ bind(&l_0b1c);
1407*f5c631daSSadaf Ebrahimi __ bl(&l_0b1c);
1408*f5c631daSSadaf Ebrahimi // --------------
1409*f5c631daSSadaf Ebrahimi __ bind(&l_0b20);
1410*f5c631daSSadaf Ebrahimi __ ldrb(r3, MemOperand(sp, 181));
1411*f5c631daSSadaf Ebrahimi __ str(r9, MemOperand(sp, 164));
1412*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r3, 0U);
1413*f5c631daSSadaf Ebrahimi __ b(ne, &l_1c0e);
1414*f5c631daSSadaf Ebrahimi // --------------
1415*f5c631daSSadaf Ebrahimi __ bind(&l_0b2e);
1416*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r4);
1417*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r1, MemOperand(r7, 68));
1418*f5c631daSSadaf Ebrahimi __ vmov(F32, s0, -1.9375);
1419*f5c631daSSadaf Ebrahimi // --------------
1420*f5c631daSSadaf Ebrahimi __ bind(&l_0b36);
1421*f5c631daSSadaf Ebrahimi __ bl(&l_0b36);
1422*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r4);
1423*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r1, MemOperand(r7, 72));
1424*f5c631daSSadaf Ebrahimi __ vldr(s0, &l_0d24);
1425*f5c631daSSadaf Ebrahimi // --------------
1426*f5c631daSSadaf Ebrahimi __ bind(&l_0b42);
1427*f5c631daSSadaf Ebrahimi __ bl(&l_0b42);
1428*f5c631daSSadaf Ebrahimi }
Generate_11(TestAssembler * assembler)1429*f5c631daSSadaf Ebrahimi void Generate_11(TestAssembler* assembler) {
1430*f5c631daSSadaf Ebrahimi __ ldr(ip, MemOperand(r7, 40));
1431*f5c631daSSadaf Ebrahimi __ movs(Narrow, r3, 32U);
1432*f5c631daSSadaf Ebrahimi __ mov(lr, 0U);
1433*f5c631daSSadaf Ebrahimi __ str(r3, MemOperand(sp, 2304));
1434*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r4);
1435*f5c631daSSadaf Ebrahimi __ movs(Narrow, r1, 14U);
1436*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r7, 28));
1437*f5c631daSSadaf Ebrahimi __ mov(Narrow, r3, fp);
1438*f5c631daSSadaf Ebrahimi __ str(ip, MemOperand(sp, 2308));
1439*f5c631daSSadaf Ebrahimi __ str(ip, MemOperand(sp, 2320));
1440*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 2312));
1441*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 2316));
1442*f5c631daSSadaf Ebrahimi // --------------
1443*f5c631daSSadaf Ebrahimi __ bind(&l_0b6c);
1444*f5c631daSSadaf Ebrahimi __ bl(&l_0b6c);
1445*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r7, 76));
1446*f5c631daSSadaf Ebrahimi __ mov(lr, 0U);
1447*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r6, MemOperand(sp, 68));
1448*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r4);
1449*f5c631daSSadaf Ebrahimi __ movs(Narrow, r1, 14U);
1450*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 2304));
1451*f5c631daSSadaf Ebrahimi __ mov(Narrow, r2, r3);
1452*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 40));
1453*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r7, 40));
1454*f5c631daSSadaf Ebrahimi __ str(r6, MemOperand(sp, 2308));
1455*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 2312));
1456*f5c631daSSadaf Ebrahimi __ str(r3, MemOperand(sp, 2320));
1457*f5c631daSSadaf Ebrahimi __ mov(Narrow, r3, fp);
1458*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 2316));
1459*f5c631daSSadaf Ebrahimi // --------------
1460*f5c631daSSadaf Ebrahimi __ bind(&l_0b98);
1461*f5c631daSSadaf Ebrahimi __ bl(&l_0b98);
1462*f5c631daSSadaf Ebrahimi __ movs(Narrow, r2, 1U);
1463*f5c631daSSadaf Ebrahimi __ movs(Narrow, r3, 0U);
1464*f5c631daSSadaf Ebrahimi __ str(Narrow, r2, MemOperand(sp, 632));
1465*f5c631daSSadaf Ebrahimi __ movs(Narrow, r1, 4U);
1466*f5c631daSSadaf Ebrahimi __ str(Narrow, r2, MemOperand(sp, 636));
1467*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r4);
1468*f5c631daSSadaf Ebrahimi __ strb(r2, MemOperand(sp, 664));
1469*f5c631daSSadaf Ebrahimi __ str(Narrow, r2, MemOperand(sp, 680));
1470*f5c631daSSadaf Ebrahimi __ str(Narrow, r2, MemOperand(sp, 704));
1471*f5c631daSSadaf Ebrahimi __ str(Narrow, r2, MemOperand(sp, 728));
1472*f5c631daSSadaf Ebrahimi __ str(Narrow, r2, MemOperand(sp, 752));
1473*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r7, 80));
1474*f5c631daSSadaf Ebrahimi __ str(Narrow, r1, MemOperand(sp, 628));
1475*f5c631daSSadaf Ebrahimi __ add(Narrow, r1, sp, 624U);
1476*f5c631daSSadaf Ebrahimi __ strb(r3, MemOperand(sp, 640));
1477*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 644));
1478*f5c631daSSadaf Ebrahimi __ strb(r3, MemOperand(sp, 648));
1479*f5c631daSSadaf Ebrahimi __ strb(r3, MemOperand(sp, 652));
1480*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 668));
1481*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 672));
1482*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 676));
1483*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 684));
1484*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 688));
1485*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 692));
1486*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 696));
1487*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 700));
1488*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 708));
1489*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 712));
1490*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 716));
1491*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 720));
1492*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 724));
1493*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 732));
1494*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 736));
1495*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 740));
1496*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 744));
1497*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 748));
1498*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 756));
1499*f5c631daSSadaf Ebrahimi __ str(Narrow, r2, MemOperand(sp, 28));
1500*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r6, MemOperand(r7, 84));
1501*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r4));
1502*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 760));
1503*f5c631daSSadaf Ebrahimi __ str(Narrow, r6, MemOperand(sp, 32));
1504*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r6, &l_0d1c);
1505*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 764));
1506*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 768));
1507*f5c631daSSadaf Ebrahimi __ str(Narrow, r6, MemOperand(sp, 624));
1508*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r2, 8));
1509*f5c631daSSadaf Ebrahimi __ blx(r3);
1510*f5c631daSSadaf Ebrahimi __ ldr(ip, MemOperand(r7, 40));
1511*f5c631daSSadaf Ebrahimi __ movs(Narrow, r1, 1U);
1512*f5c631daSSadaf Ebrahimi __ mov(lr, 0U);
1513*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r7, 88));
1514*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r7, 92));
1515*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r4);
1516*f5c631daSSadaf Ebrahimi __ str(r1, MemOperand(sp, 2304));
1517*f5c631daSSadaf Ebrahimi __ movs(Narrow, r1, 14U);
1518*f5c631daSSadaf Ebrahimi __ str(fp, MemOperand(sp));
1519*f5c631daSSadaf Ebrahimi __ str(ip, MemOperand(sp, 2308));
1520*f5c631daSSadaf Ebrahimi __ str(ip, MemOperand(sp, 2320));
1521*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 2312));
1522*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 2316));
1523*f5c631daSSadaf Ebrahimi // --------------
1524*f5c631daSSadaf Ebrahimi __ bind(&l_0c2e);
1525*f5c631daSSadaf Ebrahimi __ bl(&l_0c2e);
1526*f5c631daSSadaf Ebrahimi __ vldr(d7, &l_0d10);
1527*f5c631daSSadaf Ebrahimi __ add(r6, sp, 2304U);
1528*f5c631daSSadaf Ebrahimi __ ldr(r8, MemOperand(r7, 96));
1529*f5c631daSSadaf Ebrahimi __ mov(lr, 832U);
1530*f5c631daSSadaf Ebrahimi __ str(fp, MemOperand(sp));
1531*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r4);
1532*f5c631daSSadaf Ebrahimi __ vstr(d7, MemOperand(r6));
1533*f5c631daSSadaf Ebrahimi __ movs(Narrow, r1, 14U);
1534*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r6, MemOperand(r7));
1535*f5c631daSSadaf Ebrahimi __ mov(Narrow, r3, r8);
1536*f5c631daSSadaf Ebrahimi }
Generate_12(TestAssembler * assembler)1537*f5c631daSSadaf Ebrahimi void Generate_12(TestAssembler* assembler) {
1538*f5c631daSSadaf Ebrahimi __ mov(r2, 800U);
1539*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 2312));
1540*f5c631daSSadaf Ebrahimi __ str(r6, MemOperand(sp, 2320));
1541*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r6, MemOperand(r7, 100));
1542*f5c631daSSadaf Ebrahimi // --------------
1543*f5c631daSSadaf Ebrahimi __ bind(&l_0c60);
1544*f5c631daSSadaf Ebrahimi __ bl(&l_0c60);
1545*f5c631daSSadaf Ebrahimi __ movs(Narrow, r2, 0U);
1546*f5c631daSSadaf Ebrahimi __ movs(Narrow, r3, 0U);
1547*f5c631daSSadaf Ebrahimi __ str(fp, MemOperand(sp));
1548*f5c631daSSadaf Ebrahimi __ add(ip, sp, 2304U);
1549*f5c631daSSadaf Ebrahimi __ strd(r2, r3, MemOperand(ip));
1550*f5c631daSSadaf Ebrahimi __ mov(lr, 832U);
1551*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r7));
1552*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r4);
1553*f5c631daSSadaf Ebrahimi __ movs(Narrow, r1, 14U);
1554*f5c631daSSadaf Ebrahimi __ mov(r2, 800U);
1555*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 2312));
1556*f5c631daSSadaf Ebrahimi __ str(r3, MemOperand(sp, 2320));
1557*f5c631daSSadaf Ebrahimi __ mov(Narrow, r3, r6);
1558*f5c631daSSadaf Ebrahimi // --------------
1559*f5c631daSSadaf Ebrahimi __ bind(&l_0c8c);
1560*f5c631daSSadaf Ebrahimi __ bl(&l_0c8c);
1561*f5c631daSSadaf Ebrahimi __ movs(Narrow, r2, 0U);
1562*f5c631daSSadaf Ebrahimi __ movs(Narrow, r3, 0U);
1563*f5c631daSSadaf Ebrahimi __ str(fp, MemOperand(sp));
1564*f5c631daSSadaf Ebrahimi __ add(ip, sp, 2304U);
1565*f5c631daSSadaf Ebrahimi __ strd(r2, r3, MemOperand(ip));
1566*f5c631daSSadaf Ebrahimi __ mov(lr, 832U);
1567*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r7));
1568*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r4);
1569*f5c631daSSadaf Ebrahimi __ movs(Narrow, r1, 14U);
1570*f5c631daSSadaf Ebrahimi __ mov(r2, 800U);
1571*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 2312));
1572*f5c631daSSadaf Ebrahimi __ str(r3, MemOperand(sp, 2320));
1573*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(sp, 28));
1574*f5c631daSSadaf Ebrahimi // --------------
1575*f5c631daSSadaf Ebrahimi __ bind(&l_0cb8);
1576*f5c631daSSadaf Ebrahimi __ bl(&l_0cb8);
1577*f5c631daSSadaf Ebrahimi __ movs(Narrow, r3, 0U);
1578*f5c631daSSadaf Ebrahimi __ movs(Narrow, r2, 1U);
1579*f5c631daSSadaf Ebrahimi __ movs(Narrow, r1, 4U);
1580*f5c631daSSadaf Ebrahimi __ str(Narrow, r2, MemOperand(r5, 8));
1581*f5c631daSSadaf Ebrahimi __ str(Narrow, r1, MemOperand(r5, 4));
1582*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r4);
1583*f5c631daSSadaf Ebrahimi __ str(Narrow, r2, MemOperand(r5, 12));
1584*f5c631daSSadaf Ebrahimi __ strb(r2, MemOperand(r5, 40));
1585*f5c631daSSadaf Ebrahimi __ str(Narrow, r2, MemOperand(r5, 56));
1586*f5c631daSSadaf Ebrahimi __ str(Narrow, r2, MemOperand(r5, 80));
1587*f5c631daSSadaf Ebrahimi __ str(Narrow, r2, MemOperand(r5, 104));
1588*f5c631daSSadaf Ebrahimi __ str(r2, MemOperand(r5, 128));
1589*f5c631daSSadaf Ebrahimi __ strb(Narrow, r3, MemOperand(r5, 16));
1590*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(r5, 20));
1591*f5c631daSSadaf Ebrahimi __ strb(Narrow, r3, MemOperand(r5, 24));
1592*f5c631daSSadaf Ebrahimi __ strb(Narrow, r3, MemOperand(r5, 28));
1593*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(r5, 44));
1594*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(r5, 48));
1595*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(r5, 52));
1596*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(r5, 60));
1597*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(r5, 64));
1598*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(r5, 68));
1599*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(r5, 72));
1600*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(r5, 76));
1601*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(r5, 84));
1602*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(r5, 88));
1603*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(r5, 92));
1604*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(r5, 96));
1605*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(r5, 100));
1606*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(r5, 108));
1607*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(r5, 112));
1608*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(r5, 116));
1609*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(r5, 120));
1610*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(r5, 124));
1611*f5c631daSSadaf Ebrahimi __ str(r3, MemOperand(r5, 132));
1612*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_0d28);
1613*f5c631daSSadaf Ebrahimi __ nop(Narrow);
1614*f5c631daSSadaf Ebrahimi __ nop(Wide);
1615*f5c631daSSadaf Ebrahimi // --------------
1616*f5c631daSSadaf Ebrahimi __ bind(&l_0d10);
1617*f5c631daSSadaf Ebrahimi __ nop(Wide);
1618*f5c631daSSadaf Ebrahimi __ nop(Wide);
1619*f5c631daSSadaf Ebrahimi // --------------
1620*f5c631daSSadaf Ebrahimi __ bind(&l_0d18);
1621*f5c631daSSadaf Ebrahimi __ Emit32(0x00000008);
1622*f5c631daSSadaf Ebrahimi // --------------
1623*f5c631daSSadaf Ebrahimi __ bind(&l_0d1c);
1624*f5c631daSSadaf Ebrahimi __ Emit32(0x00000008);
1625*f5c631daSSadaf Ebrahimi // --------------
1626*f5c631daSSadaf Ebrahimi __ bind(&l_0d20);
1627*f5c631daSSadaf Ebrahimi __ Emit32(0x00000008);
1628*f5c631daSSadaf Ebrahimi // --------------
1629*f5c631daSSadaf Ebrahimi __ bind(&l_0d24);
1630*f5c631daSSadaf Ebrahimi __ Emit32(0xbff40000);
1631*f5c631daSSadaf Ebrahimi // --------------
1632*f5c631daSSadaf Ebrahimi __ bind(&l_0d28);
1633*f5c631daSSadaf Ebrahimi __ str(r3, MemOperand(r5, 136));
1634*f5c631daSSadaf Ebrahimi __ str(r3, MemOperand(r5, 140));
1635*f5c631daSSadaf Ebrahimi __ str(r3, MemOperand(r5, 144));
1636*f5c631daSSadaf Ebrahimi __ str(r2, MemOperand(sp, 2312));
1637*f5c631daSSadaf Ebrahimi __ str(r2, MemOperand(sp, 2316));
1638*f5c631daSSadaf Ebrahimi __ strb(r2, MemOperand(sp, 2344));
1639*f5c631daSSadaf Ebrahimi __ str(r2, MemOperand(sp, 2360));
1640*f5c631daSSadaf Ebrahimi __ str(r2, MemOperand(sp, 2384));
1641*f5c631daSSadaf Ebrahimi __ str(r2, MemOperand(sp, 2408));
1642*f5c631daSSadaf Ebrahimi __ str(r2, MemOperand(sp, 2432));
1643*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, &l_1064);
1644*f5c631daSSadaf Ebrahimi __ str(r1, MemOperand(sp, 2308));
1645*f5c631daSSadaf Ebrahimi __ mov(Narrow, r1, r5);
1646*f5c631daSSadaf Ebrahimi __ strb(r3, MemOperand(sp, 2320));
1647*f5c631daSSadaf Ebrahimi __ str(r3, MemOperand(sp, 2324));
1648*f5c631daSSadaf Ebrahimi __ strb(r3, MemOperand(sp, 2328));
1649*f5c631daSSadaf Ebrahimi __ strb(r3, MemOperand(sp, 2332));
1650*f5c631daSSadaf Ebrahimi __ str(r3, MemOperand(sp, 2348));
1651*f5c631daSSadaf Ebrahimi __ str(r3, MemOperand(sp, 2352));
1652*f5c631daSSadaf Ebrahimi __ str(r3, MemOperand(sp, 2356));
1653*f5c631daSSadaf Ebrahimi __ str(r3, MemOperand(sp, 2364));
1654*f5c631daSSadaf Ebrahimi __ str(r3, MemOperand(sp, 2368));
1655*f5c631daSSadaf Ebrahimi __ str(r3, MemOperand(sp, 2372));
1656*f5c631daSSadaf Ebrahimi }
Generate_13(TestAssembler * assembler)1657*f5c631daSSadaf Ebrahimi void Generate_13(TestAssembler* assembler) {
1658*f5c631daSSadaf Ebrahimi __ str(r3, MemOperand(sp, 2376));
1659*f5c631daSSadaf Ebrahimi __ str(r3, MemOperand(sp, 2380));
1660*f5c631daSSadaf Ebrahimi __ str(r3, MemOperand(sp, 2388));
1661*f5c631daSSadaf Ebrahimi __ str(r3, MemOperand(sp, 2392));
1662*f5c631daSSadaf Ebrahimi __ str(r3, MemOperand(sp, 2396));
1663*f5c631daSSadaf Ebrahimi __ str(r3, MemOperand(sp, 2400));
1664*f5c631daSSadaf Ebrahimi __ str(r3, MemOperand(sp, 2404));
1665*f5c631daSSadaf Ebrahimi __ str(r3, MemOperand(sp, 2412));
1666*f5c631daSSadaf Ebrahimi __ str(r3, MemOperand(sp, 2416));
1667*f5c631daSSadaf Ebrahimi __ str(r3, MemOperand(sp, 2420));
1668*f5c631daSSadaf Ebrahimi __ str(r3, MemOperand(sp, 2424));
1669*f5c631daSSadaf Ebrahimi __ str(r3, MemOperand(sp, 2428));
1670*f5c631daSSadaf Ebrahimi __ str(r3, MemOperand(sp, 2436));
1671*f5c631daSSadaf Ebrahimi __ str(r3, MemOperand(sp, 2440));
1672*f5c631daSSadaf Ebrahimi __ str(Narrow, r2, MemOperand(r5));
1673*f5c631daSSadaf Ebrahimi __ str(r3, MemOperand(sp, 2444));
1674*f5c631daSSadaf Ebrahimi __ str(r3, MemOperand(sp, 2448));
1675*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r4));
1676*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, &l_1064);
1677*f5c631daSSadaf Ebrahimi __ str(r3, MemOperand(sp, 2304));
1678*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r2, 8));
1679*f5c631daSSadaf Ebrahimi __ blx(r3);
1680*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r1, MemOperand(r7, 40));
1681*f5c631daSSadaf Ebrahimi __ mov(lr, 0U);
1682*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r7, 88));
1683*f5c631daSSadaf Ebrahimi __ mov(ip, 1U);
1684*f5c631daSSadaf Ebrahimi __ str(sl, MemOperand(sp));
1685*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r4);
1686*f5c631daSSadaf Ebrahimi __ str(r1, MemOperand(sl, 4));
1687*f5c631daSSadaf Ebrahimi __ str(r1, MemOperand(sl, 16));
1688*f5c631daSSadaf Ebrahimi __ mov(Narrow, r3, r2);
1689*f5c631daSSadaf Ebrahimi __ movs(Narrow, r1, 14U);
1690*f5c631daSSadaf Ebrahimi __ str(ip, MemOperand(sl));
1691*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sl, 8));
1692*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sl, 12));
1693*f5c631daSSadaf Ebrahimi // --------------
1694*f5c631daSSadaf Ebrahimi __ bind(&l_0df8);
1695*f5c631daSSadaf Ebrahimi __ bl(&l_0df8);
1696*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r4);
1697*f5c631daSSadaf Ebrahimi __ movs(Narrow, r1, 13U);
1698*f5c631daSSadaf Ebrahimi __ mov(Narrow, r2, fp);
1699*f5c631daSSadaf Ebrahimi __ movs(Narrow, r3, 2U);
1700*f5c631daSSadaf Ebrahimi // --------------
1701*f5c631daSSadaf Ebrahimi __ bind(&l_0e04);
1702*f5c631daSSadaf Ebrahimi __ bl(&l_0e04);
1703*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r7, 104));
1704*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r4);
1705*f5c631daSSadaf Ebrahimi __ str(r8, MemOperand(sp));
1706*f5c631daSSadaf Ebrahimi __ movs(Narrow, r1, 14U);
1707*f5c631daSSadaf Ebrahimi __ str(Narrow, r6, MemOperand(sp, 4));
1708*f5c631daSSadaf Ebrahimi __ mov(r2, 800U);
1709*f5c631daSSadaf Ebrahimi // --------------
1710*f5c631daSSadaf Ebrahimi __ bind(&l_0e18);
1711*f5c631daSSadaf Ebrahimi __ bl(&l_0e18);
1712*f5c631daSSadaf Ebrahimi __ str(r8, MemOperand(sp));
1713*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r4);
1714*f5c631daSSadaf Ebrahimi __ str(r8, MemOperand(sp, 4));
1715*f5c631daSSadaf Ebrahimi __ movs(Narrow, r1, 14U);
1716*f5c631daSSadaf Ebrahimi __ mov(r2, 800U);
1717*f5c631daSSadaf Ebrahimi __ mov(Narrow, r3, r8);
1718*f5c631daSSadaf Ebrahimi // --------------
1719*f5c631daSSadaf Ebrahimi __ bind(&l_0e2e);
1720*f5c631daSSadaf Ebrahimi __ bl(&l_0e2e);
1721*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(sp, 64));
1722*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r4);
1723*f5c631daSSadaf Ebrahimi __ str(r8, MemOperand(sp, 4));
1724*f5c631daSSadaf Ebrahimi __ movs(Narrow, r1, 14U);
1725*f5c631daSSadaf Ebrahimi __ mov(r2, 800U);
1726*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp));
1727*f5c631daSSadaf Ebrahimi __ mov(Narrow, r3, r8);
1728*f5c631daSSadaf Ebrahimi // --------------
1729*f5c631daSSadaf Ebrahimi __ bind(&l_0e44);
1730*f5c631daSSadaf Ebrahimi __ bl(&l_0e44);
1731*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r1, MemOperand(sp, 20));
1732*f5c631daSSadaf Ebrahimi __ movs(Narrow, r3, 0U);
1733*f5c631daSSadaf Ebrahimi __ movs(Narrow, r2, 14U);
1734*f5c631daSSadaf Ebrahimi __ str(r9, MemOperand(sp, 192));
1735*f5c631daSSadaf Ebrahimi __ str(Narrow, r2, MemOperand(sp, 92));
1736*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 196));
1737*f5c631daSSadaf Ebrahimi __ strb(r3, MemOperand(sp, 209));
1738*f5c631daSSadaf Ebrahimi __ cbz(r1, &l_0ea4);
1739*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r4, 44));
1740*f5c631daSSadaf Ebrahimi __ movs(Narrow, r2, 1U);
1741*f5c631daSSadaf Ebrahimi __ str(Narrow, r1, MemOperand(sp, 212));
1742*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r1);
1743*f5c631daSSadaf Ebrahimi __ str(Narrow, r2, MemOperand(sp, 216));
1744*f5c631daSSadaf Ebrahimi __ movs(Narrow, r1, 32U);
1745*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r3, 32));
1746*f5c631daSSadaf Ebrahimi __ blx(r3);
1747*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r4, 44));
1748*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r0, MemOperand(sp, 20));
1749*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r3, 24));
1750*f5c631daSSadaf Ebrahimi __ blx(r3);
1751*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r4, 44));
1752*f5c631daSSadaf Ebrahimi __ movw(r3, 0U);
1753*f5c631daSSadaf Ebrahimi __ movt(r3, 0U);
1754*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r0, MemOperand(sp, 20));
1755*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r2));
1756*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r2, r3);
1757*f5c631daSSadaf Ebrahimi __ b(ne, &l_1d56);
1758*f5c631daSSadaf Ebrahimi // --------------
1759*f5c631daSSadaf Ebrahimi __ bind(&l_0e88);
1760*f5c631daSSadaf Ebrahimi __ bl(&l_0e88);
1761*f5c631daSSadaf Ebrahimi // --------------
1762*f5c631daSSadaf Ebrahimi __ bind(&l_0e8c);
1763*f5c631daSSadaf Ebrahimi __ str(Narrow, r0, MemOperand(sp, 196));
1764*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r1, MemOperand(r0, 20));
1765*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r0, 4));
1766*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r0, 12));
1767*f5c631daSSadaf Ebrahimi __ add(Narrow, r3, r3, r1);
1768*f5c631daSSadaf Ebrahimi __ subs(Narrow, r3, r3, r2);
1769*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r3, 31U);
1770*f5c631daSSadaf Ebrahimi __ b(ls, &l_1c72);
1771*f5c631daSSadaf Ebrahimi // --------------
1772*f5c631daSSadaf Ebrahimi __ bind(&l_0e9e);
1773*f5c631daSSadaf Ebrahimi __ movs(Narrow, r3, 1U);
1774*f5c631daSSadaf Ebrahimi }
Generate_14(TestAssembler * assembler)1775*f5c631daSSadaf Ebrahimi void Generate_14(TestAssembler* assembler) {
1776*f5c631daSSadaf Ebrahimi __ strb(r3, MemOperand(sp, 209));
1777*f5c631daSSadaf Ebrahimi // --------------
1778*f5c631daSSadaf Ebrahimi __ bind(&l_0ea4);
1779*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, &l_1068);
1780*f5c631daSSadaf Ebrahimi __ mov(Narrow, r1, r4);
1781*f5c631daSSadaf Ebrahimi __ add(Narrow, r0, sp, 792U);
1782*f5c631daSSadaf Ebrahimi __ add(Narrow, r2, sp, 92U);
1783*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 192));
1784*f5c631daSSadaf Ebrahimi __ bl(&l_0000);
1785*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r1, MemOperand(sp, 92));
1786*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r4);
1787*f5c631daSSadaf Ebrahimi __ str(Narrow, r6, MemOperand(sp));
1788*f5c631daSSadaf Ebrahimi __ mov(r2, 800U);
1789*f5c631daSSadaf Ebrahimi __ str(Narrow, r6, MemOperand(sp, 4));
1790*f5c631daSSadaf Ebrahimi __ mov(Narrow, r3, r8);
1791*f5c631daSSadaf Ebrahimi // --------------
1792*f5c631daSSadaf Ebrahimi __ bind(&l_0ec0);
1793*f5c631daSSadaf Ebrahimi __ bl(&l_0ec0);
1794*f5c631daSSadaf Ebrahimi __ add(Narrow, r0, sp, 792U);
1795*f5c631daSSadaf Ebrahimi // --------------
1796*f5c631daSSadaf Ebrahimi __ bind(&l_0ec6);
1797*f5c631daSSadaf Ebrahimi __ bl(&l_0ec6);
1798*f5c631daSSadaf Ebrahimi __ ldrb(r3, MemOperand(sp, 209));
1799*f5c631daSSadaf Ebrahimi __ str(r9, MemOperand(sp, 192));
1800*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r3, 0U);
1801*f5c631daSSadaf Ebrahimi __ b(ne, &l_1ba8);
1802*f5c631daSSadaf Ebrahimi // --------------
1803*f5c631daSSadaf Ebrahimi __ bind(&l_0ed8);
1804*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(sp, 36));
1805*f5c631daSSadaf Ebrahimi __ mov(ip, 0U);
1806*f5c631daSSadaf Ebrahimi __ mov(lr, 1056U);
1807*f5c631daSSadaf Ebrahimi __ str(sl, MemOperand(sp));
1808*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r4);
1809*f5c631daSSadaf Ebrahimi __ movs(Narrow, r1, 14U);
1810*f5c631daSSadaf Ebrahimi __ str(r3, MemOperand(sl, 16));
1811*f5c631daSSadaf Ebrahimi __ mov(r2, 800U);
1812*f5c631daSSadaf Ebrahimi __ mov(Narrow, r3, r6);
1813*f5c631daSSadaf Ebrahimi __ str(ip, MemOperand(sl));
1814*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sl, 8));
1815*f5c631daSSadaf Ebrahimi // --------------
1816*f5c631daSSadaf Ebrahimi __ bind(&l_0efc);
1817*f5c631daSSadaf Ebrahimi __ bl(&l_0efc);
1818*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r1, MemOperand(sp, 76));
1819*f5c631daSSadaf Ebrahimi __ movs(Narrow, r3, 14U);
1820*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 96));
1821*f5c631daSSadaf Ebrahimi __ movs(Narrow, r3, 0U);
1822*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 224));
1823*f5c631daSSadaf Ebrahimi __ movs(Narrow, r2, 1U);
1824*f5c631daSSadaf Ebrahimi __ str(Narrow, r1, MemOperand(sp, 128));
1825*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r1, MemOperand(sp, 20));
1826*f5c631daSSadaf Ebrahimi __ strb(r3, MemOperand(sp, 237));
1827*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r7, 104));
1828*f5c631daSSadaf Ebrahimi __ str(Narrow, r2, MemOperand(sp, 132));
1829*f5c631daSSadaf Ebrahimi __ str(r9, MemOperand(sp, 220));
1830*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 76));
1831*f5c631daSSadaf Ebrahimi __ cbz(r1, &l_0f66);
1832*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r4, 44));
1833*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r1);
1834*f5c631daSSadaf Ebrahimi __ str(Narrow, r1, MemOperand(sp, 240));
1835*f5c631daSSadaf Ebrahimi __ movs(Narrow, r1, 32U);
1836*f5c631daSSadaf Ebrahimi __ str(Narrow, r2, MemOperand(sp, 244));
1837*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r3, 32));
1838*f5c631daSSadaf Ebrahimi __ blx(r3);
1839*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r4, 44));
1840*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r0, MemOperand(sp, 20));
1841*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r3, 24));
1842*f5c631daSSadaf Ebrahimi __ blx(r3);
1843*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r4, 44));
1844*f5c631daSSadaf Ebrahimi __ movw(r3, 0U);
1845*f5c631daSSadaf Ebrahimi __ movt(r3, 0U);
1846*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r0, MemOperand(sp, 20));
1847*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r2));
1848*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r2, r3);
1849*f5c631daSSadaf Ebrahimi __ b(ne, &l_1d5c);
1850*f5c631daSSadaf Ebrahimi // --------------
1851*f5c631daSSadaf Ebrahimi __ bind(&l_0f4a);
1852*f5c631daSSadaf Ebrahimi __ bl(&l_0f4a);
1853*f5c631daSSadaf Ebrahimi // --------------
1854*f5c631daSSadaf Ebrahimi __ bind(&l_0f4e);
1855*f5c631daSSadaf Ebrahimi __ str(Narrow, r0, MemOperand(sp, 224));
1856*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r1, MemOperand(r0, 20));
1857*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r0, 4));
1858*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r0, 12));
1859*f5c631daSSadaf Ebrahimi __ add(Narrow, r3, r3, r1);
1860*f5c631daSSadaf Ebrahimi __ subs(Narrow, r3, r3, r2);
1861*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r3, 31U);
1862*f5c631daSSadaf Ebrahimi __ b(ls, &l_1c80);
1863*f5c631daSSadaf Ebrahimi // --------------
1864*f5c631daSSadaf Ebrahimi __ bind(&l_0f60);
1865*f5c631daSSadaf Ebrahimi __ movs(Narrow, r3, 1U);
1866*f5c631daSSadaf Ebrahimi __ strb(r3, MemOperand(sp, 237));
1867*f5c631daSSadaf Ebrahimi // --------------
1868*f5c631daSSadaf Ebrahimi __ bind(&l_0f66);
1869*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, &l_1068);
1870*f5c631daSSadaf Ebrahimi __ mov(Narrow, r1, r4);
1871*f5c631daSSadaf Ebrahimi __ add(Narrow, r0, sp, 960U);
1872*f5c631daSSadaf Ebrahimi __ add(Narrow, r2, sp, 96U);
1873*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 220));
1874*f5c631daSSadaf Ebrahimi __ bl(&l_0000);
1875*f5c631daSSadaf Ebrahimi __ add(Narrow, r2, sp, 128U);
1876*f5c631daSSadaf Ebrahimi __ ldr(lr, MemOperand(sp, 96));
1877*f5c631daSSadaf Ebrahimi __ ldm(r2, NO_WRITE_BACK, RegisterList(r0, r1));
1878*f5c631daSSadaf Ebrahimi __ mov(Narrow, r3, sp);
1879*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(sp, 76));
1880*f5c631daSSadaf Ebrahimi __ str(r2, MemOperand(r3, 4, PostIndex));
1881*f5c631daSSadaf Ebrahimi __ mov(r2, 800U);
1882*f5c631daSSadaf Ebrahimi __ stm(r3, NO_WRITE_BACK, RegisterList(r0, r1));
1883*f5c631daSSadaf Ebrahimi __ mov(Narrow, r3, r6);
1884*f5c631daSSadaf Ebrahimi __ mov(Narrow, r1, lr);
1885*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r4);
1886*f5c631daSSadaf Ebrahimi // --------------
1887*f5c631daSSadaf Ebrahimi __ bind(&l_0f94);
1888*f5c631daSSadaf Ebrahimi __ bl(&l_0f94);
1889*f5c631daSSadaf Ebrahimi __ add(Narrow, r0, sp, 960U);
1890*f5c631daSSadaf Ebrahimi // --------------
1891*f5c631daSSadaf Ebrahimi __ bind(&l_0f9a);
1892*f5c631daSSadaf Ebrahimi __ bl(&l_0f9a);
1893*f5c631daSSadaf Ebrahimi __ ldrb(r3, MemOperand(sp, 237));
1894*f5c631daSSadaf Ebrahimi __ str(r9, MemOperand(sp, 220));
1895*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r3, 0U);
1896*f5c631daSSadaf Ebrahimi __ b(ne, &l_1b88);
1897*f5c631daSSadaf Ebrahimi // --------------
1898*f5c631daSSadaf Ebrahimi __ bind(&l_0fac);
1899*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r7, 104));
1900*f5c631daSSadaf Ebrahimi }
Generate_15(TestAssembler * assembler)1901*f5c631daSSadaf Ebrahimi void Generate_15(TestAssembler* assembler) {
1902*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r4);
1903*f5c631daSSadaf Ebrahimi __ str(r8, MemOperand(sp));
1904*f5c631daSSadaf Ebrahimi __ movs(Narrow, r1, 14U);
1905*f5c631daSSadaf Ebrahimi __ str(r8, MemOperand(sp, 4));
1906*f5c631daSSadaf Ebrahimi __ mov(r2, 800U);
1907*f5c631daSSadaf Ebrahimi // --------------
1908*f5c631daSSadaf Ebrahimi __ bind(&l_0fbe);
1909*f5c631daSSadaf Ebrahimi __ bl(&l_0fbe);
1910*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r1, MemOperand(sp, 20));
1911*f5c631daSSadaf Ebrahimi __ movs(Narrow, r3, 0U);
1912*f5c631daSSadaf Ebrahimi __ movs(Narrow, r2, 14U);
1913*f5c631daSSadaf Ebrahimi __ str(r9, MemOperand(sp, 248));
1914*f5c631daSSadaf Ebrahimi __ str(Narrow, r2, MemOperand(sp, 100));
1915*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 252));
1916*f5c631daSSadaf Ebrahimi __ strb(r3, MemOperand(sp, 265));
1917*f5c631daSSadaf Ebrahimi __ ldr(r8, MemOperand(r7, 104));
1918*f5c631daSSadaf Ebrahimi __ cbz(r1, &l_1022);
1919*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r4, 44));
1920*f5c631daSSadaf Ebrahimi __ movs(Narrow, r2, 1U);
1921*f5c631daSSadaf Ebrahimi __ str(Narrow, r1, MemOperand(sp, 268));
1922*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r1);
1923*f5c631daSSadaf Ebrahimi __ str(Narrow, r2, MemOperand(sp, 272));
1924*f5c631daSSadaf Ebrahimi __ movs(Narrow, r1, 32U);
1925*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r3, 32));
1926*f5c631daSSadaf Ebrahimi __ blx(r3);
1927*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r4, 44));
1928*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r0, MemOperand(sp, 20));
1929*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r3, 24));
1930*f5c631daSSadaf Ebrahimi __ blx(r3);
1931*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r4, 44));
1932*f5c631daSSadaf Ebrahimi __ movw(r3, 0U);
1933*f5c631daSSadaf Ebrahimi __ movt(r3, 0U);
1934*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r0, MemOperand(sp, 20));
1935*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r2));
1936*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r2, r3);
1937*f5c631daSSadaf Ebrahimi __ b(ne, &l_1d72);
1938*f5c631daSSadaf Ebrahimi // --------------
1939*f5c631daSSadaf Ebrahimi __ bind(&l_1006);
1940*f5c631daSSadaf Ebrahimi __ bl(&l_1006);
1941*f5c631daSSadaf Ebrahimi // --------------
1942*f5c631daSSadaf Ebrahimi __ bind(&l_100a);
1943*f5c631daSSadaf Ebrahimi __ str(Narrow, r0, MemOperand(sp, 252));
1944*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r1, MemOperand(r0, 20));
1945*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r0, 4));
1946*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r0, 12));
1947*f5c631daSSadaf Ebrahimi __ add(Narrow, r3, r3, r1);
1948*f5c631daSSadaf Ebrahimi __ subs(Narrow, r3, r3, r2);
1949*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r3, 31U);
1950*f5c631daSSadaf Ebrahimi __ b(ls, &l_1c8e);
1951*f5c631daSSadaf Ebrahimi // --------------
1952*f5c631daSSadaf Ebrahimi __ bind(&l_101c);
1953*f5c631daSSadaf Ebrahimi __ movs(Narrow, r3, 1U);
1954*f5c631daSSadaf Ebrahimi __ strb(r3, MemOperand(sp, 265));
1955*f5c631daSSadaf Ebrahimi // --------------
1956*f5c631daSSadaf Ebrahimi __ bind(&l_1022);
1957*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, &l_1068);
1958*f5c631daSSadaf Ebrahimi __ mov(Narrow, r1, r4);
1959*f5c631daSSadaf Ebrahimi __ add(r0, sp, 1128U);
1960*f5c631daSSadaf Ebrahimi __ add(Narrow, r2, sp, 100U);
1961*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 248));
1962*f5c631daSSadaf Ebrahimi __ bl(&l_0000);
1963*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r1, MemOperand(sp, 100));
1964*f5c631daSSadaf Ebrahimi __ mov(Narrow, r3, r8);
1965*f5c631daSSadaf Ebrahimi __ str(Narrow, r6, MemOperand(sp));
1966*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r4);
1967*f5c631daSSadaf Ebrahimi __ str(Narrow, r6, MemOperand(sp, 4));
1968*f5c631daSSadaf Ebrahimi __ mov(r2, 800U);
1969*f5c631daSSadaf Ebrahimi // --------------
1970*f5c631daSSadaf Ebrahimi __ bind(&l_1040);
1971*f5c631daSSadaf Ebrahimi __ bl(&l_1040);
1972*f5c631daSSadaf Ebrahimi __ add(r0, sp, 1128U);
1973*f5c631daSSadaf Ebrahimi // --------------
1974*f5c631daSSadaf Ebrahimi __ bind(&l_1048);
1975*f5c631daSSadaf Ebrahimi __ bl(&l_1048);
1976*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, &l_1068);
1977*f5c631daSSadaf Ebrahimi __ add(Narrow, r0, sp, 248U);
1978*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 248));
1979*f5c631daSSadaf Ebrahimi // --------------
1980*f5c631daSSadaf Ebrahimi __ bind(&l_1052);
1981*f5c631daSSadaf Ebrahimi __ bl(&l_1052);
1982*f5c631daSSadaf Ebrahimi __ movs(Narrow, r3, 0U);
1983*f5c631daSSadaf Ebrahimi __ movs(Narrow, r2, 14U);
1984*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 280));
1985*f5c631daSSadaf Ebrahimi __ strb(r3, MemOperand(sp, 293));
1986*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(sp, 20));
1987*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_106c);
1988*f5c631daSSadaf Ebrahimi // --------------
1989*f5c631daSSadaf Ebrahimi __ bind(&l_1064);
1990*f5c631daSSadaf Ebrahimi __ Emit32(0x00000008);
1991*f5c631daSSadaf Ebrahimi // --------------
1992*f5c631daSSadaf Ebrahimi __ bind(&l_1068);
1993*f5c631daSSadaf Ebrahimi __ Emit32(0x00000008);
1994*f5c631daSSadaf Ebrahimi // --------------
1995*f5c631daSSadaf Ebrahimi __ bind(&l_106c);
1996*f5c631daSSadaf Ebrahimi __ str(Narrow, r2, MemOperand(sp, 104));
1997*f5c631daSSadaf Ebrahimi __ str(r9, MemOperand(sp, 276));
1998*f5c631daSSadaf Ebrahimi __ ldr(r8, MemOperand(r7, 104));
1999*f5c631daSSadaf Ebrahimi __ cbz(r3, &l_10c2);
2000*f5c631daSSadaf Ebrahimi __ mov(Narrow, r6, r3);
2001*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r4, 44));
2002*f5c631daSSadaf Ebrahimi __ movs(Narrow, r2, 1U);
2003*f5c631daSSadaf Ebrahimi __ str(Narrow, r6, MemOperand(sp, 296));
2004*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r6);
2005*f5c631daSSadaf Ebrahimi __ str(Narrow, r2, MemOperand(sp, 300));
2006*f5c631daSSadaf Ebrahimi __ movs(Narrow, r1, 32U);
2007*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r3, 32));
2008*f5c631daSSadaf Ebrahimi __ blx(r3);
2009*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r4, 44));
2010*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r6);
2011*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r3, 24));
2012*f5c631daSSadaf Ebrahimi __ blx(r3);
2013*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r4, 44));
2014*f5c631daSSadaf Ebrahimi __ movw(r3, 0U);
2015*f5c631daSSadaf Ebrahimi __ movt(r3, 0U);
2016*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r2));
2017*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r2, r3);
2018*f5c631daSSadaf Ebrahimi __ b(ne, &l_1d3a);
2019*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r6);
2020*f5c631daSSadaf Ebrahimi // --------------
2021*f5c631daSSadaf Ebrahimi __ bind(&l_10a6);
2022*f5c631daSSadaf Ebrahimi __ bl(&l_10a6);
2023*f5c631daSSadaf Ebrahimi // --------------
2024*f5c631daSSadaf Ebrahimi __ bind(&l_10aa);
2025*f5c631daSSadaf Ebrahimi __ str(Narrow, r0, MemOperand(sp, 280));
2026*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r1, MemOperand(r0, 20));
2027*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r0, 4));
2028*f5c631daSSadaf Ebrahimi }
Generate_16(TestAssembler * assembler)2029*f5c631daSSadaf Ebrahimi void Generate_16(TestAssembler* assembler) {
2030*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r0, 12));
2031*f5c631daSSadaf Ebrahimi __ add(Narrow, r3, r3, r1);
2032*f5c631daSSadaf Ebrahimi __ subs(Narrow, r3, r3, r2);
2033*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r3, 31U);
2034*f5c631daSSadaf Ebrahimi __ b(ls, &l_1cc6);
2035*f5c631daSSadaf Ebrahimi // --------------
2036*f5c631daSSadaf Ebrahimi __ bind(&l_10bc);
2037*f5c631daSSadaf Ebrahimi __ movs(Narrow, r3, 1U);
2038*f5c631daSSadaf Ebrahimi __ strb(r3, MemOperand(sp, 293));
2039*f5c631daSSadaf Ebrahimi // --------------
2040*f5c631daSSadaf Ebrahimi __ bind(&l_10c2);
2041*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, &l_13fc);
2042*f5c631daSSadaf Ebrahimi __ mov(Narrow, r1, r4);
2043*f5c631daSSadaf Ebrahimi __ add(r0, sp, 1296U);
2044*f5c631daSSadaf Ebrahimi __ add(Narrow, r2, sp, 104U);
2045*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 276));
2046*f5c631daSSadaf Ebrahimi __ bl(&l_0000);
2047*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(sp, 52));
2048*f5c631daSSadaf Ebrahimi __ mov(Narrow, r3, r8);
2049*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r1, MemOperand(sp, 104));
2050*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r4);
2051*f5c631daSSadaf Ebrahimi __ str(r8, MemOperand(sp));
2052*f5c631daSSadaf Ebrahimi __ str(Narrow, r2, MemOperand(sp, 4));
2053*f5c631daSSadaf Ebrahimi __ mov(r2, 800U);
2054*f5c631daSSadaf Ebrahimi // --------------
2055*f5c631daSSadaf Ebrahimi __ bind(&l_10e4);
2056*f5c631daSSadaf Ebrahimi __ bl(&l_10e4);
2057*f5c631daSSadaf Ebrahimi __ add(r0, sp, 1296U);
2058*f5c631daSSadaf Ebrahimi // --------------
2059*f5c631daSSadaf Ebrahimi __ bind(&l_10ec);
2060*f5c631daSSadaf Ebrahimi __ bl(&l_10ec);
2061*f5c631daSSadaf Ebrahimi __ ldrb(r3, MemOperand(sp, 293));
2062*f5c631daSSadaf Ebrahimi __ str(r9, MemOperand(sp, 276));
2063*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r3, 0U);
2064*f5c631daSSadaf Ebrahimi __ b(ne, &l_1b68);
2065*f5c631daSSadaf Ebrahimi // --------------
2066*f5c631daSSadaf Ebrahimi __ bind(&l_10fe);
2067*f5c631daSSadaf Ebrahimi __ movs(Narrow, r3, 0U);
2068*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r7, 104));
2069*f5c631daSSadaf Ebrahimi __ str(r3, MemOperand(sl));
2070*f5c631daSSadaf Ebrahimi __ mov(r1, 1056U);
2071*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 308));
2072*f5c631daSSadaf Ebrahimi __ strb(r3, MemOperand(sp, 321));
2073*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(sp, 20));
2074*f5c631daSSadaf Ebrahimi __ str(r2, MemOperand(sl, 16));
2075*f5c631daSSadaf Ebrahimi __ movs(Narrow, r2, 14U);
2076*f5c631daSSadaf Ebrahimi __ str(r9, MemOperand(sp, 304));
2077*f5c631daSSadaf Ebrahimi __ str(r1, MemOperand(sl, 8));
2078*f5c631daSSadaf Ebrahimi __ str(Narrow, r2, MemOperand(sp, 108));
2079*f5c631daSSadaf Ebrahimi __ cbz(r3, &l_116e);
2080*f5c631daSSadaf Ebrahimi __ mov(Narrow, r6, r3);
2081*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r4, 44));
2082*f5c631daSSadaf Ebrahimi __ movs(Narrow, r2, 1U);
2083*f5c631daSSadaf Ebrahimi __ str(Narrow, r6, MemOperand(sp, 324));
2084*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r6);
2085*f5c631daSSadaf Ebrahimi __ str(Narrow, r2, MemOperand(sp, 328));
2086*f5c631daSSadaf Ebrahimi __ movs(Narrow, r1, 32U);
2087*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r3, 32));
2088*f5c631daSSadaf Ebrahimi __ blx(r3);
2089*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r4, 44));
2090*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r6);
2091*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r3, 24));
2092*f5c631daSSadaf Ebrahimi __ blx(r3);
2093*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r4, 44));
2094*f5c631daSSadaf Ebrahimi __ movw(r3, 0U);
2095*f5c631daSSadaf Ebrahimi __ movt(r3, 0U);
2096*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r2));
2097*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r2, r3);
2098*f5c631daSSadaf Ebrahimi __ b(ne, &l_1d42);
2099*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r6);
2100*f5c631daSSadaf Ebrahimi // --------------
2101*f5c631daSSadaf Ebrahimi __ bind(&l_1152);
2102*f5c631daSSadaf Ebrahimi __ bl(&l_1152);
2103*f5c631daSSadaf Ebrahimi // --------------
2104*f5c631daSSadaf Ebrahimi __ bind(&l_1156);
2105*f5c631daSSadaf Ebrahimi __ str(Narrow, r0, MemOperand(sp, 308));
2106*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r1, MemOperand(r0, 20));
2107*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r0, 4));
2108*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r0, 12));
2109*f5c631daSSadaf Ebrahimi __ add(Narrow, r3, r3, r1);
2110*f5c631daSSadaf Ebrahimi __ subs(Narrow, r3, r3, r2);
2111*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r3, 31U);
2112*f5c631daSSadaf Ebrahimi __ b(ls, &l_1cd4);
2113*f5c631daSSadaf Ebrahimi // --------------
2114*f5c631daSSadaf Ebrahimi __ bind(&l_1168);
2115*f5c631daSSadaf Ebrahimi __ movs(Narrow, r3, 1U);
2116*f5c631daSSadaf Ebrahimi __ strb(r3, MemOperand(sp, 321));
2117*f5c631daSSadaf Ebrahimi // --------------
2118*f5c631daSSadaf Ebrahimi __ bind(&l_116e);
2119*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, &l_13fc);
2120*f5c631daSSadaf Ebrahimi __ mov(Narrow, r1, r4);
2121*f5c631daSSadaf Ebrahimi __ add(r0, sp, 1464U);
2122*f5c631daSSadaf Ebrahimi __ add(Narrow, r2, sp, 108U);
2123*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 304));
2124*f5c631daSSadaf Ebrahimi __ bl(&l_0000);
2125*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(sp, 28));
2126*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r4);
2127*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r1, MemOperand(sp, 108));
2128*f5c631daSSadaf Ebrahimi __ mov(r2, 800U);
2129*f5c631daSSadaf Ebrahimi __ str(sl, MemOperand(sp, 4));
2130*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp));
2131*f5c631daSSadaf Ebrahimi // --------------
2132*f5c631daSSadaf Ebrahimi __ bind(&l_118e);
2133*f5c631daSSadaf Ebrahimi __ bl(&l_118e);
2134*f5c631daSSadaf Ebrahimi __ add(r0, sp, 1464U);
2135*f5c631daSSadaf Ebrahimi // --------------
2136*f5c631daSSadaf Ebrahimi __ bind(&l_1196);
2137*f5c631daSSadaf Ebrahimi __ bl(&l_1196);
2138*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, &l_13fc);
2139*f5c631daSSadaf Ebrahimi __ add(Narrow, r0, sp, 304U);
2140*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 304));
2141*f5c631daSSadaf Ebrahimi // --------------
2142*f5c631daSSadaf Ebrahimi __ bind(&l_11a0);
2143*f5c631daSSadaf Ebrahimi __ bl(&l_11a0);
2144*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r4);
2145*f5c631daSSadaf Ebrahimi __ movs(Narrow, r1, 14U);
2146*f5c631daSSadaf Ebrahimi __ mov(Narrow, r2, r5);
2147*f5c631daSSadaf Ebrahimi __ movs(Narrow, r3, 2U);
2148*f5c631daSSadaf Ebrahimi // --------------
2149*f5c631daSSadaf Ebrahimi __ bind(&l_11ac);
2150*f5c631daSSadaf Ebrahimi __ bl(&l_11ac);
2151*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r4));
2152*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r4);
2153*f5c631daSSadaf Ebrahimi __ mov(Narrow, r1, fp);
2154*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r3, 8));
2155*f5c631daSSadaf Ebrahimi __ blx(r3);
2156*f5c631daSSadaf Ebrahimi }
Generate_17(TestAssembler * assembler)2157*f5c631daSSadaf Ebrahimi void Generate_17(TestAssembler* assembler) {
2158*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r6, MemOperand(sp, 24));
2159*f5c631daSSadaf Ebrahimi __ add(r0, sp, 2332U);
2160*f5c631daSSadaf Ebrahimi __ str(r6, MemOperand(sp, 2304));
2161*f5c631daSSadaf Ebrahimi // --------------
2162*f5c631daSSadaf Ebrahimi __ bind(&l_11c4);
2163*f5c631daSSadaf Ebrahimi __ bl(&l_11c4);
2164*f5c631daSSadaf Ebrahimi __ str(Narrow, r6, MemOperand(r5));
2165*f5c631daSSadaf Ebrahimi __ add(r0, sp, 2164U);
2166*f5c631daSSadaf Ebrahimi // --------------
2167*f5c631daSSadaf Ebrahimi __ bind(&l_11ce);
2168*f5c631daSSadaf Ebrahimi __ bl(&l_11ce);
2169*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r6, MemOperand(sp, 20));
2170*f5c631daSSadaf Ebrahimi __ movs(Narrow, r3, 0U);
2171*f5c631daSSadaf Ebrahimi __ str(r9, MemOperand(sp, 332));
2172*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 336));
2173*f5c631daSSadaf Ebrahimi __ strb(r3, MemOperand(sp, 349));
2174*f5c631daSSadaf Ebrahimi __ cbz(r6, &l_122a);
2175*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r4, 44));
2176*f5c631daSSadaf Ebrahimi __ movs(Narrow, r2, 1U);
2177*f5c631daSSadaf Ebrahimi __ str(Narrow, r6, MemOperand(sp, 352));
2178*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r6);
2179*f5c631daSSadaf Ebrahimi __ str(Narrow, r2, MemOperand(sp, 356));
2180*f5c631daSSadaf Ebrahimi __ movs(Narrow, r1, 32U);
2181*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r3, 32));
2182*f5c631daSSadaf Ebrahimi __ blx(r3);
2183*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r4, 44));
2184*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r6);
2185*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r3, 24));
2186*f5c631daSSadaf Ebrahimi __ blx(r3);
2187*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r4, 44));
2188*f5c631daSSadaf Ebrahimi __ movw(r3, 0U);
2189*f5c631daSSadaf Ebrahimi __ movt(r3, 0U);
2190*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r2));
2191*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r2, r3);
2192*f5c631daSSadaf Ebrahimi __ b(ne, &l_1d6a);
2193*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r6);
2194*f5c631daSSadaf Ebrahimi // --------------
2195*f5c631daSSadaf Ebrahimi __ bind(&l_120e);
2196*f5c631daSSadaf Ebrahimi __ bl(&l_120e);
2197*f5c631daSSadaf Ebrahimi // --------------
2198*f5c631daSSadaf Ebrahimi __ bind(&l_1212);
2199*f5c631daSSadaf Ebrahimi __ str(Narrow, r0, MemOperand(sp, 336));
2200*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r1, MemOperand(r0, 20));
2201*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r0, 4));
2202*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r0, 12));
2203*f5c631daSSadaf Ebrahimi __ add(Narrow, r3, r3, r1);
2204*f5c631daSSadaf Ebrahimi __ subs(Narrow, r3, r3, r2);
2205*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r3, 31U);
2206*f5c631daSSadaf Ebrahimi __ b(ls, &l_1cb8);
2207*f5c631daSSadaf Ebrahimi // --------------
2208*f5c631daSSadaf Ebrahimi __ bind(&l_1224);
2209*f5c631daSSadaf Ebrahimi __ movs(Narrow, r3, 1U);
2210*f5c631daSSadaf Ebrahimi __ strb(r3, MemOperand(sp, 349));
2211*f5c631daSSadaf Ebrahimi // --------------
2212*f5c631daSSadaf Ebrahimi __ bind(&l_122a);
2213*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r1, &l_13fc);
2214*f5c631daSSadaf Ebrahimi __ mov(lr, 0U);
2215*f5c631daSSadaf Ebrahimi __ mov(ip, 1U);
2216*f5c631daSSadaf Ebrahimi __ movs(Narrow, r3, 14U);
2217*f5c631daSSadaf Ebrahimi __ movs(Narrow, r2, 4U);
2218*f5c631daSSadaf Ebrahimi __ str(r3, MemOperand(sp, 1636));
2219*f5c631daSSadaf Ebrahimi __ str(Narrow, r1, MemOperand(sp, 332));
2220*f5c631daSSadaf Ebrahimi __ mov(Narrow, r1, r3);
2221*f5c631daSSadaf Ebrahimi __ str(r2, MemOperand(sp, 1644));
2222*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r4);
2223*f5c631daSSadaf Ebrahimi __ str(r4, MemOperand(sp, 1632));
2224*f5c631daSSadaf Ebrahimi __ mov(r2, 1056U);
2225*f5c631daSSadaf Ebrahimi __ str(ip, MemOperand(sp, 1648));
2226*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(sp, 32));
2227*f5c631daSSadaf Ebrahimi __ str(ip, MemOperand(sp, 1652));
2228*f5c631daSSadaf Ebrahimi __ strb(ip, MemOperand(sp, 1680));
2229*f5c631daSSadaf Ebrahimi __ str(ip, MemOperand(sp, 1696));
2230*f5c631daSSadaf Ebrahimi __ str(ip, MemOperand(sp, 1720));
2231*f5c631daSSadaf Ebrahimi __ str(ip, MemOperand(sp, 1744));
2232*f5c631daSSadaf Ebrahimi __ str(ip, MemOperand(sp, 1768));
2233*f5c631daSSadaf Ebrahimi __ strb(lr, MemOperand(sp, 1656));
2234*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 1660));
2235*f5c631daSSadaf Ebrahimi __ strb(lr, MemOperand(sp, 1664));
2236*f5c631daSSadaf Ebrahimi __ strb(lr, MemOperand(sp, 1668));
2237*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 1684));
2238*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 1688));
2239*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 1692));
2240*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 1700));
2241*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 1704));
2242*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 1708));
2243*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 1712));
2244*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 1716));
2245*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 1724));
2246*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 1728));
2247*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 1732));
2248*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 1736));
2249*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 1740));
2250*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 1748));
2251*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 1752));
2252*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 1756));
2253*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 1760));
2254*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 1764));
2255*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r6, MemOperand(sp, 28));
2256*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 1772));
2257*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 1776));
2258*f5c631daSSadaf Ebrahimi __ str(Narrow, r6, MemOperand(sp));
2259*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r6, &l_1400);
2260*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 1780));
2261*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 1784));
2262*f5c631daSSadaf Ebrahimi __ str(r6, MemOperand(sp, 1640));
2263*f5c631daSSadaf Ebrahimi __ strb(lr, MemOperand(sp, 1792));
2264*f5c631daSSadaf Ebrahimi // --------------
2265*f5c631daSSadaf Ebrahimi __ bind(&l_12e2);
2266*f5c631daSSadaf Ebrahimi __ bl(&l_12e2);
2267*f5c631daSSadaf Ebrahimi __ add(r0, sp, 1632U);
2268*f5c631daSSadaf Ebrahimi // --------------
2269*f5c631daSSadaf Ebrahimi __ bind(&l_12ea);
2270*f5c631daSSadaf Ebrahimi __ bl(&l_12ea);
2271*f5c631daSSadaf Ebrahimi __ ldrb(r3, MemOperand(sp, 349));
2272*f5c631daSSadaf Ebrahimi __ str(r9, MemOperand(sp, 332));
2273*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r3, 0U);
2274*f5c631daSSadaf Ebrahimi }
Generate_18(TestAssembler * assembler)2275*f5c631daSSadaf Ebrahimi void Generate_18(TestAssembler* assembler) {
2276*f5c631daSSadaf Ebrahimi __ b(ne, &l_1bc8);
2277*f5c631daSSadaf Ebrahimi // --------------
2278*f5c631daSSadaf Ebrahimi __ bind(&l_12fc);
2279*f5c631daSSadaf Ebrahimi __ movs(Narrow, r3, 0U);
2280*f5c631daSSadaf Ebrahimi __ str(r9, MemOperand(sp, 360));
2281*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 364));
2282*f5c631daSSadaf Ebrahimi __ strb(r3, MemOperand(sp, 377));
2283*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(sp, 20));
2284*f5c631daSSadaf Ebrahimi __ cbz(r3, &l_1356);
2285*f5c631daSSadaf Ebrahimi __ mov(Narrow, r6, r3);
2286*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r4, 44));
2287*f5c631daSSadaf Ebrahimi __ movs(Narrow, r2, 1U);
2288*f5c631daSSadaf Ebrahimi __ str(Narrow, r6, MemOperand(sp, 380));
2289*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r6);
2290*f5c631daSSadaf Ebrahimi __ str(Narrow, r2, MemOperand(sp, 384));
2291*f5c631daSSadaf Ebrahimi __ movs(Narrow, r1, 32U);
2292*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r3, 32));
2293*f5c631daSSadaf Ebrahimi __ blx(r3);
2294*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r4, 44));
2295*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r6);
2296*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r3, 24));
2297*f5c631daSSadaf Ebrahimi __ blx(r3);
2298*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r4, 44));
2299*f5c631daSSadaf Ebrahimi __ movw(r3, 0U);
2300*f5c631daSSadaf Ebrahimi __ movt(r3, 0U);
2301*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r2));
2302*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r2, r3);
2303*f5c631daSSadaf Ebrahimi __ b(ne, &l_1d62);
2304*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r6);
2305*f5c631daSSadaf Ebrahimi // --------------
2306*f5c631daSSadaf Ebrahimi __ bind(&l_133a);
2307*f5c631daSSadaf Ebrahimi __ bl(&l_133a);
2308*f5c631daSSadaf Ebrahimi // --------------
2309*f5c631daSSadaf Ebrahimi __ bind(&l_133e);
2310*f5c631daSSadaf Ebrahimi __ str(Narrow, r0, MemOperand(sp, 364));
2311*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r1, MemOperand(r0, 20));
2312*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r0, 4));
2313*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r0, 12));
2314*f5c631daSSadaf Ebrahimi __ add(Narrow, r3, r3, r1);
2315*f5c631daSSadaf Ebrahimi __ subs(Narrow, r3, r3, r2);
2316*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r3, 31U);
2317*f5c631daSSadaf Ebrahimi __ b(ls, &l_1caa);
2318*f5c631daSSadaf Ebrahimi // --------------
2319*f5c631daSSadaf Ebrahimi __ bind(&l_1350);
2320*f5c631daSSadaf Ebrahimi __ movs(Narrow, r3, 1U);
2321*f5c631daSSadaf Ebrahimi __ strb(r3, MemOperand(sp, 377));
2322*f5c631daSSadaf Ebrahimi // --------------
2323*f5c631daSSadaf Ebrahimi __ bind(&l_1356);
2324*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r0, &l_13fc);
2325*f5c631daSSadaf Ebrahimi __ mov(lr, 0U);
2326*f5c631daSSadaf Ebrahimi __ movs(Narrow, r3, 1U);
2327*f5c631daSSadaf Ebrahimi __ movs(Narrow, r2, 14U);
2328*f5c631daSSadaf Ebrahimi __ movs(Narrow, r1, 4U);
2329*f5c631daSSadaf Ebrahimi __ str(r2, MemOperand(sp, 1804));
2330*f5c631daSSadaf Ebrahimi __ str(Narrow, r0, MemOperand(sp, 360));
2331*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r4);
2332*f5c631daSSadaf Ebrahimi __ str(r1, MemOperand(sp, 1812));
2333*f5c631daSSadaf Ebrahimi __ mov(Narrow, r1, r2);
2334*f5c631daSSadaf Ebrahimi __ str(r3, MemOperand(sp, 1816));
2335*f5c631daSSadaf Ebrahimi __ mov(r2, 1040U);
2336*f5c631daSSadaf Ebrahimi __ str(r3, MemOperand(sp, 1820));
2337*f5c631daSSadaf Ebrahimi __ strb(r3, MemOperand(sp, 1848));
2338*f5c631daSSadaf Ebrahimi __ str(r3, MemOperand(sp, 1864));
2339*f5c631daSSadaf Ebrahimi __ str(r3, MemOperand(sp, 1888));
2340*f5c631daSSadaf Ebrahimi __ str(r3, MemOperand(sp, 1912));
2341*f5c631daSSadaf Ebrahimi __ str(r3, MemOperand(sp, 1936));
2342*f5c631daSSadaf Ebrahimi __ str(r4, MemOperand(sp, 1800));
2343*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(sp, 32));
2344*f5c631daSSadaf Ebrahimi __ strb(lr, MemOperand(sp, 1824));
2345*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 1828));
2346*f5c631daSSadaf Ebrahimi __ strb(lr, MemOperand(sp, 1832));
2347*f5c631daSSadaf Ebrahimi __ strb(lr, MemOperand(sp, 1836));
2348*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 1852));
2349*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 1856));
2350*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 1860));
2351*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 1868));
2352*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 1872));
2353*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 1876));
2354*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 1880));
2355*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 1884));
2356*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 1892));
2357*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 1896));
2358*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 1900));
2359*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 1904));
2360*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 1908));
2361*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 1916));
2362*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 1920));
2363*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 1924));
2364*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 1928));
2365*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 1932));
2366*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r6, MemOperand(sp, 28));
2367*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 1940));
2368*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 1944));
2369*f5c631daSSadaf Ebrahimi __ str(Narrow, r6, MemOperand(sp));
2370*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_1404);
2371*f5c631daSSadaf Ebrahimi // --------------
2372*f5c631daSSadaf Ebrahimi __ bind(&l_13fc);
2373*f5c631daSSadaf Ebrahimi __ Emit32(0x00000008);
2374*f5c631daSSadaf Ebrahimi // --------------
2375*f5c631daSSadaf Ebrahimi __ bind(&l_1400);
2376*f5c631daSSadaf Ebrahimi __ Emit32(0x00000008);
2377*f5c631daSSadaf Ebrahimi // --------------
2378*f5c631daSSadaf Ebrahimi __ bind(&l_1404);
2379*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r6, &l_1724);
2380*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 1948));
2381*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 1952));
2382*f5c631daSSadaf Ebrahimi __ str(r6, MemOperand(sp, 1808));
2383*f5c631daSSadaf Ebrahimi __ strb(lr, MemOperand(sp, 1960));
2384*f5c631daSSadaf Ebrahimi // --------------
2385*f5c631daSSadaf Ebrahimi __ bind(&l_1416);
2386*f5c631daSSadaf Ebrahimi __ bl(&l_1416);
2387*f5c631daSSadaf Ebrahimi __ add(r0, sp, 1800U);
2388*f5c631daSSadaf Ebrahimi // --------------
2389*f5c631daSSadaf Ebrahimi __ bind(&l_141e);
2390*f5c631daSSadaf Ebrahimi __ bl(&l_141e);
2391*f5c631daSSadaf Ebrahimi __ ldrb(r3, MemOperand(sp, 377));
2392*f5c631daSSadaf Ebrahimi __ str(r9, MemOperand(sp, 360));
2393*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r3, 0U);
2394*f5c631daSSadaf Ebrahimi __ b(ne, &l_1bf0);
2395*f5c631daSSadaf Ebrahimi // --------------
2396*f5c631daSSadaf Ebrahimi __ bind(&l_1430);
2397*f5c631daSSadaf Ebrahimi __ movs(Narrow, r3, 0U);
2398*f5c631daSSadaf Ebrahimi }
Generate_19(TestAssembler * assembler)2399*f5c631daSSadaf Ebrahimi void Generate_19(TestAssembler* assembler) {
2400*f5c631daSSadaf Ebrahimi __ movs(Narrow, r2, 14U);
2401*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 392));
2402*f5c631daSSadaf Ebrahimi __ strb(r3, MemOperand(sp, 405));
2403*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(sp, 20));
2404*f5c631daSSadaf Ebrahimi __ str(Narrow, r2, MemOperand(sp, 112));
2405*f5c631daSSadaf Ebrahimi __ str(r9, MemOperand(sp, 388));
2406*f5c631daSSadaf Ebrahimi __ cbz(r3, &l_148e);
2407*f5c631daSSadaf Ebrahimi __ mov(Narrow, r6, r3);
2408*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r4, 44));
2409*f5c631daSSadaf Ebrahimi __ movs(Narrow, r2, 1U);
2410*f5c631daSSadaf Ebrahimi __ str(Narrow, r6, MemOperand(sp, 408));
2411*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r6);
2412*f5c631daSSadaf Ebrahimi __ str(Narrow, r2, MemOperand(sp, 412));
2413*f5c631daSSadaf Ebrahimi __ movs(Narrow, r1, 32U);
2414*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r3, 32));
2415*f5c631daSSadaf Ebrahimi __ blx(r3);
2416*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r4, 44));
2417*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r6);
2418*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r3, 24));
2419*f5c631daSSadaf Ebrahimi __ blx(r3);
2420*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r4, 44));
2421*f5c631daSSadaf Ebrahimi __ movw(r3, 0U);
2422*f5c631daSSadaf Ebrahimi __ movt(r3, 0U);
2423*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r2));
2424*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r2, r3);
2425*f5c631daSSadaf Ebrahimi __ b(ne, &l_1d78);
2426*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r6);
2427*f5c631daSSadaf Ebrahimi // --------------
2428*f5c631daSSadaf Ebrahimi __ bind(&l_1472);
2429*f5c631daSSadaf Ebrahimi __ bl(&l_1472);
2430*f5c631daSSadaf Ebrahimi // --------------
2431*f5c631daSSadaf Ebrahimi __ bind(&l_1476);
2432*f5c631daSSadaf Ebrahimi __ str(Narrow, r0, MemOperand(sp, 392));
2433*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r1, MemOperand(r0, 20));
2434*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r0, 4));
2435*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r0, 12));
2436*f5c631daSSadaf Ebrahimi __ add(Narrow, r3, r3, r1);
2437*f5c631daSSadaf Ebrahimi __ subs(Narrow, r3, r3, r2);
2438*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r3, 31U);
2439*f5c631daSSadaf Ebrahimi __ b(ls, &l_1c9c);
2440*f5c631daSSadaf Ebrahimi // --------------
2441*f5c631daSSadaf Ebrahimi __ bind(&l_1488);
2442*f5c631daSSadaf Ebrahimi __ movs(Narrow, r3, 1U);
2443*f5c631daSSadaf Ebrahimi __ strb(r3, MemOperand(sp, 405));
2444*f5c631daSSadaf Ebrahimi // --------------
2445*f5c631daSSadaf Ebrahimi __ bind(&l_148e);
2446*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, &l_1728);
2447*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, sl);
2448*f5c631daSSadaf Ebrahimi __ mov(Narrow, r1, r4);
2449*f5c631daSSadaf Ebrahimi __ add(Narrow, r2, sp, 112U);
2450*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 388));
2451*f5c631daSSadaf Ebrahimi __ bl(&l_0000);
2452*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(sp, 44));
2453*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r4);
2454*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r6, MemOperand(sp, 32));
2455*f5c631daSSadaf Ebrahimi __ mov(r2, 1568U);
2456*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r1, MemOperand(sp, 112));
2457*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp));
2458*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(sp, 48));
2459*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 4));
2460*f5c631daSSadaf Ebrahimi __ mov(Narrow, r3, r6);
2461*f5c631daSSadaf Ebrahimi // --------------
2462*f5c631daSSadaf Ebrahimi __ bind(&l_14b0);
2463*f5c631daSSadaf Ebrahimi __ bl(&l_14b0);
2464*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, sl);
2465*f5c631daSSadaf Ebrahimi // --------------
2466*f5c631daSSadaf Ebrahimi __ bind(&l_14b6);
2467*f5c631daSSadaf Ebrahimi __ bl(&l_14b6);
2468*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, &l_1728);
2469*f5c631daSSadaf Ebrahimi __ add(Narrow, r0, sp, 388U);
2470*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 388));
2471*f5c631daSSadaf Ebrahimi // --------------
2472*f5c631daSSadaf Ebrahimi __ bind(&l_14c0);
2473*f5c631daSSadaf Ebrahimi __ bl(&l_14c0);
2474*f5c631daSSadaf Ebrahimi __ and_(r3, r6, 0x1f);
2475*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r1, MemOperand(r7, 40));
2476*f5c631daSSadaf Ebrahimi __ orr(r3, r3, 0x8000);
2477*f5c631daSSadaf Ebrahimi __ movs(Narrow, r2, 0U);
2478*f5c631daSSadaf Ebrahimi __ orr(r3, r3, 0x60);
2479*f5c631daSSadaf Ebrahimi __ mov(lr, 1U);
2480*f5c631daSSadaf Ebrahimi __ str(r3, MemOperand(sl));
2481*f5c631daSSadaf Ebrahimi __ mov(r0, 4098U);
2482*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(sp, 40));
2483*f5c631daSSadaf Ebrahimi __ str(r1, MemOperand(sp, 2316));
2484*f5c631daSSadaf Ebrahimi __ str(r2, MemOperand(sl, 4));
2485*f5c631daSSadaf Ebrahimi __ str(r3, MemOperand(sp, 2304));
2486*f5c631daSSadaf Ebrahimi __ movs(Narrow, r3, 14U);
2487*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 116));
2488*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(sp, 20));
2489*f5c631daSSadaf Ebrahimi __ str(r2, MemOperand(sl, 12));
2490*f5c631daSSadaf Ebrahimi __ str(r2, MemOperand(sp, 2308));
2491*f5c631daSSadaf Ebrahimi __ str(r2, MemOperand(sp, 2312));
2492*f5c631daSSadaf Ebrahimi __ str(r2, MemOperand(sp, 2320));
2493*f5c631daSSadaf Ebrahimi __ str(r2, MemOperand(sp, 2324));
2494*f5c631daSSadaf Ebrahimi __ str(Narrow, r2, MemOperand(sp, 420));
2495*f5c631daSSadaf Ebrahimi __ strb(r2, MemOperand(sp, 433));
2496*f5c631daSSadaf Ebrahimi __ str(r9, MemOperand(sp, 416));
2497*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sl, 8));
2498*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sl, 16));
2499*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 2332));
2500*f5c631daSSadaf Ebrahimi __ str(r0, MemOperand(sp, 2328));
2501*f5c631daSSadaf Ebrahimi __ cbz(r3, &l_156e);
2502*f5c631daSSadaf Ebrahimi __ mov(Narrow, r6, r3);
2503*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r4, 44));
2504*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r6);
2505*f5c631daSSadaf Ebrahimi __ str(Narrow, r6, MemOperand(sp, 436));
2506*f5c631daSSadaf Ebrahimi __ movs(Narrow, r1, 32U);
2507*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 440));
2508*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r3, 32));
2509*f5c631daSSadaf Ebrahimi __ blx(r3);
2510*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r4, 44));
2511*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r6);
2512*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r3, 24));
2513*f5c631daSSadaf Ebrahimi __ blx(r3);
2514*f5c631daSSadaf Ebrahimi }
Generate_20(TestAssembler * assembler)2515*f5c631daSSadaf Ebrahimi void Generate_20(TestAssembler* assembler) {
2516*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r4, 44));
2517*f5c631daSSadaf Ebrahimi __ movw(r3, 0U);
2518*f5c631daSSadaf Ebrahimi __ movt(r3, 0U);
2519*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r2));
2520*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r2, r3);
2521*f5c631daSSadaf Ebrahimi __ b(ne, &l_1d2a);
2522*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r6);
2523*f5c631daSSadaf Ebrahimi // --------------
2524*f5c631daSSadaf Ebrahimi __ bind(&l_1552);
2525*f5c631daSSadaf Ebrahimi __ bl(&l_1552);
2526*f5c631daSSadaf Ebrahimi // --------------
2527*f5c631daSSadaf Ebrahimi __ bind(&l_1556);
2528*f5c631daSSadaf Ebrahimi __ str(Narrow, r0, MemOperand(sp, 420));
2529*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r1, MemOperand(r0, 20));
2530*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r0, 4));
2531*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r0, 12));
2532*f5c631daSSadaf Ebrahimi __ add(Narrow, r3, r3, r1);
2533*f5c631daSSadaf Ebrahimi __ subs(Narrow, r3, r3, r2);
2534*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r3, 31U);
2535*f5c631daSSadaf Ebrahimi __ b(ls, &l_1c48);
2536*f5c631daSSadaf Ebrahimi // --------------
2537*f5c631daSSadaf Ebrahimi __ bind(&l_1568);
2538*f5c631daSSadaf Ebrahimi __ movs(Narrow, r3, 1U);
2539*f5c631daSSadaf Ebrahimi __ strb(r3, MemOperand(sp, 433));
2540*f5c631daSSadaf Ebrahimi // --------------
2541*f5c631daSSadaf Ebrahimi __ bind(&l_156e);
2542*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, &l_1728);
2543*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r5);
2544*f5c631daSSadaf Ebrahimi __ mov(Narrow, r1, r4);
2545*f5c631daSSadaf Ebrahimi __ add(Narrow, r2, sp, 116U);
2546*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 416));
2547*f5c631daSSadaf Ebrahimi __ bl(&l_0000);
2548*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r1, MemOperand(sp, 116));
2549*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r4);
2550*f5c631daSSadaf Ebrahimi __ str(fp, MemOperand(sp));
2551*f5c631daSSadaf Ebrahimi __ mov(r2, 1568U);
2552*f5c631daSSadaf Ebrahimi __ mov(Narrow, r3, sl);
2553*f5c631daSSadaf Ebrahimi // --------------
2554*f5c631daSSadaf Ebrahimi __ bind(&l_158a);
2555*f5c631daSSadaf Ebrahimi __ bl(&l_158a);
2556*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r5);
2557*f5c631daSSadaf Ebrahimi // --------------
2558*f5c631daSSadaf Ebrahimi __ bind(&l_1590);
2559*f5c631daSSadaf Ebrahimi __ bl(&l_1590);
2560*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, &l_1728);
2561*f5c631daSSadaf Ebrahimi __ add(Narrow, r0, sp, 416U);
2562*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 416));
2563*f5c631daSSadaf Ebrahimi // --------------
2564*f5c631daSSadaf Ebrahimi __ bind(&l_159a);
2565*f5c631daSSadaf Ebrahimi __ bl(&l_159a);
2566*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(sp, 60));
2567*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r4);
2568*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(sp, 64));
2569*f5c631daSSadaf Ebrahimi __ movs(Narrow, r1, 14U);
2570*f5c631daSSadaf Ebrahimi __ str(Narrow, r2, MemOperand(sp, 4));
2571*f5c631daSSadaf Ebrahimi __ mov(r2, 800U);
2572*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp));
2573*f5c631daSSadaf Ebrahimi // --------------
2574*f5c631daSSadaf Ebrahimi __ bind(&l_15ae);
2575*f5c631daSSadaf Ebrahimi __ bl(&l_15ae);
2576*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r1, MemOperand(r7, 40));
2577*f5c631daSSadaf Ebrahimi __ mov(lr, 0U);
2578*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r7, 28));
2579*f5c631daSSadaf Ebrahimi __ mov(ip, 1U);
2580*f5c631daSSadaf Ebrahimi __ str(fp, MemOperand(sp));
2581*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r4);
2582*f5c631daSSadaf Ebrahimi __ str(r1, MemOperand(sp, 2308));
2583*f5c631daSSadaf Ebrahimi __ str(r1, MemOperand(sp, 2320));
2584*f5c631daSSadaf Ebrahimi __ mov(Narrow, r3, r2);
2585*f5c631daSSadaf Ebrahimi __ movs(Narrow, r1, 14U);
2586*f5c631daSSadaf Ebrahimi __ str(ip, MemOperand(sp, 2304));
2587*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 2312));
2588*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 2316));
2589*f5c631daSSadaf Ebrahimi // --------------
2590*f5c631daSSadaf Ebrahimi __ bind(&l_15dc);
2591*f5c631daSSadaf Ebrahimi __ bl(&l_15dc);
2592*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r4);
2593*f5c631daSSadaf Ebrahimi __ movs(Narrow, r1, 1U);
2594*f5c631daSSadaf Ebrahimi __ add(Narrow, r2, sp, 624U);
2595*f5c631daSSadaf Ebrahimi __ movs(Narrow, r3, 2U);
2596*f5c631daSSadaf Ebrahimi // --------------
2597*f5c631daSSadaf Ebrahimi __ bind(&l_15e8);
2598*f5c631daSSadaf Ebrahimi __ bl(&l_15e8);
2599*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(sp, 24));
2600*f5c631daSSadaf Ebrahimi __ add(Narrow, r0, sp, 652U);
2601*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 624));
2602*f5c631daSSadaf Ebrahimi // --------------
2603*f5c631daSSadaf Ebrahimi __ bind(&l_15f2);
2604*f5c631daSSadaf Ebrahimi __ bl(&l_15f2);
2605*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(sp, 40));
2606*f5c631daSSadaf Ebrahimi __ movs(Narrow, r3, 0U);
2607*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r6, MemOperand(sp, 20));
2608*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r1, MemOperand(r7, 40));
2609*f5c631daSSadaf Ebrahimi __ stm(r5, NO_WRITE_BACK, RegisterList(r2, r3));
2610*f5c631daSSadaf Ebrahimi __ mov(r2, 4096U);
2611*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(r5, 8));
2612*f5c631daSSadaf Ebrahimi __ str(Narrow, r1, MemOperand(r5, 12));
2613*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(r5, 16));
2614*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(r5, 20));
2615*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 448));
2616*f5c631daSSadaf Ebrahimi __ strb(r3, MemOperand(sp, 461));
2617*f5c631daSSadaf Ebrahimi __ str(r9, MemOperand(sp, 444));
2618*f5c631daSSadaf Ebrahimi __ str(Narrow, r2, MemOperand(r5, 24));
2619*f5c631daSSadaf Ebrahimi __ cbz(r6, &l_1664);
2620*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r4, 44));
2621*f5c631daSSadaf Ebrahimi __ movs(Narrow, r2, 1U);
2622*f5c631daSSadaf Ebrahimi __ str(Narrow, r6, MemOperand(sp, 464));
2623*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r6);
2624*f5c631daSSadaf Ebrahimi __ str(Narrow, r2, MemOperand(sp, 468));
2625*f5c631daSSadaf Ebrahimi __ movs(Narrow, r1, 32U);
2626*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r3, 32));
2627*f5c631daSSadaf Ebrahimi __ blx(r3);
2628*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r4, 44));
2629*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r6);
2630*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r3, 24));
2631*f5c631daSSadaf Ebrahimi __ blx(r3);
2632*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r4, 44));
2633*f5c631daSSadaf Ebrahimi __ movw(r3, 0U);
2634*f5c631daSSadaf Ebrahimi __ movt(r3, 0U);
2635*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r2));
2636*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r2, r3);
2637*f5c631daSSadaf Ebrahimi __ b(ne, &l_1d24);
2638*f5c631daSSadaf Ebrahimi }
Generate_21(TestAssembler * assembler)2639*f5c631daSSadaf Ebrahimi void Generate_21(TestAssembler* assembler) {
2640*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r6);
2641*f5c631daSSadaf Ebrahimi // --------------
2642*f5c631daSSadaf Ebrahimi __ bind(&l_1648);
2643*f5c631daSSadaf Ebrahimi __ bl(&l_1648);
2644*f5c631daSSadaf Ebrahimi // --------------
2645*f5c631daSSadaf Ebrahimi __ bind(&l_164c);
2646*f5c631daSSadaf Ebrahimi __ str(Narrow, r0, MemOperand(sp, 448));
2647*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r1, MemOperand(r0, 20));
2648*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r0, 4));
2649*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r0, 12));
2650*f5c631daSSadaf Ebrahimi __ add(Narrow, r3, r3, r1);
2651*f5c631daSSadaf Ebrahimi __ subs(Narrow, r3, r3, r2);
2652*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r3, 31U);
2653*f5c631daSSadaf Ebrahimi __ b(ls, &l_1c54);
2654*f5c631daSSadaf Ebrahimi // --------------
2655*f5c631daSSadaf Ebrahimi __ bind(&l_165e);
2656*f5c631daSSadaf Ebrahimi __ movs(Narrow, r3, 1U);
2657*f5c631daSSadaf Ebrahimi __ strb(r3, MemOperand(sp, 461));
2658*f5c631daSSadaf Ebrahimi // --------------
2659*f5c631daSSadaf Ebrahimi __ bind(&l_1664);
2660*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, &l_1728);
2661*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r5, 12));
2662*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 444));
2663*f5c631daSSadaf Ebrahimi __ ubfx(r3, r2, 5U, 4U);
2664*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r3, 0U);
2665*f5c631daSSadaf Ebrahimi __ b(ne, &l_1b04);
2666*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(sp, 72));
2667*f5c631daSSadaf Ebrahimi __ and_(r2, r2, 0x1f);
2668*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r2, 7U);
2669*f5c631daSSadaf Ebrahimi __ b(hi, &l_1b00);
2670*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r5));
2671*f5c631daSSadaf Ebrahimi __ and_(r2, r2, 0x1f);
2672*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r2, 7U);
2673*f5c631daSSadaf Ebrahimi __ b(hi, &l_1b00);
2674*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r5, 4));
2675*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r2, 31U);
2676*f5c631daSSadaf Ebrahimi __ b(hi, &l_1b00);
2677*f5c631daSSadaf Ebrahimi // --------------
2678*f5c631daSSadaf Ebrahimi __ bind(&l_1694);
2679*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r5, 24));
2680*f5c631daSSadaf Ebrahimi __ ubfx(r3, r3, 0U, 12U);
2681*f5c631daSSadaf Ebrahimi __ clz(ip, r3);
2682*f5c631daSSadaf Ebrahimi __ lsr(ip, ip, 5U);
2683*f5c631daSSadaf Ebrahimi // --------------
2684*f5c631daSSadaf Ebrahimi __ bind(&l_16a2);
2685*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r6, &l_1724);
2686*f5c631daSSadaf Ebrahimi __ mov(lr, 0U);
2687*f5c631daSSadaf Ebrahimi __ movs(Narrow, r0, 1U);
2688*f5c631daSSadaf Ebrahimi __ movs(Narrow, r2, 4U);
2689*f5c631daSSadaf Ebrahimi __ movs(Narrow, r1, 14U);
2690*f5c631daSSadaf Ebrahimi __ str(r2, MemOperand(sp, 2316));
2691*f5c631daSSadaf Ebrahimi __ str(r0, MemOperand(sp, 2320));
2692*f5c631daSSadaf Ebrahimi __ mov(Narrow, r2, lr);
2693*f5c631daSSadaf Ebrahimi __ str(r0, MemOperand(sp, 2324));
2694*f5c631daSSadaf Ebrahimi __ strb(r0, MemOperand(sp, 2352));
2695*f5c631daSSadaf Ebrahimi __ str(r0, MemOperand(sp, 2368));
2696*f5c631daSSadaf Ebrahimi __ str(r0, MemOperand(sp, 2392));
2697*f5c631daSSadaf Ebrahimi __ str(r0, MemOperand(sp, 2416));
2698*f5c631daSSadaf Ebrahimi __ str(r0, MemOperand(sp, 2440));
2699*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r4);
2700*f5c631daSSadaf Ebrahimi __ str(r4, MemOperand(sp, 2304));
2701*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(sp, 72));
2702*f5c631daSSadaf Ebrahimi __ str(r1, MemOperand(sp, 2308));
2703*f5c631daSSadaf Ebrahimi __ strb(lr, MemOperand(sp, 2328));
2704*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 2332));
2705*f5c631daSSadaf Ebrahimi __ strb(lr, MemOperand(sp, 2336));
2706*f5c631daSSadaf Ebrahimi __ strb(lr, MemOperand(sp, 2340));
2707*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 2356));
2708*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 2360));
2709*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 2364));
2710*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 2372));
2711*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 2376));
2712*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 2380));
2713*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 2384));
2714*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 2388));
2715*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 2396));
2716*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 2400));
2717*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 2404));
2718*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 2408));
2719*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 2412));
2720*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_172c);
2721*f5c631daSSadaf Ebrahimi __ nop(Narrow);
2722*f5c631daSSadaf Ebrahimi // --------------
2723*f5c631daSSadaf Ebrahimi __ bind(&l_1724);
2724*f5c631daSSadaf Ebrahimi __ Emit32(0x00000008);
2725*f5c631daSSadaf Ebrahimi // --------------
2726*f5c631daSSadaf Ebrahimi __ bind(&l_1728);
2727*f5c631daSSadaf Ebrahimi __ Emit32(0x00000008);
2728*f5c631daSSadaf Ebrahimi // --------------
2729*f5c631daSSadaf Ebrahimi __ bind(&l_172c);
2730*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 2420));
2731*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 2424));
2732*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 2428));
2733*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 2432));
2734*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 2436));
2735*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 2444));
2736*f5c631daSSadaf Ebrahimi __ str(Narrow, r5, MemOperand(sp));
2737*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 2448));
2738*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 2452));
2739*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 2456));
2740*f5c631daSSadaf Ebrahimi __ str(r6, MemOperand(sp, 2312));
2741*f5c631daSSadaf Ebrahimi __ strb(ip, MemOperand(sp, 2464));
2742*f5c631daSSadaf Ebrahimi // --------------
2743*f5c631daSSadaf Ebrahimi __ bind(&l_175a);
2744*f5c631daSSadaf Ebrahimi __ bl(&l_175a);
2745*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, fp);
2746*f5c631daSSadaf Ebrahimi // --------------
2747*f5c631daSSadaf Ebrahimi __ bind(&l_1760);
2748*f5c631daSSadaf Ebrahimi __ bl(&l_1760);
2749*f5c631daSSadaf Ebrahimi __ ldrb(r3, MemOperand(sp, 461));
2750*f5c631daSSadaf Ebrahimi __ str(r9, MemOperand(sp, 444));
2751*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r3, 0U);
2752*f5c631daSSadaf Ebrahimi __ b(ne, &l_1b4a);
2753*f5c631daSSadaf Ebrahimi // --------------
2754*f5c631daSSadaf Ebrahimi __ bind(&l_1772);
2755*f5c631daSSadaf Ebrahimi __ ldr(lr, MemOperand(r7, 40));
2756*f5c631daSSadaf Ebrahimi __ movw(r1, 0U);
2757*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(sp, 68));
2758*f5c631daSSadaf Ebrahimi __ movt(r1, 0U);
2759*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r4);
2760*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp));
2761*f5c631daSSadaf Ebrahimi __ mov(Narrow, r3, lr);
2762*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 4));
2763*f5c631daSSadaf Ebrahimi // --------------
2764*f5c631daSSadaf Ebrahimi __ bind(&l_178c);
2765*f5c631daSSadaf Ebrahimi __ bl(&l_178c);
2766*f5c631daSSadaf Ebrahimi }
Generate_22(TestAssembler * assembler)2767*f5c631daSSadaf Ebrahimi void Generate_22(TestAssembler* assembler) {
2768*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(sp, 56));
2769*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r4);
2770*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(sp, 36));
2771*f5c631daSSadaf Ebrahimi __ movs(Narrow, r1, 14U);
2772*f5c631daSSadaf Ebrahimi __ str(Narrow, r2, MemOperand(sp, 4));
2773*f5c631daSSadaf Ebrahimi __ mov(r2, 800U);
2774*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp));
2775*f5c631daSSadaf Ebrahimi // --------------
2776*f5c631daSSadaf Ebrahimi __ bind(&l_17a0);
2777*f5c631daSSadaf Ebrahimi __ bl(&l_17a0);
2778*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r1, MemOperand(r7, 40));
2779*f5c631daSSadaf Ebrahimi __ mov(lr, 0U);
2780*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r7, 24));
2781*f5c631daSSadaf Ebrahimi __ mov(ip, 1U);
2782*f5c631daSSadaf Ebrahimi __ str(fp, MemOperand(sp));
2783*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r4);
2784*f5c631daSSadaf Ebrahimi __ str(r1, MemOperand(sp, 2308));
2785*f5c631daSSadaf Ebrahimi __ str(r1, MemOperand(sp, 2320));
2786*f5c631daSSadaf Ebrahimi __ mov(Narrow, r3, r2);
2787*f5c631daSSadaf Ebrahimi __ movs(Narrow, r1, 14U);
2788*f5c631daSSadaf Ebrahimi __ str(ip, MemOperand(sp, 2304));
2789*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 2312));
2790*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 2316));
2791*f5c631daSSadaf Ebrahimi // --------------
2792*f5c631daSSadaf Ebrahimi __ bind(&l_17ce);
2793*f5c631daSSadaf Ebrahimi __ bl(&l_17ce);
2794*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r4);
2795*f5c631daSSadaf Ebrahimi __ movs(Narrow, r1, 1U);
2796*f5c631daSSadaf Ebrahimi __ add(Narrow, r2, sp, 472U);
2797*f5c631daSSadaf Ebrahimi __ movs(Narrow, r3, 2U);
2798*f5c631daSSadaf Ebrahimi // --------------
2799*f5c631daSSadaf Ebrahimi __ bind(&l_17da);
2800*f5c631daSSadaf Ebrahimi __ bl(&l_17da);
2801*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(sp, 24));
2802*f5c631daSSadaf Ebrahimi __ ldr(r8, MemOperand(sp, 616));
2803*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 472));
2804*f5c631daSSadaf Ebrahimi __ cmp(r8, 0U);
2805*f5c631daSSadaf Ebrahimi __ b(eq, Narrow, &l_17fc);
2806*f5c631daSSadaf Ebrahimi __ ldr(r0, MemOperand(r8));
2807*f5c631daSSadaf Ebrahimi __ cbz(r0, &l_17f6);
2808*f5c631daSSadaf Ebrahimi // --------------
2809*f5c631daSSadaf Ebrahimi __ bind(&l_17f2);
2810*f5c631daSSadaf Ebrahimi __ bl(&l_17f2);
2811*f5c631daSSadaf Ebrahimi // --------------
2812*f5c631daSSadaf Ebrahimi __ bind(&l_17f6);
2813*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r8);
2814*f5c631daSSadaf Ebrahimi // --------------
2815*f5c631daSSadaf Ebrahimi __ bind(&l_17f8);
2816*f5c631daSSadaf Ebrahimi __ bl(&l_17f8);
2817*f5c631daSSadaf Ebrahimi // --------------
2818*f5c631daSSadaf Ebrahimi __ bind(&l_17fc);
2819*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r1, MemOperand(r7, 40));
2820*f5c631daSSadaf Ebrahimi __ mov(lr, 0U);
2821*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r7, 56));
2822*f5c631daSSadaf Ebrahimi __ mov(ip, 132U);
2823*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r4);
2824*f5c631daSSadaf Ebrahimi __ str(fp, MemOperand(sp));
2825*f5c631daSSadaf Ebrahimi __ str(r1, MemOperand(sp, 2308));
2826*f5c631daSSadaf Ebrahimi __ mov(Narrow, r3, r2);
2827*f5c631daSSadaf Ebrahimi __ str(r1, MemOperand(sp, 2320));
2828*f5c631daSSadaf Ebrahimi __ movs(Narrow, r1, 14U);
2829*f5c631daSSadaf Ebrahimi __ str(ip, MemOperand(sp, 2304));
2830*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 2312));
2831*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 2316));
2832*f5c631daSSadaf Ebrahimi // --------------
2833*f5c631daSSadaf Ebrahimi __ bind(&l_1826);
2834*f5c631daSSadaf Ebrahimi __ bl(&l_1826);
2835*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r7, 24));
2836*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r0, MemOperand(r7, 28));
2837*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r7, 32));
2838*f5c631daSSadaf Ebrahimi __ ubfx(r1, r3, 5U, 4U);
2839*f5c631daSSadaf Ebrahimi __ cbz(r1, &l_1842);
2840*f5c631daSSadaf Ebrahimi __ and_(lr, r3, 0x1f);
2841*f5c631daSSadaf Ebrahimi __ mov(r8, 1U);
2842*f5c631daSSadaf Ebrahimi __ lsl(r1, r8, lr);
2843*f5c631daSSadaf Ebrahimi // --------------
2844*f5c631daSSadaf Ebrahimi __ bind(&l_1842);
2845*f5c631daSSadaf Ebrahimi __ ubfx(r3, r0, 5U, 4U);
2846*f5c631daSSadaf Ebrahimi __ mov(Narrow, r8, r3);
2847*f5c631daSSadaf Ebrahimi __ cbz(r3, &l_1856);
2848*f5c631daSSadaf Ebrahimi __ and_(r0, r0, 0x1f);
2849*f5c631daSSadaf Ebrahimi __ mov(r8, 1U);
2850*f5c631daSSadaf Ebrahimi __ lsl(r8, r8, r0);
2851*f5c631daSSadaf Ebrahimi // --------------
2852*f5c631daSSadaf Ebrahimi __ bind(&l_1856);
2853*f5c631daSSadaf Ebrahimi __ ubfx(r3, r2, 5U, 4U);
2854*f5c631daSSadaf Ebrahimi __ orr(r8, r8, r1);
2855*f5c631daSSadaf Ebrahimi __ cbz(r3, &l_1868);
2856*f5c631daSSadaf Ebrahimi __ and_(r2, r2, 0x1f);
2857*f5c631daSSadaf Ebrahimi __ movs(Narrow, r3, 1U);
2858*f5c631daSSadaf Ebrahimi __ lsls(Narrow, r3, r3, r2);
2859*f5c631daSSadaf Ebrahimi // --------------
2860*f5c631daSSadaf Ebrahimi __ bind(&l_1868);
2861*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r6, MemOperand(sp, 20));
2862*f5c631daSSadaf Ebrahimi __ movs(Narrow, r2, 0U);
2863*f5c631daSSadaf Ebrahimi __ movs(Narrow, r1, 14U);
2864*f5c631daSSadaf Ebrahimi __ orr(r8, r8, r3);
2865*f5c631daSSadaf Ebrahimi __ str(r9, MemOperand(r5));
2866*f5c631daSSadaf Ebrahimi __ str(r1, MemOperand(sl));
2867*f5c631daSSadaf Ebrahimi __ str(Narrow, r2, MemOperand(r5, 4));
2868*f5c631daSSadaf Ebrahimi __ strb(Narrow, r2, MemOperand(r5, 17));
2869*f5c631daSSadaf Ebrahimi __ cbz(r6, &l_18ce);
2870*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r4, 44));
2871*f5c631daSSadaf Ebrahimi __ movs(Narrow, r2, 1U);
2872*f5c631daSSadaf Ebrahimi __ str(Narrow, r2, MemOperand(r5, 24));
2873*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r6);
2874*f5c631daSSadaf Ebrahimi __ str(Narrow, r6, MemOperand(r5, 20));
2875*f5c631daSSadaf Ebrahimi __ movs(Narrow, r1, 32U);
2876*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r3, 32));
2877*f5c631daSSadaf Ebrahimi __ blx(r3);
2878*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r4, 44));
2879*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r6);
2880*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r3, 24));
2881*f5c631daSSadaf Ebrahimi __ blx(r3);
2882*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r4, 44));
2883*f5c631daSSadaf Ebrahimi __ movw(r3, 0U);
2884*f5c631daSSadaf Ebrahimi __ movt(r3, 0U);
2885*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r2));
2886*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r2, r3);
2887*f5c631daSSadaf Ebrahimi __ b(ne, &l_1d50);
2888*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r6);
2889*f5c631daSSadaf Ebrahimi // --------------
2890*f5c631daSSadaf Ebrahimi __ bind(&l_18ac);
2891*f5c631daSSadaf Ebrahimi __ bl(&l_18ac);
2892*f5c631daSSadaf Ebrahimi }
Generate_23(TestAssembler * assembler)2893*f5c631daSSadaf Ebrahimi void Generate_23(TestAssembler* assembler) {
2894*f5c631daSSadaf Ebrahimi // --------------
2895*f5c631daSSadaf Ebrahimi __ bind(&l_18b0);
2896*f5c631daSSadaf Ebrahimi __ str(Narrow, r0, MemOperand(r5, 4));
2897*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r1, MemOperand(r0, 20));
2898*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r0, 4));
2899*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r0, 12));
2900*f5c631daSSadaf Ebrahimi __ add(Narrow, r3, r3, r1);
2901*f5c631daSSadaf Ebrahimi __ subs(Narrow, r3, r3, r2);
2902*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r3, 31U);
2903*f5c631daSSadaf Ebrahimi __ b(hi, Narrow, &l_18ca);
2904*f5c631daSSadaf Ebrahimi __ lsls(Narrow, r1, r1, 1U);
2905*f5c631daSSadaf Ebrahimi __ adds(r0, 4U);
2906*f5c631daSSadaf Ebrahimi __ adds(Narrow, r1, r1, 32U);
2907*f5c631daSSadaf Ebrahimi // --------------
2908*f5c631daSSadaf Ebrahimi __ bind(&l_18c6);
2909*f5c631daSSadaf Ebrahimi __ bl(&l_18c6);
2910*f5c631daSSadaf Ebrahimi // --------------
2911*f5c631daSSadaf Ebrahimi __ bind(&l_18ca);
2912*f5c631daSSadaf Ebrahimi __ movs(Narrow, r3, 1U);
2913*f5c631daSSadaf Ebrahimi __ strb(Narrow, r3, MemOperand(r5, 17));
2914*f5c631daSSadaf Ebrahimi // --------------
2915*f5c631daSSadaf Ebrahimi __ bind(&l_18ce);
2916*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, &l_1be8);
2917*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, fp);
2918*f5c631daSSadaf Ebrahimi __ mov(Narrow, r1, r4);
2919*f5c631daSSadaf Ebrahimi __ mov(Narrow, r2, sl);
2920*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(r5));
2921*f5c631daSSadaf Ebrahimi __ bl(&l_0000);
2922*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r4);
2923*f5c631daSSadaf Ebrahimi __ ldr(r1, MemOperand(sl));
2924*f5c631daSSadaf Ebrahimi __ mov(Narrow, r3, r8);
2925*f5c631daSSadaf Ebrahimi __ movs(Narrow, r2, 0U);
2926*f5c631daSSadaf Ebrahimi // --------------
2927*f5c631daSSadaf Ebrahimi __ bind(&l_18e6);
2928*f5c631daSSadaf Ebrahimi __ bl(&l_18e6);
2929*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, fp);
2930*f5c631daSSadaf Ebrahimi // --------------
2931*f5c631daSSadaf Ebrahimi __ bind(&l_18ec);
2932*f5c631daSSadaf Ebrahimi __ bl(&l_18ec);
2933*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, &l_1be8);
2934*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r5);
2935*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(r5));
2936*f5c631daSSadaf Ebrahimi // --------------
2937*f5c631daSSadaf Ebrahimi __ bind(&l_18f6);
2938*f5c631daSSadaf Ebrahimi __ bl(&l_18f6);
2939*f5c631daSSadaf Ebrahimi __ movs(Narrow, r3, 0U);
2940*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r7, MemOperand(r7, 108));
2941*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(r5, 4));
2942*f5c631daSSadaf Ebrahimi __ strb(Narrow, r3, MemOperand(r5, 17));
2943*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(sp, 20));
2944*f5c631daSSadaf Ebrahimi __ str(r9, MemOperand(r5));
2945*f5c631daSSadaf Ebrahimi __ cbz(r3, &l_195a);
2946*f5c631daSSadaf Ebrahimi __ mov(Narrow, r6, r3);
2947*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r4, 44));
2948*f5c631daSSadaf Ebrahimi __ movs(Narrow, r2, 1U);
2949*f5c631daSSadaf Ebrahimi __ str(Narrow, r6, MemOperand(r5, 20));
2950*f5c631daSSadaf Ebrahimi __ str(Narrow, r2, MemOperand(r5, 24));
2951*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r6);
2952*f5c631daSSadaf Ebrahimi __ movs(Narrow, r1, 32U);
2953*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r3, 32));
2954*f5c631daSSadaf Ebrahimi __ blx(r3);
2955*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r4, 44));
2956*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r6);
2957*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r3, 24));
2958*f5c631daSSadaf Ebrahimi __ blx(r3);
2959*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r4, 44));
2960*f5c631daSSadaf Ebrahimi __ movw(r3, 0U);
2961*f5c631daSSadaf Ebrahimi __ movt(r3, 0U);
2962*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r2));
2963*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r2, r3);
2964*f5c631daSSadaf Ebrahimi __ b(ne, &l_1d4a);
2965*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r6);
2966*f5c631daSSadaf Ebrahimi // --------------
2967*f5c631daSSadaf Ebrahimi __ bind(&l_1938);
2968*f5c631daSSadaf Ebrahimi __ bl(&l_1938);
2969*f5c631daSSadaf Ebrahimi // --------------
2970*f5c631daSSadaf Ebrahimi __ bind(&l_193c);
2971*f5c631daSSadaf Ebrahimi __ str(Narrow, r0, MemOperand(r5, 4));
2972*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r1, MemOperand(r0, 20));
2973*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r0, 4));
2974*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r0, 12));
2975*f5c631daSSadaf Ebrahimi __ add(Narrow, r3, r3, r1);
2976*f5c631daSSadaf Ebrahimi __ subs(Narrow, r3, r3, r2);
2977*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r3, 31U);
2978*f5c631daSSadaf Ebrahimi __ b(hi, Narrow, &l_1956);
2979*f5c631daSSadaf Ebrahimi __ lsls(Narrow, r1, r1, 1U);
2980*f5c631daSSadaf Ebrahimi __ adds(r0, 4U);
2981*f5c631daSSadaf Ebrahimi __ adds(Narrow, r1, r1, 32U);
2982*f5c631daSSadaf Ebrahimi // --------------
2983*f5c631daSSadaf Ebrahimi __ bind(&l_1952);
2984*f5c631daSSadaf Ebrahimi __ bl(&l_1952);
2985*f5c631daSSadaf Ebrahimi // --------------
2986*f5c631daSSadaf Ebrahimi __ bind(&l_1956);
2987*f5c631daSSadaf Ebrahimi __ movs(Narrow, r3, 1U);
2988*f5c631daSSadaf Ebrahimi __ strb(Narrow, r3, MemOperand(r5, 17));
2989*f5c631daSSadaf Ebrahimi // --------------
2990*f5c631daSSadaf Ebrahimi __ bind(&l_195a);
2991*f5c631daSSadaf Ebrahimi __ movs(Narrow, r3, 1U);
2992*f5c631daSSadaf Ebrahimi __ and_(r6, r7, 0x1f);
2993*f5c631daSSadaf Ebrahimi __ subs(r8, r6, 15U);
2994*f5c631daSSadaf Ebrahimi __ str(r3, MemOperand(sp, 2320));
2995*f5c631daSSadaf Ebrahimi __ str(r3, MemOperand(sp, 2324));
2996*f5c631daSSadaf Ebrahimi __ mov(lr, 14U);
2997*f5c631daSSadaf Ebrahimi __ strb(r3, MemOperand(sp, 2352));
2998*f5c631daSSadaf Ebrahimi __ mov(ip, 4U);
2999*f5c631daSSadaf Ebrahimi __ str(r3, MemOperand(sp, 2368));
3000*f5c631daSSadaf Ebrahimi __ it(ne);
3001*f5c631daSSadaf Ebrahimi __ mov(ne, r8, 1U);
3002*f5c631daSSadaf Ebrahimi __ str(r3, MemOperand(sp, 2392));
3003*f5c631daSSadaf Ebrahimi __ mov(Narrow, r2, r7);
3004*f5c631daSSadaf Ebrahimi __ str(r3, MemOperand(sp, 2416));
3005*f5c631daSSadaf Ebrahimi __ movs(Narrow, r7, 0U);
3006*f5c631daSSadaf Ebrahimi __ str(r3, MemOperand(sp, 2440));
3007*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r4);
3008*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r6, &l_1be8);
3009*f5c631daSSadaf Ebrahimi __ mov(Narrow, r1, lr);
3010*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, &l_1bec);
3011*f5c631daSSadaf Ebrahimi __ str(r4, MemOperand(sp, 2304));
3012*f5c631daSSadaf Ebrahimi __ str(Narrow, r6, MemOperand(r5));
3013*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 2308));
3014*f5c631daSSadaf Ebrahimi __ str(ip, MemOperand(sp, 2316));
3015*f5c631daSSadaf Ebrahimi __ strb(r7, MemOperand(sp, 2328));
3016*f5c631daSSadaf Ebrahimi __ str(r7, MemOperand(sp, 2332));
3017*f5c631daSSadaf Ebrahimi __ strb(r7, MemOperand(sp, 2336));
3018*f5c631daSSadaf Ebrahimi }
Generate_24(TestAssembler * assembler)3019*f5c631daSSadaf Ebrahimi void Generate_24(TestAssembler* assembler) {
3020*f5c631daSSadaf Ebrahimi __ strb(r7, MemOperand(sp, 2340));
3021*f5c631daSSadaf Ebrahimi __ str(r7, MemOperand(sp, 2356));
3022*f5c631daSSadaf Ebrahimi __ str(r7, MemOperand(sp, 2360));
3023*f5c631daSSadaf Ebrahimi __ str(r7, MemOperand(sp, 2364));
3024*f5c631daSSadaf Ebrahimi __ str(r7, MemOperand(sp, 2372));
3025*f5c631daSSadaf Ebrahimi __ str(r7, MemOperand(sp, 2376));
3026*f5c631daSSadaf Ebrahimi __ str(r7, MemOperand(sp, 2380));
3027*f5c631daSSadaf Ebrahimi __ str(r7, MemOperand(sp, 2384));
3028*f5c631daSSadaf Ebrahimi __ str(r7, MemOperand(sp, 2388));
3029*f5c631daSSadaf Ebrahimi __ str(r7, MemOperand(sp, 2396));
3030*f5c631daSSadaf Ebrahimi __ str(r7, MemOperand(sp, 2400));
3031*f5c631daSSadaf Ebrahimi __ str(r7, MemOperand(sp, 2404));
3032*f5c631daSSadaf Ebrahimi __ str(r7, MemOperand(sp, 2408));
3033*f5c631daSSadaf Ebrahimi __ str(r7, MemOperand(sp, 2412));
3034*f5c631daSSadaf Ebrahimi __ str(r7, MemOperand(sp, 2420));
3035*f5c631daSSadaf Ebrahimi __ str(r7, MemOperand(sp, 2424));
3036*f5c631daSSadaf Ebrahimi __ str(r7, MemOperand(sp, 2428));
3037*f5c631daSSadaf Ebrahimi __ str(r7, MemOperand(sp, 2432));
3038*f5c631daSSadaf Ebrahimi __ str(r7, MemOperand(sp, 2436));
3039*f5c631daSSadaf Ebrahimi __ str(r7, MemOperand(sp, 2444));
3040*f5c631daSSadaf Ebrahimi __ str(r7, MemOperand(sp, 2448));
3041*f5c631daSSadaf Ebrahimi __ str(r7, MemOperand(sp, 2452));
3042*f5c631daSSadaf Ebrahimi __ str(r7, MemOperand(sp, 2456));
3043*f5c631daSSadaf Ebrahimi __ str(r3, MemOperand(sp, 2312));
3044*f5c631daSSadaf Ebrahimi __ strb(r8, MemOperand(sp, 2464));
3045*f5c631daSSadaf Ebrahimi // --------------
3046*f5c631daSSadaf Ebrahimi __ bind(&l_1a18);
3047*f5c631daSSadaf Ebrahimi __ bl(&l_1a18);
3048*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, fp);
3049*f5c631daSSadaf Ebrahimi // --------------
3050*f5c631daSSadaf Ebrahimi __ bind(&l_1a1e);
3051*f5c631daSSadaf Ebrahimi __ bl(&l_1a1e);
3052*f5c631daSSadaf Ebrahimi __ ldrb(Narrow, r3, MemOperand(r5, 17));
3053*f5c631daSSadaf Ebrahimi __ str(r9, MemOperand(r5));
3054*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r3, 0U);
3055*f5c631daSSadaf Ebrahimi __ b(ne, &l_1c2e);
3056*f5c631daSSadaf Ebrahimi // --------------
3057*f5c631daSSadaf Ebrahimi __ bind(&l_1a2e);
3058*f5c631daSSadaf Ebrahimi __ add(sp, sp, 2476U);
3059*f5c631daSSadaf Ebrahimi __ pop(RegisterList(0x8ff0));
3060*f5c631daSSadaf Ebrahimi // --------------
3061*f5c631daSSadaf Ebrahimi __ bind(&l_1a36);
3062*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r0, MemOperand(r5, 20));
3063*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r0, 0U);
3064*f5c631daSSadaf Ebrahimi __ b(eq, &l_0604);
3065*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r5, 24));
3066*f5c631daSSadaf Ebrahimi __ movs(Narrow, r2, 0U);
3067*f5c631daSSadaf Ebrahimi __ strb(Narrow, r2, MemOperand(r5, 17));
3068*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r3, 1U);
3069*f5c631daSSadaf Ebrahimi __ b(ne, &l_0604);
3070*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r0));
3071*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r3, 28));
3072*f5c631daSSadaf Ebrahimi __ blx(r3);
3073*f5c631daSSadaf Ebrahimi __ b(&l_0604);
3074*f5c631daSSadaf Ebrahimi // --------------
3075*f5c631daSSadaf Ebrahimi __ bind(&l_1a54);
3076*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r0, MemOperand(r5, 20));
3077*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r0, 0U);
3078*f5c631daSSadaf Ebrahimi __ b(eq, &l_04aa);
3079*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r5, 24));
3080*f5c631daSSadaf Ebrahimi __ movs(Narrow, r2, 0U);
3081*f5c631daSSadaf Ebrahimi __ strb(Narrow, r2, MemOperand(r5, 17));
3082*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r3, 1U);
3083*f5c631daSSadaf Ebrahimi __ b(ne, &l_04aa);
3084*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r0));
3085*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r3, 28));
3086*f5c631daSSadaf Ebrahimi __ blx(r3);
3087*f5c631daSSadaf Ebrahimi __ b(&l_04aa);
3088*f5c631daSSadaf Ebrahimi // --------------
3089*f5c631daSSadaf Ebrahimi __ bind(&l_1a72);
3090*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r0, MemOperand(r5, 20));
3091*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r0, 0U);
3092*f5c631daSSadaf Ebrahimi __ b(eq, &l_02dc);
3093*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r5, 24));
3094*f5c631daSSadaf Ebrahimi __ movs(Narrow, r2, 0U);
3095*f5c631daSSadaf Ebrahimi __ strb(Narrow, r2, MemOperand(r5, 17));
3096*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r3, 1U);
3097*f5c631daSSadaf Ebrahimi __ b(ne, &l_02dc);
3098*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r0));
3099*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r3, 28));
3100*f5c631daSSadaf Ebrahimi __ blx(r3);
3101*f5c631daSSadaf Ebrahimi __ b(&l_02dc);
3102*f5c631daSSadaf Ebrahimi // --------------
3103*f5c631daSSadaf Ebrahimi __ bind(&l_1a90);
3104*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r0, MemOperand(sp, 20));
3105*f5c631daSSadaf Ebrahimi __ blx(r2);
3106*f5c631daSSadaf Ebrahimi __ b(&l_0670);
3107*f5c631daSSadaf Ebrahimi // --------------
3108*f5c631daSSadaf Ebrahimi __ bind(&l_1a98);
3109*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r0, MemOperand(sp, 20));
3110*f5c631daSSadaf Ebrahimi __ blx(r2);
3111*f5c631daSSadaf Ebrahimi __ b(&l_04fc);
3112*f5c631daSSadaf Ebrahimi // --------------
3113*f5c631daSSadaf Ebrahimi __ bind(&l_1aa0);
3114*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r0, MemOperand(sp, 20));
3115*f5c631daSSadaf Ebrahimi __ blx(r2);
3116*f5c631daSSadaf Ebrahimi __ b(&l_0782);
3117*f5c631daSSadaf Ebrahimi // --------------
3118*f5c631daSSadaf Ebrahimi __ bind(&l_1aa8);
3119*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r0, MemOperand(sp, 20));
3120*f5c631daSSadaf Ebrahimi __ blx(r2);
3121*f5c631daSSadaf Ebrahimi __ b(&l_028e);
3122*f5c631daSSadaf Ebrahimi // --------------
3123*f5c631daSSadaf Ebrahimi __ bind(&l_1ab0);
3124*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r0, MemOperand(sp, 20));
3125*f5c631daSSadaf Ebrahimi __ blx(r2);
3126*f5c631daSSadaf Ebrahimi __ b(&l_03be);
3127*f5c631daSSadaf Ebrahimi // --------------
3128*f5c631daSSadaf Ebrahimi __ bind(&l_1ab8);
3129*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(r5));
3130*f5c631daSSadaf Ebrahimi __ and_(r3, r8, 0x1f);
3131*f5c631daSSadaf Ebrahimi __ b(&l_07a8);
3132*f5c631daSSadaf Ebrahimi // --------------
3133*f5c631daSSadaf Ebrahimi __ bind(&l_1ac2);
3134*f5c631daSSadaf Ebrahimi __ ldr(r2, MemOperand(sl, 8));
3135*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r2, 4U);
3136*f5c631daSSadaf Ebrahimi __ b(eq, &l_1d80);
3137*f5c631daSSadaf Ebrahimi __ ldr(r2, MemOperand(sl, 16));
3138*f5c631daSSadaf Ebrahimi __ ubfx(r2, r2, 5U, 4U);
3139*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r2, 0U);
3140*f5c631daSSadaf Ebrahimi __ b(ne, &l_1d80);
3141*f5c631daSSadaf Ebrahimi __ ldr(r1, MemOperand(sl, 12));
3142*f5c631daSSadaf Ebrahimi __ mov(Narrow, ip, r2);
3143*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r1, 0U);
3144*f5c631daSSadaf Ebrahimi __ b(ne, &l_07dc);
3145*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r3, 7U);
3146*f5c631daSSadaf Ebrahimi }
Generate_25(TestAssembler * assembler)3147*f5c631daSSadaf Ebrahimi void Generate_25(TestAssembler* assembler) {
3148*f5c631daSSadaf Ebrahimi __ b(hi, Narrow, &l_1b44);
3149*f5c631daSSadaf Ebrahimi __ and_(ip, r0, 0x1f);
3150*f5c631daSSadaf Ebrahimi __ cmp(ip, 7U);
3151*f5c631daSSadaf Ebrahimi __ ite(hi);
3152*f5c631daSSadaf Ebrahimi __ mov(hi, ip, 0U);
3153*f5c631daSSadaf Ebrahimi __ mov(ls, ip, 1U);
3154*f5c631daSSadaf Ebrahimi __ b(&l_07dc);
3155*f5c631daSSadaf Ebrahimi // --------------
3156*f5c631daSSadaf Ebrahimi __ bind(&l_1b00);
3157*f5c631daSSadaf Ebrahimi __ mov(Narrow, ip, r3);
3158*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_16a2);
3159*f5c631daSSadaf Ebrahimi // --------------
3160*f5c631daSSadaf Ebrahimi __ bind(&l_1b04);
3161*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r5, 16));
3162*f5c631daSSadaf Ebrahimi __ mov(ip, 0U);
3163*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r3, 0U);
3164*f5c631daSSadaf Ebrahimi __ b(ne, &l_16a2);
3165*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r1, MemOperand(r5, 20));
3166*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r1, 0U);
3167*f5c631daSSadaf Ebrahimi __ b(ne, Narrow, &l_1b00);
3168*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(sp, 72));
3169*f5c631daSSadaf Ebrahimi __ and_(r3, r3, 0x1f);
3170*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r3, 7U);
3171*f5c631daSSadaf Ebrahimi __ b(hi, Narrow, &l_1b3a);
3172*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r5));
3173*f5c631daSSadaf Ebrahimi __ and_(r3, r3, 0x1f);
3174*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r3, 7U);
3175*f5c631daSSadaf Ebrahimi __ b(hi, Narrow, &l_1b3a);
3176*f5c631daSSadaf Ebrahimi __ and_(r2, r2, 0x1f);
3177*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r2, 7U);
3178*f5c631daSSadaf Ebrahimi __ b(hi, Narrow, &l_1b3a);
3179*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r5, 8));
3180*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r3, 0U);
3181*f5c631daSSadaf Ebrahimi __ b(eq, &l_1694);
3182*f5c631daSSadaf Ebrahimi // --------------
3183*f5c631daSSadaf Ebrahimi __ bind(&l_1b3a);
3184*f5c631daSSadaf Ebrahimi __ mov(Narrow, ip, r1);
3185*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_16a2);
3186*f5c631daSSadaf Ebrahimi // --------------
3187*f5c631daSSadaf Ebrahimi __ bind(&l_1b3e);
3188*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r2, 255U);
3189*f5c631daSSadaf Ebrahimi __ b(ls, &l_07d0);
3190*f5c631daSSadaf Ebrahimi // --------------
3191*f5c631daSSadaf Ebrahimi __ bind(&l_1b44);
3192*f5c631daSSadaf Ebrahimi __ mov(Narrow, ip, r1);
3193*f5c631daSSadaf Ebrahimi __ b(&l_07dc);
3194*f5c631daSSadaf Ebrahimi // --------------
3195*f5c631daSSadaf Ebrahimi __ bind(&l_1b4a);
3196*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r0, MemOperand(sp, 464));
3197*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r0, 0U);
3198*f5c631daSSadaf Ebrahimi __ b(eq, &l_1772);
3199*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(sp, 468));
3200*f5c631daSSadaf Ebrahimi __ movs(Narrow, r2, 0U);
3201*f5c631daSSadaf Ebrahimi __ strb(r2, MemOperand(sp, 461));
3202*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r3, 1U);
3203*f5c631daSSadaf Ebrahimi __ b(ne, &l_1772);
3204*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r0));
3205*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r3, 28));
3206*f5c631daSSadaf Ebrahimi __ blx(r3);
3207*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_1772);
3208*f5c631daSSadaf Ebrahimi // --------------
3209*f5c631daSSadaf Ebrahimi __ bind(&l_1b68);
3210*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r0, MemOperand(sp, 296));
3211*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r0, 0U);
3212*f5c631daSSadaf Ebrahimi __ b(eq, &l_10fe);
3213*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(sp, 300));
3214*f5c631daSSadaf Ebrahimi __ movs(Narrow, r2, 0U);
3215*f5c631daSSadaf Ebrahimi __ strb(r2, MemOperand(sp, 293));
3216*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r3, 1U);
3217*f5c631daSSadaf Ebrahimi __ b(ne, &l_10fe);
3218*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r0));
3219*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r3, 28));
3220*f5c631daSSadaf Ebrahimi __ blx(r3);
3221*f5c631daSSadaf Ebrahimi __ b(&l_10fe);
3222*f5c631daSSadaf Ebrahimi // --------------
3223*f5c631daSSadaf Ebrahimi __ bind(&l_1b88);
3224*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r0, MemOperand(sp, 240));
3225*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r0, 0U);
3226*f5c631daSSadaf Ebrahimi __ b(eq, &l_0fac);
3227*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(sp, 244));
3228*f5c631daSSadaf Ebrahimi __ movs(Narrow, r2, 0U);
3229*f5c631daSSadaf Ebrahimi __ strb(r2, MemOperand(sp, 237));
3230*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r3, 1U);
3231*f5c631daSSadaf Ebrahimi __ b(ne, &l_0fac);
3232*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r0));
3233*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r3, 28));
3234*f5c631daSSadaf Ebrahimi __ blx(r3);
3235*f5c631daSSadaf Ebrahimi __ b(&l_0fac);
3236*f5c631daSSadaf Ebrahimi // --------------
3237*f5c631daSSadaf Ebrahimi __ bind(&l_1ba8);
3238*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r0, MemOperand(sp, 212));
3239*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r0, 0U);
3240*f5c631daSSadaf Ebrahimi __ b(eq, &l_0ed8);
3241*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(sp, 216));
3242*f5c631daSSadaf Ebrahimi __ movs(Narrow, r2, 0U);
3243*f5c631daSSadaf Ebrahimi __ strb(r2, MemOperand(sp, 209));
3244*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r3, 1U);
3245*f5c631daSSadaf Ebrahimi __ b(ne, &l_0ed8);
3246*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r0));
3247*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r3, 28));
3248*f5c631daSSadaf Ebrahimi __ blx(r3);
3249*f5c631daSSadaf Ebrahimi __ b(&l_0ed8);
3250*f5c631daSSadaf Ebrahimi // --------------
3251*f5c631daSSadaf Ebrahimi __ bind(&l_1bc8);
3252*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r0, MemOperand(sp, 352));
3253*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r0, 0U);
3254*f5c631daSSadaf Ebrahimi __ b(eq, &l_12fc);
3255*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(sp, 356));
3256*f5c631daSSadaf Ebrahimi __ movs(Narrow, r2, 0U);
3257*f5c631daSSadaf Ebrahimi __ strb(r2, MemOperand(sp, 349));
3258*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r3, 1U);
3259*f5c631daSSadaf Ebrahimi __ b(ne, &l_12fc);
3260*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r0));
3261*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r3, 28));
3262*f5c631daSSadaf Ebrahimi __ blx(r3);
3263*f5c631daSSadaf Ebrahimi __ b(&l_12fc);
3264*f5c631daSSadaf Ebrahimi // --------------
3265*f5c631daSSadaf Ebrahimi __ bind(&l_1be8);
3266*f5c631daSSadaf Ebrahimi __ Emit32(0x00000008);
3267*f5c631daSSadaf Ebrahimi // --------------
3268*f5c631daSSadaf Ebrahimi __ bind(&l_1bec);
3269*f5c631daSSadaf Ebrahimi __ Emit32(0x00000008);
3270*f5c631daSSadaf Ebrahimi // --------------
3271*f5c631daSSadaf Ebrahimi __ bind(&l_1bf0);
3272*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r0, MemOperand(sp, 380));
3273*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r0, 0U);
3274*f5c631daSSadaf Ebrahimi }
Generate_26(TestAssembler * assembler)3275*f5c631daSSadaf Ebrahimi void Generate_26(TestAssembler* assembler) {
3276*f5c631daSSadaf Ebrahimi __ b(eq, &l_1430);
3277*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(sp, 384));
3278*f5c631daSSadaf Ebrahimi __ movs(Narrow, r2, 0U);
3279*f5c631daSSadaf Ebrahimi __ strb(r2, MemOperand(sp, 377));
3280*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r3, 1U);
3281*f5c631daSSadaf Ebrahimi __ b(ne, &l_1430);
3282*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r0));
3283*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r3, 28));
3284*f5c631daSSadaf Ebrahimi __ blx(r3);
3285*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_1430);
3286*f5c631daSSadaf Ebrahimi // --------------
3287*f5c631daSSadaf Ebrahimi __ bind(&l_1c0e);
3288*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r0, MemOperand(sp, 184));
3289*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r0, 0U);
3290*f5c631daSSadaf Ebrahimi __ b(eq, &l_0b2e);
3291*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(sp, 188));
3292*f5c631daSSadaf Ebrahimi __ movs(Narrow, r2, 0U);
3293*f5c631daSSadaf Ebrahimi __ strb(r2, MemOperand(sp, 181));
3294*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r3, 1U);
3295*f5c631daSSadaf Ebrahimi __ b(ne, &l_0b2e);
3296*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r0));
3297*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r3, 28));
3298*f5c631daSSadaf Ebrahimi __ blx(r3);
3299*f5c631daSSadaf Ebrahimi __ b(&l_0b2e);
3300*f5c631daSSadaf Ebrahimi // --------------
3301*f5c631daSSadaf Ebrahimi __ bind(&l_1c2e);
3302*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r0, MemOperand(r5, 20));
3303*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r0, 0U);
3304*f5c631daSSadaf Ebrahimi __ b(eq, &l_1a2e);
3305*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r5, 24));
3306*f5c631daSSadaf Ebrahimi __ strb(Narrow, r7, MemOperand(r5, 17));
3307*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r3, 1U);
3308*f5c631daSSadaf Ebrahimi __ b(ne, &l_1a2e);
3309*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r0));
3310*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r3, 28));
3311*f5c631daSSadaf Ebrahimi __ blx(r3);
3312*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_1a2e);
3313*f5c631daSSadaf Ebrahimi // --------------
3314*f5c631daSSadaf Ebrahimi __ bind(&l_1c48);
3315*f5c631daSSadaf Ebrahimi __ lsls(Narrow, r1, r1, 1U);
3316*f5c631daSSadaf Ebrahimi __ adds(r0, 4U);
3317*f5c631daSSadaf Ebrahimi __ adds(Narrow, r1, r1, 32U);
3318*f5c631daSSadaf Ebrahimi // --------------
3319*f5c631daSSadaf Ebrahimi __ bind(&l_1c4e);
3320*f5c631daSSadaf Ebrahimi __ bl(&l_1c4e);
3321*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_1568);
3322*f5c631daSSadaf Ebrahimi // --------------
3323*f5c631daSSadaf Ebrahimi __ bind(&l_1c54);
3324*f5c631daSSadaf Ebrahimi __ lsls(Narrow, r1, r1, 1U);
3325*f5c631daSSadaf Ebrahimi __ adds(r0, 4U);
3326*f5c631daSSadaf Ebrahimi __ adds(Narrow, r1, r1, 32U);
3327*f5c631daSSadaf Ebrahimi // --------------
3328*f5c631daSSadaf Ebrahimi __ bind(&l_1c5a);
3329*f5c631daSSadaf Ebrahimi __ bl(&l_1c5a);
3330*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_165e);
3331*f5c631daSSadaf Ebrahimi // --------------
3332*f5c631daSSadaf Ebrahimi __ bind(&l_1c60);
3333*f5c631daSSadaf Ebrahimi __ lsls(Narrow, r1, r1, 1U);
3334*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, &l_1f4c);
3335*f5c631daSSadaf Ebrahimi __ adds(r0, 4U);
3336*f5c631daSSadaf Ebrahimi __ adds(Narrow, r1, r1, 32U);
3337*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 24));
3338*f5c631daSSadaf Ebrahimi // --------------
3339*f5c631daSSadaf Ebrahimi __ bind(&l_1c6a);
3340*f5c631daSSadaf Ebrahimi __ bl(&l_1c6a);
3341*f5c631daSSadaf Ebrahimi __ b(&l_09fa);
3342*f5c631daSSadaf Ebrahimi // --------------
3343*f5c631daSSadaf Ebrahimi __ bind(&l_1c72);
3344*f5c631daSSadaf Ebrahimi __ lsls(Narrow, r1, r1, 1U);
3345*f5c631daSSadaf Ebrahimi __ adds(r0, 4U);
3346*f5c631daSSadaf Ebrahimi __ adds(Narrow, r1, r1, 32U);
3347*f5c631daSSadaf Ebrahimi // --------------
3348*f5c631daSSadaf Ebrahimi __ bind(&l_1c78);
3349*f5c631daSSadaf Ebrahimi __ bl(&l_1c78);
3350*f5c631daSSadaf Ebrahimi __ b(&l_0e9e);
3351*f5c631daSSadaf Ebrahimi // --------------
3352*f5c631daSSadaf Ebrahimi __ bind(&l_1c80);
3353*f5c631daSSadaf Ebrahimi __ lsls(Narrow, r1, r1, 1U);
3354*f5c631daSSadaf Ebrahimi __ adds(r0, 4U);
3355*f5c631daSSadaf Ebrahimi __ adds(Narrow, r1, r1, 32U);
3356*f5c631daSSadaf Ebrahimi // --------------
3357*f5c631daSSadaf Ebrahimi __ bind(&l_1c86);
3358*f5c631daSSadaf Ebrahimi __ bl(&l_1c86);
3359*f5c631daSSadaf Ebrahimi __ b(&l_0f60);
3360*f5c631daSSadaf Ebrahimi // --------------
3361*f5c631daSSadaf Ebrahimi __ bind(&l_1c8e);
3362*f5c631daSSadaf Ebrahimi __ lsls(Narrow, r1, r1, 1U);
3363*f5c631daSSadaf Ebrahimi __ adds(r0, 4U);
3364*f5c631daSSadaf Ebrahimi __ adds(Narrow, r1, r1, 32U);
3365*f5c631daSSadaf Ebrahimi // --------------
3366*f5c631daSSadaf Ebrahimi __ bind(&l_1c94);
3367*f5c631daSSadaf Ebrahimi __ bl(&l_1c94);
3368*f5c631daSSadaf Ebrahimi __ b(&l_101c);
3369*f5c631daSSadaf Ebrahimi // --------------
3370*f5c631daSSadaf Ebrahimi __ bind(&l_1c9c);
3371*f5c631daSSadaf Ebrahimi __ lsls(Narrow, r1, r1, 1U);
3372*f5c631daSSadaf Ebrahimi __ adds(r0, 4U);
3373*f5c631daSSadaf Ebrahimi __ adds(Narrow, r1, r1, 32U);
3374*f5c631daSSadaf Ebrahimi // --------------
3375*f5c631daSSadaf Ebrahimi __ bind(&l_1ca2);
3376*f5c631daSSadaf Ebrahimi __ bl(&l_1ca2);
3377*f5c631daSSadaf Ebrahimi __ b(&l_1488);
3378*f5c631daSSadaf Ebrahimi // --------------
3379*f5c631daSSadaf Ebrahimi __ bind(&l_1caa);
3380*f5c631daSSadaf Ebrahimi __ lsls(Narrow, r1, r1, 1U);
3381*f5c631daSSadaf Ebrahimi __ adds(r0, 4U);
3382*f5c631daSSadaf Ebrahimi __ adds(Narrow, r1, r1, 32U);
3383*f5c631daSSadaf Ebrahimi // --------------
3384*f5c631daSSadaf Ebrahimi __ bind(&l_1cb0);
3385*f5c631daSSadaf Ebrahimi __ bl(&l_1cb0);
3386*f5c631daSSadaf Ebrahimi __ b(&l_1350);
3387*f5c631daSSadaf Ebrahimi // --------------
3388*f5c631daSSadaf Ebrahimi __ bind(&l_1cb8);
3389*f5c631daSSadaf Ebrahimi __ lsls(Narrow, r1, r1, 1U);
3390*f5c631daSSadaf Ebrahimi __ adds(r0, 4U);
3391*f5c631daSSadaf Ebrahimi __ adds(Narrow, r1, r1, 32U);
3392*f5c631daSSadaf Ebrahimi // --------------
3393*f5c631daSSadaf Ebrahimi __ bind(&l_1cbe);
3394*f5c631daSSadaf Ebrahimi __ bl(&l_1cbe);
3395*f5c631daSSadaf Ebrahimi __ b(&l_1224);
3396*f5c631daSSadaf Ebrahimi // --------------
3397*f5c631daSSadaf Ebrahimi __ bind(&l_1cc6);
3398*f5c631daSSadaf Ebrahimi __ lsls(Narrow, r1, r1, 1U);
3399*f5c631daSSadaf Ebrahimi __ adds(r0, 4U);
3400*f5c631daSSadaf Ebrahimi __ adds(Narrow, r1, r1, 32U);
3401*f5c631daSSadaf Ebrahimi // --------------
3402*f5c631daSSadaf Ebrahimi __ bind(&l_1ccc);
3403*f5c631daSSadaf Ebrahimi __ bl(&l_1ccc);
3404*f5c631daSSadaf Ebrahimi __ b(&l_10bc);
3405*f5c631daSSadaf Ebrahimi // --------------
3406*f5c631daSSadaf Ebrahimi __ bind(&l_1cd4);
3407*f5c631daSSadaf Ebrahimi __ lsls(Narrow, r1, r1, 1U);
3408*f5c631daSSadaf Ebrahimi __ adds(r0, 4U);
3409*f5c631daSSadaf Ebrahimi __ adds(Narrow, r1, r1, 32U);
3410*f5c631daSSadaf Ebrahimi // --------------
3411*f5c631daSSadaf Ebrahimi __ bind(&l_1cda);
3412*f5c631daSSadaf Ebrahimi __ bl(&l_1cda);
3413*f5c631daSSadaf Ebrahimi __ b(&l_1168);
3414*f5c631daSSadaf Ebrahimi // --------------
3415*f5c631daSSadaf Ebrahimi __ bind(&l_1ce2);
3416*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r0, MemOperand(r5, 20));
3417*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r0, 0U);
3418*f5c631daSSadaf Ebrahimi __ b(eq, &l_08a4);
3419*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r5, 24));
3420*f5c631daSSadaf Ebrahimi __ movs(Narrow, r2, 0U);
3421*f5c631daSSadaf Ebrahimi __ strb(Narrow, r2, MemOperand(r5, 17));
3422*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r3, 1U);
3423*f5c631daSSadaf Ebrahimi __ b(ne, &l_08a4);
3424*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r0));
3425*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r3, 28));
3426*f5c631daSSadaf Ebrahimi }
Generate_27(TestAssembler * assembler)3427*f5c631daSSadaf Ebrahimi void Generate_27(TestAssembler* assembler) {
3428*f5c631daSSadaf Ebrahimi __ blx(r3);
3429*f5c631daSSadaf Ebrahimi __ b(&l_08a4);
3430*f5c631daSSadaf Ebrahimi // --------------
3431*f5c631daSSadaf Ebrahimi __ bind(&l_1d00);
3432*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r1, MemOperand(sp, 28));
3433*f5c631daSSadaf Ebrahimi __ add(r2, r8, 96U);
3434*f5c631daSSadaf Ebrahimi __ ldr(r3, MemOperand(r8, 132));
3435*f5c631daSSadaf Ebrahimi __ mov(Narrow, r6, r2);
3436*f5c631daSSadaf Ebrahimi __ mov(Narrow, r2, r1);
3437*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r1, r3);
3438*f5c631daSSadaf Ebrahimi __ b(eq, Narrow, &l_1d9c);
3439*f5c631daSSadaf Ebrahimi __ adds(r2, 2U);
3440*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r3, r2);
3441*f5c631daSSadaf Ebrahimi __ b(lt, Narrow, &l_1d9c);
3442*f5c631daSSadaf Ebrahimi __ add(r3, r8, 44U);
3443*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 24));
3444*f5c631daSSadaf Ebrahimi __ mov(Narrow, r1, r3);
3445*f5c631daSSadaf Ebrahimi __ b(&l_0aec);
3446*f5c631daSSadaf Ebrahimi // --------------
3447*f5c631daSSadaf Ebrahimi __ bind(&l_1d24);
3448*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r0, MemOperand(sp, 20));
3449*f5c631daSSadaf Ebrahimi __ blx(r2);
3450*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_164c);
3451*f5c631daSSadaf Ebrahimi // --------------
3452*f5c631daSSadaf Ebrahimi __ bind(&l_1d2a);
3453*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r0, MemOperand(sp, 20));
3454*f5c631daSSadaf Ebrahimi __ blx(r2);
3455*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_1556);
3456*f5c631daSSadaf Ebrahimi // --------------
3457*f5c631daSSadaf Ebrahimi __ bind(&l_1d30);
3458*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, &l_1f4c);
3459*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 24));
3460*f5c631daSSadaf Ebrahimi __ blx(r2);
3461*f5c631daSSadaf Ebrahimi __ b(&l_09e8);
3462*f5c631daSSadaf Ebrahimi // --------------
3463*f5c631daSSadaf Ebrahimi __ bind(&l_1d3a);
3464*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r0, MemOperand(sp, 20));
3465*f5c631daSSadaf Ebrahimi __ blx(r2);
3466*f5c631daSSadaf Ebrahimi __ b(&l_10aa);
3467*f5c631daSSadaf Ebrahimi // --------------
3468*f5c631daSSadaf Ebrahimi __ bind(&l_1d42);
3469*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r0, MemOperand(sp, 20));
3470*f5c631daSSadaf Ebrahimi __ blx(r2);
3471*f5c631daSSadaf Ebrahimi __ b(&l_1156);
3472*f5c631daSSadaf Ebrahimi // --------------
3473*f5c631daSSadaf Ebrahimi __ bind(&l_1d4a);
3474*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r0, MemOperand(sp, 20));
3475*f5c631daSSadaf Ebrahimi __ blx(r2);
3476*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_193c);
3477*f5c631daSSadaf Ebrahimi // --------------
3478*f5c631daSSadaf Ebrahimi __ bind(&l_1d50);
3479*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r0, MemOperand(sp, 20));
3480*f5c631daSSadaf Ebrahimi __ blx(r2);
3481*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_18b0);
3482*f5c631daSSadaf Ebrahimi // --------------
3483*f5c631daSSadaf Ebrahimi __ bind(&l_1d56);
3484*f5c631daSSadaf Ebrahimi __ blx(r2);
3485*f5c631daSSadaf Ebrahimi __ b(&l_0e8c);
3486*f5c631daSSadaf Ebrahimi // --------------
3487*f5c631daSSadaf Ebrahimi __ bind(&l_1d5c);
3488*f5c631daSSadaf Ebrahimi __ blx(r2);
3489*f5c631daSSadaf Ebrahimi __ b(&l_0f4e);
3490*f5c631daSSadaf Ebrahimi // --------------
3491*f5c631daSSadaf Ebrahimi __ bind(&l_1d62);
3492*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r0, MemOperand(sp, 20));
3493*f5c631daSSadaf Ebrahimi __ blx(r2);
3494*f5c631daSSadaf Ebrahimi __ b(&l_133e);
3495*f5c631daSSadaf Ebrahimi // --------------
3496*f5c631daSSadaf Ebrahimi __ bind(&l_1d6a);
3497*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r0, MemOperand(sp, 20));
3498*f5c631daSSadaf Ebrahimi __ blx(r2);
3499*f5c631daSSadaf Ebrahimi __ b(&l_1212);
3500*f5c631daSSadaf Ebrahimi // --------------
3501*f5c631daSSadaf Ebrahimi __ bind(&l_1d72);
3502*f5c631daSSadaf Ebrahimi __ blx(r2);
3503*f5c631daSSadaf Ebrahimi __ b(&l_100a);
3504*f5c631daSSadaf Ebrahimi // --------------
3505*f5c631daSSadaf Ebrahimi __ bind(&l_1d78);
3506*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r0, MemOperand(sp, 20));
3507*f5c631daSSadaf Ebrahimi __ blx(r2);
3508*f5c631daSSadaf Ebrahimi __ b(&l_1476);
3509*f5c631daSSadaf Ebrahimi // --------------
3510*f5c631daSSadaf Ebrahimi __ bind(&l_1d80);
3511*f5c631daSSadaf Ebrahimi __ mov(ip, 0U);
3512*f5c631daSSadaf Ebrahimi __ b(&l_07dc);
3513*f5c631daSSadaf Ebrahimi // --------------
3514*f5c631daSSadaf Ebrahimi __ bind(&l_1d88);
3515*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r5);
3516*f5c631daSSadaf Ebrahimi // --------------
3517*f5c631daSSadaf Ebrahimi __ bind(&l_1d8a);
3518*f5c631daSSadaf Ebrahimi __ bl(&l_1d8a);
3519*f5c631daSSadaf Ebrahimi __ b(&l_08a4);
3520*f5c631daSSadaf Ebrahimi // --------------
3521*f5c631daSSadaf Ebrahimi __ bind(&l_1d92);
3522*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r8);
3523*f5c631daSSadaf Ebrahimi __ add(Narrow, r1, sp, 632U);
3524*f5c631daSSadaf Ebrahimi __ blx(r2);
3525*f5c631daSSadaf Ebrahimi __ b(&l_0b00);
3526*f5c631daSSadaf Ebrahimi // --------------
3527*f5c631daSSadaf Ebrahimi __ bind(&l_1d9c);
3528*f5c631daSSadaf Ebrahimi __ add(r3, r8, 44U);
3529*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(sp, 28));
3530*f5c631daSSadaf Ebrahimi __ mov(Narrow, r1, r3);
3531*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 24));
3532*f5c631daSSadaf Ebrahimi __ movs(Narrow, r3, 0U);
3533*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r6);
3534*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp));
3535*f5c631daSSadaf Ebrahimi __ movs(Narrow, r3, 2U);
3536*f5c631daSSadaf Ebrahimi __ bl(&l_00b0);
3537*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r1, MemOperand(sp, 24));
3538*f5c631daSSadaf Ebrahimi __ b(&l_0aec);
3539*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, fp);
3540*f5c631daSSadaf Ebrahimi // --------------
3541*f5c631daSSadaf Ebrahimi __ bind(&l_1dba);
3542*f5c631daSSadaf Ebrahimi __ bl(&l_1dba);
3543*f5c631daSSadaf Ebrahimi // --------------
3544*f5c631daSSadaf Ebrahimi __ bind(&l_1dbe);
3545*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, &l_1f50);
3546*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r5);
3547*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(r5));
3548*f5c631daSSadaf Ebrahimi // --------------
3549*f5c631daSSadaf Ebrahimi __ bind(&l_1dc4);
3550*f5c631daSSadaf Ebrahimi __ bl(&l_1dc4);
3551*f5c631daSSadaf Ebrahimi // --------------
3552*f5c631daSSadaf Ebrahimi __ bind(&l_1dc8);
3553*f5c631daSSadaf Ebrahimi __ bl(&l_1dc8);
3554*f5c631daSSadaf Ebrahimi __ add(r0, sp, 1296U);
3555*f5c631daSSadaf Ebrahimi // --------------
3556*f5c631daSSadaf Ebrahimi __ bind(&l_1dd0);
3557*f5c631daSSadaf Ebrahimi __ bl(&l_1dd0);
3558*f5c631daSSadaf Ebrahimi // --------------
3559*f5c631daSSadaf Ebrahimi __ bind(&l_1dd4);
3560*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, &l_1f50);
3561*f5c631daSSadaf Ebrahimi __ add(Narrow, r0, sp, 276U);
3562*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 276));
3563*f5c631daSSadaf Ebrahimi // --------------
3564*f5c631daSSadaf Ebrahimi __ bind(&l_1dda);
3565*f5c631daSSadaf Ebrahimi __ bl(&l_1dda);
3566*f5c631daSSadaf Ebrahimi // --------------
3567*f5c631daSSadaf Ebrahimi __ bind(&l_1dde);
3568*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r4, MemOperand(sp, 24));
3569*f5c631daSSadaf Ebrahimi __ add(r0, sp, 2332U);
3570*f5c631daSSadaf Ebrahimi __ str(r4, MemOperand(sp, 2304));
3571*f5c631daSSadaf Ebrahimi // --------------
3572*f5c631daSSadaf Ebrahimi __ bind(&l_1de8);
3573*f5c631daSSadaf Ebrahimi __ bl(&l_1de8);
3574*f5c631daSSadaf Ebrahimi __ add(r0, sp, 2164U);
3575*f5c631daSSadaf Ebrahimi __ str(Narrow, r4, MemOperand(r5));
3576*f5c631daSSadaf Ebrahimi // --------------
3577*f5c631daSSadaf Ebrahimi __ bind(&l_1df2);
3578*f5c631daSSadaf Ebrahimi __ bl(&l_1df2);
3579*f5c631daSSadaf Ebrahimi // --------------
3580*f5c631daSSadaf Ebrahimi __ bind(&l_1df6);
3581*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(sp, 24));
3582*f5c631daSSadaf Ebrahimi __ add(Narrow, r0, sp, 652U);
3583*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 624));
3584*f5c631daSSadaf Ebrahimi // --------------
3585*f5c631daSSadaf Ebrahimi __ bind(&l_1dfc);
3586*f5c631daSSadaf Ebrahimi __ bl(&l_1dfc);
3587*f5c631daSSadaf Ebrahimi // --------------
3588*f5c631daSSadaf Ebrahimi __ bind(&l_1e00);
3589*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(sp, 24));
3590*f5c631daSSadaf Ebrahimi __ add(Narrow, r0, sp, 500U);
3591*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 472));
3592*f5c631daSSadaf Ebrahimi }
Generate_28(TestAssembler * assembler)3593*f5c631daSSadaf Ebrahimi void Generate_28(TestAssembler* assembler) {
3594*f5c631daSSadaf Ebrahimi // --------------
3595*f5c631daSSadaf Ebrahimi __ bind(&l_1e06);
3596*f5c631daSSadaf Ebrahimi __ bl(&l_1e06);
3597*f5c631daSSadaf Ebrahimi // --------------
3598*f5c631daSSadaf Ebrahimi __ bind(&l_1e0a);
3599*f5c631daSSadaf Ebrahimi __ bl(&l_1e0a);
3600*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_1dd4);
3601*f5c631daSSadaf Ebrahimi // --------------
3602*f5c631daSSadaf Ebrahimi __ bind(&l_1e10);
3603*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, &l_1f50);
3604*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r5);
3605*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(r5));
3606*f5c631daSSadaf Ebrahimi // --------------
3607*f5c631daSSadaf Ebrahimi __ bind(&l_1e16);
3608*f5c631daSSadaf Ebrahimi __ bl(&l_1e16);
3609*f5c631daSSadaf Ebrahimi // --------------
3610*f5c631daSSadaf Ebrahimi __ bind(&l_1e1a);
3611*f5c631daSSadaf Ebrahimi __ bl(&l_1e1a);
3612*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, fp);
3613*f5c631daSSadaf Ebrahimi // --------------
3614*f5c631daSSadaf Ebrahimi __ bind(&l_1e20);
3615*f5c631daSSadaf Ebrahimi __ bl(&l_1e20);
3616*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_1e10);
3617*f5c631daSSadaf Ebrahimi // --------------
3618*f5c631daSSadaf Ebrahimi __ bind(&l_1e26);
3619*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, &l_1f50);
3620*f5c631daSSadaf Ebrahimi __ add(Narrow, r0, sp, 388U);
3621*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 388));
3622*f5c631daSSadaf Ebrahimi // --------------
3623*f5c631daSSadaf Ebrahimi __ bind(&l_1e2c);
3624*f5c631daSSadaf Ebrahimi __ bl(&l_1e2c);
3625*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_1df6);
3626*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, &l_1f4c);
3627*f5c631daSSadaf Ebrahimi __ add(Narrow, r0, sp, 624U);
3628*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 24));
3629*f5c631daSSadaf Ebrahimi // --------------
3630*f5c631daSSadaf Ebrahimi __ bind(&l_1e38);
3631*f5c631daSSadaf Ebrahimi __ bl(&l_1e38);
3632*f5c631daSSadaf Ebrahimi // --------------
3633*f5c631daSSadaf Ebrahimi __ bind(&l_1e3c);
3634*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, &l_1f50);
3635*f5c631daSSadaf Ebrahimi __ add(Narrow, r0, sp, 164U);
3636*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 164));
3637*f5c631daSSadaf Ebrahimi // --------------
3638*f5c631daSSadaf Ebrahimi __ bind(&l_1e42);
3639*f5c631daSSadaf Ebrahimi __ bl(&l_1e42);
3640*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_1e00);
3641*f5c631daSSadaf Ebrahimi // --------------
3642*f5c631daSSadaf Ebrahimi __ bind(&l_1e48);
3643*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, &l_1f50);
3644*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r5);
3645*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(r5));
3646*f5c631daSSadaf Ebrahimi // --------------
3647*f5c631daSSadaf Ebrahimi __ bind(&l_1e4e);
3648*f5c631daSSadaf Ebrahimi __ bl(&l_1e4e);
3649*f5c631daSSadaf Ebrahimi // --------------
3650*f5c631daSSadaf Ebrahimi __ bind(&l_1e52);
3651*f5c631daSSadaf Ebrahimi __ bl(&l_1e52);
3652*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, &l_1f4c);
3653*f5c631daSSadaf Ebrahimi __ add(Narrow, r0, sp, 660U);
3654*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 24));
3655*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 632));
3656*f5c631daSSadaf Ebrahimi // --------------
3657*f5c631daSSadaf Ebrahimi __ bind(&l_1e5e);
3658*f5c631daSSadaf Ebrahimi __ bl(&l_1e5e);
3659*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_1e3c);
3660*f5c631daSSadaf Ebrahimi // --------------
3661*f5c631daSSadaf Ebrahimi __ bind(&l_1e64);
3662*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, &l_1f50);
3663*f5c631daSSadaf Ebrahimi __ add(Narrow, r0, sp, 220U);
3664*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 220));
3665*f5c631daSSadaf Ebrahimi // --------------
3666*f5c631daSSadaf Ebrahimi __ bind(&l_1e6a);
3667*f5c631daSSadaf Ebrahimi __ bl(&l_1e6a);
3668*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_1dde);
3669*f5c631daSSadaf Ebrahimi // --------------
3670*f5c631daSSadaf Ebrahimi __ bind(&l_1e70);
3671*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, &l_1f50);
3672*f5c631daSSadaf Ebrahimi __ add(Narrow, r0, sp, 332U);
3673*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 332));
3674*f5c631daSSadaf Ebrahimi // --------------
3675*f5c631daSSadaf Ebrahimi __ bind(&l_1e76);
3676*f5c631daSSadaf Ebrahimi __ bl(&l_1e76);
3677*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_1df6);
3678*f5c631daSSadaf Ebrahimi // --------------
3679*f5c631daSSadaf Ebrahimi __ bind(&l_1e7c);
3680*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, &l_1f50);
3681*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r5);
3682*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(r5));
3683*f5c631daSSadaf Ebrahimi // --------------
3684*f5c631daSSadaf Ebrahimi __ bind(&l_1e82);
3685*f5c631daSSadaf Ebrahimi __ bl(&l_1e82);
3686*f5c631daSSadaf Ebrahimi // --------------
3687*f5c631daSSadaf Ebrahimi __ bind(&l_1e86);
3688*f5c631daSSadaf Ebrahimi __ bl(&l_1e86);
3689*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, fp);
3690*f5c631daSSadaf Ebrahimi // --------------
3691*f5c631daSSadaf Ebrahimi __ bind(&l_1e8c);
3692*f5c631daSSadaf Ebrahimi __ bl(&l_1e8c);
3693*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_1e7c);
3694*f5c631daSSadaf Ebrahimi __ add(r0, sp, 1128U);
3695*f5c631daSSadaf Ebrahimi // --------------
3696*f5c631daSSadaf Ebrahimi __ bind(&l_1e96);
3697*f5c631daSSadaf Ebrahimi __ bl(&l_1e96);
3698*f5c631daSSadaf Ebrahimi // --------------
3699*f5c631daSSadaf Ebrahimi __ bind(&l_1e9a);
3700*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, &l_1f50);
3701*f5c631daSSadaf Ebrahimi __ add(Narrow, r0, sp, 248U);
3702*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 248));
3703*f5c631daSSadaf Ebrahimi // --------------
3704*f5c631daSSadaf Ebrahimi __ bind(&l_1ea0);
3705*f5c631daSSadaf Ebrahimi __ bl(&l_1ea0);
3706*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_1dde);
3707*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_1e9a);
3708*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_1e00);
3709*f5c631daSSadaf Ebrahimi // --------------
3710*f5c631daSSadaf Ebrahimi __ bind(&l_1eaa);
3711*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, &l_1f50);
3712*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r5);
3713*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(r5));
3714*f5c631daSSadaf Ebrahimi // --------------
3715*f5c631daSSadaf Ebrahimi __ bind(&l_1eb0);
3716*f5c631daSSadaf Ebrahimi __ bl(&l_1eb0);
3717*f5c631daSSadaf Ebrahimi // --------------
3718*f5c631daSSadaf Ebrahimi __ bind(&l_1eb4);
3719*f5c631daSSadaf Ebrahimi __ bl(&l_1eb4);
3720*f5c631daSSadaf Ebrahimi // --------------
3721*f5c631daSSadaf Ebrahimi __ bind(&l_1eb8);
3722*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, &l_1f50);
3723*f5c631daSSadaf Ebrahimi __ add(Narrow, r0, sp, 360U);
3724*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 360));
3725*f5c631daSSadaf Ebrahimi // --------------
3726*f5c631daSSadaf Ebrahimi __ bind(&l_1ebe);
3727*f5c631daSSadaf Ebrahimi __ bl(&l_1ebe);
3728*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_1df6);
3729*f5c631daSSadaf Ebrahimi __ add(r0, sp, 1800U);
3730*f5c631daSSadaf Ebrahimi // --------------
3731*f5c631daSSadaf Ebrahimi __ bind(&l_1ec8);
3732*f5c631daSSadaf Ebrahimi __ bl(&l_1ec8);
3733*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_1eb8);
3734*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, fp);
3735*f5c631daSSadaf Ebrahimi // --------------
3736*f5c631daSSadaf Ebrahimi __ bind(&l_1ed0);
3737*f5c631daSSadaf Ebrahimi __ bl(&l_1ed0);
3738*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_1e48);
3739*f5c631daSSadaf Ebrahimi // --------------
3740*f5c631daSSadaf Ebrahimi __ bind(&l_1ed6);
3741*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, &l_1f50);
3742*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r5);
3743*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(r5));
3744*f5c631daSSadaf Ebrahimi // --------------
3745*f5c631daSSadaf Ebrahimi __ bind(&l_1edc);
3746*f5c631daSSadaf Ebrahimi __ bl(&l_1edc);
3747*f5c631daSSadaf Ebrahimi // --------------
3748*f5c631daSSadaf Ebrahimi __ bind(&l_1ee0);
3749*f5c631daSSadaf Ebrahimi __ bl(&l_1ee0);
3750*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, fp);
3751*f5c631daSSadaf Ebrahimi // --------------
3752*f5c631daSSadaf Ebrahimi __ bind(&l_1ee6);
3753*f5c631daSSadaf Ebrahimi __ bl(&l_1ee6);
3754*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_1eaa);
3755*f5c631daSSadaf Ebrahimi // --------------
3756*f5c631daSSadaf Ebrahimi __ bind(&l_1eec);
3757*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, &l_1f50);
3758*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r5);
3759*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(r5));
3760*f5c631daSSadaf Ebrahimi // --------------
3761*f5c631daSSadaf Ebrahimi __ bind(&l_1ef2);
3762*f5c631daSSadaf Ebrahimi __ bl(&l_1ef2);
3763*f5c631daSSadaf Ebrahimi // --------------
3764*f5c631daSSadaf Ebrahimi __ bind(&l_1ef6);
3765*f5c631daSSadaf Ebrahimi __ bl(&l_1ef6);
3766*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_1dbe);
3767*f5c631daSSadaf Ebrahimi // --------------
3768*f5c631daSSadaf Ebrahimi __ bind(&l_1efc);
3769*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, &l_1f50);
3770*f5c631daSSadaf Ebrahimi __ add(Narrow, r0, sp, 444U);
3771*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 444));
3772*f5c631daSSadaf Ebrahimi // --------------
3773*f5c631daSSadaf Ebrahimi __ bind(&l_1f02);
3774*f5c631daSSadaf Ebrahimi __ bl(&l_1f02);
3775*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_1e00);
3776*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, fp);
3777*f5c631daSSadaf Ebrahimi // --------------
3778*f5c631daSSadaf Ebrahimi __ bind(&l_1f0a);
3779*f5c631daSSadaf Ebrahimi __ bl(&l_1f0a);
3780*f5c631daSSadaf Ebrahimi }
Generate_29(TestAssembler * assembler)3781*f5c631daSSadaf Ebrahimi void Generate_29(TestAssembler* assembler) {
3782*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_1eec);
3783*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, fp);
3784*f5c631daSSadaf Ebrahimi // --------------
3785*f5c631daSSadaf Ebrahimi __ bind(&l_1f12);
3786*f5c631daSSadaf Ebrahimi __ bl(&l_1f12);
3787*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_1ed6);
3788*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, fp);
3789*f5c631daSSadaf Ebrahimi // --------------
3790*f5c631daSSadaf Ebrahimi __ bind(&l_1f1a);
3791*f5c631daSSadaf Ebrahimi __ bl(&l_1f1a);
3792*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_1efc);
3793*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r5);
3794*f5c631daSSadaf Ebrahimi // --------------
3795*f5c631daSSadaf Ebrahimi __ bind(&l_1f22);
3796*f5c631daSSadaf Ebrahimi __ bl(&l_1f22);
3797*f5c631daSSadaf Ebrahimi // --------------
3798*f5c631daSSadaf Ebrahimi __ bind(&l_1f26);
3799*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, &l_1f50);
3800*f5c631daSSadaf Ebrahimi __ add(Narrow, r0, sp, 416U);
3801*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 416));
3802*f5c631daSSadaf Ebrahimi // --------------
3803*f5c631daSSadaf Ebrahimi __ bind(&l_1f2c);
3804*f5c631daSSadaf Ebrahimi __ bl(&l_1f2c);
3805*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_1df6);
3806*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_1f26);
3807*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, sl);
3808*f5c631daSSadaf Ebrahimi // --------------
3809*f5c631daSSadaf Ebrahimi __ bind(&l_1f36);
3810*f5c631daSSadaf Ebrahimi __ bl(&l_1f36);
3811*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_1e26);
3812*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_1dde);
3813*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_1df6);
3814*f5c631daSSadaf Ebrahimi // --------------
3815*f5c631daSSadaf Ebrahimi __ bind(&l_1f40);
3816*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, &l_1f50);
3817*f5c631daSSadaf Ebrahimi __ add(Narrow, r0, sp, 304U);
3818*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 304));
3819*f5c631daSSadaf Ebrahimi // --------------
3820*f5c631daSSadaf Ebrahimi __ bind(&l_1f46);
3821*f5c631daSSadaf Ebrahimi __ bl(&l_1f46);
3822*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_1dde);
3823*f5c631daSSadaf Ebrahimi // --------------
3824*f5c631daSSadaf Ebrahimi __ bind(&l_1f4c);
3825*f5c631daSSadaf Ebrahimi __ Emit32(0x00000008);
3826*f5c631daSSadaf Ebrahimi // --------------
3827*f5c631daSSadaf Ebrahimi __ bind(&l_1f50);
3828*f5c631daSSadaf Ebrahimi __ Emit32(0x00000008);
3829*f5c631daSSadaf Ebrahimi __ add(Narrow, r0, sp, 960U);
3830*f5c631daSSadaf Ebrahimi // --------------
3831*f5c631daSSadaf Ebrahimi __ bind(&l_1f56);
3832*f5c631daSSadaf Ebrahimi __ bl(&l_1f56);
3833*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_1e64);
3834*f5c631daSSadaf Ebrahimi __ add(Narrow, r0, sp, 792U);
3835*f5c631daSSadaf Ebrahimi // --------------
3836*f5c631daSSadaf Ebrahimi __ bind(&l_1f5e);
3837*f5c631daSSadaf Ebrahimi __ bl(&l_1f5e);
3838*f5c631daSSadaf Ebrahimi // --------------
3839*f5c631daSSadaf Ebrahimi __ bind(&l_1f62);
3840*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, &l_1f84);
3841*f5c631daSSadaf Ebrahimi __ add(Narrow, r0, sp, 192U);
3842*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 192));
3843*f5c631daSSadaf Ebrahimi // --------------
3844*f5c631daSSadaf Ebrahimi __ bind(&l_1f68);
3845*f5c631daSSadaf Ebrahimi __ bl(&l_1f68);
3846*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_1dde);
3847*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_1f62);
3848*f5c631daSSadaf Ebrahimi __ add(r0, sp, 1632U);
3849*f5c631daSSadaf Ebrahimi // --------------
3850*f5c631daSSadaf Ebrahimi __ bind(&l_1f74);
3851*f5c631daSSadaf Ebrahimi __ bl(&l_1f74);
3852*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_1e70);
3853*f5c631daSSadaf Ebrahimi __ add(r0, sp, 1464U);
3854*f5c631daSSadaf Ebrahimi // --------------
3855*f5c631daSSadaf Ebrahimi __ bind(&l_1f7e);
3856*f5c631daSSadaf Ebrahimi __ bl(&l_1f7e);
3857*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_1f40);
3858*f5c631daSSadaf Ebrahimi // --------------
3859*f5c631daSSadaf Ebrahimi __ bind(&l_1f84);
3860*f5c631daSSadaf Ebrahimi __ Emit32(0x00000008);
3861*f5c631daSSadaf Ebrahimi __ bx(lr);
3862*f5c631daSSadaf Ebrahimi __ nop(Narrow);
3863*f5c631daSSadaf Ebrahimi __ movs(Narrow, r0, 1U);
3864*f5c631daSSadaf Ebrahimi __ bx(lr);
3865*f5c631daSSadaf Ebrahimi __ bx(lr);
3866*f5c631daSSadaf Ebrahimi __ nop(Narrow);
3867*f5c631daSSadaf Ebrahimi __ movs(Narrow, r0, 1U);
3868*f5c631daSSadaf Ebrahimi __ bx(lr);
3869*f5c631daSSadaf Ebrahimi __ movs(Narrow, r0, 0U);
3870*f5c631daSSadaf Ebrahimi __ bx(lr);
3871*f5c631daSSadaf Ebrahimi __ movs(Narrow, r0, 0U);
3872*f5c631daSSadaf Ebrahimi __ bx(lr);
3873*f5c631daSSadaf Ebrahimi __ movs(Narrow, r0, 0U);
3874*f5c631daSSadaf Ebrahimi __ bx(lr);
3875*f5c631daSSadaf Ebrahimi __ movs(Narrow, r0, 0U);
3876*f5c631daSSadaf Ebrahimi __ bx(lr);
3877*f5c631daSSadaf Ebrahimi __ movs(Narrow, r0, 0U);
3878*f5c631daSSadaf Ebrahimi __ bx(lr);
3879*f5c631daSSadaf Ebrahimi __ push(Narrow, RegisterList(r4, lr));
3880*f5c631daSSadaf Ebrahimi __ mov(Narrow, r4, r0);
3881*f5c631daSSadaf Ebrahimi // --------------
3882*f5c631daSSadaf Ebrahimi __ bind(&l_1fb0);
3883*f5c631daSSadaf Ebrahimi __ bl(&l_1fb0);
3884*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r4);
3885*f5c631daSSadaf Ebrahimi __ pop(Narrow, RegisterList(r4, pc));
3886*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, &l_1fcc);
3887*f5c631daSSadaf Ebrahimi __ push(Narrow, RegisterList(r4, lr));
3888*f5c631daSSadaf Ebrahimi __ mov(Narrow, r4, r0);
3889*f5c631daSSadaf Ebrahimi __ str(r2, MemOperand(r0, 4, PostIndex));
3890*f5c631daSSadaf Ebrahimi // --------------
3891*f5c631daSSadaf Ebrahimi __ bind(&l_1fc2);
3892*f5c631daSSadaf Ebrahimi __ bl(&l_1fc2);
3893*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r4);
3894*f5c631daSSadaf Ebrahimi __ pop(Narrow, RegisterList(r4, pc));
3895*f5c631daSSadaf Ebrahimi __ nop(Narrow);
3896*f5c631daSSadaf Ebrahimi // --------------
3897*f5c631daSSadaf Ebrahimi __ bind(&l_1fcc);
3898*f5c631daSSadaf Ebrahimi __ Emit32(0x00000008);
3899*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, &l_1fe8);
3900*f5c631daSSadaf Ebrahimi __ push(Narrow, RegisterList(r4, lr));
3901*f5c631daSSadaf Ebrahimi __ mov(Narrow, r4, r0);
3902*f5c631daSSadaf Ebrahimi __ str(r3, MemOperand(r0, 4, PostIndex));
3903*f5c631daSSadaf Ebrahimi // --------------
3904*f5c631daSSadaf Ebrahimi __ bind(&l_1fda);
3905*f5c631daSSadaf Ebrahimi __ bl(&l_1fda);
3906*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r4);
3907*f5c631daSSadaf Ebrahimi // --------------
3908*f5c631daSSadaf Ebrahimi __ bind(&l_1fe0);
3909*f5c631daSSadaf Ebrahimi __ bl(&l_1fe0);
3910*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r4);
3911*f5c631daSSadaf Ebrahimi __ pop(Narrow, RegisterList(r4, pc));
3912*f5c631daSSadaf Ebrahimi // --------------
3913*f5c631daSSadaf Ebrahimi __ bind(&l_1fe8);
3914*f5c631daSSadaf Ebrahimi __ Emit32(0x00000008);
3915*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r0, 8));
3916*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r1, 8));
3917*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r2, r3);
3918*f5c631daSSadaf Ebrahimi __ b(eq, Narrow, &l_1ffc);
3919*f5c631daSSadaf Ebrahimi // --------------
3920*f5c631daSSadaf Ebrahimi __ bind(&l_1ff4);
3921*f5c631daSSadaf Ebrahimi __ ite(lt);
3922*f5c631daSSadaf Ebrahimi __ mov(lt, Narrow, r0, 1U);
3923*f5c631daSSadaf Ebrahimi __ mov(ge, Narrow, r0, 0U);
3924*f5c631daSSadaf Ebrahimi __ bx(lr);
3925*f5c631daSSadaf Ebrahimi // --------------
3926*f5c631daSSadaf Ebrahimi __ bind(&l_1ffc);
3927*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r0));
3928*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r1));
3929*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r2, 4));
3930*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r3, 4));
3931*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r2, r3);
3932*f5c631daSSadaf Ebrahimi }
Generate_30(TestAssembler * assembler)3933*f5c631daSSadaf Ebrahimi void Generate_30(TestAssembler* assembler) {
3934*f5c631daSSadaf Ebrahimi __ b(ne, Narrow, &l_1ff4);
3935*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r0, 12));
3936*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r1, 12));
3937*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r2, r3);
3938*f5c631daSSadaf Ebrahimi __ b(ne, Narrow, &l_1ff4);
3939*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r0, 4));
3940*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r1, 4));
3941*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r2, r3);
3942*f5c631daSSadaf Ebrahimi __ b(ne, Narrow, &l_1ff4);
3943*f5c631daSSadaf Ebrahimi __ movs(Narrow, r0, 0U);
3944*f5c631daSSadaf Ebrahimi __ bx(lr);
3945*f5c631daSSadaf Ebrahimi __ ldrb(Narrow, r3, MemOperand(r0, 17));
3946*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, &l_2044);
3947*f5c631daSSadaf Ebrahimi __ push(Narrow, RegisterList(r4, lr));
3948*f5c631daSSadaf Ebrahimi __ mov(Narrow, r4, r0);
3949*f5c631daSSadaf Ebrahimi __ str(Narrow, r2, MemOperand(r0));
3950*f5c631daSSadaf Ebrahimi __ cbnz(r3, &l_202c);
3951*f5c631daSSadaf Ebrahimi // --------------
3952*f5c631daSSadaf Ebrahimi __ bind(&l_2028);
3953*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r4);
3954*f5c631daSSadaf Ebrahimi __ pop(Narrow, RegisterList(r4, pc));
3955*f5c631daSSadaf Ebrahimi // --------------
3956*f5c631daSSadaf Ebrahimi __ bind(&l_202c);
3957*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r0, MemOperand(r0, 20));
3958*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r0, 0U);
3959*f5c631daSSadaf Ebrahimi __ b(eq, Narrow, &l_2028);
3960*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r4, 24));
3961*f5c631daSSadaf Ebrahimi __ movs(Narrow, r2, 0U);
3962*f5c631daSSadaf Ebrahimi __ strb(Narrow, r2, MemOperand(r4, 17));
3963*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r3, 1U);
3964*f5c631daSSadaf Ebrahimi __ b(ne, Narrow, &l_2028);
3965*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r0));
3966*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r3, 28));
3967*f5c631daSSadaf Ebrahimi __ blx(r3);
3968*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_2028);
3969*f5c631daSSadaf Ebrahimi // --------------
3970*f5c631daSSadaf Ebrahimi __ bind(&l_2044);
3971*f5c631daSSadaf Ebrahimi __ Emit32(0x00000008);
3972*f5c631daSSadaf Ebrahimi __ ldrb(Narrow, r3, MemOperand(r0, 17));
3973*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, &l_2070);
3974*f5c631daSSadaf Ebrahimi __ push(Narrow, RegisterList(r4, lr));
3975*f5c631daSSadaf Ebrahimi __ mov(Narrow, r4, r0);
3976*f5c631daSSadaf Ebrahimi __ str(Narrow, r2, MemOperand(r0));
3977*f5c631daSSadaf Ebrahimi __ cbnz(r3, &l_2058);
3978*f5c631daSSadaf Ebrahimi // --------------
3979*f5c631daSSadaf Ebrahimi __ bind(&l_2054);
3980*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r4);
3981*f5c631daSSadaf Ebrahimi __ pop(Narrow, RegisterList(r4, pc));
3982*f5c631daSSadaf Ebrahimi // --------------
3983*f5c631daSSadaf Ebrahimi __ bind(&l_2058);
3984*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r0, MemOperand(r0, 20));
3985*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r0, 0U);
3986*f5c631daSSadaf Ebrahimi __ b(eq, Narrow, &l_2054);
3987*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r4, 24));
3988*f5c631daSSadaf Ebrahimi __ movs(Narrow, r2, 0U);
3989*f5c631daSSadaf Ebrahimi __ strb(Narrow, r2, MemOperand(r4, 17));
3990*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r3, 1U);
3991*f5c631daSSadaf Ebrahimi __ b(ne, Narrow, &l_2054);
3992*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r0));
3993*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r3, 28));
3994*f5c631daSSadaf Ebrahimi __ blx(r3);
3995*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_2054);
3996*f5c631daSSadaf Ebrahimi // --------------
3997*f5c631daSSadaf Ebrahimi __ bind(&l_2070);
3998*f5c631daSSadaf Ebrahimi __ Emit32(0x00000008);
3999*f5c631daSSadaf Ebrahimi __ ldrb(Narrow, r3, MemOperand(r0, 17));
4000*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, &l_20a4);
4001*f5c631daSSadaf Ebrahimi __ push(Narrow, RegisterList(r4, lr));
4002*f5c631daSSadaf Ebrahimi __ mov(Narrow, r4, r0);
4003*f5c631daSSadaf Ebrahimi __ str(Narrow, r2, MemOperand(r0));
4004*f5c631daSSadaf Ebrahimi __ cbnz(r3, &l_208a);
4005*f5c631daSSadaf Ebrahimi // --------------
4006*f5c631daSSadaf Ebrahimi __ bind(&l_2080);
4007*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r4);
4008*f5c631daSSadaf Ebrahimi // --------------
4009*f5c631daSSadaf Ebrahimi __ bind(&l_2082);
4010*f5c631daSSadaf Ebrahimi __ bl(&l_2082);
4011*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r4);
4012*f5c631daSSadaf Ebrahimi __ pop(Narrow, RegisterList(r4, pc));
4013*f5c631daSSadaf Ebrahimi // --------------
4014*f5c631daSSadaf Ebrahimi __ bind(&l_208a);
4015*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r0, MemOperand(r0, 20));
4016*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r0, 0U);
4017*f5c631daSSadaf Ebrahimi __ b(eq, Narrow, &l_2080);
4018*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r4, 24));
4019*f5c631daSSadaf Ebrahimi __ movs(Narrow, r2, 0U);
4020*f5c631daSSadaf Ebrahimi __ strb(Narrow, r2, MemOperand(r4, 17));
4021*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r3, 1U);
4022*f5c631daSSadaf Ebrahimi __ b(ne, Narrow, &l_2080);
4023*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r0));
4024*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r3, 28));
4025*f5c631daSSadaf Ebrahimi __ blx(r3);
4026*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_2080);
4027*f5c631daSSadaf Ebrahimi __ nop(Narrow);
4028*f5c631daSSadaf Ebrahimi // --------------
4029*f5c631daSSadaf Ebrahimi __ bind(&l_20a4);
4030*f5c631daSSadaf Ebrahimi __ Emit32(0x00000008);
4031*f5c631daSSadaf Ebrahimi __ ldrb(Narrow, r3, MemOperand(r0, 17));
4032*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, &l_20d8);
4033*f5c631daSSadaf Ebrahimi __ push(Narrow, RegisterList(r4, lr));
4034*f5c631daSSadaf Ebrahimi __ mov(Narrow, r4, r0);
4035*f5c631daSSadaf Ebrahimi __ str(Narrow, r2, MemOperand(r0));
4036*f5c631daSSadaf Ebrahimi __ cbnz(r3, &l_20be);
4037*f5c631daSSadaf Ebrahimi // --------------
4038*f5c631daSSadaf Ebrahimi __ bind(&l_20b4);
4039*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r4);
4040*f5c631daSSadaf Ebrahimi // --------------
4041*f5c631daSSadaf Ebrahimi __ bind(&l_20b6);
4042*f5c631daSSadaf Ebrahimi __ bl(&l_20b6);
4043*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r4);
4044*f5c631daSSadaf Ebrahimi __ pop(Narrow, RegisterList(r4, pc));
4045*f5c631daSSadaf Ebrahimi // --------------
4046*f5c631daSSadaf Ebrahimi __ bind(&l_20be);
4047*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r0, MemOperand(r0, 20));
4048*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r0, 0U);
4049*f5c631daSSadaf Ebrahimi __ b(eq, Narrow, &l_20b4);
4050*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r4, 24));
4051*f5c631daSSadaf Ebrahimi __ movs(Narrow, r2, 0U);
4052*f5c631daSSadaf Ebrahimi __ strb(Narrow, r2, MemOperand(r4, 17));
4053*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r3, 1U);
4054*f5c631daSSadaf Ebrahimi __ b(ne, Narrow, &l_20b4);
4055*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r0));
4056*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r3, 28));
4057*f5c631daSSadaf Ebrahimi __ blx(r3);
4058*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_20b4);
4059*f5c631daSSadaf Ebrahimi __ nop(Narrow);
4060*f5c631daSSadaf Ebrahimi }
Generate_31(TestAssembler * assembler)4061*f5c631daSSadaf Ebrahimi void Generate_31(TestAssembler* assembler) {
4062*f5c631daSSadaf Ebrahimi // --------------
4063*f5c631daSSadaf Ebrahimi __ bind(&l_20d8);
4064*f5c631daSSadaf Ebrahimi __ Emit32(0x00000008);
4065*f5c631daSSadaf Ebrahimi // --------------
4066*f5c631daSSadaf Ebrahimi __ bind(&l_20dc);
4067*f5c631daSSadaf Ebrahimi __ bx(lr);
4068*f5c631daSSadaf Ebrahimi __ nop(Narrow);
4069*f5c631daSSadaf Ebrahimi __ sub(r0, r0, 44U);
4070*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_20dc);
4071*f5c631daSSadaf Ebrahimi __ nop(Narrow);
4072*f5c631daSSadaf Ebrahimi __ push(Narrow, RegisterList(r3, r4, r5, lr));
4073*f5c631daSSadaf Ebrahimi __ mov(Narrow, r5, r0);
4074*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r4, MemOperand(r0, 116));
4075*f5c631daSSadaf Ebrahimi __ cbz(r4, &l_20fe);
4076*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r0, MemOperand(r4));
4077*f5c631daSSadaf Ebrahimi __ cbz(r0, &l_20f8);
4078*f5c631daSSadaf Ebrahimi // --------------
4079*f5c631daSSadaf Ebrahimi __ bind(&l_20f4);
4080*f5c631daSSadaf Ebrahimi __ bl(&l_20f4);
4081*f5c631daSSadaf Ebrahimi // --------------
4082*f5c631daSSadaf Ebrahimi __ bind(&l_20f8);
4083*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r4);
4084*f5c631daSSadaf Ebrahimi // --------------
4085*f5c631daSSadaf Ebrahimi __ bind(&l_20fa);
4086*f5c631daSSadaf Ebrahimi __ bl(&l_20fa);
4087*f5c631daSSadaf Ebrahimi // --------------
4088*f5c631daSSadaf Ebrahimi __ bind(&l_20fe);
4089*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r5);
4090*f5c631daSSadaf Ebrahimi __ pop(Narrow, RegisterList(r3, r4, r5, pc));
4091*f5c631daSSadaf Ebrahimi __ nop(Narrow);
4092*f5c631daSSadaf Ebrahimi __ push(RegisterList(0x4ff0));
4093*f5c631daSSadaf Ebrahimi __ sub(Narrow, sp, sp, 12U);
4094*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r6, MemOperand(r0, 36));
4095*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r4, MemOperand(sp, 48));
4096*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r6, r1);
4097*f5c631daSSadaf Ebrahimi __ b(eq, &l_22de);
4098*f5c631daSSadaf Ebrahimi __ adds(Narrow, r5, r1, r2);
4099*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r6, r5);
4100*f5c631daSSadaf Ebrahimi __ b(lt, &l_22de);
4101*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r3, 0U);
4102*f5c631daSSadaf Ebrahimi __ b(eq, &l_2304);
4103*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r7, MemOperand(r0));
4104*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r6, MemOperand(r0, 4));
4105*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r7, r6);
4106*f5c631daSSadaf Ebrahimi __ b(eq, &l_2304);
4107*f5c631daSSadaf Ebrahimi // --------------
4108*f5c631daSSadaf Ebrahimi __ bind(&l_212c);
4109*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r1, MemOperand(r7));
4110*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r4, r1);
4111*f5c631daSSadaf Ebrahimi __ b(eq, &l_22e6);
4112*f5c631daSSadaf Ebrahimi __ adds(Narrow, r7, r7, 24U);
4113*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r6, r7);
4114*f5c631daSSadaf Ebrahimi __ b(ne, Narrow, &l_212c);
4115*f5c631daSSadaf Ebrahimi __ movs(Narrow, r7, 0U);
4116*f5c631daSSadaf Ebrahimi // --------------
4117*f5c631daSSadaf Ebrahimi __ bind(&l_213c);
4118*f5c631daSSadaf Ebrahimi __ mov(Narrow, r9, r3);
4119*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r4));
4120*f5c631daSSadaf Ebrahimi __ mov(Narrow, fp, r0);
4121*f5c631daSSadaf Ebrahimi __ str(Narrow, r2, MemOperand(sp, 4));
4122*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r4);
4123*f5c631daSSadaf Ebrahimi __ ldr(sl, MemOperand(r4, 8));
4124*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r3, 32));
4125*f5c631daSSadaf Ebrahimi __ blx(r3);
4126*f5c631daSSadaf Ebrahimi __ cbz(r0, &l_2158);
4127*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r4));
4128*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r4);
4129*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r3, 36));
4130*f5c631daSSadaf Ebrahimi __ blx(r3);
4131*f5c631daSSadaf Ebrahimi // --------------
4132*f5c631daSSadaf Ebrahimi __ bind(&l_2158);
4133*f5c631daSSadaf Ebrahimi __ ldr(r3, MemOperand(r9, 12));
4134*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r4);
4135*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r4));
4136*f5c631daSSadaf Ebrahimi __ ldr(r1, MemOperand(r9, 16));
4137*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r2, 32));
4138*f5c631daSSadaf Ebrahimi __ bic(r8, r3, Operand(r3, ASR, 31));
4139*f5c631daSSadaf Ebrahimi __ str(Narrow, r1, MemOperand(sp));
4140*f5c631daSSadaf Ebrahimi __ blx(r2);
4141*f5c631daSSadaf Ebrahimi __ cbz(r0, &l_2178);
4142*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r4));
4143*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r4);
4144*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r3, 36));
4145*f5c631daSSadaf Ebrahimi __ blx(r3);
4146*f5c631daSSadaf Ebrahimi // --------------
4147*f5c631daSSadaf Ebrahimi __ bind(&l_2178);
4148*f5c631daSSadaf Ebrahimi __ ldr(r3, MemOperand(r9, 8));
4149*f5c631daSSadaf Ebrahimi __ cmp(Narrow, sl, r3);
4150*f5c631daSSadaf Ebrahimi __ it(lt);
4151*f5c631daSSadaf Ebrahimi __ mov(lt, Narrow, sl, r3);
4152*f5c631daSSadaf Ebrahimi __ cbz(r7, &l_21ae);
4153*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r7, 4));
4154*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r4);
4155*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r7, 8));
4156*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r1, MemOperand(r4));
4157*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r8, r2);
4158*f5c631daSSadaf Ebrahimi __ it(lt);
4159*f5c631daSSadaf Ebrahimi __ mov(lt, Narrow, r8, r2);
4160*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(sp));
4161*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r1, MemOperand(r1, 32));
4162*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r2, r3);
4163*f5c631daSSadaf Ebrahimi __ it(ge);
4164*f5c631daSSadaf Ebrahimi __ mov(ge, Narrow, r2, r3);
4165*f5c631daSSadaf Ebrahimi __ str(Narrow, r2, MemOperand(sp));
4166*f5c631daSSadaf Ebrahimi __ blx(r1);
4167*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r0, 0U);
4168*f5c631daSSadaf Ebrahimi __ b(ne, &l_230c);
4169*f5c631daSSadaf Ebrahimi // --------------
4170*f5c631daSSadaf Ebrahimi __ bind(&l_21a6);
4171*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r7, 12));
4172*f5c631daSSadaf Ebrahimi __ cmp(Narrow, sl, r3);
4173*f5c631daSSadaf Ebrahimi __ it(lt);
4174*f5c631daSSadaf Ebrahimi __ mov(lt, Narrow, sl, r3);
4175*f5c631daSSadaf Ebrahimi // --------------
4176*f5c631daSSadaf Ebrahimi __ bind(&l_21ae);
4177*f5c631daSSadaf Ebrahimi __ ldr(r1, MemOperand(fp, 4));
4178*f5c631daSSadaf Ebrahimi __ rsb(lr, sl, 0U);
4179*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(sp));
4180*f5c631daSSadaf Ebrahimi __ ldr(r7, MemOperand(r1, -12));
4181*f5c631daSSadaf Ebrahimi __ and_(r2, lr, r3);
4182*f5c631daSSadaf Ebrahimi __ ldr(r3, MemOperand(r1, -24));
4183*f5c631daSSadaf Ebrahimi __ ldr(r0, MemOperand(r1, -16));
4184*f5c631daSSadaf Ebrahimi __ ldr(ip, MemOperand(r3, 4));
4185*f5c631daSSadaf Ebrahimi __ rsbs(Narrow, r3, r7, 0U);
4186*f5c631daSSadaf Ebrahimi }
Generate_32(TestAssembler * assembler)4187*f5c631daSSadaf Ebrahimi void Generate_32(TestAssembler* assembler) {
4188*f5c631daSSadaf Ebrahimi __ ands(Narrow, r3, r3, r0);
4189*f5c631daSSadaf Ebrahimi __ add(Narrow, r3, r3, ip);
4190*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r3, r2);
4191*f5c631daSSadaf Ebrahimi __ b(le, &l_2304);
4192*f5c631daSSadaf Ebrahimi __ ldr(r3, MemOperand(fp, 40));
4193*f5c631daSSadaf Ebrahimi __ mov(Narrow, r6, r3);
4194*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(sp, 4));
4195*f5c631daSSadaf Ebrahimi __ add(Narrow, r3, r3, r5);
4196*f5c631daSSadaf Ebrahimi __ mov(Narrow, r9, r3);
4197*f5c631daSSadaf Ebrahimi __ mov(Narrow, r3, r6);
4198*f5c631daSSadaf Ebrahimi __ add(Narrow, r3, r3, r9);
4199*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r3, r2);
4200*f5c631daSSadaf Ebrahimi __ b(le, &l_2304);
4201*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(sp));
4202*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r0, r3);
4203*f5c631daSSadaf Ebrahimi __ b(eq, &l_233a);
4204*f5c631daSSadaf Ebrahimi // --------------
4205*f5c631daSSadaf Ebrahimi __ bind(&l_21f6);
4206*f5c631daSSadaf Ebrahimi __ ite(lt);
4207*f5c631daSSadaf Ebrahimi __ mov(lt, Narrow, r3, 1U);
4208*f5c631daSSadaf Ebrahimi __ mov(ge, Narrow, r3, 0U);
4209*f5c631daSSadaf Ebrahimi // --------------
4210*f5c631daSSadaf Ebrahimi __ bind(&l_21fc);
4211*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r3, 0U);
4212*f5c631daSSadaf Ebrahimi __ b(eq, &l_2334);
4213*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r4, 4));
4214*f5c631daSSadaf Ebrahimi __ mov(r2, 65535U);
4215*f5c631daSSadaf Ebrahimi __ movt(r2, 32767U);
4216*f5c631daSSadaf Ebrahimi __ subs(Narrow, r2, r2, r3);
4217*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(sp));
4218*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r3, r2);
4219*f5c631daSSadaf Ebrahimi __ ite(le);
4220*f5c631daSSadaf Ebrahimi __ and_(le, r2, lr, r3);
4221*f5c631daSSadaf Ebrahimi __ and_(gt, r2, lr, r2);
4222*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r2, r8);
4223*f5c631daSSadaf Ebrahimi __ b(lt, Narrow, &l_22de);
4224*f5c631daSSadaf Ebrahimi // --------------
4225*f5c631daSSadaf Ebrahimi __ bind(&l_2220);
4226*f5c631daSSadaf Ebrahimi __ ldr(r0, MemOperand(fp));
4227*f5c631daSSadaf Ebrahimi __ mov(r3, 43691U);
4228*f5c631daSSadaf Ebrahimi __ movt(r3, 43690U);
4229*f5c631daSSadaf Ebrahimi __ subs(Narrow, r1, r1, r0);
4230*f5c631daSSadaf Ebrahimi __ asrs(Narrow, r1, r1, 3U);
4231*f5c631daSSadaf Ebrahimi __ mul(r1, r3, r1);
4232*f5c631daSSadaf Ebrahimi __ subs(Narrow, r3, r1, 1U);
4233*f5c631daSSadaf Ebrahimi __ b(mi, Narrow, &l_22c8);
4234*f5c631daSSadaf Ebrahimi __ lsls(Narrow, r7, r3, 5U);
4235*f5c631daSSadaf Ebrahimi __ sub(ip, r0, 112U);
4236*f5c631daSSadaf Ebrahimi __ movs(Narrow, r1, 1U);
4237*f5c631daSSadaf Ebrahimi __ sub(r3, r7, Operand(r3, LSL, 3));
4238*f5c631daSSadaf Ebrahimi __ subs(Narrow, r3, r3, 88U);
4239*f5c631daSSadaf Ebrahimi __ add(Narrow, r3, r3, r0);
4240*f5c631daSSadaf Ebrahimi // --------------
4241*f5c631daSSadaf Ebrahimi __ bind(&l_2248);
4242*f5c631daSSadaf Ebrahimi __ cbz(r1, &l_2282);
4243*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r0, MemOperand(r3, 96));
4244*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r6, MemOperand(sp));
4245*f5c631daSSadaf Ebrahimi __ pld(MemOperand(r3));
4246*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r0, r6);
4247*f5c631daSSadaf Ebrahimi __ b(eq, Narrow, &l_2316);
4248*f5c631daSSadaf Ebrahimi // --------------
4249*f5c631daSSadaf Ebrahimi __ bind(&l_2256);
4250*f5c631daSSadaf Ebrahimi __ ite(lt);
4251*f5c631daSSadaf Ebrahimi __ mov(lt, Narrow, r0, 1U);
4252*f5c631daSSadaf Ebrahimi __ mov(ge, Narrow, r0, 0U);
4253*f5c631daSSadaf Ebrahimi // --------------
4254*f5c631daSSadaf Ebrahimi __ bind(&l_225c);
4255*f5c631daSSadaf Ebrahimi __ cbz(r0, &l_2282);
4256*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r1, MemOperand(r4, 4));
4257*f5c631daSSadaf Ebrahimi __ subs(Narrow, r2, r2, r1);
4258*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r1, MemOperand(sp));
4259*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r2, r1);
4260*f5c631daSSadaf Ebrahimi __ ite(le);
4261*f5c631daSSadaf Ebrahimi __ and_(le, r2, lr, r2);
4262*f5c631daSSadaf Ebrahimi __ and_(gt, r2, lr, r1);
4263*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r5, r2);
4264*f5c631daSSadaf Ebrahimi __ ite(le);
4265*f5c631daSSadaf Ebrahimi __ mov(le, Narrow, r1, 0U);
4266*f5c631daSSadaf Ebrahimi __ mov(gt, Narrow, r1, 1U);
4267*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r2, r8);
4268*f5c631daSSadaf Ebrahimi __ it(lt);
4269*f5c631daSSadaf Ebrahimi __ orr(lt, r1, r1, 0x1);
4270*f5c631daSSadaf Ebrahimi __ cbnz(r1, &l_22de);
4271*f5c631daSSadaf Ebrahimi // --------------
4272*f5c631daSSadaf Ebrahimi __ bind(&l_2282);
4273*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r0, MemOperand(r3, 88));
4274*f5c631daSSadaf Ebrahimi // --------------
4275*f5c631daSSadaf Ebrahimi __ bind(&l_2284);
4276*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r4, r0);
4277*f5c631daSSadaf Ebrahimi __ b(eq, Narrow, &l_22a8);
4278*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r0, MemOperand(r0, 4));
4279*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r7, MemOperand(r3, 100));
4280*f5c631daSSadaf Ebrahimi __ subs(Narrow, r2, r2, r0);
4281*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r0, MemOperand(r3, 92));
4282*f5c631daSSadaf Ebrahimi __ rsbs(Narrow, r7, r7, 0U);
4283*f5c631daSSadaf Ebrahimi __ mov(Narrow, r6, r0);
4284*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r0, MemOperand(r3, 96));
4285*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r2, r0);
4286*f5c631daSSadaf Ebrahimi __ ite(le);
4287*f5c631daSSadaf Ebrahimi __ and_(le, Narrow, r2, r2, r7);
4288*f5c631daSSadaf Ebrahimi __ and_(gt, r2, r7, r0);
4289*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r5, r2);
4290*f5c631daSSadaf Ebrahimi __ it(le);
4291*f5c631daSSadaf Ebrahimi __ cmp(le, Narrow, r6, r2);
4292*f5c631daSSadaf Ebrahimi __ b(gt, Narrow, &l_22de);
4293*f5c631daSSadaf Ebrahimi // --------------
4294*f5c631daSSadaf Ebrahimi __ bind(&l_22a8);
4295*f5c631daSSadaf Ebrahimi __ subs(Narrow, r3, r3, 24U);
4296*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r3, ip);
4297*f5c631daSSadaf Ebrahimi __ b(ne, Narrow, &l_2248);
4298*f5c631daSSadaf Ebrahimi __ cbnz(r1, &l_22c8);
4299*f5c631daSSadaf Ebrahimi // --------------
4300*f5c631daSSadaf Ebrahimi __ bind(&l_22b0);
4301*f5c631daSSadaf Ebrahimi __ ldr(r3, MemOperand(fp, 24));
4302*f5c631daSSadaf Ebrahimi __ ldr(r0, MemOperand(fp, 28));
4303*f5c631daSSadaf Ebrahimi __ subs(Narrow, r2, r2, r3);
4304*f5c631daSSadaf Ebrahimi __ rsbs(Narrow, r0, r0, 0U);
4305*f5c631daSSadaf Ebrahimi __ ands(Narrow, r2, r2, r0);
4306*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r5, r2);
4307*f5c631daSSadaf Ebrahimi __ ite(le);
4308*f5c631daSSadaf Ebrahimi }
Generate_33(TestAssembler * assembler)4309*f5c631daSSadaf Ebrahimi void Generate_33(TestAssembler* assembler) {
4310*f5c631daSSadaf Ebrahimi __ mov(le, Narrow, r0, 0U);
4311*f5c631daSSadaf Ebrahimi __ mov(gt, Narrow, r0, 1U);
4312*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_22e0);
4313*f5c631daSSadaf Ebrahimi // --------------
4314*f5c631daSSadaf Ebrahimi __ bind(&l_22c8);
4315*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r4, 4));
4316*f5c631daSSadaf Ebrahimi __ subs(Narrow, r2, r2, r3);
4317*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(sp));
4318*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r2, r3);
4319*f5c631daSSadaf Ebrahimi __ ite(le);
4320*f5c631daSSadaf Ebrahimi __ and_(le, r2, lr, r2);
4321*f5c631daSSadaf Ebrahimi __ and_(gt, r2, lr, r3);
4322*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r2, r8);
4323*f5c631daSSadaf Ebrahimi __ b(ge, Narrow, &l_22b0);
4324*f5c631daSSadaf Ebrahimi // --------------
4325*f5c631daSSadaf Ebrahimi __ bind(&l_22de);
4326*f5c631daSSadaf Ebrahimi __ movs(Narrow, r0, 1U);
4327*f5c631daSSadaf Ebrahimi // --------------
4328*f5c631daSSadaf Ebrahimi __ bind(&l_22e0);
4329*f5c631daSSadaf Ebrahimi __ add(Narrow, sp, sp, 12U);
4330*f5c631daSSadaf Ebrahimi __ pop(RegisterList(0x8ff0));
4331*f5c631daSSadaf Ebrahimi // --------------
4332*f5c631daSSadaf Ebrahimi __ bind(&l_22e6);
4333*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r6, MemOperand(r3, 12));
4334*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r1, MemOperand(r7, 4));
4335*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r6, r1);
4336*f5c631daSSadaf Ebrahimi __ b(gt, &l_213c);
4337*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r6, MemOperand(r3, 16));
4338*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r1, MemOperand(r7, 8));
4339*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r6, r1);
4340*f5c631daSSadaf Ebrahimi __ b(lt, &l_213c);
4341*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r6, MemOperand(r3, 8));
4342*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r1, MemOperand(r7, 12));
4343*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r6, r1);
4344*f5c631daSSadaf Ebrahimi __ b(gt, &l_213c);
4345*f5c631daSSadaf Ebrahimi // --------------
4346*f5c631daSSadaf Ebrahimi __ bind(&l_2304);
4347*f5c631daSSadaf Ebrahimi __ movs(Narrow, r0, 0U);
4348*f5c631daSSadaf Ebrahimi __ add(Narrow, sp, sp, 12U);
4349*f5c631daSSadaf Ebrahimi __ pop(RegisterList(0x8ff0));
4350*f5c631daSSadaf Ebrahimi // --------------
4351*f5c631daSSadaf Ebrahimi __ bind(&l_230c);
4352*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r4));
4353*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r4);
4354*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r3, 36));
4355*f5c631daSSadaf Ebrahimi __ blx(r3);
4356*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_21a6);
4357*f5c631daSSadaf Ebrahimi // --------------
4358*f5c631daSSadaf Ebrahimi __ bind(&l_2316);
4359*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r0, MemOperand(r3, 88));
4360*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r7, MemOperand(r4, 4));
4361*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r6, MemOperand(r0, 4));
4362*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r6, r7);
4363*f5c631daSSadaf Ebrahimi __ b(ne, Narrow, &l_2256);
4364*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r7, MemOperand(r3, 100));
4365*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r7, sl);
4366*f5c631daSSadaf Ebrahimi __ b(ne, Narrow, &l_2256);
4367*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r7, MemOperand(r3, 92));
4368*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r8, r7);
4369*f5c631daSSadaf Ebrahimi __ b(eq, Narrow, &l_2284);
4370*f5c631daSSadaf Ebrahimi __ ite(gt);
4371*f5c631daSSadaf Ebrahimi __ mov(gt, Narrow, r0, 1U);
4372*f5c631daSSadaf Ebrahimi __ mov(le, Narrow, r0, 0U);
4373*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_225c);
4374*f5c631daSSadaf Ebrahimi // --------------
4375*f5c631daSSadaf Ebrahimi __ bind(&l_2334);
4376*f5c631daSSadaf Ebrahimi __ mvn(r2, 2147483648U);
4377*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_2220);
4378*f5c631daSSadaf Ebrahimi // --------------
4379*f5c631daSSadaf Ebrahimi __ bind(&l_233a);
4380*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r4, 4));
4381*f5c631daSSadaf Ebrahimi __ cmp(Narrow, ip, r3);
4382*f5c631daSSadaf Ebrahimi __ b(ne, &l_21f6);
4383*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r7, sl);
4384*f5c631daSSadaf Ebrahimi __ b(ne, &l_21f6);
4385*f5c631daSSadaf Ebrahimi __ ldr(r3, MemOperand(r1, -20));
4386*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r8, r3);
4387*f5c631daSSadaf Ebrahimi __ b(eq, Narrow, &l_2334);
4388*f5c631daSSadaf Ebrahimi __ ite(gt);
4389*f5c631daSSadaf Ebrahimi __ mov(gt, Narrow, r3, 1U);
4390*f5c631daSSadaf Ebrahimi __ mov(le, Narrow, r3, 0U);
4391*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_21fc);
4392*f5c631daSSadaf Ebrahimi __ push(RegisterList(0x43f0));
4393*f5c631daSSadaf Ebrahimi __ mov(Narrow, r5, r0);
4394*f5c631daSSadaf Ebrahimi __ mov(Narrow, r6, r1);
4395*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r0, MemOperand(r0, 4));
4396*f5c631daSSadaf Ebrahimi __ sub(Narrow, sp, sp, 12U);
4397*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r1, MemOperand(r5, 8));
4398*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r0, r1);
4399*f5c631daSSadaf Ebrahimi __ b(eq, Narrow, &l_2394);
4400*f5c631daSSadaf Ebrahimi __ cbz(r0, &l_2374);
4401*f5c631daSSadaf Ebrahimi __ ldr(r1, MemOperand(r0, -4));
4402*f5c631daSSadaf Ebrahimi __ str(Narrow, r1, MemOperand(r0));
4403*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r0, MemOperand(r5, 4));
4404*f5c631daSSadaf Ebrahimi // --------------
4405*f5c631daSSadaf Ebrahimi __ bind(&l_2374);
4406*f5c631daSSadaf Ebrahimi __ subs(Narrow, r4, r0, 4U);
4407*f5c631daSSadaf Ebrahimi __ adds(Narrow, r1, r0, 4U);
4408*f5c631daSSadaf Ebrahimi __ subs(Narrow, r4, r4, r6);
4409*f5c631daSSadaf Ebrahimi __ str(Narrow, r1, MemOperand(r5, 4));
4410*f5c631daSSadaf Ebrahimi __ lsrs(Narrow, r3, r4, 2U);
4411*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r5, MemOperand(r2));
4412*f5c631daSSadaf Ebrahimi __ b(eq, Narrow, &l_238c);
4413*f5c631daSSadaf Ebrahimi __ subs(Narrow, r0, r0, r4);
4414*f5c631daSSadaf Ebrahimi __ mov(Narrow, r2, r4);
4415*f5c631daSSadaf Ebrahimi __ mov(Narrow, r1, r6);
4416*f5c631daSSadaf Ebrahimi // --------------
4417*f5c631daSSadaf Ebrahimi __ bind(&l_2388);
4418*f5c631daSSadaf Ebrahimi __ bl(&l_2388);
4419*f5c631daSSadaf Ebrahimi // --------------
4420*f5c631daSSadaf Ebrahimi __ bind(&l_238c);
4421*f5c631daSSadaf Ebrahimi __ str(Narrow, r5, MemOperand(r6));
4422*f5c631daSSadaf Ebrahimi // --------------
4423*f5c631daSSadaf Ebrahimi __ bind(&l_238e);
4424*f5c631daSSadaf Ebrahimi __ add(Narrow, sp, sp, 12U);
4425*f5c631daSSadaf Ebrahimi __ pop(RegisterList(0x83f0));
4426*f5c631daSSadaf Ebrahimi // --------------
4427*f5c631daSSadaf Ebrahimi __ bind(&l_2394);
4428*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r1, MemOperand(r5));
4429*f5c631daSSadaf Ebrahimi __ subs(Narrow, r3, r0, r1);
4430*f5c631daSSadaf Ebrahimi __ asrs(Narrow, r3, r3, 2U);
4431*f5c631daSSadaf Ebrahimi __ b(eq, Narrow, &l_23ee);
4432*f5c631daSSadaf Ebrahimi __ lsls(Narrow, r0, r3, 1U);
4433*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r3, r0);
4434*f5c631daSSadaf Ebrahimi __ b(ls, Narrow, &l_240a);
4435*f5c631daSSadaf Ebrahimi // --------------
4436*f5c631daSSadaf Ebrahimi __ bind(&l_23a2);
4437*f5c631daSSadaf Ebrahimi __ subs(Narrow, r7, r6, r1);
4438*f5c631daSSadaf Ebrahimi __ mvn(r4, 3U);
4439*f5c631daSSadaf Ebrahimi // --------------
4440*f5c631daSSadaf Ebrahimi __ bind(&l_23a8);
4441*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r4);
4442*f5c631daSSadaf Ebrahimi }
Generate_34(TestAssembler * assembler)4443*f5c631daSSadaf Ebrahimi void Generate_34(TestAssembler* assembler) {
4444*f5c631daSSadaf Ebrahimi __ str(Narrow, r2, MemOperand(sp, 4));
4445*f5c631daSSadaf Ebrahimi // --------------
4446*f5c631daSSadaf Ebrahimi __ bind(&l_23ac);
4447*f5c631daSSadaf Ebrahimi __ bl(&l_23ac);
4448*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(sp, 4));
4449*f5c631daSSadaf Ebrahimi __ mov(Narrow, r9, r0);
4450*f5c631daSSadaf Ebrahimi // --------------
4451*f5c631daSSadaf Ebrahimi __ bind(&l_23b4);
4452*f5c631daSSadaf Ebrahimi __ cmn(r9, r7);
4453*f5c631daSSadaf Ebrahimi __ itt(ne);
4454*f5c631daSSadaf Ebrahimi __ ldr(ne, Narrow, r3, MemOperand(r2));
4455*f5c631daSSadaf Ebrahimi __ str(ne, r3, MemOperand(r9, r7));
4456*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r1, MemOperand(r5));
4457*f5c631daSSadaf Ebrahimi __ subs(Narrow, r7, r6, r1);
4458*f5c631daSSadaf Ebrahimi __ lsrs(Narrow, r3, r7, 2U);
4459*f5c631daSSadaf Ebrahimi __ b(ne, Narrow, &l_2400);
4460*f5c631daSSadaf Ebrahimi // --------------
4461*f5c631daSSadaf Ebrahimi __ bind(&l_23c8);
4462*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r5, 4));
4463*f5c631daSSadaf Ebrahimi __ adds(r7, 4U);
4464*f5c631daSSadaf Ebrahimi __ add(Narrow, r7, r7, r9);
4465*f5c631daSSadaf Ebrahimi __ rsb(r8, r6, r3);
4466*f5c631daSSadaf Ebrahimi __ lsrs(r3, r8, 2U);
4467*f5c631daSSadaf Ebrahimi __ b(ne, Narrow, &l_23f4);
4468*f5c631daSSadaf Ebrahimi // --------------
4469*f5c631daSSadaf Ebrahimi __ bind(&l_23d8);
4470*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r0, MemOperand(r5));
4471*f5c631daSSadaf Ebrahimi __ add(Narrow, r7, r7, r8);
4472*f5c631daSSadaf Ebrahimi __ cbz(r0, &l_23e2);
4473*f5c631daSSadaf Ebrahimi // --------------
4474*f5c631daSSadaf Ebrahimi __ bind(&l_23de);
4475*f5c631daSSadaf Ebrahimi __ bl(&l_23de);
4476*f5c631daSSadaf Ebrahimi // --------------
4477*f5c631daSSadaf Ebrahimi __ bind(&l_23e2);
4478*f5c631daSSadaf Ebrahimi __ add(Narrow, r4, r4, r9);
4479*f5c631daSSadaf Ebrahimi __ str(r9, MemOperand(r5));
4480*f5c631daSSadaf Ebrahimi __ str(Narrow, r4, MemOperand(r5, 8));
4481*f5c631daSSadaf Ebrahimi __ str(Narrow, r7, MemOperand(r5, 4));
4482*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_238e);
4483*f5c631daSSadaf Ebrahimi // --------------
4484*f5c631daSSadaf Ebrahimi __ bind(&l_23ee);
4485*f5c631daSSadaf Ebrahimi __ subs(Narrow, r7, r6, r1);
4486*f5c631daSSadaf Ebrahimi __ movs(Narrow, r4, 4U);
4487*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_23a8);
4488*f5c631daSSadaf Ebrahimi // --------------
4489*f5c631daSSadaf Ebrahimi __ bind(&l_23f4);
4490*f5c631daSSadaf Ebrahimi __ mov(Narrow, r1, r6);
4491*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r7);
4492*f5c631daSSadaf Ebrahimi __ mov(Narrow, r2, r8);
4493*f5c631daSSadaf Ebrahimi // --------------
4494*f5c631daSSadaf Ebrahimi __ bind(&l_23fa);
4495*f5c631daSSadaf Ebrahimi __ bl(&l_23fa);
4496*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_23d8);
4497*f5c631daSSadaf Ebrahimi // --------------
4498*f5c631daSSadaf Ebrahimi __ bind(&l_2400);
4499*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r9);
4500*f5c631daSSadaf Ebrahimi __ mov(Narrow, r2, r7);
4501*f5c631daSSadaf Ebrahimi // --------------
4502*f5c631daSSadaf Ebrahimi __ bind(&l_2404);
4503*f5c631daSSadaf Ebrahimi __ bl(&l_2404);
4504*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_23c8);
4505*f5c631daSSadaf Ebrahimi // --------------
4506*f5c631daSSadaf Ebrahimi __ bind(&l_240a);
4507*f5c631daSSadaf Ebrahimi __ cmp(r0, 1073741824U);
4508*f5c631daSSadaf Ebrahimi __ b(cs, Narrow, &l_23a2);
4509*f5c631daSSadaf Ebrahimi __ lsls(Narrow, r4, r3, 3U);
4510*f5c631daSSadaf Ebrahimi __ subs(Narrow, r7, r6, r1);
4511*f5c631daSSadaf Ebrahimi __ mov(Narrow, r9, r0);
4512*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r0, 0U);
4513*f5c631daSSadaf Ebrahimi __ b(eq, Narrow, &l_23b4);
4514*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_23a8);
4515*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r1));
4516*f5c631daSSadaf Ebrahimi __ push(Narrow, RegisterList(r4, r5, r6, lr));
4517*f5c631daSSadaf Ebrahimi __ sub(Narrow, sp, sp, 8U);
4518*f5c631daSSadaf Ebrahimi __ mov(Narrow, r6, r0);
4519*f5c631daSSadaf Ebrahimi __ mov(Narrow, r5, r1);
4520*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r3);
4521*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r3));
4522*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 4));
4523*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r2, 12));
4524*f5c631daSSadaf Ebrahimi __ blx(r3);
4525*f5c631daSSadaf Ebrahimi __ cbnz(r0, &l_2474);
4526*f5c631daSSadaf Ebrahimi // --------------
4527*f5c631daSSadaf Ebrahimi __ bind(&l_2432);
4528*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r0, MemOperand(sp, 4));
4529*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r0));
4530*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r3, 8));
4531*f5c631daSSadaf Ebrahimi __ blx(r3);
4532*f5c631daSSadaf Ebrahimi __ cbz(r0, &l_2446);
4533*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r0, MemOperand(sp, 4));
4534*f5c631daSSadaf Ebrahimi __ cbz(r0, &l_2446);
4535*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r0));
4536*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r3, 4));
4537*f5c631daSSadaf Ebrahimi __ blx(r3);
4538*f5c631daSSadaf Ebrahimi // --------------
4539*f5c631daSSadaf Ebrahimi __ bind(&l_2446);
4540*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r4, MemOperand(r6, 4));
4541*f5c631daSSadaf Ebrahimi __ add(r1, r5, 24U);
4542*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r1, r4);
4543*f5c631daSSadaf Ebrahimi __ b(eq, Narrow, &l_246a);
4544*f5c631daSSadaf Ebrahimi __ subs(Narrow, r2, r4, r1);
4545*f5c631daSSadaf Ebrahimi __ mov(r3, 43691U);
4546*f5c631daSSadaf Ebrahimi __ asrs(Narrow, r0, r2, 3U);
4547*f5c631daSSadaf Ebrahimi __ movt(r3, 43690U);
4548*f5c631daSSadaf Ebrahimi __ mul(r3, r3, r0);
4549*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r3, 0U);
4550*f5c631daSSadaf Ebrahimi __ b(le, Narrow, &l_246a);
4551*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r5);
4552*f5c631daSSadaf Ebrahimi // --------------
4553*f5c631daSSadaf Ebrahimi __ bind(&l_2466);
4554*f5c631daSSadaf Ebrahimi __ bl(&l_2466);
4555*f5c631daSSadaf Ebrahimi // --------------
4556*f5c631daSSadaf Ebrahimi __ bind(&l_246a);
4557*f5c631daSSadaf Ebrahimi __ subs(Narrow, r4, r4, 24U);
4558*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r5);
4559*f5c631daSSadaf Ebrahimi __ str(Narrow, r4, MemOperand(r6, 4));
4560*f5c631daSSadaf Ebrahimi __ add(Narrow, sp, sp, 8U);
4561*f5c631daSSadaf Ebrahimi __ pop(Narrow, RegisterList(r4, r5, r6, pc));
4562*f5c631daSSadaf Ebrahimi // --------------
4563*f5c631daSSadaf Ebrahimi __ bind(&l_2474);
4564*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r1, MemOperand(r6, 16));
4565*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r6, 20));
4566*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r1, r3);
4567*f5c631daSSadaf Ebrahimi __ b(eq, Narrow, &l_248a);
4568*f5c631daSSadaf Ebrahimi __ cbz(r1, &l_2484);
4569*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(sp, 4));
4570*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(r1));
4571*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r1, MemOperand(r6, 16));
4572*f5c631daSSadaf Ebrahimi // --------------
4573*f5c631daSSadaf Ebrahimi __ bind(&l_2484);
4574*f5c631daSSadaf Ebrahimi __ adds(r1, 4U);
4575*f5c631daSSadaf Ebrahimi __ str(Narrow, r1, MemOperand(r6, 16));
4576*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_2432);
4577*f5c631daSSadaf Ebrahimi // --------------
4578*f5c631daSSadaf Ebrahimi __ bind(&l_248a);
4579*f5c631daSSadaf Ebrahimi __ add(r0, r6, 12U);
4580*f5c631daSSadaf Ebrahimi __ add(Narrow, r2, sp, 4U);
4581*f5c631daSSadaf Ebrahimi // --------------
4582*f5c631daSSadaf Ebrahimi __ bind(&l_2490);
4583*f5c631daSSadaf Ebrahimi __ bl(&l_2490);
4584*f5c631daSSadaf Ebrahimi }
Generate_35(TestAssembler * assembler)4585*f5c631daSSadaf Ebrahimi void Generate_35(TestAssembler* assembler) {
4586*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_2432);
4587*f5c631daSSadaf Ebrahimi __ nop(Narrow);
4588*f5c631daSSadaf Ebrahimi __ push(RegisterList(0x4ff8));
4589*f5c631daSSadaf Ebrahimi __ mov(Narrow, r5, r0);
4590*f5c631daSSadaf Ebrahimi __ mov(Narrow, r6, r1);
4591*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r0, MemOperand(r0));
4592*f5c631daSSadaf Ebrahimi __ mov(Narrow, r8, r2);
4593*f5c631daSSadaf Ebrahimi __ mov(Narrow, fp, r3);
4594*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r1, MemOperand(r5, 4));
4595*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r0, r1);
4596*f5c631daSSadaf Ebrahimi __ b(eq, Narrow, &l_24ca);
4597*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r0));
4598*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r2, r3);
4599*f5c631daSSadaf Ebrahimi __ it(ne);
4600*f5c631daSSadaf Ebrahimi __ add(ne, r4, r0, 24U);
4601*f5c631daSSadaf Ebrahimi __ b(ne, Narrow, &l_24c4);
4602*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_25ce);
4603*f5c631daSSadaf Ebrahimi // --------------
4604*f5c631daSSadaf Ebrahimi __ bind(&l_24ba);
4605*f5c631daSSadaf Ebrahimi __ ldr(r2, MemOperand(r4, 24, PostIndex));
4606*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r8, r2);
4607*f5c631daSSadaf Ebrahimi __ b(eq, &l_25ce);
4608*f5c631daSSadaf Ebrahimi // --------------
4609*f5c631daSSadaf Ebrahimi __ bind(&l_24c4);
4610*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r4, r1);
4611*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r4);
4612*f5c631daSSadaf Ebrahimi __ b(ne, Narrow, &l_24ba);
4613*f5c631daSSadaf Ebrahimi // --------------
4614*f5c631daSSadaf Ebrahimi __ bind(&l_24ca);
4615*f5c631daSSadaf Ebrahimi __ ldr(r3, MemOperand(r8));
4616*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r8);
4617*f5c631daSSadaf Ebrahimi __ mov(sl, 0U);
4618*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r3, 40));
4619*f5c631daSSadaf Ebrahimi __ blx(r3);
4620*f5c631daSSadaf Ebrahimi __ ldr(r3, MemOperand(r8));
4621*f5c631daSSadaf Ebrahimi __ mov(Narrow, r7, r0);
4622*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r8);
4623*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r3, 44));
4624*f5c631daSSadaf Ebrahimi __ blx(r3);
4625*f5c631daSSadaf Ebrahimi __ mov(Narrow, r9, r0);
4626*f5c631daSSadaf Ebrahimi // --------------
4627*f5c631daSSadaf Ebrahimi __ bind(&l_24e6);
4628*f5c631daSSadaf Ebrahimi __ subs(Narrow, r4, r7, 1U);
4629*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r6));
4630*f5c631daSSadaf Ebrahimi __ add(r3, r4, fp);
4631*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r6);
4632*f5c631daSSadaf Ebrahimi __ bic(r4, r3, r4);
4633*f5c631daSSadaf Ebrahimi __ rsb(r1, fp, r4);
4634*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r2, 48));
4635*f5c631daSSadaf Ebrahimi __ blx(r3);
4636*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r9, r4);
4637*f5c631daSSadaf Ebrahimi __ b(le, Narrow, &l_2510);
4638*f5c631daSSadaf Ebrahimi // --------------
4639*f5c631daSSadaf Ebrahimi __ bind(&l_2500);
4640*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r6));
4641*f5c631daSSadaf Ebrahimi __ add(Narrow, r4, r4, r7);
4642*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r6);
4643*f5c631daSSadaf Ebrahimi __ mov(Narrow, r1, r7);
4644*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r3, 48));
4645*f5c631daSSadaf Ebrahimi __ blx(r3);
4646*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r9, r4);
4647*f5c631daSSadaf Ebrahimi __ b(gt, Narrow, &l_2500);
4648*f5c631daSSadaf Ebrahimi // --------------
4649*f5c631daSSadaf Ebrahimi __ bind(&l_2510);
4650*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r6));
4651*f5c631daSSadaf Ebrahimi __ movw(r3, 0U);
4652*f5c631daSSadaf Ebrahimi __ movt(r3, 0U);
4653*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r6);
4654*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r2));
4655*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r2, r3);
4656*f5c631daSSadaf Ebrahimi __ b(ne, Narrow, &l_25f4);
4657*f5c631daSSadaf Ebrahimi // --------------
4658*f5c631daSSadaf Ebrahimi __ bind(&l_2522);
4659*f5c631daSSadaf Ebrahimi __ bl(&l_2522);
4660*f5c631daSSadaf Ebrahimi __ mov(Narrow, r1, r0);
4661*f5c631daSSadaf Ebrahimi // --------------
4662*f5c631daSSadaf Ebrahimi __ bind(&l_2528);
4663*f5c631daSSadaf Ebrahimi __ ldr(r3, MemOperand(r8));
4664*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r8);
4665*f5c631daSSadaf Ebrahimi __ str(r4, MemOperand(r8, 20));
4666*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r3, 20));
4667*f5c631daSSadaf Ebrahimi __ blx(r3);
4668*f5c631daSSadaf Ebrahimi __ movs(Narrow, r3, 1U);
4669*f5c631daSSadaf Ebrahimi __ strb(r3, MemOperand(r8, 16));
4670*f5c631daSSadaf Ebrahimi __ cmp(sl, 0U);
4671*f5c631daSSadaf Ebrahimi __ b(eq, Narrow, &l_25c8);
4672*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r7, MemOperand(r5));
4673*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r0, MemOperand(r5, 4));
4674*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r7, r0);
4675*f5c631daSSadaf Ebrahimi __ b(eq, Narrow, &l_25fa);
4676*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r7));
4677*f5c631daSSadaf Ebrahimi __ ldr(r6, MemOperand(sl));
4678*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r3, r6);
4679*f5c631daSSadaf Ebrahimi __ it(ne);
4680*f5c631daSSadaf Ebrahimi __ add(ne, r3, r7, 24U);
4681*f5c631daSSadaf Ebrahimi __ b(ne, Narrow, &l_2564);
4682*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_25d8);
4683*f5c631daSSadaf Ebrahimi // --------------
4684*f5c631daSSadaf Ebrahimi __ bind(&l_255c);
4685*f5c631daSSadaf Ebrahimi __ ldr(r2, MemOperand(r3, 24, PostIndex));
4686*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r2, r6);
4687*f5c631daSSadaf Ebrahimi __ b(eq, Narrow, &l_25da);
4688*f5c631daSSadaf Ebrahimi // --------------
4689*f5c631daSSadaf Ebrahimi __ bind(&l_2564);
4690*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r3, r0);
4691*f5c631daSSadaf Ebrahimi __ mov(Narrow, r1, r3);
4692*f5c631daSSadaf Ebrahimi __ b(ne, Narrow, &l_255c);
4693*f5c631daSSadaf Ebrahimi // --------------
4694*f5c631daSSadaf Ebrahimi __ bind(&l_256a);
4695*f5c631daSSadaf Ebrahimi __ subs(Narrow, r2, r3, r7);
4696*f5c631daSSadaf Ebrahimi __ mov(r0, 43691U);
4697*f5c631daSSadaf Ebrahimi __ asrs(Narrow, r2, r2, 3U);
4698*f5c631daSSadaf Ebrahimi __ movt(r0, 43690U);
4699*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r1, MemOperand(r5, 28));
4700*f5c631daSSadaf Ebrahimi __ mvn(r6, 2147483648U);
4701*f5c631daSSadaf Ebrahimi __ mul(r2, r0, r2);
4702*f5c631daSSadaf Ebrahimi __ ldr(ip, MemOperand(r5, 24));
4703*f5c631daSSadaf Ebrahimi __ add(lr, r1, 4294967295U);
4704*f5c631daSSadaf Ebrahimi __ add(r0, ip, Operand(lr, LSL, 1));
4705*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r2, 0U);
4706*f5c631daSSadaf Ebrahimi __ str(Narrow, r0, MemOperand(r5, 40));
4707*f5c631daSSadaf Ebrahimi __ b(le, Narrow, &l_25be);
4708*f5c631daSSadaf Ebrahimi }
Generate_36(TestAssembler * assembler)4709*f5c631daSSadaf Ebrahimi void Generate_36(TestAssembler* assembler) {
4710*f5c631daSSadaf Ebrahimi // --------------
4711*f5c631daSSadaf Ebrahimi __ bind(&l_2592);
4712*f5c631daSSadaf Ebrahimi __ ldr(r1, MemOperand(r3, -24));
4713*f5c631daSSadaf Ebrahimi __ subs(Narrow, r3, r3, 24U);
4714*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r3, 12));
4715*f5c631daSSadaf Ebrahimi __ ldr(r8, MemOperand(r3, 8));
4716*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r1, MemOperand(r1, 4));
4717*f5c631daSSadaf Ebrahimi __ subs(r2, 1U);
4718*f5c631daSSadaf Ebrahimi __ mvn(r9, r2);
4719*f5c631daSSadaf Ebrahimi __ add(Narrow, r2, r2, r1);
4720*f5c631daSSadaf Ebrahimi __ subs(Narrow, r1, r6, r1);
4721*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r1, r8);
4722*f5c631daSSadaf Ebrahimi __ ite(le);
4723*f5c631daSSadaf Ebrahimi __ and_(le, r6, r9, r1);
4724*f5c631daSSadaf Ebrahimi __ and_(gt, r6, r9, r8);
4725*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r3, r7);
4726*f5c631daSSadaf Ebrahimi __ add(Narrow, r0, r0, r2);
4727*f5c631daSSadaf Ebrahimi __ str(Narrow, r0, MemOperand(r5, 40));
4728*f5c631daSSadaf Ebrahimi __ b(ne, Narrow, &l_2592);
4729*f5c631daSSadaf Ebrahimi // --------------
4730*f5c631daSSadaf Ebrahimi __ bind(&l_25be);
4731*f5c631daSSadaf Ebrahimi __ rsb(r1, ip, r6);
4732*f5c631daSSadaf Ebrahimi __ bic(r1, r1, lr);
4733*f5c631daSSadaf Ebrahimi __ str(Narrow, r1, MemOperand(r5, 36));
4734*f5c631daSSadaf Ebrahimi // --------------
4735*f5c631daSSadaf Ebrahimi __ bind(&l_25c8);
4736*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r4);
4737*f5c631daSSadaf Ebrahimi __ pop(RegisterList(0x8ff8));
4738*f5c631daSSadaf Ebrahimi // --------------
4739*f5c631daSSadaf Ebrahimi __ bind(&l_25ce);
4740*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r7, MemOperand(r0, 12));
4741*f5c631daSSadaf Ebrahimi __ mov(Narrow, sl, r0);
4742*f5c631daSSadaf Ebrahimi __ ldr(r9, MemOperand(r0, 4));
4743*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_24e6);
4744*f5c631daSSadaf Ebrahimi // --------------
4745*f5c631daSSadaf Ebrahimi __ bind(&l_25d8);
4746*f5c631daSSadaf Ebrahimi __ mov(Narrow, r1, r7);
4747*f5c631daSSadaf Ebrahimi // --------------
4748*f5c631daSSadaf Ebrahimi __ bind(&l_25da);
4749*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r5);
4750*f5c631daSSadaf Ebrahimi // --------------
4751*f5c631daSSadaf Ebrahimi __ bind(&l_25dc);
4752*f5c631daSSadaf Ebrahimi __ bl(&l_25dc);
4753*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r7, MemOperand(r5));
4754*f5c631daSSadaf Ebrahimi __ movs(Narrow, r2, 0U);
4755*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r5, 4));
4756*f5c631daSSadaf Ebrahimi __ str(Narrow, r2, MemOperand(r5, 40));
4757*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r7, r3);
4758*f5c631daSSadaf Ebrahimi __ b(ne, Narrow, &l_256a);
4759*f5c631daSSadaf Ebrahimi // --------------
4760*f5c631daSSadaf Ebrahimi __ bind(&l_25ec);
4761*f5c631daSSadaf Ebrahimi __ mvn(r3, 2147483648U);
4762*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(r5, 36));
4763*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_25c8);
4764*f5c631daSSadaf Ebrahimi // --------------
4765*f5c631daSSadaf Ebrahimi __ bind(&l_25f4);
4766*f5c631daSSadaf Ebrahimi __ blx(r2);
4767*f5c631daSSadaf Ebrahimi __ mov(Narrow, r1, r0);
4768*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_2528);
4769*f5c631daSSadaf Ebrahimi // --------------
4770*f5c631daSSadaf Ebrahimi __ bind(&l_25fa);
4771*f5c631daSSadaf Ebrahimi __ movs(Narrow, r3, 0U);
4772*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(r5, 40));
4773*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_25ec);
4774*f5c631daSSadaf Ebrahimi __ push(RegisterList(0x4ff0));
4775*f5c631daSSadaf Ebrahimi __ mov(Narrow, r8, r0);
4776*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r4, MemOperand(r0, 4));
4777*f5c631daSSadaf Ebrahimi __ sub(Narrow, sp, sp, 36U);
4778*f5c631daSSadaf Ebrahimi __ mov(Narrow, r5, r1);
4779*f5c631daSSadaf Ebrahimi __ mov(Narrow, r6, r2);
4780*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r0, 8));
4781*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r4, r3);
4782*f5c631daSSadaf Ebrahimi __ b(eq, Narrow, &l_2694);
4783*f5c631daSSadaf Ebrahimi __ mvn(ip, 23U);
4784*f5c631daSSadaf Ebrahimi __ cbz(r4, &l_2630);
4785*f5c631daSSadaf Ebrahimi __ sub(ip, r4, 24U);
4786*f5c631daSSadaf Ebrahimi __ mov(Narrow, r7, r4);
4787*f5c631daSSadaf Ebrahimi __ mov(Narrow, lr, ip);
4788*f5c631daSSadaf Ebrahimi __ ldm(lr, WRITE_BACK, RegisterList(r0, r1, r2, r3));
4789*f5c631daSSadaf Ebrahimi __ stm(Narrow, r7, WRITE_BACK, RegisterList(r0, r1, r2, r3));
4790*f5c631daSSadaf Ebrahimi __ ldm(lr, NO_WRITE_BACK, RegisterList(r0, r1));
4791*f5c631daSSadaf Ebrahimi __ stm(r7, NO_WRITE_BACK, RegisterList(r0, r1));
4792*f5c631daSSadaf Ebrahimi // --------------
4793*f5c631daSSadaf Ebrahimi __ bind(&l_2630);
4794*f5c631daSSadaf Ebrahimi __ rsb(lr, r5, ip);
4795*f5c631daSSadaf Ebrahimi __ mov(r9, 43691U);
4796*f5c631daSSadaf Ebrahimi __ asr(lr, lr, 3U);
4797*f5c631daSSadaf Ebrahimi __ ldm(Narrow, r6, WRITE_BACK, RegisterList(r0, r1, r2, r3));
4798*f5c631daSSadaf Ebrahimi __ movt(r9, 43690U);
4799*f5c631daSSadaf Ebrahimi __ mul(lr, r9, lr);
4800*f5c631daSSadaf Ebrahimi __ add(Narrow, r7, sp, 8U);
4801*f5c631daSSadaf Ebrahimi __ stm(Narrow, r7, WRITE_BACK, RegisterList(r0, r1, r2, r3));
4802*f5c631daSSadaf Ebrahimi __ ldm(r6, NO_WRITE_BACK, RegisterList(r0, r1));
4803*f5c631daSSadaf Ebrahimi __ add(r3, r4, 24U);
4804*f5c631daSSadaf Ebrahimi __ cmp(lr, 0U);
4805*f5c631daSSadaf Ebrahimi __ str(r3, MemOperand(r8, 4));
4806*f5c631daSSadaf Ebrahimi __ stm(r7, NO_WRITE_BACK, RegisterList(r0, r1));
4807*f5c631daSSadaf Ebrahimi __ b(le, Narrow, &l_2680);
4808*f5c631daSSadaf Ebrahimi // --------------
4809*f5c631daSSadaf Ebrahimi __ bind(&l_2660);
4810*f5c631daSSadaf Ebrahimi __ sub(r7, ip, 24U);
4811*f5c631daSSadaf Ebrahimi __ sub(r6, r4, 24U);
4812*f5c631daSSadaf Ebrahimi __ ldm(Narrow, r7, WRITE_BACK, RegisterList(r0, r1, r2, r3));
4813*f5c631daSSadaf Ebrahimi __ mov(Narrow, r4, r6);
4814*f5c631daSSadaf Ebrahimi __ subs(lr, lr, 1U);
4815*f5c631daSSadaf Ebrahimi __ sub(ip, ip, 24U);
4816*f5c631daSSadaf Ebrahimi __ stm(Narrow, r6, WRITE_BACK, RegisterList(r0, r1, r2, r3));
4817*f5c631daSSadaf Ebrahimi __ ldm(r7, NO_WRITE_BACK, RegisterList(r0, r1));
4818*f5c631daSSadaf Ebrahimi __ stm(r6, NO_WRITE_BACK, RegisterList(r0, r1));
4819*f5c631daSSadaf Ebrahimi __ b(ne, Narrow, &l_2660);
4820*f5c631daSSadaf Ebrahimi // --------------
4821*f5c631daSSadaf Ebrahimi __ bind(&l_2680);
4822*f5c631daSSadaf Ebrahimi __ add(Narrow, r4, sp, 8U);
4823*f5c631daSSadaf Ebrahimi __ ldm(Narrow, r4, WRITE_BACK, RegisterList(r0, r1, r2, r3));
4824*f5c631daSSadaf Ebrahimi __ stm(Narrow, r5, WRITE_BACK, RegisterList(r0, r1, r2, r3));
4825*f5c631daSSadaf Ebrahimi __ ldm(r4, NO_WRITE_BACK, RegisterList(r0, r1));
4826*f5c631daSSadaf Ebrahimi __ stm(r5, NO_WRITE_BACK, RegisterList(r0, r1));
4827*f5c631daSSadaf Ebrahimi // --------------
4828*f5c631daSSadaf Ebrahimi __ bind(&l_268e);
4829*f5c631daSSadaf Ebrahimi __ add(Narrow, sp, sp, 36U);
4830*f5c631daSSadaf Ebrahimi __ pop(RegisterList(0x8ff0));
4831*f5c631daSSadaf Ebrahimi // --------------
4832*f5c631daSSadaf Ebrahimi __ bind(&l_2694);
4833*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r1, MemOperand(r0));
4834*f5c631daSSadaf Ebrahimi __ mov(r3, 43691U);
4835*f5c631daSSadaf Ebrahimi __ movt(r3, 43690U);
4836*f5c631daSSadaf Ebrahimi __ subs(Narrow, r2, r4, r1);
4837*f5c631daSSadaf Ebrahimi __ asrs(Narrow, r2, r2, 3U);
4838*f5c631daSSadaf Ebrahimi __ mul(r3, r3, r2);
4839*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r3, 0U);
4840*f5c631daSSadaf Ebrahimi }
Generate_37(TestAssembler * assembler)4841*f5c631daSSadaf Ebrahimi void Generate_37(TestAssembler* assembler) {
4842*f5c631daSSadaf Ebrahimi __ b(ne, Narrow, &l_2794);
4843*f5c631daSSadaf Ebrahimi __ subs(Narrow, r7, r5, r1);
4844*f5c631daSSadaf Ebrahimi __ movs(Narrow, r3, 24U);
4845*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 4));
4846*f5c631daSSadaf Ebrahimi // --------------
4847*f5c631daSSadaf Ebrahimi __ bind(&l_26b0);
4848*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r0, MemOperand(sp, 4));
4849*f5c631daSSadaf Ebrahimi // --------------
4850*f5c631daSSadaf Ebrahimi __ bind(&l_26b2);
4851*f5c631daSSadaf Ebrahimi __ bl(&l_26b2);
4852*f5c631daSSadaf Ebrahimi __ ldr(r4, MemOperand(r8, 4));
4853*f5c631daSSadaf Ebrahimi __ mov(Narrow, sl, r0);
4854*f5c631daSSadaf Ebrahimi __ ldr(fp, MemOperand(r8));
4855*f5c631daSSadaf Ebrahimi __ add(r9, r0, 24U);
4856*f5c631daSSadaf Ebrahimi // --------------
4857*f5c631daSSadaf Ebrahimi __ bind(&l_26c4);
4858*f5c631daSSadaf Ebrahimi __ adds(r7, sl, r7);
4859*f5c631daSSadaf Ebrahimi __ itttt(ne);
4860*f5c631daSSadaf Ebrahimi __ ldm(ne, Narrow, r6, WRITE_BACK, RegisterList(r0, r1, r2, r3));
4861*f5c631daSSadaf Ebrahimi __ stm(ne, Narrow, r7, WRITE_BACK, RegisterList(r0, r1, r2, r3));
4862*f5c631daSSadaf Ebrahimi __ ldm(ne, r6, NO_WRITE_BACK, RegisterList(r0, r1));
4863*f5c631daSSadaf Ebrahimi __ stm(ne, r7, NO_WRITE_BACK, RegisterList(r0, r1));
4864*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r5, fp);
4865*f5c631daSSadaf Ebrahimi __ b(eq, Narrow, &l_272a);
4866*f5c631daSSadaf Ebrahimi __ mov(Narrow, r3, r4);
4867*f5c631daSSadaf Ebrahimi __ mov(Narrow, ip, fp);
4868*f5c631daSSadaf Ebrahimi __ mov(Narrow, r4, sl);
4869*f5c631daSSadaf Ebrahimi __ mov(Narrow, lr, r3);
4870*f5c631daSSadaf Ebrahimi // --------------
4871*f5c631daSSadaf Ebrahimi __ bind(&l_26e2);
4872*f5c631daSSadaf Ebrahimi __ mov(Narrow, r7, ip);
4873*f5c631daSSadaf Ebrahimi __ mov(Narrow, r6, r4);
4874*f5c631daSSadaf Ebrahimi __ add(ip, ip, 24U);
4875*f5c631daSSadaf Ebrahimi __ cbz(r4, &l_26f8);
4876*f5c631daSSadaf Ebrahimi __ ldm(Narrow, r7, WRITE_BACK, RegisterList(r0, r1, r2, r3));
4877*f5c631daSSadaf Ebrahimi __ stm(Narrow, r6, WRITE_BACK, RegisterList(r0, r1, r2, r3));
4878*f5c631daSSadaf Ebrahimi __ ldm(r7, NO_WRITE_BACK, RegisterList(r0, r1));
4879*f5c631daSSadaf Ebrahimi __ stm(r6, NO_WRITE_BACK, RegisterList(r0, r1));
4880*f5c631daSSadaf Ebrahimi // --------------
4881*f5c631daSSadaf Ebrahimi __ bind(&l_26f8);
4882*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r5, ip);
4883*f5c631daSSadaf Ebrahimi __ add(r4, r4, 24U);
4884*f5c631daSSadaf Ebrahimi __ b(ne, Narrow, &l_26e2);
4885*f5c631daSSadaf Ebrahimi __ add(r2, fp, 24U);
4886*f5c631daSSadaf Ebrahimi __ mov(r3, 43691U);
4887*f5c631daSSadaf Ebrahimi __ subs(Narrow, r2, r5, r2);
4888*f5c631daSSadaf Ebrahimi __ movt(r3, 2730U);
4889*f5c631daSSadaf Ebrahimi __ lsrs(Narrow, r2, r2, 3U);
4890*f5c631daSSadaf Ebrahimi __ mov(Narrow, r4, lr);
4891*f5c631daSSadaf Ebrahimi __ mul(r3, r3, r2);
4892*f5c631daSSadaf Ebrahimi __ bic(r3, r3, 0xe0000000);
4893*f5c631daSSadaf Ebrahimi __ adds(r3, 1U);
4894*f5c631daSSadaf Ebrahimi __ lsl(r9, r3, 5U);
4895*f5c631daSSadaf Ebrahimi __ sub(r9, r9, Operand(r3, LSL, 3));
4896*f5c631daSSadaf Ebrahimi __ add(r9, r9, 24U);
4897*f5c631daSSadaf Ebrahimi __ add(Narrow, r9, r9, sl);
4898*f5c631daSSadaf Ebrahimi // --------------
4899*f5c631daSSadaf Ebrahimi __ bind(&l_272a);
4900*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r5, r4);
4901*f5c631daSSadaf Ebrahimi __ b(eq, Narrow, &l_2776);
4902*f5c631daSSadaf Ebrahimi __ mov(Narrow, ip, r4);
4903*f5c631daSSadaf Ebrahimi __ mov(Narrow, lr, r5);
4904*f5c631daSSadaf Ebrahimi __ mov(Narrow, r4, r9);
4905*f5c631daSSadaf Ebrahimi // --------------
4906*f5c631daSSadaf Ebrahimi __ bind(&l_2734);
4907*f5c631daSSadaf Ebrahimi __ mov(Narrow, r7, lr);
4908*f5c631daSSadaf Ebrahimi __ mov(Narrow, r6, r4);
4909*f5c631daSSadaf Ebrahimi __ add(lr, lr, 24U);
4910*f5c631daSSadaf Ebrahimi __ cbz(r4, &l_274a);
4911*f5c631daSSadaf Ebrahimi __ ldm(Narrow, r7, WRITE_BACK, RegisterList(r0, r1, r2, r3));
4912*f5c631daSSadaf Ebrahimi __ stm(Narrow, r6, WRITE_BACK, RegisterList(r0, r1, r2, r3));
4913*f5c631daSSadaf Ebrahimi __ ldm(r7, NO_WRITE_BACK, RegisterList(r0, r1));
4914*f5c631daSSadaf Ebrahimi __ stm(r6, NO_WRITE_BACK, RegisterList(r0, r1));
4915*f5c631daSSadaf Ebrahimi // --------------
4916*f5c631daSSadaf Ebrahimi __ bind(&l_274a);
4917*f5c631daSSadaf Ebrahimi __ cmp(Narrow, lr, ip);
4918*f5c631daSSadaf Ebrahimi __ add(r4, r4, 24U);
4919*f5c631daSSadaf Ebrahimi __ b(ne, Narrow, &l_2734);
4920*f5c631daSSadaf Ebrahimi __ add(r3, r5, 24U);
4921*f5c631daSSadaf Ebrahimi __ mov(r2, 43691U);
4922*f5c631daSSadaf Ebrahimi __ rsb(r3, r3, lr);
4923*f5c631daSSadaf Ebrahimi __ movt(r2, 2730U);
4924*f5c631daSSadaf Ebrahimi __ lsrs(Narrow, r3, r3, 3U);
4925*f5c631daSSadaf Ebrahimi __ mul(r3, r2, r3);
4926*f5c631daSSadaf Ebrahimi __ bic(r3, r3, 0xe0000000);
4927*f5c631daSSadaf Ebrahimi __ adds(r3, 1U);
4928*f5c631daSSadaf Ebrahimi __ lsls(Narrow, r2, r3, 5U);
4929*f5c631daSSadaf Ebrahimi __ sub(r3, r2, Operand(r3, LSL, 3));
4930*f5c631daSSadaf Ebrahimi __ add(Narrow, r9, r9, r3);
4931*f5c631daSSadaf Ebrahimi // --------------
4932*f5c631daSSadaf Ebrahimi __ bind(&l_2776);
4933*f5c631daSSadaf Ebrahimi __ cmp(fp, 0U);
4934*f5c631daSSadaf Ebrahimi __ b(eq, Narrow, &l_2782);
4935*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, fp);
4936*f5c631daSSadaf Ebrahimi // --------------
4937*f5c631daSSadaf Ebrahimi __ bind(&l_277e);
4938*f5c631daSSadaf Ebrahimi __ bl(&l_277e);
4939*f5c631daSSadaf Ebrahimi // --------------
4940*f5c631daSSadaf Ebrahimi __ bind(&l_2782);
4941*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(sp, 4));
4942*f5c631daSSadaf Ebrahimi __ str(sl, MemOperand(r8));
4943*f5c631daSSadaf Ebrahimi __ str(r9, MemOperand(r8, 4));
4944*f5c631daSSadaf Ebrahimi __ add(Narrow, r3, r3, sl);
4945*f5c631daSSadaf Ebrahimi __ str(r3, MemOperand(r8, 8));
4946*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_268e);
4947*f5c631daSSadaf Ebrahimi // --------------
4948*f5c631daSSadaf Ebrahimi __ bind(&l_2794);
4949*f5c631daSSadaf Ebrahimi __ lsls(Narrow, r2, r3, 1U);
4950*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r3, r2);
4951*f5c631daSSadaf Ebrahimi __ b(ls, Narrow, &l_27a4);
4952*f5c631daSSadaf Ebrahimi // --------------
4953*f5c631daSSadaf Ebrahimi __ bind(&l_279a);
4954*f5c631daSSadaf Ebrahimi __ mvn(r3, 15U);
4955*f5c631daSSadaf Ebrahimi __ subs(Narrow, r7, r5, r1);
4956*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 4));
4957*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_26b0);
4958*f5c631daSSadaf Ebrahimi // --------------
4959*f5c631daSSadaf Ebrahimi __ bind(&l_27a4);
4960*f5c631daSSadaf Ebrahimi __ mov(r0, 43690U);
4961*f5c631daSSadaf Ebrahimi __ movt(r0, 2730U);
4962*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r2, r0);
4963*f5c631daSSadaf Ebrahimi __ b(hi, Narrow, &l_279a);
4964*f5c631daSSadaf Ebrahimi __ lsls(Narrow, r0, r3, 6U);
4965*f5c631daSSadaf Ebrahimi __ subs(Narrow, r7, r5, r1);
4966*f5c631daSSadaf Ebrahimi __ mov(Narrow, fp, r1);
4967*f5c631daSSadaf Ebrahimi __ sub(r3, r0, Operand(r3, LSL, 4));
4968*f5c631daSSadaf Ebrahimi __ mov(Narrow, sl, r2);
4969*f5c631daSSadaf Ebrahimi __ mov(r9, 24U);
4970*f5c631daSSadaf Ebrahimi }
Generate_38(TestAssembler * assembler)4971*f5c631daSSadaf Ebrahimi void Generate_38(TestAssembler* assembler) {
4972*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 4));
4973*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r2, 0U);
4974*f5c631daSSadaf Ebrahimi __ b(eq, &l_26c4);
4975*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_26b0);
4976*f5c631daSSadaf Ebrahimi __ nop(Narrow);
4977*f5c631daSSadaf Ebrahimi __ push(Narrow, RegisterList(0x40f8));
4978*f5c631daSSadaf Ebrahimi __ mov(Narrow, r2, r1);
4979*f5c631daSSadaf Ebrahimi __ ldm(r0, NO_WRITE_BACK, RegisterList(r3, r5));
4980*f5c631daSSadaf Ebrahimi __ mov(Narrow, r7, r0);
4981*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r3, r5);
4982*f5c631daSSadaf Ebrahimi __ b(eq, Narrow, &l_27f0);
4983*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r1, MemOperand(r1, 8));
4984*f5c631daSSadaf Ebrahimi // --------------
4985*f5c631daSSadaf Ebrahimi __ bind(&l_27dc);
4986*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r4, MemOperand(r3, 8));
4987*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r4, r1);
4988*f5c631daSSadaf Ebrahimi __ ite(lt);
4989*f5c631daSSadaf Ebrahimi __ mov(lt, Narrow, r4, 1U);
4990*f5c631daSSadaf Ebrahimi __ mov(ge, Narrow, r4, 0U);
4991*f5c631daSSadaf Ebrahimi __ b(eq, Narrow, &l_280e);
4992*f5c631daSSadaf Ebrahimi // --------------
4993*f5c631daSSadaf Ebrahimi __ bind(&l_27e8);
4994*f5c631daSSadaf Ebrahimi __ cbz(r4, &l_283c);
4995*f5c631daSSadaf Ebrahimi __ adds(Narrow, r3, r3, 24U);
4996*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r3, r5);
4997*f5c631daSSadaf Ebrahimi __ b(ne, Narrow, &l_27dc);
4998*f5c631daSSadaf Ebrahimi // --------------
4999*f5c631daSSadaf Ebrahimi __ bind(&l_27f0);
5000*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r7, 8));
5001*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r5, r3);
5002*f5c631daSSadaf Ebrahimi __ b(eq, Narrow, &l_2846);
5003*f5c631daSSadaf Ebrahimi __ cbz(r5, &l_2808);
5004*f5c631daSSadaf Ebrahimi __ mov(Narrow, r6, r2);
5005*f5c631daSSadaf Ebrahimi __ mov(Narrow, r4, r5);
5006*f5c631daSSadaf Ebrahimi __ ldm(Narrow, r6, WRITE_BACK, RegisterList(r0, r1, r2, r3));
5007*f5c631daSSadaf Ebrahimi __ stm(Narrow, r4, WRITE_BACK, RegisterList(r0, r1, r2, r3));
5008*f5c631daSSadaf Ebrahimi __ ldm(r6, NO_WRITE_BACK, RegisterList(r0, r1));
5009*f5c631daSSadaf Ebrahimi __ stm(r4, NO_WRITE_BACK, RegisterList(r0, r1));
5010*f5c631daSSadaf Ebrahimi // --------------
5011*f5c631daSSadaf Ebrahimi __ bind(&l_2808);
5012*f5c631daSSadaf Ebrahimi __ adds(Narrow, r5, r5, 24U);
5013*f5c631daSSadaf Ebrahimi __ str(Narrow, r5, MemOperand(r7, 4));
5014*f5c631daSSadaf Ebrahimi __ pop(Narrow, RegisterList(0x80f8));
5015*f5c631daSSadaf Ebrahimi // --------------
5016*f5c631daSSadaf Ebrahimi __ bind(&l_280e);
5017*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r0, MemOperand(r3));
5018*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r4, MemOperand(r2));
5019*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r6, MemOperand(r0, 4));
5020*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r4, MemOperand(r4, 4));
5021*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r6, r4);
5022*f5c631daSSadaf Ebrahimi __ ite(lt);
5023*f5c631daSSadaf Ebrahimi __ mov(lt, Narrow, r4, 1U);
5024*f5c631daSSadaf Ebrahimi __ mov(ge, Narrow, r4, 0U);
5025*f5c631daSSadaf Ebrahimi __ b(ne, Narrow, &l_27e8);
5026*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r4, MemOperand(r3, 12));
5027*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r0, MemOperand(r2, 12));
5028*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r4, r0);
5029*f5c631daSSadaf Ebrahimi __ ite(lt);
5030*f5c631daSSadaf Ebrahimi __ mov(lt, Narrow, r4, 1U);
5031*f5c631daSSadaf Ebrahimi __ mov(ge, Narrow, r4, 0U);
5032*f5c631daSSadaf Ebrahimi __ b(ne, Narrow, &l_27e8);
5033*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r4, MemOperand(r3, 4));
5034*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r0, MemOperand(r2, 4));
5035*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r4, r0);
5036*f5c631daSSadaf Ebrahimi __ ite(lt);
5037*f5c631daSSadaf Ebrahimi __ mov(lt, Narrow, r4, 1U);
5038*f5c631daSSadaf Ebrahimi __ mov(ge, Narrow, r4, 0U);
5039*f5c631daSSadaf Ebrahimi __ b(ne, Narrow, &l_27e8);
5040*f5c631daSSadaf Ebrahimi // --------------
5041*f5c631daSSadaf Ebrahimi __ bind(&l_283c);
5042*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r7);
5043*f5c631daSSadaf Ebrahimi __ mov(Narrow, r1, r3);
5044*f5c631daSSadaf Ebrahimi // --------------
5045*f5c631daSSadaf Ebrahimi __ bind(&l_2840);
5046*f5c631daSSadaf Ebrahimi __ bl(&l_2840);
5047*f5c631daSSadaf Ebrahimi __ pop(Narrow, RegisterList(0x80f8));
5048*f5c631daSSadaf Ebrahimi // --------------
5049*f5c631daSSadaf Ebrahimi __ bind(&l_2846);
5050*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r7);
5051*f5c631daSSadaf Ebrahimi __ mov(Narrow, r1, r5);
5052*f5c631daSSadaf Ebrahimi // --------------
5053*f5c631daSSadaf Ebrahimi __ bind(&l_284a);
5054*f5c631daSSadaf Ebrahimi __ bl(&l_284a);
5055*f5c631daSSadaf Ebrahimi __ pop(Narrow, RegisterList(0x80f8));
5056*f5c631daSSadaf Ebrahimi __ push(RegisterList(0x41f0));
5057*f5c631daSSadaf Ebrahimi __ mov(Narrow, r5, r0);
5058*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r4, MemOperand(r0));
5059*f5c631daSSadaf Ebrahimi __ sub(Narrow, sp, sp, 24U);
5060*f5c631daSSadaf Ebrahimi __ mov(Narrow, r7, r1);
5061*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r0, MemOperand(r0, 4));
5062*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r4, r0);
5063*f5c631daSSadaf Ebrahimi __ b(ne, Narrow, &l_286c);
5064*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_2982);
5065*f5c631daSSadaf Ebrahimi // --------------
5066*f5c631daSSadaf Ebrahimi __ bind(&l_2864);
5067*f5c631daSSadaf Ebrahimi __ adds(Narrow, r4, r4, 24U);
5068*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r4, r0);
5069*f5c631daSSadaf Ebrahimi __ b(eq, &l_2982);
5070*f5c631daSSadaf Ebrahimi // --------------
5071*f5c631daSSadaf Ebrahimi __ bind(&l_286c);
5072*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r4));
5073*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r2, r3);
5074*f5c631daSSadaf Ebrahimi __ b(ne, Narrow, &l_2864);
5075*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r7, 16));
5076*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r3);
5077*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r1, MemOperand(r3));
5078*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r4, 8));
5079*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r6, MemOperand(r7, 12));
5080*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r2, r3);
5081*f5c631daSSadaf Ebrahimi __ it(ge);
5082*f5c631daSSadaf Ebrahimi __ mov(ge, Narrow, r2, r3);
5083*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r4, 4));
5084*f5c631daSSadaf Ebrahimi __ str(Narrow, r2, MemOperand(r4, 8));
5085*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r3, r6);
5086*f5c631daSSadaf Ebrahimi __ it(lt);
5087*f5c631daSSadaf Ebrahimi __ mov(lt, Narrow, r3, r6);
5088*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(r4, 4));
5089*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r1, 32));
5090*f5c631daSSadaf Ebrahimi __ blx(r3);
5091*f5c631daSSadaf Ebrahimi __ cbz(r0, &l_28a2);
5092*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r0, MemOperand(r4));
5093*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r6, MemOperand(r4, 8));
5094*f5c631daSSadaf Ebrahimi }
Generate_39(TestAssembler * assembler)5095*f5c631daSSadaf Ebrahimi void Generate_39(TestAssembler* assembler) {
5096*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r0));
5097*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r3, 36));
5098*f5c631daSSadaf Ebrahimi __ blx(r3);
5099*f5c631daSSadaf Ebrahimi __ subs(Narrow, r0, r6, r0);
5100*f5c631daSSadaf Ebrahimi __ str(Narrow, r0, MemOperand(r4, 16));
5101*f5c631daSSadaf Ebrahimi // --------------
5102*f5c631daSSadaf Ebrahimi __ bind(&l_28a2);
5103*f5c631daSSadaf Ebrahimi __ ldr(lr, MemOperand(r5));
5104*f5c631daSSadaf Ebrahimi __ mov(ip, 43691U);
5105*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r6, MemOperand(r5, 4));
5106*f5c631daSSadaf Ebrahimi __ movt(ip, 43690U);
5107*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r1, MemOperand(r7, 8));
5108*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r4, 12));
5109*f5c631daSSadaf Ebrahimi __ rsb(r3, lr, r6);
5110*f5c631daSSadaf Ebrahimi __ asrs(Narrow, r3, r3, 3U);
5111*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r2, r1);
5112*f5c631daSSadaf Ebrahimi __ mul(r3, ip, r3);
5113*f5c631daSSadaf Ebrahimi __ it(lt);
5114*f5c631daSSadaf Ebrahimi __ mov(lt, Narrow, r2, r1);
5115*f5c631daSSadaf Ebrahimi __ str(Narrow, r2, MemOperand(r4, 12));
5116*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r3, 1U);
5117*f5c631daSSadaf Ebrahimi __ b(eq, Narrow, &l_2910);
5118*f5c631daSSadaf Ebrahimi __ mov(Narrow, lr, r4);
5119*f5c631daSSadaf Ebrahimi __ mov(Narrow, r7, sp);
5120*f5c631daSSadaf Ebrahimi __ ldm(lr, WRITE_BACK, RegisterList(r0, r1, r2, r3));
5121*f5c631daSSadaf Ebrahimi __ add(r8, r4, 24U);
5122*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r6, r8);
5123*f5c631daSSadaf Ebrahimi __ stm(Narrow, r7, WRITE_BACK, RegisterList(r0, r1, r2, r3));
5124*f5c631daSSadaf Ebrahimi __ ldm(lr, NO_WRITE_BACK, RegisterList(r0, r1));
5125*f5c631daSSadaf Ebrahimi __ stm(r7, NO_WRITE_BACK, RegisterList(r0, r1));
5126*f5c631daSSadaf Ebrahimi __ b(eq, Narrow, &l_28fc);
5127*f5c631daSSadaf Ebrahimi __ rsb(r2, r8, r6);
5128*f5c631daSSadaf Ebrahimi __ asrs(Narrow, r3, r2, 3U);
5129*f5c631daSSadaf Ebrahimi __ mul(ip, ip, r3);
5130*f5c631daSSadaf Ebrahimi __ cmp(ip, 0U);
5131*f5c631daSSadaf Ebrahimi __ b(le, Narrow, &l_28fc);
5132*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r4);
5133*f5c631daSSadaf Ebrahimi __ mov(Narrow, r1, r8);
5134*f5c631daSSadaf Ebrahimi // --------------
5135*f5c631daSSadaf Ebrahimi __ bind(&l_28f8);
5136*f5c631daSSadaf Ebrahimi __ bl(&l_28f8);
5137*f5c631daSSadaf Ebrahimi // --------------
5138*f5c631daSSadaf Ebrahimi __ bind(&l_28fc);
5139*f5c631daSSadaf Ebrahimi __ sub(r2, r6, 24U);
5140*f5c631daSSadaf Ebrahimi __ mov(Narrow, r1, sp);
5141*f5c631daSSadaf Ebrahimi __ str(Narrow, r2, MemOperand(r5, 4));
5142*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r5);
5143*f5c631daSSadaf Ebrahimi // --------------
5144*f5c631daSSadaf Ebrahimi __ bind(&l_2906);
5145*f5c631daSSadaf Ebrahimi __ bl(&l_2906);
5146*f5c631daSSadaf Ebrahimi __ ldr(lr, MemOperand(r5));
5147*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r6, MemOperand(r5, 4));
5148*f5c631daSSadaf Ebrahimi // --------------
5149*f5c631daSSadaf Ebrahimi __ bind(&l_2910);
5150*f5c631daSSadaf Ebrahimi __ movs(Narrow, r3, 0U);
5151*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r6, lr);
5152*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(r5, 40));
5153*f5c631daSSadaf Ebrahimi __ itt(eq);
5154*f5c631daSSadaf Ebrahimi __ mvn(eq, r3, 2147483648U);
5155*f5c631daSSadaf Ebrahimi __ str(eq, Narrow, r3, MemOperand(r5, 36));
5156*f5c631daSSadaf Ebrahimi __ b(eq, Narrow, &l_297c);
5157*f5c631daSSadaf Ebrahimi __ rsb(r3, lr, r6);
5158*f5c631daSSadaf Ebrahimi __ mov(r2, 43691U);
5159*f5c631daSSadaf Ebrahimi __ asrs(Narrow, r3, r3, 3U);
5160*f5c631daSSadaf Ebrahimi __ movt(r2, 43690U);
5161*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r1, MemOperand(r5, 28));
5162*f5c631daSSadaf Ebrahimi __ ldr(r8, MemOperand(r5, 24));
5163*f5c631daSSadaf Ebrahimi __ mul(r3, r2, r3);
5164*f5c631daSSadaf Ebrahimi __ add(ip, r1, 4294967295U);
5165*f5c631daSSadaf Ebrahimi __ add(r0, r8, Operand(ip, LSL, 1));
5166*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r3, 0U);
5167*f5c631daSSadaf Ebrahimi __ str(Narrow, r0, MemOperand(r5, 40));
5168*f5c631daSSadaf Ebrahimi __ b(le, Narrow, &l_2a00);
5169*f5c631daSSadaf Ebrahimi __ mov(Narrow, r2, r6);
5170*f5c631daSSadaf Ebrahimi __ mvn(r1, 2147483648U);
5171*f5c631daSSadaf Ebrahimi // --------------
5172*f5c631daSSadaf Ebrahimi __ bind(&l_294c);
5173*f5c631daSSadaf Ebrahimi __ ldr(r4, MemOperand(r2, -24));
5174*f5c631daSSadaf Ebrahimi __ subs(Narrow, r2, r2, 24U);
5175*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r2, 12));
5176*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r7, MemOperand(r2, 8));
5177*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r4, MemOperand(r4, 4));
5178*f5c631daSSadaf Ebrahimi __ subs(r3, 1U);
5179*f5c631daSSadaf Ebrahimi __ mvns(Narrow, r6, r3);
5180*f5c631daSSadaf Ebrahimi __ subs(Narrow, r1, r1, r4);
5181*f5c631daSSadaf Ebrahimi __ add(Narrow, r3, r3, r4);
5182*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r1, r7);
5183*f5c631daSSadaf Ebrahimi __ ite(le);
5184*f5c631daSSadaf Ebrahimi __ and_(le, Narrow, r1, r1, r6);
5185*f5c631daSSadaf Ebrahimi __ and_(gt, r1, r6, r7);
5186*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r2, lr);
5187*f5c631daSSadaf Ebrahimi __ add(Narrow, r0, r0, r3);
5188*f5c631daSSadaf Ebrahimi __ str(Narrow, r0, MemOperand(r5, 40));
5189*f5c631daSSadaf Ebrahimi __ b(ne, Narrow, &l_294c);
5190*f5c631daSSadaf Ebrahimi // --------------
5191*f5c631daSSadaf Ebrahimi __ bind(&l_2972);
5192*f5c631daSSadaf Ebrahimi __ rsb(r1, r8, r1);
5193*f5c631daSSadaf Ebrahimi __ bic(r1, r1, ip);
5194*f5c631daSSadaf Ebrahimi __ str(Narrow, r1, MemOperand(r5, 36));
5195*f5c631daSSadaf Ebrahimi // --------------
5196*f5c631daSSadaf Ebrahimi __ bind(&l_297c);
5197*f5c631daSSadaf Ebrahimi __ add(Narrow, sp, sp, 24U);
5198*f5c631daSSadaf Ebrahimi __ pop(RegisterList(0x81f0));
5199*f5c631daSSadaf Ebrahimi // --------------
5200*f5c631daSSadaf Ebrahimi __ bind(&l_2982);
5201*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r0, MemOperand(r2, 12));
5202*f5c631daSSadaf Ebrahimi __ movs(Narrow, r3, 0U);
5203*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r6, MemOperand(r2, 8));
5204*f5c631daSSadaf Ebrahimi __ mvn(r1, 2147483648U);
5205*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r4, MemOperand(r2));
5206*f5c631daSSadaf Ebrahimi __ str(Narrow, r0, MemOperand(sp, 20));
5207*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r2);
5208*f5c631daSSadaf Ebrahimi __ str(Narrow, r2, MemOperand(sp));
5209*f5c631daSSadaf Ebrahimi __ str(Narrow, r6, MemOperand(sp, 12));
5210*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r4, 32));
5211*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 4));
5212*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 16));
5213*f5c631daSSadaf Ebrahimi __ str(Narrow, r1, MemOperand(sp, 8));
5214*f5c631daSSadaf Ebrahimi }
Generate_40(TestAssembler * assembler)5215*f5c631daSSadaf Ebrahimi void Generate_40(TestAssembler* assembler) {
5216*f5c631daSSadaf Ebrahimi __ blx(r2);
5217*f5c631daSSadaf Ebrahimi __ cbnz(r0, &l_29f0);
5218*f5c631daSSadaf Ebrahimi // --------------
5219*f5c631daSSadaf Ebrahimi __ bind(&l_29a2);
5220*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r7, 16));
5221*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r6, MemOperand(sp, 8));
5222*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r1, MemOperand(sp));
5223*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r4, MemOperand(sp, 4));
5224*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r7, 12));
5225*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r2, r6);
5226*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r1);
5227*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r1, MemOperand(r1));
5228*f5c631daSSadaf Ebrahimi __ it(ge);
5229*f5c631daSSadaf Ebrahimi __ mov(ge, Narrow, r2, r6);
5230*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r3, r4);
5231*f5c631daSSadaf Ebrahimi __ str(Narrow, r2, MemOperand(sp, 8));
5232*f5c631daSSadaf Ebrahimi __ it(lt);
5233*f5c631daSSadaf Ebrahimi __ mov(lt, Narrow, r3, r4);
5234*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r1, 32));
5235*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 4));
5236*f5c631daSSadaf Ebrahimi __ blx(r2);
5237*f5c631daSSadaf Ebrahimi __ cbz(r0, &l_29d4);
5238*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r0, MemOperand(sp));
5239*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r4, MemOperand(sp, 8));
5240*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r0));
5241*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r3, 36));
5242*f5c631daSSadaf Ebrahimi __ blx(r3);
5243*f5c631daSSadaf Ebrahimi __ subs(Narrow, r0, r4, r0);
5244*f5c631daSSadaf Ebrahimi __ str(Narrow, r0, MemOperand(sp, 16));
5245*f5c631daSSadaf Ebrahimi // --------------
5246*f5c631daSSadaf Ebrahimi __ bind(&l_29d4);
5247*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r7, 8));
5248*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r5);
5249*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(sp, 12));
5250*f5c631daSSadaf Ebrahimi __ mov(Narrow, r1, sp);
5251*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r3, r2);
5252*f5c631daSSadaf Ebrahimi __ it(lt);
5253*f5c631daSSadaf Ebrahimi __ mov(lt, Narrow, r3, r2);
5254*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 12));
5255*f5c631daSSadaf Ebrahimi // --------------
5256*f5c631daSSadaf Ebrahimi __ bind(&l_29e4);
5257*f5c631daSSadaf Ebrahimi __ bl(&l_29e4);
5258*f5c631daSSadaf Ebrahimi __ ldr(lr, MemOperand(r5));
5259*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r6, MemOperand(r5, 4));
5260*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_2910);
5261*f5c631daSSadaf Ebrahimi // --------------
5262*f5c631daSSadaf Ebrahimi __ bind(&l_29f0);
5263*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r0, MemOperand(sp));
5264*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r4, MemOperand(sp, 8));
5265*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r0));
5266*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r3, 36));
5267*f5c631daSSadaf Ebrahimi __ blx(r3);
5268*f5c631daSSadaf Ebrahimi __ subs(Narrow, r0, r4, r0);
5269*f5c631daSSadaf Ebrahimi __ str(Narrow, r0, MemOperand(sp, 16));
5270*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_29a2);
5271*f5c631daSSadaf Ebrahimi // --------------
5272*f5c631daSSadaf Ebrahimi __ bind(&l_2a00);
5273*f5c631daSSadaf Ebrahimi __ mvn(r1, 2147483648U);
5274*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_2972);
5275*f5c631daSSadaf Ebrahimi __ nop(Narrow);
5276*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r0, r1);
5277*f5c631daSSadaf Ebrahimi __ b(eq, Narrow, &l_2b02);
5278*f5c631daSSadaf Ebrahimi __ push(RegisterList(0x4ff0));
5279*f5c631daSSadaf Ebrahimi __ add(r6, r0, 24U);
5280*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r6, r1);
5281*f5c631daSSadaf Ebrahimi __ sub(Narrow, sp, sp, 44U);
5282*f5c631daSSadaf Ebrahimi __ b(eq, Narrow, &l_2afc);
5283*f5c631daSSadaf Ebrahimi __ mov(r3, 43691U);
5284*f5c631daSSadaf Ebrahimi __ str(Narrow, r1, MemOperand(sp, 8));
5285*f5c631daSSadaf Ebrahimi __ movt(r3, 43690U);
5286*f5c631daSSadaf Ebrahimi __ mov(Narrow, r9, r0);
5287*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 12));
5288*f5c631daSSadaf Ebrahimi __ add(r8, r0, 48U);
5289*f5c631daSSadaf Ebrahimi __ str(Narrow, r2, MemOperand(sp, 4));
5290*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_2a86);
5291*f5c631daSSadaf Ebrahimi // --------------
5292*f5c631daSSadaf Ebrahimi __ bind(&l_2a30);
5293*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r7, MemOperand(sp, 12));
5294*f5c631daSSadaf Ebrahimi __ rsb(lr, r9, r6);
5295*f5c631daSSadaf Ebrahimi __ sub(r5, r8, 24U);
5296*f5c631daSSadaf Ebrahimi __ asr(ip, lr, 3U);
5297*f5c631daSSadaf Ebrahimi __ ldm(Narrow, r5, WRITE_BACK, RegisterList(r0, r1, r2, r3));
5298*f5c631daSSadaf Ebrahimi __ add(Narrow, r4, sp, 16U);
5299*f5c631daSSadaf Ebrahimi __ mul(ip, r7, ip);
5300*f5c631daSSadaf Ebrahimi __ stm(Narrow, r4, WRITE_BACK, RegisterList(r0, r1, r2, r3));
5301*f5c631daSSadaf Ebrahimi __ ldm(r5, NO_WRITE_BACK, RegisterList(r0, r1));
5302*f5c631daSSadaf Ebrahimi __ cmp(ip, 0U);
5303*f5c631daSSadaf Ebrahimi __ stm(r4, NO_WRITE_BACK, RegisterList(r0, r1));
5304*f5c631daSSadaf Ebrahimi __ b(le, Narrow, &l_2a66);
5305*f5c631daSSadaf Ebrahimi __ rsb(r0, lr, 24U);
5306*f5c631daSSadaf Ebrahimi __ rsb(r1, lr, r6);
5307*f5c631daSSadaf Ebrahimi __ add(Narrow, r0, r0, r6);
5308*f5c631daSSadaf Ebrahimi __ mov(Narrow, r2, lr);
5309*f5c631daSSadaf Ebrahimi // --------------
5310*f5c631daSSadaf Ebrahimi __ bind(&l_2a62);
5311*f5c631daSSadaf Ebrahimi __ bl(&l_2a62);
5312*f5c631daSSadaf Ebrahimi // --------------
5313*f5c631daSSadaf Ebrahimi __ bind(&l_2a66);
5314*f5c631daSSadaf Ebrahimi __ add(Narrow, r5, sp, 16U);
5315*f5c631daSSadaf Ebrahimi __ mov(Narrow, r4, r9);
5316*f5c631daSSadaf Ebrahimi __ ldm(Narrow, r5, WRITE_BACK, RegisterList(r0, r1, r2, r3));
5317*f5c631daSSadaf Ebrahimi __ mov(Narrow, lr, r8);
5318*f5c631daSSadaf Ebrahimi __ add(sl, r8, 24U);
5319*f5c631daSSadaf Ebrahimi __ adds(Narrow, r6, r6, 24U);
5320*f5c631daSSadaf Ebrahimi __ mov(Narrow, r8, sl);
5321*f5c631daSSadaf Ebrahimi __ stm(Narrow, r4, WRITE_BACK, RegisterList(r0, r1, r2, r3));
5322*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(sp, 8));
5323*f5c631daSSadaf Ebrahimi __ ldm(r5, NO_WRITE_BACK, RegisterList(r0, r1));
5324*f5c631daSSadaf Ebrahimi __ cmp(Narrow, lr, r3);
5325*f5c631daSSadaf Ebrahimi __ stm(r4, NO_WRITE_BACK, RegisterList(r0, r1));
5326*f5c631daSSadaf Ebrahimi __ b(eq, Narrow, &l_2afc);
5327*f5c631daSSadaf Ebrahimi // --------------
5328*f5c631daSSadaf Ebrahimi __ bind(&l_2a86);
5329*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r6);
5330*f5c631daSSadaf Ebrahimi __ mov(Narrow, r1, r9);
5331*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(sp, 4));
5332*f5c631daSSadaf Ebrahimi __ blx(r3);
5333*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r0, 0U);
5334*f5c631daSSadaf Ebrahimi }
Generate_41(TestAssembler * assembler)5335*f5c631daSSadaf Ebrahimi void Generate_41(TestAssembler* assembler) {
5336*f5c631daSSadaf Ebrahimi __ b(ne, Narrow, &l_2a30);
5337*f5c631daSSadaf Ebrahimi __ sub(lr, r8, 24U);
5338*f5c631daSSadaf Ebrahimi __ add(sl, r8, 24U);
5339*f5c631daSSadaf Ebrahimi __ ldm(lr, WRITE_BACK, RegisterList(r0, r1, r2, r3));
5340*f5c631daSSadaf Ebrahimi __ add(Narrow, r4, sp, 16U);
5341*f5c631daSSadaf Ebrahimi __ sub(fp, r8, 48U);
5342*f5c631daSSadaf Ebrahimi __ sub(r5, r8, 24U);
5343*f5c631daSSadaf Ebrahimi __ pld(MemOperand(sl));
5344*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r7, MemOperand(sp, 4));
5345*f5c631daSSadaf Ebrahimi __ stm(Narrow, r4, WRITE_BACK, RegisterList(r0, r1, r2, r3));
5346*f5c631daSSadaf Ebrahimi __ ldm(lr, NO_WRITE_BACK, RegisterList(r0, r1));
5347*f5c631daSSadaf Ebrahimi __ stm(r4, NO_WRITE_BACK, RegisterList(r0, r1));
5348*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_2ad2);
5349*f5c631daSSadaf Ebrahimi // --------------
5350*f5c631daSSadaf Ebrahimi __ bind(&l_2aba);
5351*f5c631daSSadaf Ebrahimi __ add(r5, fp, 24U);
5352*f5c631daSSadaf Ebrahimi __ add(r4, fp, 48U);
5353*f5c631daSSadaf Ebrahimi __ mov(Narrow, lr, r5);
5354*f5c631daSSadaf Ebrahimi __ ldm(lr, WRITE_BACK, RegisterList(r0, r1, r2, r3));
5355*f5c631daSSadaf Ebrahimi __ stm(Narrow, r4, WRITE_BACK, RegisterList(r0, r1, r2, r3));
5356*f5c631daSSadaf Ebrahimi __ ldm(lr, NO_WRITE_BACK, RegisterList(r0, r1));
5357*f5c631daSSadaf Ebrahimi __ stm(r4, NO_WRITE_BACK, RegisterList(r0, r1));
5358*f5c631daSSadaf Ebrahimi // --------------
5359*f5c631daSSadaf Ebrahimi __ bind(&l_2ad2);
5360*f5c631daSSadaf Ebrahimi __ mov(Narrow, r1, fp);
5361*f5c631daSSadaf Ebrahimi __ add(Narrow, r0, sp, 16U);
5362*f5c631daSSadaf Ebrahimi __ blx(r7);
5363*f5c631daSSadaf Ebrahimi __ sub(fp, fp, 24U);
5364*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r0, 0U);
5365*f5c631daSSadaf Ebrahimi __ b(ne, Narrow, &l_2aba);
5366*f5c631daSSadaf Ebrahimi __ add(Narrow, r4, sp, 16U);
5367*f5c631daSSadaf Ebrahimi __ mov(Narrow, lr, r8);
5368*f5c631daSSadaf Ebrahimi __ ldm(Narrow, r4, WRITE_BACK, RegisterList(r0, r1, r2, r3));
5369*f5c631daSSadaf Ebrahimi __ adds(Narrow, r6, r6, 24U);
5370*f5c631daSSadaf Ebrahimi __ mov(Narrow, r8, sl);
5371*f5c631daSSadaf Ebrahimi __ str(Narrow, r7, MemOperand(sp, 4));
5372*f5c631daSSadaf Ebrahimi __ stm(Narrow, r5, WRITE_BACK, RegisterList(r0, r1, r2, r3));
5373*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(sp, 8));
5374*f5c631daSSadaf Ebrahimi __ ldm(r4, NO_WRITE_BACK, RegisterList(r0, r1));
5375*f5c631daSSadaf Ebrahimi __ cmp(Narrow, lr, r3);
5376*f5c631daSSadaf Ebrahimi __ stm(r5, NO_WRITE_BACK, RegisterList(r0, r1));
5377*f5c631daSSadaf Ebrahimi __ b(ne, Narrow, &l_2a86);
5378*f5c631daSSadaf Ebrahimi // --------------
5379*f5c631daSSadaf Ebrahimi __ bind(&l_2afc);
5380*f5c631daSSadaf Ebrahimi __ add(Narrow, sp, sp, 44U);
5381*f5c631daSSadaf Ebrahimi __ pop(RegisterList(0x8ff0));
5382*f5c631daSSadaf Ebrahimi // --------------
5383*f5c631daSSadaf Ebrahimi __ bind(&l_2b02);
5384*f5c631daSSadaf Ebrahimi __ bx(lr);
5385*f5c631daSSadaf Ebrahimi __ sub(Narrow, sp, sp, 8U);
5386*f5c631daSSadaf Ebrahimi __ push(RegisterList(0x4ff0));
5387*f5c631daSSadaf Ebrahimi __ add(r8, r2, 4294967295U);
5388*f5c631daSSadaf Ebrahimi __ add(r8, r8, Operand(r8, LSR, 31));
5389*f5c631daSSadaf Ebrahimi __ sub(Narrow, sp, sp, 36U);
5390*f5c631daSSadaf Ebrahimi __ mov(Narrow, fp, r0);
5391*f5c631daSSadaf Ebrahimi __ asr(r8, r8, 1U);
5392*f5c631daSSadaf Ebrahimi __ stm(sp, NO_WRITE_BACK, RegisterList(r1, r2));
5393*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 76));
5394*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r1, r8);
5395*f5c631daSSadaf Ebrahimi __ ldr(r9, MemOperand(sp, 100));
5396*f5c631daSSadaf Ebrahimi __ b(ge, &l_2c2e);
5397*f5c631daSSadaf Ebrahimi __ mov(Narrow, r7, r1);
5398*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_2b4e);
5399*f5c631daSSadaf Ebrahimi // --------------
5400*f5c631daSSadaf Ebrahimi __ bind(&l_2b2e);
5401*f5c631daSSadaf Ebrahimi __ mov(Narrow, r6, sl);
5402*f5c631daSSadaf Ebrahimi // --------------
5403*f5c631daSSadaf Ebrahimi __ bind(&l_2b30);
5404*f5c631daSSadaf Ebrahimi __ lsls(Narrow, r5, r7, 5U);
5405*f5c631daSSadaf Ebrahimi __ mov(Narrow, lr, r4);
5406*f5c631daSSadaf Ebrahimi __ ldm(lr, WRITE_BACK, RegisterList(r0, r1, r2, r3));
5407*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r6, r8);
5408*f5c631daSSadaf Ebrahimi __ sub(r5, r5, Operand(r7, LSL, 3));
5409*f5c631daSSadaf Ebrahimi __ mov(Narrow, r7, r6);
5410*f5c631daSSadaf Ebrahimi __ add(Narrow, r5, r5, fp);
5411*f5c631daSSadaf Ebrahimi __ stm(Narrow, r5, WRITE_BACK, RegisterList(r0, r1, r2, r3));
5412*f5c631daSSadaf Ebrahimi __ ldm(lr, NO_WRITE_BACK, RegisterList(r0, r1));
5413*f5c631daSSadaf Ebrahimi __ stm(r5, NO_WRITE_BACK, RegisterList(r0, r1));
5414*f5c631daSSadaf Ebrahimi __ b(ge, Narrow, &l_2b76);
5415*f5c631daSSadaf Ebrahimi // --------------
5416*f5c631daSSadaf Ebrahimi __ bind(&l_2b4e);
5417*f5c631daSSadaf Ebrahimi __ adds(Narrow, r5, r7, 1U);
5418*f5c631daSSadaf Ebrahimi __ lsls(Narrow, r6, r5, 1U);
5419*f5c631daSSadaf Ebrahimi __ lsls(Narrow, r2, r5, 6U);
5420*f5c631daSSadaf Ebrahimi __ add(sl, r6, 4294967295U);
5421*f5c631daSSadaf Ebrahimi __ sub(r5, r2, Operand(r5, LSL, 4));
5422*f5c631daSSadaf Ebrahimi __ lsl(r4, sl, 5U);
5423*f5c631daSSadaf Ebrahimi __ add(Narrow, r5, r5, fp);
5424*f5c631daSSadaf Ebrahimi __ sub(r4, r4, Operand(sl, LSL, 3));
5425*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r5);
5426*f5c631daSSadaf Ebrahimi __ add(Narrow, r4, r4, fp);
5427*f5c631daSSadaf Ebrahimi __ mov(Narrow, r1, r4);
5428*f5c631daSSadaf Ebrahimi __ blx(r9);
5429*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r0, 0U);
5430*f5c631daSSadaf Ebrahimi __ b(ne, Narrow, &l_2b2e);
5431*f5c631daSSadaf Ebrahimi __ mov(Narrow, r4, r5);
5432*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_2b30);
5433*f5c631daSSadaf Ebrahimi // --------------
5434*f5c631daSSadaf Ebrahimi __ bind(&l_2b76);
5435*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(sp, 4));
5436*f5c631daSSadaf Ebrahimi __ lsls(Narrow, r2, r3, 31U);
5437*f5c631daSSadaf Ebrahimi __ b(mi, Narrow, &l_2b8a);
5438*f5c631daSSadaf Ebrahimi // --------------
5439*f5c631daSSadaf Ebrahimi __ bind(&l_2b7c);
5440*f5c631daSSadaf Ebrahimi __ sub(sl, r3, 2U);
5441*f5c631daSSadaf Ebrahimi __ add(sl, sl, Operand(sl, LSR, 31));
5442*f5c631daSSadaf Ebrahimi __ cmp(r6, Operand(sl, ASR, 1));
5443*f5c631daSSadaf Ebrahimi __ b(eq, Narrow, &l_2bbc);
5444*f5c631daSSadaf Ebrahimi // --------------
5445*f5c631daSSadaf Ebrahimi __ bind(&l_2b8a);
5446*f5c631daSSadaf Ebrahimi __ add(lr, sp, 76U);
5447*f5c631daSSadaf Ebrahimi __ add(Narrow, r5, sp, 8U);
5448*f5c631daSSadaf Ebrahimi __ ldm(lr, WRITE_BACK, RegisterList(r0, r1, r2, r3));
5449*f5c631daSSadaf Ebrahimi __ mov(Narrow, r7, r5);
5450*f5c631daSSadaf Ebrahimi __ stm(Narrow, r7, WRITE_BACK, RegisterList(r0, r1, r2, r3));
5451*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(sp));
5452*f5c631daSSadaf Ebrahimi __ ldm(lr, NO_WRITE_BACK, RegisterList(r0, r1));
5453*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r6, r3);
5454*f5c631daSSadaf Ebrahimi __ stm(r7, NO_WRITE_BACK, RegisterList(r0, r1));
5455*f5c631daSSadaf Ebrahimi __ b(gt, Narrow, &l_2bda);
5456*f5c631daSSadaf Ebrahimi }
Generate_42(TestAssembler * assembler)5457*f5c631daSSadaf Ebrahimi void Generate_42(TestAssembler* assembler) {
5458*f5c631daSSadaf Ebrahimi // --------------
5459*f5c631daSSadaf Ebrahimi __ bind(&l_2ba6);
5460*f5c631daSSadaf Ebrahimi __ ldm(Narrow, r5, WRITE_BACK, RegisterList(r0, r1, r2, r3));
5461*f5c631daSSadaf Ebrahimi __ stm(Narrow, r4, WRITE_BACK, RegisterList(r0, r1, r2, r3));
5462*f5c631daSSadaf Ebrahimi __ ldm(r5, NO_WRITE_BACK, RegisterList(r0, r1));
5463*f5c631daSSadaf Ebrahimi __ stm(r4, NO_WRITE_BACK, RegisterList(r0, r1));
5464*f5c631daSSadaf Ebrahimi __ add(Narrow, sp, sp, 36U);
5465*f5c631daSSadaf Ebrahimi __ pop(RegisterList(0x4ff0));
5466*f5c631daSSadaf Ebrahimi __ add(Narrow, sp, sp, 8U);
5467*f5c631daSSadaf Ebrahimi __ bx(lr);
5468*f5c631daSSadaf Ebrahimi // --------------
5469*f5c631daSSadaf Ebrahimi __ bind(&l_2bbc);
5470*f5c631daSSadaf Ebrahimi __ lsls(Narrow, r6, r6, 1U);
5471*f5c631daSSadaf Ebrahimi __ mov(Narrow, r7, r4);
5472*f5c631daSSadaf Ebrahimi __ adds(r6, 1U);
5473*f5c631daSSadaf Ebrahimi __ lsls(Narrow, r5, r6, 5U);
5474*f5c631daSSadaf Ebrahimi __ sub(r5, r5, Operand(r6, LSL, 3));
5475*f5c631daSSadaf Ebrahimi __ add(Narrow, r5, r5, fp);
5476*f5c631daSSadaf Ebrahimi __ mov(Narrow, r4, r5);
5477*f5c631daSSadaf Ebrahimi __ ldm(Narrow, r5, WRITE_BACK, RegisterList(r0, r1, r2, r3));
5478*f5c631daSSadaf Ebrahimi __ stm(Narrow, r7, WRITE_BACK, RegisterList(r0, r1, r2, r3));
5479*f5c631daSSadaf Ebrahimi __ ldm(r5, NO_WRITE_BACK, RegisterList(r0, r1));
5480*f5c631daSSadaf Ebrahimi __ stm(r7, NO_WRITE_BACK, RegisterList(r0, r1));
5481*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_2b8a);
5482*f5c631daSSadaf Ebrahimi // --------------
5483*f5c631daSSadaf Ebrahimi __ bind(&l_2bda);
5484*f5c631daSSadaf Ebrahimi __ subs(Narrow, r7, r6, 1U);
5485*f5c631daSSadaf Ebrahimi __ add(r7, r7, Operand(r7, LSR, 31));
5486*f5c631daSSadaf Ebrahimi __ asrs(Narrow, r7, r7, 1U);
5487*f5c631daSSadaf Ebrahimi // --------------
5488*f5c631daSSadaf Ebrahimi __ bind(&l_2be2);
5489*f5c631daSSadaf Ebrahimi __ lsls(Narrow, r4, r7, 5U);
5490*f5c631daSSadaf Ebrahimi __ mov(Narrow, r1, r5);
5491*f5c631daSSadaf Ebrahimi __ sub(r4, r4, Operand(r7, LSL, 3));
5492*f5c631daSSadaf Ebrahimi __ add(Narrow, r4, r4, fp);
5493*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r4);
5494*f5c631daSSadaf Ebrahimi __ blx(r9);
5495*f5c631daSSadaf Ebrahimi __ cbnz(r0, &l_2bfc);
5496*f5c631daSSadaf Ebrahimi __ lsls(Narrow, r4, r6, 5U);
5497*f5c631daSSadaf Ebrahimi __ sub(r4, r4, Operand(r6, LSL, 3));
5498*f5c631daSSadaf Ebrahimi __ add(Narrow, r4, r4, fp);
5499*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_2ba6);
5500*f5c631daSSadaf Ebrahimi // --------------
5501*f5c631daSSadaf Ebrahimi __ bind(&l_2bfc);
5502*f5c631daSSadaf Ebrahimi __ lsl(sl, r6, 5U);
5503*f5c631daSSadaf Ebrahimi __ mov(Narrow, lr, r4);
5504*f5c631daSSadaf Ebrahimi __ ldm(lr, WRITE_BACK, RegisterList(r0, r1, r2, r3));
5505*f5c631daSSadaf Ebrahimi __ add(r8, r7, 4294967295U);
5506*f5c631daSSadaf Ebrahimi __ sub(r6, sl, Operand(r6, LSL, 3));
5507*f5c631daSSadaf Ebrahimi __ add(r8, r8, Operand(r8, LSR, 31));
5508*f5c631daSSadaf Ebrahimi __ add(Narrow, r6, r6, fp);
5509*f5c631daSSadaf Ebrahimi __ asr(r8, r8, 1U);
5510*f5c631daSSadaf Ebrahimi __ stm(Narrow, r6, WRITE_BACK, RegisterList(r0, r1, r2, r3));
5511*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(sp));
5512*f5c631daSSadaf Ebrahimi __ ldm(lr, NO_WRITE_BACK, RegisterList(r0, r1));
5513*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r3, r7);
5514*f5c631daSSadaf Ebrahimi __ stm(r6, NO_WRITE_BACK, RegisterList(r0, r1));
5515*f5c631daSSadaf Ebrahimi __ b(ge, Narrow, &l_2ba6);
5516*f5c631daSSadaf Ebrahimi __ mov(Narrow, r6, r7);
5517*f5c631daSSadaf Ebrahimi __ mov(Narrow, r7, r8);
5518*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_2be2);
5519*f5c631daSSadaf Ebrahimi // --------------
5520*f5c631daSSadaf Ebrahimi __ bind(&l_2c2e);
5521*f5c631daSSadaf Ebrahimi __ mov(Narrow, r3, r2);
5522*f5c631daSSadaf Ebrahimi __ lsls(Narrow, r3, r3, 31U);
5523*f5c631daSSadaf Ebrahimi __ b(mi, Narrow, &l_2c44);
5524*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(sp));
5525*f5c631daSSadaf Ebrahimi __ mov(Narrow, r6, r3);
5526*f5c631daSSadaf Ebrahimi __ lsls(Narrow, r4, r3, 5U);
5527*f5c631daSSadaf Ebrahimi __ sub(r4, r4, Operand(r3, LSL, 3));
5528*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(sp, 4));
5529*f5c631daSSadaf Ebrahimi __ add(Narrow, r4, r4, r0);
5530*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_2b7c);
5531*f5c631daSSadaf Ebrahimi // --------------
5532*f5c631daSSadaf Ebrahimi __ bind(&l_2c44);
5533*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r4, MemOperand(sp));
5534*f5c631daSSadaf Ebrahimi __ add(Narrow, r7, sp, 76U);
5535*f5c631daSSadaf Ebrahimi __ ldm(Narrow, r7, WRITE_BACK, RegisterList(r0, r1, r2, r3));
5536*f5c631daSSadaf Ebrahimi __ add(Narrow, r5, sp, 8U);
5537*f5c631daSSadaf Ebrahimi __ mov(Narrow, r6, r5);
5538*f5c631daSSadaf Ebrahimi __ lsl(lr, r4, 5U);
5539*f5c631daSSadaf Ebrahimi __ stm(Narrow, r6, WRITE_BACK, RegisterList(r0, r1, r2, r3));
5540*f5c631daSSadaf Ebrahimi __ ldm(r7, NO_WRITE_BACK, RegisterList(r0, r1));
5541*f5c631daSSadaf Ebrahimi __ sub(r4, lr, Operand(r4, LSL, 3));
5542*f5c631daSSadaf Ebrahimi __ add(Narrow, r4, r4, fp);
5543*f5c631daSSadaf Ebrahimi __ stm(r6, NO_WRITE_BACK, RegisterList(r0, r1));
5544*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_2ba6);
5545*f5c631daSSadaf Ebrahimi __ push(RegisterList(0x4ff0));
5546*f5c631daSSadaf Ebrahimi __ sub(Narrow, sp, sp, 68U);
5547*f5c631daSSadaf Ebrahimi __ str(Narrow, r1, MemOperand(sp, 28));
5548*f5c631daSSadaf Ebrahimi __ subs(Narrow, r1, r1, r0);
5549*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r1, 47U);
5550*f5c631daSSadaf Ebrahimi __ mov(Narrow, r8, r0);
5551*f5c631daSSadaf Ebrahimi __ str(Narrow, r1, MemOperand(sp, 32));
5552*f5c631daSSadaf Ebrahimi __ mov(Narrow, sl, r2);
5553*f5c631daSSadaf Ebrahimi __ mov(Narrow, r9, r3);
5554*f5c631daSSadaf Ebrahimi __ b(le, Narrow, &l_2cf0);
5555*f5c631daSSadaf Ebrahimi __ asr(fp, r1, 3U);
5556*f5c631daSSadaf Ebrahimi __ mov(r3, 43691U);
5557*f5c631daSSadaf Ebrahimi __ movt(r3, 43690U);
5558*f5c631daSSadaf Ebrahimi __ str(sl, MemOperand(sp, 36));
5559*f5c631daSSadaf Ebrahimi __ mul(r3, r3, fp);
5560*f5c631daSSadaf Ebrahimi __ sub(ip, r3, 2U);
5561*f5c631daSSadaf Ebrahimi __ asr(fp, ip, 1U);
5562*f5c631daSSadaf Ebrahimi __ lsl(r7, fp, 5U);
5563*f5c631daSSadaf Ebrahimi __ mov(Narrow, sl, fp);
5564*f5c631daSSadaf Ebrahimi __ sub(r7, r7, Operand(fp, LSL, 3));
5565*f5c631daSSadaf Ebrahimi __ mov(Narrow, fp, r3);
5566*f5c631daSSadaf Ebrahimi __ subs(Narrow, r7, r7, 168U);
5567*f5c631daSSadaf Ebrahimi __ add(Narrow, r7, r7, r0);
5568*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_2cac);
5569*f5c631daSSadaf Ebrahimi // --------------
5570*f5c631daSSadaf Ebrahimi __ bind(&l_2ca8);
5571*f5c631daSSadaf Ebrahimi __ add(sl, sl, 4294967295U);
5572*f5c631daSSadaf Ebrahimi // --------------
5573*f5c631daSSadaf Ebrahimi __ bind(&l_2cac);
5574*f5c631daSSadaf Ebrahimi __ add(r5, r7, 168U);
5575*f5c631daSSadaf Ebrahimi __ add(Narrow, r4, sp, 40U);
5576*f5c631daSSadaf Ebrahimi }
Generate_43(TestAssembler * assembler)5577*f5c631daSSadaf Ebrahimi void Generate_43(TestAssembler* assembler) {
5578*f5c631daSSadaf Ebrahimi __ ldm(Narrow, r5, WRITE_BACK, RegisterList(r0, r1, r2, r3));
5579*f5c631daSSadaf Ebrahimi __ add(lr, sp, 44U);
5580*f5c631daSSadaf Ebrahimi __ mov(Narrow, r6, sp);
5581*f5c631daSSadaf Ebrahimi __ pld(MemOperand(r7));
5582*f5c631daSSadaf Ebrahimi __ subs(Narrow, r7, r7, 24U);
5583*f5c631daSSadaf Ebrahimi __ stm(Narrow, r4, WRITE_BACK, RegisterList(r0, r1, r2, r3));
5584*f5c631daSSadaf Ebrahimi __ ldm(r5, NO_WRITE_BACK, RegisterList(r0, r1));
5585*f5c631daSSadaf Ebrahimi __ str(r9, MemOperand(sp, 20));
5586*f5c631daSSadaf Ebrahimi __ stm(r4, NO_WRITE_BACK, RegisterList(r0, r1));
5587*f5c631daSSadaf Ebrahimi __ ldm(lr, WRITE_BACK, RegisterList(r0, r1, r2, r3));
5588*f5c631daSSadaf Ebrahimi __ ldr(r4, MemOperand(lr));
5589*f5c631daSSadaf Ebrahimi __ stm(Narrow, r6, WRITE_BACK, RegisterList(r0, r1, r2, r3));
5590*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r8);
5591*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(sp, 40));
5592*f5c631daSSadaf Ebrahimi __ mov(Narrow, r1, sl);
5593*f5c631daSSadaf Ebrahimi __ mov(Narrow, r2, fp);
5594*f5c631daSSadaf Ebrahimi __ str(Narrow, r4, MemOperand(r6));
5595*f5c631daSSadaf Ebrahimi // --------------
5596*f5c631daSSadaf Ebrahimi __ bind(&l_2ce2);
5597*f5c631daSSadaf Ebrahimi __ bl(&l_2ce2);
5598*f5c631daSSadaf Ebrahimi __ cmp(sl, 0U);
5599*f5c631daSSadaf Ebrahimi __ b(ne, Narrow, &l_2ca8);
5600*f5c631daSSadaf Ebrahimi __ ldr(sl, MemOperand(sp, 36));
5601*f5c631daSSadaf Ebrahimi // --------------
5602*f5c631daSSadaf Ebrahimi __ bind(&l_2cf0);
5603*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r4, MemOperand(sp, 28));
5604*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r4, sl);
5605*f5c631daSSadaf Ebrahimi __ b(cs, Narrow, &l_2d7a);
5606*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(sp, 32));
5607*f5c631daSSadaf Ebrahimi __ mov(r2, 43691U);
5608*f5c631daSSadaf Ebrahimi __ movt(r2, 43690U);
5609*f5c631daSSadaf Ebrahimi __ adds(Narrow, r4, r4, 96U);
5610*f5c631daSSadaf Ebrahimi __ asrs(Narrow, r3, r3, 3U);
5611*f5c631daSSadaf Ebrahimi __ mul(r3, r2, r3);
5612*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 28));
5613*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_2d16);
5614*f5c631daSSadaf Ebrahimi // --------------
5615*f5c631daSSadaf Ebrahimi __ bind(&l_2d0c);
5616*f5c631daSSadaf Ebrahimi __ sub(r3, r4, 72U);
5617*f5c631daSSadaf Ebrahimi __ adds(Narrow, r4, r4, 24U);
5618*f5c631daSSadaf Ebrahimi __ cmp(Narrow, sl, r3);
5619*f5c631daSSadaf Ebrahimi __ b(ls, Narrow, &l_2d7a);
5620*f5c631daSSadaf Ebrahimi // --------------
5621*f5c631daSSadaf Ebrahimi __ bind(&l_2d16);
5622*f5c631daSSadaf Ebrahimi __ sub(r5, r4, 96U);
5623*f5c631daSSadaf Ebrahimi __ mov(Narrow, r1, r8);
5624*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r5);
5625*f5c631daSSadaf Ebrahimi __ blx(r9);
5626*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r0, 0U);
5627*f5c631daSSadaf Ebrahimi __ b(eq, Narrow, &l_2d0c);
5628*f5c631daSSadaf Ebrahimi __ mov(Narrow, r6, r5);
5629*f5c631daSSadaf Ebrahimi __ add(lr, sp, 40U);
5630*f5c631daSSadaf Ebrahimi __ ldm(Narrow, r6, WRITE_BACK, RegisterList(r0, r1, r2, r3));
5631*f5c631daSSadaf Ebrahimi __ mov(Narrow, r7, r8);
5632*f5c631daSSadaf Ebrahimi __ add(fp, sp, 44U);
5633*f5c631daSSadaf Ebrahimi __ mov(Narrow, ip, sp);
5634*f5c631daSSadaf Ebrahimi __ pld(MemOperand(r4));
5635*f5c631daSSadaf Ebrahimi __ stm(lr, WRITE_BACK, RegisterList(r0, r1, r2, r3));
5636*f5c631daSSadaf Ebrahimi __ ldm(r6, NO_WRITE_BACK, RegisterList(r0, r1));
5637*f5c631daSSadaf Ebrahimi __ stm(lr, NO_WRITE_BACK, RegisterList(r0, r1));
5638*f5c631daSSadaf Ebrahimi __ ldm(Narrow, r7, WRITE_BACK, RegisterList(r0, r1, r2, r3));
5639*f5c631daSSadaf Ebrahimi __ stm(Narrow, r5, WRITE_BACK, RegisterList(r0, r1, r2, r3));
5640*f5c631daSSadaf Ebrahimi __ ldm(r7, NO_WRITE_BACK, RegisterList(r0, r1));
5641*f5c631daSSadaf Ebrahimi __ stm(r6, NO_WRITE_BACK, RegisterList(r0, r1));
5642*f5c631daSSadaf Ebrahimi __ ldm(fp, WRITE_BACK, RegisterList(r0, r1, r2, r3));
5643*f5c631daSSadaf Ebrahimi __ str(r9, MemOperand(sp, 20));
5644*f5c631daSSadaf Ebrahimi __ stm(ip, WRITE_BACK, RegisterList(r0, r1, r2, r3));
5645*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r8);
5646*f5c631daSSadaf Ebrahimi __ ldr(r5, MemOperand(fp));
5647*f5c631daSSadaf Ebrahimi __ movs(Narrow, r1, 0U);
5648*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(sp, 40));
5649*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(sp, 28));
5650*f5c631daSSadaf Ebrahimi __ str(r5, MemOperand(ip));
5651*f5c631daSSadaf Ebrahimi // --------------
5652*f5c631daSSadaf Ebrahimi __ bind(&l_2d6c);
5653*f5c631daSSadaf Ebrahimi __ bl(&l_2d6c);
5654*f5c631daSSadaf Ebrahimi __ sub(r3, r4, 72U);
5655*f5c631daSSadaf Ebrahimi __ adds(Narrow, r4, r4, 24U);
5656*f5c631daSSadaf Ebrahimi __ cmp(Narrow, sl, r3);
5657*f5c631daSSadaf Ebrahimi __ b(hi, Narrow, &l_2d16);
5658*f5c631daSSadaf Ebrahimi // --------------
5659*f5c631daSSadaf Ebrahimi __ bind(&l_2d7a);
5660*f5c631daSSadaf Ebrahimi __ add(Narrow, sp, sp, 68U);
5661*f5c631daSSadaf Ebrahimi __ pop(RegisterList(0x8ff0));
5662*f5c631daSSadaf Ebrahimi __ push(RegisterList(0x4ff0));
5663*f5c631daSSadaf Ebrahimi __ mov(Narrow, r6, r0);
5664*f5c631daSSadaf Ebrahimi __ sub(Narrow, sp, sp, 76U);
5665*f5c631daSSadaf Ebrahimi __ mov(Narrow, r4, r2);
5666*f5c631daSSadaf Ebrahimi __ str(Narrow, r2, MemOperand(sp, 36));
5667*f5c631daSSadaf Ebrahimi __ subs(Narrow, r2, r1, r6);
5668*f5c631daSSadaf Ebrahimi __ cmp(r2, 408U);
5669*f5c631daSSadaf Ebrahimi __ str(Narrow, r1, MemOperand(sp, 32));
5670*f5c631daSSadaf Ebrahimi __ b(lt, &l_2fa4);
5671*f5c631daSSadaf Ebrahimi __ mov(Narrow, r7, r3);
5672*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r4, 0U);
5673*f5c631daSSadaf Ebrahimi __ b(eq, &l_2f20);
5674*f5c631daSSadaf Ebrahimi __ mov(Narrow, r3, r1);
5675*f5c631daSSadaf Ebrahimi __ mov(r2, 43691U);
5676*f5c631daSSadaf Ebrahimi __ add(r1, r6, 24U);
5677*f5c631daSSadaf Ebrahimi __ movt(r2, 43690U);
5678*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r1);
5679*f5c631daSSadaf Ebrahimi __ str(Narrow, r2, MemOperand(sp, 44));
5680*f5c631daSSadaf Ebrahimi __ add(Narrow, r2, sp, 48U);
5681*f5c631daSSadaf Ebrahimi __ str(Narrow, r1, MemOperand(sp, 40));
5682*f5c631daSSadaf Ebrahimi __ str(Narrow, r2, MemOperand(sp, 28));
5683*f5c631daSSadaf Ebrahimi // --------------
5684*f5c631daSSadaf Ebrahimi __ bind(&l_2db8);
5685*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(sp, 36));
5686*f5c631daSSadaf Ebrahimi __ subs(Narrow, r3, r3, r6);
5687*f5c631daSSadaf Ebrahimi __ asrs(Narrow, r3, r3, 3U);
5688*f5c631daSSadaf Ebrahimi __ subs(r2, 1U);
5689*f5c631daSSadaf Ebrahimi __ str(Narrow, r2, MemOperand(sp, 36));
5690*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(sp, 32));
5691*f5c631daSSadaf Ebrahimi __ sub(r5, r2, 24U);
5692*f5c631daSSadaf Ebrahimi }
Generate_44(TestAssembler * assembler)5693*f5c631daSSadaf Ebrahimi void Generate_44(TestAssembler* assembler) {
5694*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(sp, 44));
5695*f5c631daSSadaf Ebrahimi __ mul(r3, r2, r3);
5696*f5c631daSSadaf Ebrahimi __ add(r3, r3, Operand(r3, LSR, 31));
5697*f5c631daSSadaf Ebrahimi __ asrs(Narrow, r3, r3, 1U);
5698*f5c631daSSadaf Ebrahimi __ lsls(Narrow, r4, r3, 5U);
5699*f5c631daSSadaf Ebrahimi __ sub(r3, r4, Operand(r3, LSL, 3));
5700*f5c631daSSadaf Ebrahimi __ adds(Narrow, r4, r6, r3);
5701*f5c631daSSadaf Ebrahimi __ mov(Narrow, r1, r4);
5702*f5c631daSSadaf Ebrahimi __ blx(r7);
5703*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r0, 0U);
5704*f5c631daSSadaf Ebrahimi __ b(eq, Narrow, &l_2ebe);
5705*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r4);
5706*f5c631daSSadaf Ebrahimi __ mov(Narrow, r1, r5);
5707*f5c631daSSadaf Ebrahimi __ blx(r7);
5708*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r0, 0U);
5709*f5c631daSSadaf Ebrahimi __ b(ne, Narrow, &l_2ed0);
5710*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r0, MemOperand(sp, 40));
5711*f5c631daSSadaf Ebrahimi __ mov(Narrow, r1, r5);
5712*f5c631daSSadaf Ebrahimi __ blx(r7);
5713*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r0, 0U);
5714*f5c631daSSadaf Ebrahimi __ b(eq, &l_2f0a);
5715*f5c631daSSadaf Ebrahimi // --------------
5716*f5c631daSSadaf Ebrahimi __ bind(&l_2dfa);
5717*f5c631daSSadaf Ebrahimi __ mov(Narrow, ip, r6);
5718*f5c631daSSadaf Ebrahimi __ ldr(r8, MemOperand(sp, 28));
5719*f5c631daSSadaf Ebrahimi __ ldm(ip, WRITE_BACK, RegisterList(r0, r1, r2, r3));
5720*f5c631daSSadaf Ebrahimi __ mov(Narrow, r4, r5);
5721*f5c631daSSadaf Ebrahimi __ mov(Narrow, r9, r6);
5722*f5c631daSSadaf Ebrahimi __ mov(Narrow, lr, r8);
5723*f5c631daSSadaf Ebrahimi __ stm(lr, WRITE_BACK, RegisterList(r0, r1, r2, r3));
5724*f5c631daSSadaf Ebrahimi __ ldm(ip, NO_WRITE_BACK, RegisterList(r0, r1));
5725*f5c631daSSadaf Ebrahimi __ stm(lr, NO_WRITE_BACK, RegisterList(r0, r1));
5726*f5c631daSSadaf Ebrahimi __ ldm(Narrow, r4, WRITE_BACK, RegisterList(r0, r1, r2, r3));
5727*f5c631daSSadaf Ebrahimi __ stm(r9, WRITE_BACK, RegisterList(r0, r1, r2, r3));
5728*f5c631daSSadaf Ebrahimi __ ldm(r4, NO_WRITE_BACK, RegisterList(r0, r1));
5729*f5c631daSSadaf Ebrahimi __ stm(ip, NO_WRITE_BACK, RegisterList(r0, r1));
5730*f5c631daSSadaf Ebrahimi __ ldm(r8, WRITE_BACK, RegisterList(r0, r1, r2, r3));
5731*f5c631daSSadaf Ebrahimi __ stm(Narrow, r5, WRITE_BACK, RegisterList(r0, r1, r2, r3));
5732*f5c631daSSadaf Ebrahimi __ ldm(lr, NO_WRITE_BACK, RegisterList(r0, r1));
5733*f5c631daSSadaf Ebrahimi __ stm(r4, NO_WRITE_BACK, RegisterList(r0, r1));
5734*f5c631daSSadaf Ebrahimi // --------------
5735*f5c631daSSadaf Ebrahimi __ bind(&l_2e32);
5736*f5c631daSSadaf Ebrahimi __ ldr(r8, MemOperand(sp, 32));
5737*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r5, MemOperand(sp, 40));
5738*f5c631daSSadaf Ebrahimi // --------------
5739*f5c631daSSadaf Ebrahimi __ bind(&l_2e38);
5740*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r5);
5741*f5c631daSSadaf Ebrahimi __ mov(Narrow, r1, r6);
5742*f5c631daSSadaf Ebrahimi __ mov(Narrow, r4, r5);
5743*f5c631daSSadaf Ebrahimi __ adds(Narrow, r5, r5, 24U);
5744*f5c631daSSadaf Ebrahimi __ blx(r7);
5745*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r0, 0U);
5746*f5c631daSSadaf Ebrahimi __ b(ne, Narrow, &l_2e38);
5747*f5c631daSSadaf Ebrahimi __ sub(r5, r8, 24U);
5748*f5c631daSSadaf Ebrahimi // --------------
5749*f5c631daSSadaf Ebrahimi __ bind(&l_2e4a);
5750*f5c631daSSadaf Ebrahimi __ mov(Narrow, r1, r5);
5751*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r6);
5752*f5c631daSSadaf Ebrahimi __ mov(Narrow, r8, r5);
5753*f5c631daSSadaf Ebrahimi __ subs(Narrow, r5, r5, 24U);
5754*f5c631daSSadaf Ebrahimi __ blx(r7);
5755*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r0, 0U);
5756*f5c631daSSadaf Ebrahimi __ b(ne, Narrow, &l_2e4a);
5757*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r8, r4);
5758*f5c631daSSadaf Ebrahimi __ b(ls, Narrow, &l_2e9c);
5759*f5c631daSSadaf Ebrahimi __ mov(Narrow, r9, r4);
5760*f5c631daSSadaf Ebrahimi __ ldr(fp, MemOperand(sp, 28));
5761*f5c631daSSadaf Ebrahimi __ ldm(r9, WRITE_BACK, RegisterList(r0, r1, r2, r3));
5762*f5c631daSSadaf Ebrahimi __ mov(Narrow, lr, r8);
5763*f5c631daSSadaf Ebrahimi __ add(r5, r4, 24U);
5764*f5c631daSSadaf Ebrahimi __ mov(Narrow, sl, r8);
5765*f5c631daSSadaf Ebrahimi __ mov(Narrow, ip, fp);
5766*f5c631daSSadaf Ebrahimi __ stm(ip, WRITE_BACK, RegisterList(r0, r1, r2, r3));
5767*f5c631daSSadaf Ebrahimi __ ldm(r9, NO_WRITE_BACK, RegisterList(r0, r1));
5768*f5c631daSSadaf Ebrahimi __ stm(ip, NO_WRITE_BACK, RegisterList(r0, r1));
5769*f5c631daSSadaf Ebrahimi __ ldm(lr, WRITE_BACK, RegisterList(r0, r1, r2, r3));
5770*f5c631daSSadaf Ebrahimi __ stm(Narrow, r4, WRITE_BACK, RegisterList(r0, r1, r2, r3));
5771*f5c631daSSadaf Ebrahimi __ ldm(lr, NO_WRITE_BACK, RegisterList(r0, r1));
5772*f5c631daSSadaf Ebrahimi __ stm(r9, NO_WRITE_BACK, RegisterList(r0, r1));
5773*f5c631daSSadaf Ebrahimi __ ldm(fp, WRITE_BACK, RegisterList(r0, r1, r2, r3));
5774*f5c631daSSadaf Ebrahimi __ stm(sl, WRITE_BACK, RegisterList(r0, r1, r2, r3));
5775*f5c631daSSadaf Ebrahimi __ ldm(ip, NO_WRITE_BACK, RegisterList(r0, r1));
5776*f5c631daSSadaf Ebrahimi __ stm(lr, NO_WRITE_BACK, RegisterList(r0, r1));
5777*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_2e38);
5778*f5c631daSSadaf Ebrahimi // --------------
5779*f5c631daSSadaf Ebrahimi __ bind(&l_2e9c);
5780*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(sp, 36));
5781*f5c631daSSadaf Ebrahimi __ mov(Narrow, r3, r7);
5782*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r1, MemOperand(sp, 32));
5783*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r4);
5784*f5c631daSSadaf Ebrahimi // --------------
5785*f5c631daSSadaf Ebrahimi __ bind(&l_2ea4);
5786*f5c631daSSadaf Ebrahimi __ bl(&l_2ea4);
5787*f5c631daSSadaf Ebrahimi __ subs(Narrow, r2, r4, r6);
5788*f5c631daSSadaf Ebrahimi __ mov(Narrow, r3, r4);
5789*f5c631daSSadaf Ebrahimi __ cmp(r2, 408U);
5790*f5c631daSSadaf Ebrahimi __ b(lt, Narrow, &l_2fa4);
5791*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(sp, 36));
5792*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r2, 0U);
5793*f5c631daSSadaf Ebrahimi __ b(eq, Narrow, &l_2f26);
5794*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 32));
5795*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r0, MemOperand(sp, 40));
5796*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_2db8);
5797*f5c631daSSadaf Ebrahimi // --------------
5798*f5c631daSSadaf Ebrahimi __ bind(&l_2ebe);
5799*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r0, MemOperand(sp, 40));
5800*f5c631daSSadaf Ebrahimi __ mov(Narrow, r1, r5);
5801*f5c631daSSadaf Ebrahimi __ blx(r7);
5802*f5c631daSSadaf Ebrahimi __ cbnz(r0, &l_2f0a);
5803*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r4);
5804*f5c631daSSadaf Ebrahimi __ mov(Narrow, r1, r5);
5805*f5c631daSSadaf Ebrahimi __ blx(r7);
5806*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r0, 0U);
5807*f5c631daSSadaf Ebrahimi __ b(ne, Narrow, &l_2dfa);
5808*f5c631daSSadaf Ebrahimi }
Generate_45(TestAssembler * assembler)5809*f5c631daSSadaf Ebrahimi void Generate_45(TestAssembler* assembler) {
5810*f5c631daSSadaf Ebrahimi // --------------
5811*f5c631daSSadaf Ebrahimi __ bind(&l_2ed0);
5812*f5c631daSSadaf Ebrahimi __ mov(Narrow, lr, r6);
5813*f5c631daSSadaf Ebrahimi __ ldr(r8, MemOperand(sp, 28));
5814*f5c631daSSadaf Ebrahimi __ ldm(lr, WRITE_BACK, RegisterList(r0, r1, r2, r3));
5815*f5c631daSSadaf Ebrahimi __ mov(Narrow, r9, r6);
5816*f5c631daSSadaf Ebrahimi __ mov(Narrow, ip, r4);
5817*f5c631daSSadaf Ebrahimi __ mov(Narrow, r5, r8);
5818*f5c631daSSadaf Ebrahimi // --------------
5819*f5c631daSSadaf Ebrahimi __ bind(&l_2ee0);
5820*f5c631daSSadaf Ebrahimi __ stm(Narrow, r5, WRITE_BACK, RegisterList(r0, r1, r2, r3));
5821*f5c631daSSadaf Ebrahimi __ ldm(lr, NO_WRITE_BACK, RegisterList(r0, r1));
5822*f5c631daSSadaf Ebrahimi __ stm(r5, NO_WRITE_BACK, RegisterList(r0, r1));
5823*f5c631daSSadaf Ebrahimi __ ldm(Narrow, r4, WRITE_BACK, RegisterList(r0, r1, r2, r3));
5824*f5c631daSSadaf Ebrahimi __ stm(r9, WRITE_BACK, RegisterList(r0, r1, r2, r3));
5825*f5c631daSSadaf Ebrahimi __ ldm(r4, NO_WRITE_BACK, RegisterList(r0, r1));
5826*f5c631daSSadaf Ebrahimi __ stm(lr, NO_WRITE_BACK, RegisterList(r0, r1));
5827*f5c631daSSadaf Ebrahimi __ ldm(r8, WRITE_BACK, RegisterList(r0, r1, r2, r3));
5828*f5c631daSSadaf Ebrahimi __ stm(ip, WRITE_BACK, RegisterList(r0, r1, r2, r3));
5829*f5c631daSSadaf Ebrahimi __ ldm(r5, NO_WRITE_BACK, RegisterList(r0, r1));
5830*f5c631daSSadaf Ebrahimi __ stm(r4, NO_WRITE_BACK, RegisterList(r0, r1));
5831*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_2e32);
5832*f5c631daSSadaf Ebrahimi // --------------
5833*f5c631daSSadaf Ebrahimi __ bind(&l_2f0a);
5834*f5c631daSSadaf Ebrahimi __ ldr(r8, MemOperand(sp, 28));
5835*f5c631daSSadaf Ebrahimi __ mov(Narrow, lr, r6);
5836*f5c631daSSadaf Ebrahimi __ ldr(ip, MemOperand(sp, 40));
5837*f5c631daSSadaf Ebrahimi __ mov(Narrow, r9, r6);
5838*f5c631daSSadaf Ebrahimi __ ldm(lr, WRITE_BACK, RegisterList(r0, r1, r2, r3));
5839*f5c631daSSadaf Ebrahimi __ mov(Narrow, r5, r8);
5840*f5c631daSSadaf Ebrahimi __ mov(Narrow, r4, ip);
5841*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_2ee0);
5842*f5c631daSSadaf Ebrahimi // --------------
5843*f5c631daSSadaf Ebrahimi __ bind(&l_2f20);
5844*f5c631daSSadaf Ebrahimi __ mov(Narrow, r4, r1);
5845*f5c631daSSadaf Ebrahimi __ add(Narrow, r3, sp, 48U);
5846*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 28));
5847*f5c631daSSadaf Ebrahimi // --------------
5848*f5c631daSSadaf Ebrahimi __ bind(&l_2f26);
5849*f5c631daSSadaf Ebrahimi __ mov(fp, 43691U);
5850*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r6);
5851*f5c631daSSadaf Ebrahimi __ mov(Narrow, r1, r4);
5852*f5c631daSSadaf Ebrahimi __ mov(Narrow, r2, r4);
5853*f5c631daSSadaf Ebrahimi __ mov(Narrow, r3, r7);
5854*f5c631daSSadaf Ebrahimi __ sub(r8, r4, 144U);
5855*f5c631daSSadaf Ebrahimi __ movt(fp, 43690U);
5856*f5c631daSSadaf Ebrahimi // --------------
5857*f5c631daSSadaf Ebrahimi __ bind(&l_2f3a);
5858*f5c631daSSadaf Ebrahimi __ bl(&l_2f3a);
5859*f5c631daSSadaf Ebrahimi // --------------
5860*f5c631daSSadaf Ebrahimi __ bind(&l_2f3e);
5861*f5c631daSSadaf Ebrahimi __ add(r4, r8, 120U);
5862*f5c631daSSadaf Ebrahimi __ ldr(r9, MemOperand(sp, 28));
5863*f5c631daSSadaf Ebrahimi __ ldm(Narrow, r4, WRITE_BACK, RegisterList(r0, r1, r2, r3));
5864*f5c631daSSadaf Ebrahimi __ mov(Narrow, r5, r6);
5865*f5c631daSSadaf Ebrahimi __ add(sl, r8, 120U);
5866*f5c631daSSadaf Ebrahimi __ add(ip, sp, 52U);
5867*f5c631daSSadaf Ebrahimi __ pld(MemOperand(r8));
5868*f5c631daSSadaf Ebrahimi __ mov(Narrow, lr, sp);
5869*f5c631daSSadaf Ebrahimi __ sub(r8, r8, 24U);
5870*f5c631daSSadaf Ebrahimi __ stm(r9, WRITE_BACK, RegisterList(r0, r1, r2, r3));
5871*f5c631daSSadaf Ebrahimi __ ldm(r4, NO_WRITE_BACK, RegisterList(r0, r1));
5872*f5c631daSSadaf Ebrahimi __ stm(r9, NO_WRITE_BACK, RegisterList(r0, r1));
5873*f5c631daSSadaf Ebrahimi __ rsb(r9, r6, sl);
5874*f5c631daSSadaf Ebrahimi __ ldm(Narrow, r5, WRITE_BACK, RegisterList(r0, r1, r2, r3));
5875*f5c631daSSadaf Ebrahimi __ stm(sl, WRITE_BACK, RegisterList(r0, r1, r2, r3));
5876*f5c631daSSadaf Ebrahimi __ asr(sl, r9, 3U);
5877*f5c631daSSadaf Ebrahimi __ ldm(r5, NO_WRITE_BACK, RegisterList(r0, r1));
5878*f5c631daSSadaf Ebrahimi __ stm(r4, NO_WRITE_BACK, RegisterList(r0, r1));
5879*f5c631daSSadaf Ebrahimi __ ldm(ip, WRITE_BACK, RegisterList(r0, r1, r2, r3));
5880*f5c631daSSadaf Ebrahimi __ str(Narrow, r7, MemOperand(sp, 20));
5881*f5c631daSSadaf Ebrahimi __ stm(lr, WRITE_BACK, RegisterList(r0, r1, r2, r3));
5882*f5c631daSSadaf Ebrahimi __ mul(r2, fp, sl);
5883*f5c631daSSadaf Ebrahimi __ ldr(r4, MemOperand(ip));
5884*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r6);
5885*f5c631daSSadaf Ebrahimi __ movs(Narrow, r1, 0U);
5886*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(sp, 48));
5887*f5c631daSSadaf Ebrahimi __ str(r4, MemOperand(lr));
5888*f5c631daSSadaf Ebrahimi // --------------
5889*f5c631daSSadaf Ebrahimi __ bind(&l_2f9a);
5890*f5c631daSSadaf Ebrahimi __ bl(&l_2f9a);
5891*f5c631daSSadaf Ebrahimi __ cmp(r9, 47U);
5892*f5c631daSSadaf Ebrahimi __ b(gt, Narrow, &l_2f3e);
5893*f5c631daSSadaf Ebrahimi // --------------
5894*f5c631daSSadaf Ebrahimi __ bind(&l_2fa4);
5895*f5c631daSSadaf Ebrahimi __ add(Narrow, sp, sp, 76U);
5896*f5c631daSSadaf Ebrahimi __ pop(RegisterList(0x8ff0));
5897*f5c631daSSadaf Ebrahimi __ nop(Narrow);
5898*f5c631daSSadaf Ebrahimi __ push(RegisterList(0x47f0));
5899*f5c631daSSadaf Ebrahimi __ movs(Narrow, r4, 0U);
5900*f5c631daSSadaf Ebrahimi __ ldm(r0, NO_WRITE_BACK, RegisterList(r5, sl));
5901*f5c631daSSadaf Ebrahimi __ sub(Narrow, sp, sp, 24U);
5902*f5c631daSSadaf Ebrahimi __ str(Narrow, r4, MemOperand(r0, 40));
5903*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r5, sl);
5904*f5c631daSSadaf Ebrahimi __ itt(eq);
5905*f5c631daSSadaf Ebrahimi __ mvn(eq, r3, 2147483648U);
5906*f5c631daSSadaf Ebrahimi __ str(eq, Narrow, r3, MemOperand(r0, 36));
5907*f5c631daSSadaf Ebrahimi __ b(eq, Narrow, &l_302a);
5908*f5c631daSSadaf Ebrahimi __ mov(Narrow, r7, r0);
5909*f5c631daSSadaf Ebrahimi __ mov(Narrow, r2, sl);
5910*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r5);
5911*f5c631daSSadaf Ebrahimi __ cbz(r1, &l_3030);
5912*f5c631daSSadaf Ebrahimi // --------------
5913*f5c631daSSadaf Ebrahimi __ bind(&l_2fce);
5914*f5c631daSSadaf Ebrahimi __ subs(Narrow, r3, r2, r0);
5915*f5c631daSSadaf Ebrahimi __ mov(r5, 43691U);
5916*f5c631daSSadaf Ebrahimi __ asrs(Narrow, r3, r3, 3U);
5917*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r1, MemOperand(r7, 28));
5918*f5c631daSSadaf Ebrahimi __ ldr(r8, MemOperand(r7, 24));
5919*f5c631daSSadaf Ebrahimi __ movt(r5, 43690U);
5920*f5c631daSSadaf Ebrahimi __ mul(r3, r5, r3);
5921*f5c631daSSadaf Ebrahimi __ add(ip, r1, 4294967295U);
5922*f5c631daSSadaf Ebrahimi __ add(r1, r8, Operand(ip, LSL, 1));
5923*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r3, 0U);
5924*f5c631daSSadaf Ebrahimi __ add(Narrow, r4, r4, r1);
5925*f5c631daSSadaf Ebrahimi __ mvn(r1, 2147483648U);
5926*f5c631daSSadaf Ebrahimi __ str(Narrow, r4, MemOperand(r7, 40));
5927*f5c631daSSadaf Ebrahimi __ b(le, Narrow, &l_3020);
5928*f5c631daSSadaf Ebrahimi // --------------
5929*f5c631daSSadaf Ebrahimi __ bind(&l_2ff8);
5930*f5c631daSSadaf Ebrahimi __ ldr(r5, MemOperand(r2, -24));
5931*f5c631daSSadaf Ebrahimi __ subs(Narrow, r2, r2, 24U);
5932*f5c631daSSadaf Ebrahimi }
Generate_46(TestAssembler * assembler)5933*f5c631daSSadaf Ebrahimi void Generate_46(TestAssembler* assembler) {
5934*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r2, 12));
5935*f5c631daSSadaf Ebrahimi __ ldr(lr, MemOperand(r2, 8));
5936*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r5, MemOperand(r5, 4));
5937*f5c631daSSadaf Ebrahimi __ subs(r3, 1U);
5938*f5c631daSSadaf Ebrahimi __ mvns(Narrow, r6, r3);
5939*f5c631daSSadaf Ebrahimi __ subs(Narrow, r1, r1, r5);
5940*f5c631daSSadaf Ebrahimi __ add(Narrow, r3, r3, r5);
5941*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r1, lr);
5942*f5c631daSSadaf Ebrahimi __ ite(le);
5943*f5c631daSSadaf Ebrahimi __ and_(le, Narrow, r1, r1, r6);
5944*f5c631daSSadaf Ebrahimi __ and_(gt, r1, r6, lr);
5945*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r2, r0);
5946*f5c631daSSadaf Ebrahimi __ add(Narrow, r4, r4, r3);
5947*f5c631daSSadaf Ebrahimi __ str(Narrow, r4, MemOperand(r7, 40));
5948*f5c631daSSadaf Ebrahimi __ b(ne, Narrow, &l_2ff8);
5949*f5c631daSSadaf Ebrahimi // --------------
5950*f5c631daSSadaf Ebrahimi __ bind(&l_3020);
5951*f5c631daSSadaf Ebrahimi __ rsb(r1, r8, r1);
5952*f5c631daSSadaf Ebrahimi __ bic(r1, r1, ip);
5953*f5c631daSSadaf Ebrahimi __ str(Narrow, r1, MemOperand(r7, 36));
5954*f5c631daSSadaf Ebrahimi // --------------
5955*f5c631daSSadaf Ebrahimi __ bind(&l_302a);
5956*f5c631daSSadaf Ebrahimi __ add(Narrow, sp, sp, 24U);
5957*f5c631daSSadaf Ebrahimi __ pop(RegisterList(0x87f0));
5958*f5c631daSSadaf Ebrahimi // --------------
5959*f5c631daSSadaf Ebrahimi __ bind(&l_3030);
5960*f5c631daSSadaf Ebrahimi __ rsb(r4, r5, sl);
5961*f5c631daSSadaf Ebrahimi __ mov(r2, 43691U);
5962*f5c631daSSadaf Ebrahimi __ asrs(Narrow, r1, r4, 3U);
5963*f5c631daSSadaf Ebrahimi __ movt(r2, 43690U);
5964*f5c631daSSadaf Ebrahimi __ movw(r3, 0U);
5965*f5c631daSSadaf Ebrahimi __ mul(r2, r2, r1);
5966*f5c631daSSadaf Ebrahimi __ movt(r3, 0U);
5967*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r5);
5968*f5c631daSSadaf Ebrahimi __ mov(Narrow, r1, sl);
5969*f5c631daSSadaf Ebrahimi __ clz(r2, r2);
5970*f5c631daSSadaf Ebrahimi __ rsb(r2, r2, 31U);
5971*f5c631daSSadaf Ebrahimi __ lsls(Narrow, r2, r2, 1U);
5972*f5c631daSSadaf Ebrahimi // --------------
5973*f5c631daSSadaf Ebrahimi __ bind(&l_3058);
5974*f5c631daSSadaf Ebrahimi __ bl(&l_3058);
5975*f5c631daSSadaf Ebrahimi __ cmp(r4, 408U);
5976*f5c631daSSadaf Ebrahimi __ b(lt, Narrow, &l_30e2);
5977*f5c631daSSadaf Ebrahimi __ add(r4, r5, 384U);
5978*f5c631daSSadaf Ebrahimi __ movw(r2, 0U);
5979*f5c631daSSadaf Ebrahimi __ mov(Narrow, r1, r4);
5980*f5c631daSSadaf Ebrahimi __ movt(r2, 0U);
5981*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r5);
5982*f5c631daSSadaf Ebrahimi // --------------
5983*f5c631daSSadaf Ebrahimi __ bind(&l_3072);
5984*f5c631daSSadaf Ebrahimi __ bl(&l_3072);
5985*f5c631daSSadaf Ebrahimi __ cmp(Narrow, sl, r4);
5986*f5c631daSSadaf Ebrahimi __ it(ne);
5987*f5c631daSSadaf Ebrahimi __ add(ne, r9, r5, 504U);
5988*f5c631daSSadaf Ebrahimi __ b(eq, Narrow, &l_30f2);
5989*f5c631daSSadaf Ebrahimi // --------------
5990*f5c631daSSadaf Ebrahimi __ bind(&l_3080);
5991*f5c631daSSadaf Ebrahimi __ sub(r5, r9, 120U);
5992*f5c631daSSadaf Ebrahimi __ mov(Narrow, r4, sp);
5993*f5c631daSSadaf Ebrahimi __ ldm(Narrow, r5, WRITE_BACK, RegisterList(r0, r1, r2, r3));
5994*f5c631daSSadaf Ebrahimi __ sub(r6, r9, 144U);
5995*f5c631daSSadaf Ebrahimi __ sub(r8, r9, 120U);
5996*f5c631daSSadaf Ebrahimi __ pld(MemOperand(r9));
5997*f5c631daSSadaf Ebrahimi __ stm(Narrow, r4, WRITE_BACK, RegisterList(r0, r1, r2, r3));
5998*f5c631daSSadaf Ebrahimi __ ldm(r5, NO_WRITE_BACK, RegisterList(r0, r1));
5999*f5c631daSSadaf Ebrahimi __ stm(r4, NO_WRITE_BACK, RegisterList(r0, r1));
6000*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_30b6);
6001*f5c631daSSadaf Ebrahimi // --------------
6002*f5c631daSSadaf Ebrahimi __ bind(&l_30a0);
6003*f5c631daSSadaf Ebrahimi __ add(r8, r6, 24U);
6004*f5c631daSSadaf Ebrahimi __ add(r4, r6, 48U);
6005*f5c631daSSadaf Ebrahimi __ mov(Narrow, r5, r8);
6006*f5c631daSSadaf Ebrahimi __ ldm(Narrow, r5, WRITE_BACK, RegisterList(r0, r1, r2, r3));
6007*f5c631daSSadaf Ebrahimi __ stm(Narrow, r4, WRITE_BACK, RegisterList(r0, r1, r2, r3));
6008*f5c631daSSadaf Ebrahimi __ ldm(r5, NO_WRITE_BACK, RegisterList(r0, r1));
6009*f5c631daSSadaf Ebrahimi __ stm(r4, NO_WRITE_BACK, RegisterList(r0, r1));
6010*f5c631daSSadaf Ebrahimi // --------------
6011*f5c631daSSadaf Ebrahimi __ bind(&l_30b6);
6012*f5c631daSSadaf Ebrahimi __ mov(Narrow, r1, r6);
6013*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, sp);
6014*f5c631daSSadaf Ebrahimi // --------------
6015*f5c631daSSadaf Ebrahimi __ bind(&l_30ba);
6016*f5c631daSSadaf Ebrahimi __ bl(&l_30ba);
6017*f5c631daSSadaf Ebrahimi __ subs(Narrow, r6, r6, 24U);
6018*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r0, 0U);
6019*f5c631daSSadaf Ebrahimi __ b(ne, Narrow, &l_30a0);
6020*f5c631daSSadaf Ebrahimi __ mov(Narrow, r4, sp);
6021*f5c631daSSadaf Ebrahimi __ sub(r5, r9, 96U);
6022*f5c631daSSadaf Ebrahimi __ ldm(Narrow, r4, WRITE_BACK, RegisterList(r0, r1, r2, r3));
6023*f5c631daSSadaf Ebrahimi __ cmp(Narrow, sl, r5);
6024*f5c631daSSadaf Ebrahimi __ add(r9, r9, 24U);
6025*f5c631daSSadaf Ebrahimi __ stm(r8, WRITE_BACK, RegisterList(r0, r1, r2, r3));
6026*f5c631daSSadaf Ebrahimi __ ldm(r4, NO_WRITE_BACK, RegisterList(r0, r1));
6027*f5c631daSSadaf Ebrahimi __ stm(r8, NO_WRITE_BACK, RegisterList(r0, r1));
6028*f5c631daSSadaf Ebrahimi __ b(ne, Narrow, &l_3080);
6029*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_30f2);
6030*f5c631daSSadaf Ebrahimi // --------------
6031*f5c631daSSadaf Ebrahimi __ bind(&l_30e2);
6032*f5c631daSSadaf Ebrahimi __ movw(r2, 0U);
6033*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r5);
6034*f5c631daSSadaf Ebrahimi __ mov(Narrow, r1, sl);
6035*f5c631daSSadaf Ebrahimi __ movt(r2, 0U);
6036*f5c631daSSadaf Ebrahimi // --------------
6037*f5c631daSSadaf Ebrahimi __ bind(&l_30ee);
6038*f5c631daSSadaf Ebrahimi __ bl(&l_30ee);
6039*f5c631daSSadaf Ebrahimi // --------------
6040*f5c631daSSadaf Ebrahimi __ bind(&l_30f2);
6041*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r4, MemOperand(r7, 40));
6042*f5c631daSSadaf Ebrahimi __ ldm(r7, NO_WRITE_BACK, RegisterList(r0, r2));
6043*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_2fce);
6044*f5c631daSSadaf Ebrahimi __ nop(Narrow);
6045*f5c631daSSadaf Ebrahimi __ push(RegisterList(0x4ff0));
6046*f5c631daSSadaf Ebrahimi __ mov(Narrow, r9, r2);
6047*f5c631daSSadaf Ebrahimi __ ldrb(Narrow, r2, MemOperand(r2, 16));
6048*f5c631daSSadaf Ebrahimi __ sub(Narrow, sp, sp, 92U);
6049*f5c631daSSadaf Ebrahimi __ mov(Narrow, r8, r0);
6050*f5c631daSSadaf Ebrahimi __ mov(sl, 0U);
6051*f5c631daSSadaf Ebrahimi __ str(Narrow, r1, MemOperand(sp, 16));
6052*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r2, 0U);
6053*f5c631daSSadaf Ebrahimi __ b(ne, &l_3384);
6054*f5c631daSSadaf Ebrahimi __ clz(sl, r3);
6055*f5c631daSSadaf Ebrahimi __ lsr(sl, sl, 5U);
6056*f5c631daSSadaf Ebrahimi __ add(Narrow, r3, sp, 36U);
6057*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp));
6058*f5c631daSSadaf Ebrahimi }
Generate_47(TestAssembler * assembler)6059*f5c631daSSadaf Ebrahimi void Generate_47(TestAssembler* assembler) {
6060*f5c631daSSadaf Ebrahimi __ mov(Narrow, r2, sl);
6061*f5c631daSSadaf Ebrahimi __ mov(Narrow, r3, r9);
6062*f5c631daSSadaf Ebrahimi // --------------
6063*f5c631daSSadaf Ebrahimi __ bind(&l_3124);
6064*f5c631daSSadaf Ebrahimi __ bl(&l_3124);
6065*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r0, 0U);
6066*f5c631daSSadaf Ebrahimi __ b(eq, &l_3410);
6067*f5c631daSSadaf Ebrahimi __ ldr(r3, MemOperand(r8, 4));
6068*f5c631daSSadaf Ebrahimi __ ldr(r1, MemOperand(r8, 12));
6069*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r4, MemOperand(sp, 36));
6070*f5c631daSSadaf Ebrahimi __ subs(Narrow, r1, r1, r3);
6071*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(sp, 16));
6072*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r5, MemOperand(r4));
6073*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r3, 14U);
6074*f5c631daSSadaf Ebrahimi __ ldr(r3, MemOperand(r8, 28));
6075*f5c631daSSadaf Ebrahimi __ b(eq, &l_33e0);
6076*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r3, 1U);
6077*f5c631daSSadaf Ebrahimi __ ittte(eq);
6078*f5c631daSSadaf Ebrahimi __ add(eq, Narrow, r2, r5, 4U);
6079*f5c631daSSadaf Ebrahimi __ add(eq, Narrow, r6, r1, 4U);
6080*f5c631daSSadaf Ebrahimi __ mov(eq, Narrow, r3, 4U);
6081*f5c631daSSadaf Ebrahimi __ mov(ne, Narrow, r2, r5);
6082*f5c631daSSadaf Ebrahimi __ itt(ne);
6083*f5c631daSSadaf Ebrahimi __ mov(ne, Narrow, r6, r1);
6084*f5c631daSSadaf Ebrahimi __ mov(ne, Narrow, r3, 8U);
6085*f5c631daSSadaf Ebrahimi // --------------
6086*f5c631daSSadaf Ebrahimi __ bind(&l_315a);
6087*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r0, MemOperand(r4, 16));
6088*f5c631daSSadaf Ebrahimi __ add(Narrow, r3, r3, r6);
6089*f5c631daSSadaf Ebrahimi __ cbz(r0, &l_3164);
6090*f5c631daSSadaf Ebrahimi __ bic(r3, r3, 0x3);
6091*f5c631daSSadaf Ebrahimi // --------------
6092*f5c631daSSadaf Ebrahimi __ bind(&l_3164);
6093*f5c631daSSadaf Ebrahimi __ add(r0, r8, 96U);
6094*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r7, MemOperand(r4, 4));
6095*f5c631daSSadaf Ebrahimi __ str(Narrow, r0, MemOperand(sp, 24));
6096*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r0, MemOperand(r4, 8));
6097*f5c631daSSadaf Ebrahimi __ ldr(fp, MemOperand(r4, 12));
6098*f5c631daSSadaf Ebrahimi __ add(ip, r3, r7);
6099*f5c631daSSadaf Ebrahimi __ str(r9, MemOperand(sp));
6100*f5c631daSSadaf Ebrahimi __ add(lr, r3, r0);
6101*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r0, MemOperand(sp, 24));
6102*f5c631daSSadaf Ebrahimi __ add(Narrow, r3, sp, 60U);
6103*f5c631daSSadaf Ebrahimi __ str(ip, MemOperand(sp, 72));
6104*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 76));
6105*f5c631daSSadaf Ebrahimi __ str(fp, MemOperand(sp, 68));
6106*f5c631daSSadaf Ebrahimi __ str(Narrow, r6, MemOperand(sp, 60));
6107*f5c631daSSadaf Ebrahimi __ str(Narrow, r5, MemOperand(sp, 64));
6108*f5c631daSSadaf Ebrahimi // --------------
6109*f5c631daSSadaf Ebrahimi __ bind(&l_3192);
6110*f5c631daSSadaf Ebrahimi __ bl(&l_3192);
6111*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r0, 0U);
6112*f5c631daSSadaf Ebrahimi __ b(ne, Narrow, &l_3242);
6113*f5c631daSSadaf Ebrahimi __ add(r3, r8, 44U);
6114*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 8));
6115*f5c631daSSadaf Ebrahimi // --------------
6116*f5c631daSSadaf Ebrahimi __ bind(&l_31a0);
6117*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(sp, 8));
6118*f5c631daSSadaf Ebrahimi __ movw(r3, 0U);
6119*f5c631daSSadaf Ebrahimi __ movt(r3, 0U);
6120*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 20));
6121*f5c631daSSadaf Ebrahimi __ str(Narrow, r2, MemOperand(sp, 28));
6122*f5c631daSSadaf Ebrahimi // --------------
6123*f5c631daSSadaf Ebrahimi __ bind(&l_31ae);
6124*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r4, &l_3444);
6125*f5c631daSSadaf Ebrahimi __ movs(Narrow, r3, 0U);
6126*f5c631daSSadaf Ebrahimi __ str(Narrow, r2, MemOperand(sp, 80));
6127*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 64));
6128*f5c631daSSadaf Ebrahimi __ str(Narrow, r4, MemOperand(sp, 60));
6129*f5c631daSSadaf Ebrahimi __ strb(r3, MemOperand(sp, 77));
6130*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 84));
6131*f5c631daSSadaf Ebrahimi // --------------
6132*f5c631daSSadaf Ebrahimi __ bind(&l_31be);
6133*f5c631daSSadaf Ebrahimi __ ldr(r3, MemOperand(r8, 44));
6134*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(sp, 20));
6135*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r0, MemOperand(sp, 28));
6136*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r3));
6137*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r3, r2);
6138*f5c631daSSadaf Ebrahimi __ b(ne, &l_33ee);
6139*f5c631daSSadaf Ebrahimi // --------------
6140*f5c631daSSadaf Ebrahimi __ bind(&l_31ce);
6141*f5c631daSSadaf Ebrahimi __ bl(&l_31ce);
6142*f5c631daSSadaf Ebrahimi // --------------
6143*f5c631daSSadaf Ebrahimi __ bind(&l_31d2);
6144*f5c631daSSadaf Ebrahimi __ str(Narrow, r0, MemOperand(sp, 64));
6145*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r1, MemOperand(r0, 20));
6146*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r0, 4));
6147*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r0, 12));
6148*f5c631daSSadaf Ebrahimi __ add(Narrow, r3, r3, r1);
6149*f5c631daSSadaf Ebrahimi __ subs(Narrow, r3, r3, r2);
6150*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r3, 31U);
6151*f5c631daSSadaf Ebrahimi __ b(hi, Narrow, &l_31ec);
6152*f5c631daSSadaf Ebrahimi __ lsls(Narrow, r1, r1, 1U);
6153*f5c631daSSadaf Ebrahimi __ adds(r0, 4U);
6154*f5c631daSSadaf Ebrahimi __ adds(Narrow, r1, r1, 32U);
6155*f5c631daSSadaf Ebrahimi // --------------
6156*f5c631daSSadaf Ebrahimi __ bind(&l_31e8);
6157*f5c631daSSadaf Ebrahimi __ bl(&l_31e8);
6158*f5c631daSSadaf Ebrahimi // --------------
6159*f5c631daSSadaf Ebrahimi __ bind(&l_31ec);
6160*f5c631daSSadaf Ebrahimi __ movs(Narrow, r3, 1U);
6161*f5c631daSSadaf Ebrahimi __ strb(r3, MemOperand(sp, 77));
6162*f5c631daSSadaf Ebrahimi // --------------
6163*f5c631daSSadaf Ebrahimi __ bind(&l_31f2);
6164*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r6, &l_3448);
6165*f5c631daSSadaf Ebrahimi __ mov(Narrow, r2, sl);
6166*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r1, MemOperand(sp, 16));
6167*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r8);
6168*f5c631daSSadaf Ebrahimi __ mov(Narrow, r3, r9);
6169*f5c631daSSadaf Ebrahimi __ str(Narrow, r6, MemOperand(sp, 60));
6170*f5c631daSSadaf Ebrahimi // --------------
6171*f5c631daSSadaf Ebrahimi __ bind(&l_31fe);
6172*f5c631daSSadaf Ebrahimi __ bl(&l_31fe);
6173*f5c631daSSadaf Ebrahimi __ ldrb(r3, MemOperand(r9, 16));
6174*f5c631daSSadaf Ebrahimi __ cbnz(r3, &l_3230);
6175*f5c631daSSadaf Ebrahimi __ ldr(r3, MemOperand(r9, 144));
6176*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r3, 0U);
6177*f5c631daSSadaf Ebrahimi __ b(eq, &l_33fa);
6178*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r5, MemOperand(r3, 4));
6179*f5c631daSSadaf Ebrahimi __ subs(Narrow, r5, r5, 24U);
6180*f5c631daSSadaf Ebrahimi // --------------
6181*f5c631daSSadaf Ebrahimi __ bind(&l_3216);
6182*f5c631daSSadaf Ebrahimi __ ldm(Narrow, r5, WRITE_BACK, RegisterList(r0, r1, r2, r3));
6183*f5c631daSSadaf Ebrahimi __ add(Narrow, r7, sp, 36U);
6184*f5c631daSSadaf Ebrahimi __ stm(Narrow, r7, WRITE_BACK, RegisterList(r0, r1, r2, r3));
6185*f5c631daSSadaf Ebrahimi __ mov(Narrow, r2, r9);
6186*f5c631daSSadaf Ebrahimi __ ldm(r5, NO_WRITE_BACK, RegisterList(r0, r1));
6187*f5c631daSSadaf Ebrahimi __ stm(r7, NO_WRITE_BACK, RegisterList(r0, r1));
6188*f5c631daSSadaf Ebrahimi }
Generate_48(TestAssembler * assembler)6189*f5c631daSSadaf Ebrahimi void Generate_48(TestAssembler* assembler) {
6190*f5c631daSSadaf Ebrahimi __ add(r0, r8, 96U);
6191*f5c631daSSadaf Ebrahimi __ add(Narrow, r1, sp, 36U);
6192*f5c631daSSadaf Ebrahimi // --------------
6193*f5c631daSSadaf Ebrahimi __ bind(&l_322c);
6194*f5c631daSSadaf Ebrahimi __ bl(&l_322c);
6195*f5c631daSSadaf Ebrahimi // --------------
6196*f5c631daSSadaf Ebrahimi __ bind(&l_3230);
6197*f5c631daSSadaf Ebrahimi __ ldrb(r3, MemOperand(sp, 77));
6198*f5c631daSSadaf Ebrahimi __ str(Narrow, r4, MemOperand(sp, 60));
6199*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r3, 0U);
6200*f5c631daSSadaf Ebrahimi __ b(ne, &l_3366);
6201*f5c631daSSadaf Ebrahimi // --------------
6202*f5c631daSSadaf Ebrahimi __ bind(&l_323c);
6203*f5c631daSSadaf Ebrahimi __ add(Narrow, sp, sp, 92U);
6204*f5c631daSSadaf Ebrahimi __ pop(RegisterList(0x8ff0));
6205*f5c631daSSadaf Ebrahimi // --------------
6206*f5c631daSSadaf Ebrahimi __ bind(&l_3242);
6207*f5c631daSSadaf Ebrahimi __ add(r3, r8, 44U);
6208*f5c631daSSadaf Ebrahimi __ ldr(r2, MemOperand(r8, 96));
6209*f5c631daSSadaf Ebrahimi __ mov(Narrow, r5, r3);
6210*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 8));
6211*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 28));
6212*f5c631daSSadaf Ebrahimi __ ldr(r3, MemOperand(r8, 100));
6213*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r4, MemOperand(r4));
6214*f5c631daSSadaf Ebrahimi __ ldr(r0, MemOperand(r8, 12));
6215*f5c631daSSadaf Ebrahimi __ ldr(r1, MemOperand(r8, 4));
6216*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r2, r3);
6217*f5c631daSSadaf Ebrahimi __ str(Narrow, r4, MemOperand(sp, 12));
6218*f5c631daSSadaf Ebrahimi __ sub(r4, r0, r1);
6219*f5c631daSSadaf Ebrahimi __ b(eq, Narrow, &l_31a0);
6220*f5c631daSSadaf Ebrahimi __ ldr(r3, MemOperand(r8, 44));
6221*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r5);
6222*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r3, 36));
6223*f5c631daSSadaf Ebrahimi __ blx(r3);
6224*f5c631daSSadaf Ebrahimi __ ldr(r7, MemOperand(r8, 96));
6225*f5c631daSSadaf Ebrahimi __ ldr(r2, MemOperand(r8, 100));
6226*f5c631daSSadaf Ebrahimi __ ldr(r1, MemOperand(r8, 120));
6227*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r7, r2);
6228*f5c631daSSadaf Ebrahimi __ add(Narrow, r1, r1, r4);
6229*f5c631daSSadaf Ebrahimi __ b(eq, Narrow, &l_32a0);
6230*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r7));
6231*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r9, r3);
6232*f5c631daSSadaf Ebrahimi __ it(ne);
6233*f5c631daSSadaf Ebrahimi __ add(ne, r3, r7, 24U);
6234*f5c631daSSadaf Ebrahimi __ b(ne, Narrow, &l_329a);
6235*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_340c);
6236*f5c631daSSadaf Ebrahimi // --------------
6237*f5c631daSSadaf Ebrahimi __ bind(&l_3292);
6238*f5c631daSSadaf Ebrahimi __ ldr(r0, MemOperand(r3, 24, PostIndex));
6239*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r9, r0);
6240*f5c631daSSadaf Ebrahimi __ b(eq, Narrow, &l_32a4);
6241*f5c631daSSadaf Ebrahimi // --------------
6242*f5c631daSSadaf Ebrahimi __ bind(&l_329a);
6243*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r3, r2);
6244*f5c631daSSadaf Ebrahimi __ mov(Narrow, fp, r3);
6245*f5c631daSSadaf Ebrahimi __ b(ne, Narrow, &l_3292);
6246*f5c631daSSadaf Ebrahimi // --------------
6247*f5c631daSSadaf Ebrahimi __ bind(&l_32a0);
6248*f5c631daSSadaf Ebrahimi __ mov(fp, 0U);
6249*f5c631daSSadaf Ebrahimi // --------------
6250*f5c631daSSadaf Ebrahimi __ bind(&l_32a4);
6251*f5c631daSSadaf Ebrahimi __ movw(r3, 0U);
6252*f5c631daSSadaf Ebrahimi __ movt(r3, 0U);
6253*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 20));
6254*f5c631daSSadaf Ebrahimi // --------------
6255*f5c631daSSadaf Ebrahimi __ bind(&l_32ae);
6256*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r7, r2);
6257*f5c631daSSadaf Ebrahimi __ b(eq, Narrow, &l_3350);
6258*f5c631daSSadaf Ebrahimi // --------------
6259*f5c631daSSadaf Ebrahimi __ bind(&l_32b2);
6260*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(sp, 12));
6261*f5c631daSSadaf Ebrahimi __ ldr(r6, MemOperand(r9, 8));
6262*f5c631daSSadaf Ebrahimi __ ldr(r4, MemOperand(r8, 136));
6263*f5c631daSSadaf Ebrahimi __ adds(Narrow, r5, r3, r1);
6264*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(sp, 68));
6265*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r0, MemOperand(r7, 8));
6266*f5c631daSSadaf Ebrahimi __ add(Narrow, r4, r4, r5);
6267*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r3, r6);
6268*f5c631daSSadaf Ebrahimi __ it(lt);
6269*f5c631daSSadaf Ebrahimi __ mov(lt, Narrow, r3, r6);
6270*f5c631daSSadaf Ebrahimi __ cmp(fp, 0U);
6271*f5c631daSSadaf Ebrahimi __ b(eq, Narrow, &l_32da);
6272*f5c631daSSadaf Ebrahimi __ ldr(r6, MemOperand(fp, 12));
6273*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r3, r6);
6274*f5c631daSSadaf Ebrahimi __ it(lt);
6275*f5c631daSSadaf Ebrahimi __ mov(lt, Narrow, r3, r6);
6276*f5c631daSSadaf Ebrahimi // --------------
6277*f5c631daSSadaf Ebrahimi __ bind(&l_32da);
6278*f5c631daSSadaf Ebrahimi __ ldr(r5, MemOperand(r9, 4));
6279*f5c631daSSadaf Ebrahimi __ add(Narrow, r5, r5, r3);
6280*f5c631daSSadaf Ebrahimi __ subs(r5, 1U);
6281*f5c631daSSadaf Ebrahimi __ add(Narrow, r4, r4, r5);
6282*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r0, r4);
6283*f5c631daSSadaf Ebrahimi __ b(gt, Narrow, &l_33c8);
6284*f5c631daSSadaf Ebrahimi // --------------
6285*f5c631daSSadaf Ebrahimi __ bind(&l_32e8);
6286*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r4, MemOperand(r7, 12));
6287*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r6, MemOperand(sp, 8));
6288*f5c631daSSadaf Ebrahimi __ ldr(r3, MemOperand(r8, 44));
6289*f5c631daSSadaf Ebrahimi __ subs(r4, 1U);
6290*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r5, MemOperand(r7));
6291*f5c631daSSadaf Ebrahimi __ adds(Narrow, r2, r1, r4);
6292*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r6);
6293*f5c631daSSadaf Ebrahimi __ bic(r4, r2, r4);
6294*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r3, 44));
6295*f5c631daSSadaf Ebrahimi __ subs(Narrow, r1, r4, r1);
6296*f5c631daSSadaf Ebrahimi __ blx(r3);
6297*f5c631daSSadaf Ebrahimi __ ldr(r3, MemOperand(r8, 44));
6298*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(sp, 20));
6299*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r3));
6300*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r3, r2);
6301*f5c631daSSadaf Ebrahimi __ b(ne, Narrow, &l_33f2);
6302*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r6);
6303*f5c631daSSadaf Ebrahimi // --------------
6304*f5c631daSSadaf Ebrahimi __ bind(&l_3310);
6305*f5c631daSSadaf Ebrahimi __ bl(&l_3310);
6306*f5c631daSSadaf Ebrahimi __ mov(Narrow, r1, r0);
6307*f5c631daSSadaf Ebrahimi // --------------
6308*f5c631daSSadaf Ebrahimi __ bind(&l_3316);
6309*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r5));
6310*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r5);
6311*f5c631daSSadaf Ebrahimi __ str(Narrow, r4, MemOperand(r5, 20));
6312*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r3, 20));
6313*f5c631daSSadaf Ebrahimi __ blx(r3);
6314*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r5));
6315*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r5);
6316*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r1, MemOperand(sp, 8));
6317*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r3, 16));
6318*f5c631daSSadaf Ebrahimi }
Generate_49(TestAssembler * assembler)6319*f5c631daSSadaf Ebrahimi void Generate_49(TestAssembler* assembler) {
6320*f5c631daSSadaf Ebrahimi __ blx(r3);
6321*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r5));
6322*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r5);
6323*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r6, MemOperand(r5, 4));
6324*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r3, 24));
6325*f5c631daSSadaf Ebrahimi __ blx(r3);
6326*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r0, 0U);
6327*f5c631daSSadaf Ebrahimi __ b(eq, Narrow, &l_33d2);
6328*f5c631daSSadaf Ebrahimi __ movs(Narrow, r3, 1U);
6329*f5c631daSSadaf Ebrahimi __ mov(Narrow, r1, r7);
6330*f5c631daSSadaf Ebrahimi __ strb(Narrow, r3, MemOperand(r5, 16));
6331*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r0, MemOperand(sp, 24));
6332*f5c631daSSadaf Ebrahimi // --------------
6333*f5c631daSSadaf Ebrahimi __ bind(&l_3340);
6334*f5c631daSSadaf Ebrahimi __ bl(&l_3340);
6335*f5c631daSSadaf Ebrahimi __ mov(Narrow, r7, r0);
6336*f5c631daSSadaf Ebrahimi // --------------
6337*f5c631daSSadaf Ebrahimi __ bind(&l_3346);
6338*f5c631daSSadaf Ebrahimi __ ldr(r2, MemOperand(r8, 100));
6339*f5c631daSSadaf Ebrahimi __ adds(Narrow, r1, r4, r6);
6340*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r7, r2);
6341*f5c631daSSadaf Ebrahimi __ b(ne, Narrow, &l_32b2);
6342*f5c631daSSadaf Ebrahimi // --------------
6343*f5c631daSSadaf Ebrahimi __ bind(&l_3350);
6344*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r0, MemOperand(sp, 24));
6345*f5c631daSSadaf Ebrahimi __ movs(Narrow, r1, 0U);
6346*f5c631daSSadaf Ebrahimi // --------------
6347*f5c631daSSadaf Ebrahimi __ bind(&l_3354);
6348*f5c631daSSadaf Ebrahimi __ bl(&l_3354);
6349*f5c631daSSadaf Ebrahimi __ ldr(r3, MemOperand(r8, 44));
6350*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r0, MemOperand(sp, 8));
6351*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r3, 40));
6352*f5c631daSSadaf Ebrahimi __ blx(r3);
6353*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(sp, 8));
6354*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_31ae);
6355*f5c631daSSadaf Ebrahimi // --------------
6356*f5c631daSSadaf Ebrahimi __ bind(&l_3366);
6357*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r0, MemOperand(sp, 80));
6358*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r0, 0U);
6359*f5c631daSSadaf Ebrahimi __ b(eq, &l_323c);
6360*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(sp, 84));
6361*f5c631daSSadaf Ebrahimi __ movs(Narrow, r2, 0U);
6362*f5c631daSSadaf Ebrahimi __ strb(r2, MemOperand(sp, 77));
6363*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r3, 1U);
6364*f5c631daSSadaf Ebrahimi __ b(ne, &l_323c);
6365*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r0));
6366*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r3, 28));
6367*f5c631daSSadaf Ebrahimi __ blx(r3);
6368*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_323c);
6369*f5c631daSSadaf Ebrahimi // --------------
6370*f5c631daSSadaf Ebrahimi __ bind(&l_3384);
6371*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r4, &l_3444);
6372*f5c631daSSadaf Ebrahimi __ adds(r3, r0, 44U);
6373*f5c631daSSadaf Ebrahimi __ str(sl, MemOperand(sp, 64));
6374*f5c631daSSadaf Ebrahimi __ strb(sl, MemOperand(sp, 77));
6375*f5c631daSSadaf Ebrahimi __ str(Narrow, r4, MemOperand(sp, 60));
6376*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 28));
6377*f5c631daSSadaf Ebrahimi __ b(eq, &l_31f2);
6378*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r6, MemOperand(sp, 28));
6379*f5c631daSSadaf Ebrahimi __ movs(Narrow, r2, 1U);
6380*f5c631daSSadaf Ebrahimi __ ldr(r3, MemOperand(r8, 44));
6381*f5c631daSSadaf Ebrahimi __ movs(Narrow, r1, 32U);
6382*f5c631daSSadaf Ebrahimi __ str(Narrow, r2, MemOperand(sp, 84));
6383*f5c631daSSadaf Ebrahimi __ movw(r2, 0U);
6384*f5c631daSSadaf Ebrahimi __ str(Narrow, r6, MemOperand(sp, 80));
6385*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r6);
6386*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r3, 32));
6387*f5c631daSSadaf Ebrahimi __ mov(Narrow, r5, r2);
6388*f5c631daSSadaf Ebrahimi __ blx(r3);
6389*f5c631daSSadaf Ebrahimi __ ldr(r3, MemOperand(r8, 44));
6390*f5c631daSSadaf Ebrahimi __ mov(Narrow, r2, r5);
6391*f5c631daSSadaf Ebrahimi __ movt(r2, 0U);
6392*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r6);
6393*f5c631daSSadaf Ebrahimi __ str(Narrow, r2, MemOperand(sp, 20));
6394*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r3, 24));
6395*f5c631daSSadaf Ebrahimi __ blx(r3);
6396*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_31be);
6397*f5c631daSSadaf Ebrahimi // --------------
6398*f5c631daSSadaf Ebrahimi __ bind(&l_33c8);
6399*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r7, 16));
6400*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r1, r3);
6401*f5c631daSSadaf Ebrahimi __ b(ge, Narrow, &l_32e8);
6402*f5c631daSSadaf Ebrahimi __ adds(Narrow, r7, r7, 24U);
6403*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_32ae);
6404*f5c631daSSadaf Ebrahimi // --------------
6405*f5c631daSSadaf Ebrahimi __ bind(&l_33d2);
6406*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r0, MemOperand(r7));
6407*f5c631daSSadaf Ebrahimi __ mov(Narrow, r1, r7);
6408*f5c631daSSadaf Ebrahimi __ adds(Narrow, r7, r7, 24U);
6409*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r0));
6410*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r3, 28));
6411*f5c631daSSadaf Ebrahimi __ blx(r3);
6412*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_3346);
6413*f5c631daSSadaf Ebrahimi // --------------
6414*f5c631daSSadaf Ebrahimi __ bind(&l_33e0);
6415*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r3, 1U);
6416*f5c631daSSadaf Ebrahimi __ mov(Narrow, r2, r5);
6417*f5c631daSSadaf Ebrahimi __ mov(Narrow, r6, r1);
6418*f5c631daSSadaf Ebrahimi __ ite(eq);
6419*f5c631daSSadaf Ebrahimi __ mov(eq, Narrow, r3, 4U);
6420*f5c631daSSadaf Ebrahimi __ mov(ne, Narrow, r3, 8U);
6421*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_315a);
6422*f5c631daSSadaf Ebrahimi // --------------
6423*f5c631daSSadaf Ebrahimi __ bind(&l_33ee);
6424*f5c631daSSadaf Ebrahimi __ blx(r3);
6425*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_31d2);
6426*f5c631daSSadaf Ebrahimi // --------------
6427*f5c631daSSadaf Ebrahimi __ bind(&l_33f2);
6428*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r0, MemOperand(sp, 8));
6429*f5c631daSSadaf Ebrahimi __ blx(r3);
6430*f5c631daSSadaf Ebrahimi __ mov(Narrow, r1, r0);
6431*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_3316);
6432*f5c631daSSadaf Ebrahimi // --------------
6433*f5c631daSSadaf Ebrahimi __ bind(&l_33fa);
6434*f5c631daSSadaf Ebrahimi __ ldr(r5, MemOperand(r9, 44));
6435*f5c631daSSadaf Ebrahimi __ subs(r5, 1U);
6436*f5c631daSSadaf Ebrahimi __ lsls(Narrow, r3, r5, 5U);
6437*f5c631daSSadaf Ebrahimi __ sub(r5, r3, Operand(r5, LSL, 3));
6438*f5c631daSSadaf Ebrahimi __ add(Narrow, r5, r5, r9);
6439*f5c631daSSadaf Ebrahimi __ adds(Narrow, r5, r5, 48U);
6440*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_3216);
6441*f5c631daSSadaf Ebrahimi // --------------
6442*f5c631daSSadaf Ebrahimi __ bind(&l_340c);
6443*f5c631daSSadaf Ebrahimi __ mov(Narrow, fp, r7);
6444*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_32a4);
6445*f5c631daSSadaf Ebrahimi // --------------
6446*f5c631daSSadaf Ebrahimi __ bind(&l_3410);
6447*f5c631daSSadaf Ebrahimi __ movw(r0, 0U);
6448*f5c631daSSadaf Ebrahimi }
Generate_50(TestAssembler * assembler)6449*f5c631daSSadaf Ebrahimi void Generate_50(TestAssembler* assembler) {
6450*f5c631daSSadaf Ebrahimi __ movw(r1, 0U);
6451*f5c631daSSadaf Ebrahimi __ movw(r2, 0U);
6452*f5c631daSSadaf Ebrahimi __ movt(r1, 0U);
6453*f5c631daSSadaf Ebrahimi __ movt(r2, 0U);
6454*f5c631daSSadaf Ebrahimi __ mov(r3, 1306U);
6455*f5c631daSSadaf Ebrahimi __ movt(r0, 0U);
6456*f5c631daSSadaf Ebrahimi // --------------
6457*f5c631daSSadaf Ebrahimi __ bind(&l_342c);
6458*f5c631daSSadaf Ebrahimi __ bl(&l_342c);
6459*f5c631daSSadaf Ebrahimi // --------------
6460*f5c631daSSadaf Ebrahimi __ bind(&l_3430);
6461*f5c631daSSadaf Ebrahimi __ bl(&l_3430);
6462*f5c631daSSadaf Ebrahimi __ add(Narrow, r0, sp, 88U);
6463*f5c631daSSadaf Ebrahimi __ str(r6, MemOperand(r0, -28, PreIndex));
6464*f5c631daSSadaf Ebrahimi // --------------
6465*f5c631daSSadaf Ebrahimi __ bind(&l_343a);
6466*f5c631daSSadaf Ebrahimi __ bl(&l_343a);
6467*f5c631daSSadaf Ebrahimi // --------------
6468*f5c631daSSadaf Ebrahimi __ bind(&l_343e);
6469*f5c631daSSadaf Ebrahimi __ bl(&l_343e);
6470*f5c631daSSadaf Ebrahimi __ nop(Narrow);
6471*f5c631daSSadaf Ebrahimi // --------------
6472*f5c631daSSadaf Ebrahimi __ bind(&l_3444);
6473*f5c631daSSadaf Ebrahimi __ Emit32(0x00000008);
6474*f5c631daSSadaf Ebrahimi // --------------
6475*f5c631daSSadaf Ebrahimi __ bind(&l_3448);
6476*f5c631daSSadaf Ebrahimi __ Emit32(0x00000008);
6477*f5c631daSSadaf Ebrahimi __ push(RegisterList(0x41f0));
6478*f5c631daSSadaf Ebrahimi __ mov(Narrow, r4, r0);
6479*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r0, 12));
6480*f5c631daSSadaf Ebrahimi __ sub(Narrow, sp, sp, 8U);
6481*f5c631daSSadaf Ebrahimi __ mov(Narrow, r6, r1);
6482*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r1);
6483*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r5, MemOperand(r4, 4));
6484*f5c631daSSadaf Ebrahimi __ subs(Narrow, r5, r3, r5);
6485*f5c631daSSadaf Ebrahimi __ mov(Narrow, r1, r5);
6486*f5c631daSSadaf Ebrahimi // --------------
6487*f5c631daSSadaf Ebrahimi __ bind(&l_3460);
6488*f5c631daSSadaf Ebrahimi __ bl(&l_3460);
6489*f5c631daSSadaf Ebrahimi __ cbnz(r0, &l_3484);
6490*f5c631daSSadaf Ebrahimi // --------------
6491*f5c631daSSadaf Ebrahimi __ bind(&l_3466);
6492*f5c631daSSadaf Ebrahimi __ add(r8, r4, 96U);
6493*f5c631daSSadaf Ebrahimi __ add(r7, r4, 44U);
6494*f5c631daSSadaf Ebrahimi // --------------
6495*f5c631daSSadaf Ebrahimi __ bind(&l_346e);
6496*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r5, MemOperand(r4, 12));
6497*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r8);
6498*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r4, 4));
6499*f5c631daSSadaf Ebrahimi __ mov(Narrow, r1, r7);
6500*f5c631daSSadaf Ebrahimi __ mov(Narrow, r2, r6);
6501*f5c631daSSadaf Ebrahimi __ subs(Narrow, r3, r5, r3);
6502*f5c631daSSadaf Ebrahimi __ add(Narrow, sp, sp, 8U);
6503*f5c631daSSadaf Ebrahimi __ pop(RegisterList(0x41f0));
6504*f5c631daSSadaf Ebrahimi // --------------
6505*f5c631daSSadaf Ebrahimi __ bind(&l_3480);
6506*f5c631daSSadaf Ebrahimi __ b(Wide, &l_3480);
6507*f5c631daSSadaf Ebrahimi // --------------
6508*f5c631daSSadaf Ebrahimi __ bind(&l_3484);
6509*f5c631daSSadaf Ebrahimi __ ldr(r3, MemOperand(r4, 132));
6510*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r5, r3);
6511*f5c631daSSadaf Ebrahimi __ b(eq, Narrow, &l_3492);
6512*f5c631daSSadaf Ebrahimi __ adds(Narrow, r2, r5, 2U);
6513*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r3, r2);
6514*f5c631daSSadaf Ebrahimi __ b(ge, Narrow, &l_3466);
6515*f5c631daSSadaf Ebrahimi // --------------
6516*f5c631daSSadaf Ebrahimi __ bind(&l_3492);
6517*f5c631daSSadaf Ebrahimi __ add(r8, r4, 96U);
6518*f5c631daSSadaf Ebrahimi __ add(r7, r4, 44U);
6519*f5c631daSSadaf Ebrahimi __ movs(Narrow, r3, 0U);
6520*f5c631daSSadaf Ebrahimi __ mov(Narrow, r2, r5);
6521*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp));
6522*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r8);
6523*f5c631daSSadaf Ebrahimi __ mov(Narrow, r1, r7);
6524*f5c631daSSadaf Ebrahimi __ movs(Narrow, r3, 2U);
6525*f5c631daSSadaf Ebrahimi // --------------
6526*f5c631daSSadaf Ebrahimi __ bind(&l_34a6);
6527*f5c631daSSadaf Ebrahimi __ bl(&l_34a6);
6528*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_346e);
6529*f5c631daSSadaf Ebrahimi __ ldrb(r3, MemOperand(r0, 32));
6530*f5c631daSSadaf Ebrahimi __ push(RegisterList(0x43f0));
6531*f5c631daSSadaf Ebrahimi __ mov(Narrow, r4, r0);
6532*f5c631daSSadaf Ebrahimi __ sub(Narrow, sp, sp, 12U);
6533*f5c631daSSadaf Ebrahimi __ cbz(r3, &l_34f8);
6534*f5c631daSSadaf Ebrahimi __ mov(Narrow, r6, r0);
6535*f5c631daSSadaf Ebrahimi __ movw(r3, 0U);
6536*f5c631daSSadaf Ebrahimi __ ldr(r5, MemOperand(r6, 8, PostIndex));
6537*f5c631daSSadaf Ebrahimi __ movt(r3, 0U);
6538*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r5));
6539*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r2, 8));
6540*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r2, r3);
6541*f5c631daSSadaf Ebrahimi __ b(ne, Narrow, &l_3518);
6542*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r7, MemOperand(r5, 12));
6543*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r6);
6544*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r5, 4));
6545*f5c631daSSadaf Ebrahimi __ subs(Narrow, r7, r7, r3);
6546*f5c631daSSadaf Ebrahimi __ mov(Narrow, r1, r7);
6547*f5c631daSSadaf Ebrahimi // --------------
6548*f5c631daSSadaf Ebrahimi __ bind(&l_34da);
6549*f5c631daSSadaf Ebrahimi __ bl(&l_34da);
6550*f5c631daSSadaf Ebrahimi __ add(r9, r5, 96U);
6551*f5c631daSSadaf Ebrahimi __ add(r8, r5, 44U);
6552*f5c631daSSadaf Ebrahimi __ cbnz(r0, &l_3520);
6553*f5c631daSSadaf Ebrahimi // --------------
6554*f5c631daSSadaf Ebrahimi __ bind(&l_34e8);
6555*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r7, MemOperand(r5, 12));
6556*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r9);
6557*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r5, 4));
6558*f5c631daSSadaf Ebrahimi __ mov(Narrow, r1, r8);
6559*f5c631daSSadaf Ebrahimi __ mov(Narrow, r2, r6);
6560*f5c631daSSadaf Ebrahimi __ subs(Narrow, r3, r7, r3);
6561*f5c631daSSadaf Ebrahimi // --------------
6562*f5c631daSSadaf Ebrahimi __ bind(&l_34f4);
6563*f5c631daSSadaf Ebrahimi __ bl(&l_34f4);
6564*f5c631daSSadaf Ebrahimi // --------------
6565*f5c631daSSadaf Ebrahimi __ bind(&l_34f8);
6566*f5c631daSSadaf Ebrahimi __ ldr(r5, MemOperand(r4, 152));
6567*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, &l_3558);
6568*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(r4, 8));
6569*f5c631daSSadaf Ebrahimi __ cbz(r5, &l_3510);
6570*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r0, MemOperand(r5));
6571*f5c631daSSadaf Ebrahimi __ cbz(r0, &l_350a);
6572*f5c631daSSadaf Ebrahimi // --------------
6573*f5c631daSSadaf Ebrahimi __ bind(&l_3506);
6574*f5c631daSSadaf Ebrahimi __ bl(&l_3506);
6575*f5c631daSSadaf Ebrahimi // --------------
6576*f5c631daSSadaf Ebrahimi __ bind(&l_350a);
6577*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r5);
6578*f5c631daSSadaf Ebrahimi // --------------
6579*f5c631daSSadaf Ebrahimi __ bind(&l_350c);
6580*f5c631daSSadaf Ebrahimi __ bl(&l_350c);
6581*f5c631daSSadaf Ebrahimi // --------------
6582*f5c631daSSadaf Ebrahimi __ bind(&l_3510);
6583*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r4);
6584*f5c631daSSadaf Ebrahimi __ add(Narrow, sp, sp, 12U);
6585*f5c631daSSadaf Ebrahimi __ pop(RegisterList(0x83f0));
6586*f5c631daSSadaf Ebrahimi // --------------
6587*f5c631daSSadaf Ebrahimi __ bind(&l_3518);
6588*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r5);
6589*f5c631daSSadaf Ebrahimi __ mov(Narrow, r1, r6);
6590*f5c631daSSadaf Ebrahimi __ blx(r2);
6591*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_34f8);
6592*f5c631daSSadaf Ebrahimi // --------------
6593*f5c631daSSadaf Ebrahimi __ bind(&l_3520);
6594*f5c631daSSadaf Ebrahimi __ ldr(r3, MemOperand(r5, 132));
6595*f5c631daSSadaf Ebrahimi __ add(r9, r5, 96U);
6596*f5c631daSSadaf Ebrahimi }
Generate_51(TestAssembler * assembler)6597*f5c631daSSadaf Ebrahimi void Generate_51(TestAssembler* assembler) {
6598*f5c631daSSadaf Ebrahimi __ add(r8, r5, 44U);
6599*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r7, r3);
6600*f5c631daSSadaf Ebrahimi __ b(eq, Narrow, &l_3536);
6601*f5c631daSSadaf Ebrahimi __ adds(Narrow, r2, r7, 2U);
6602*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r3, r2);
6603*f5c631daSSadaf Ebrahimi __ b(ge, Narrow, &l_34e8);
6604*f5c631daSSadaf Ebrahimi // --------------
6605*f5c631daSSadaf Ebrahimi __ bind(&l_3536);
6606*f5c631daSSadaf Ebrahimi __ movs(Narrow, r3, 0U);
6607*f5c631daSSadaf Ebrahimi __ mov(Narrow, r2, r7);
6608*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp));
6609*f5c631daSSadaf Ebrahimi __ mov(Narrow, r1, r8);
6610*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r9);
6611*f5c631daSSadaf Ebrahimi __ movs(Narrow, r3, 2U);
6612*f5c631daSSadaf Ebrahimi // --------------
6613*f5c631daSSadaf Ebrahimi __ bind(&l_3542);
6614*f5c631daSSadaf Ebrahimi __ bl(&l_3542);
6615*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_34e8);
6616*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, &l_3558);
6617*f5c631daSSadaf Ebrahimi __ add(r0, r4, 36U);
6618*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(r4, 8));
6619*f5c631daSSadaf Ebrahimi // --------------
6620*f5c631daSSadaf Ebrahimi __ bind(&l_3550);
6621*f5c631daSSadaf Ebrahimi __ bl(&l_3550);
6622*f5c631daSSadaf Ebrahimi // --------------
6623*f5c631daSSadaf Ebrahimi __ bind(&l_3554);
6624*f5c631daSSadaf Ebrahimi __ bl(&l_3554);
6625*f5c631daSSadaf Ebrahimi // --------------
6626*f5c631daSSadaf Ebrahimi __ bind(&l_3558);
6627*f5c631daSSadaf Ebrahimi __ Emit32(0x00000008);
6628*f5c631daSSadaf Ebrahimi __ push(RegisterList(0x4ff0));
6629*f5c631daSSadaf Ebrahimi __ adds(r7, r0, 44U);
6630*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r6, &l_3740);
6631*f5c631daSSadaf Ebrahimi __ sub(Narrow, sp, sp, 212U);
6632*f5c631daSSadaf Ebrahimi __ mov(Narrow, r5, r1);
6633*f5c631daSSadaf Ebrahimi __ mov(r1, 0U);
6634*f5c631daSSadaf Ebrahimi __ mov(Narrow, r4, r0);
6635*f5c631daSSadaf Ebrahimi __ mov(Narrow, sl, r2);
6636*f5c631daSSadaf Ebrahimi __ mov(Narrow, fp, r3);
6637*f5c631daSSadaf Ebrahimi __ mov(Narrow, r8, r5);
6638*f5c631daSSadaf Ebrahimi __ str(Narrow, r6, MemOperand(sp, 12));
6639*f5c631daSSadaf Ebrahimi __ str(Narrow, r1, MemOperand(sp, 16));
6640*f5c631daSSadaf Ebrahimi __ strb(r1, MemOperand(sp, 29));
6641*f5c631daSSadaf Ebrahimi __ b(eq, Narrow, &l_35d0);
6642*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r0, 44));
6643*f5c631daSSadaf Ebrahimi __ movs(Narrow, r2, 1U);
6644*f5c631daSSadaf Ebrahimi __ str(Narrow, r2, MemOperand(sp, 36));
6645*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r7);
6646*f5c631daSSadaf Ebrahimi __ movs(Narrow, r1, 32U);
6647*f5c631daSSadaf Ebrahimi __ str(Narrow, r7, MemOperand(sp, 32));
6648*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r3, 32));
6649*f5c631daSSadaf Ebrahimi __ blx(r3);
6650*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r4, 44));
6651*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r7);
6652*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r3, 24));
6653*f5c631daSSadaf Ebrahimi __ blx(r3);
6654*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r4, 44));
6655*f5c631daSSadaf Ebrahimi __ movw(r3, 0U);
6656*f5c631daSSadaf Ebrahimi __ movt(r3, 0U);
6657*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r7);
6658*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r2));
6659*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r2, r3);
6660*f5c631daSSadaf Ebrahimi __ b(ne, &l_3718);
6661*f5c631daSSadaf Ebrahimi // --------------
6662*f5c631daSSadaf Ebrahimi __ bind(&l_35ac);
6663*f5c631daSSadaf Ebrahimi __ bl(&l_35ac);
6664*f5c631daSSadaf Ebrahimi // --------------
6665*f5c631daSSadaf Ebrahimi __ bind(&l_35b0);
6666*f5c631daSSadaf Ebrahimi __ str(Narrow, r0, MemOperand(sp, 16));
6667*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r1, MemOperand(r0, 20));
6668*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r0, 4));
6669*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r0, 12));
6670*f5c631daSSadaf Ebrahimi __ add(Narrow, r3, r3, r1);
6671*f5c631daSSadaf Ebrahimi __ subs(Narrow, r3, r3, r2);
6672*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r3, 31U);
6673*f5c631daSSadaf Ebrahimi __ b(hi, Narrow, &l_35ca);
6674*f5c631daSSadaf Ebrahimi __ lsls(Narrow, r1, r1, 1U);
6675*f5c631daSSadaf Ebrahimi __ adds(r0, 4U);
6676*f5c631daSSadaf Ebrahimi __ adds(Narrow, r1, r1, 32U);
6677*f5c631daSSadaf Ebrahimi // --------------
6678*f5c631daSSadaf Ebrahimi __ bind(&l_35c6);
6679*f5c631daSSadaf Ebrahimi __ bl(&l_35c6);
6680*f5c631daSSadaf Ebrahimi // --------------
6681*f5c631daSSadaf Ebrahimi __ bind(&l_35ca);
6682*f5c631daSSadaf Ebrahimi __ movs(Narrow, r3, 1U);
6683*f5c631daSSadaf Ebrahimi __ strb(r3, MemOperand(sp, 29));
6684*f5c631daSSadaf Ebrahimi // --------------
6685*f5c631daSSadaf Ebrahimi __ bind(&l_35d0);
6686*f5c631daSSadaf Ebrahimi __ ldr(r9, &l_374c);
6687*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r5, 14U);
6688*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r1, &l_3744);
6689*f5c631daSSadaf Ebrahimi __ mov(r3, 0U);
6690*f5c631daSSadaf Ebrahimi __ mov(r2, 1U);
6691*f5c631daSSadaf Ebrahimi __ mov(r0, 4U);
6692*f5c631daSSadaf Ebrahimi __ str(Narrow, r4, MemOperand(sp, 40));
6693*f5c631daSSadaf Ebrahimi __ str(Narrow, r5, MemOperand(sp, 44));
6694*f5c631daSSadaf Ebrahimi __ str(r9, MemOperand(sp, 12));
6695*f5c631daSSadaf Ebrahimi __ str(Narrow, r0, MemOperand(sp, 52));
6696*f5c631daSSadaf Ebrahimi __ str(Narrow, r2, MemOperand(sp, 56));
6697*f5c631daSSadaf Ebrahimi __ str(Narrow, r2, MemOperand(sp, 60));
6698*f5c631daSSadaf Ebrahimi __ strb(r2, MemOperand(sp, 88));
6699*f5c631daSSadaf Ebrahimi __ str(Narrow, r2, MemOperand(sp, 104));
6700*f5c631daSSadaf Ebrahimi __ str(Narrow, r2, MemOperand(sp, 128));
6701*f5c631daSSadaf Ebrahimi __ str(Narrow, r2, MemOperand(sp, 152));
6702*f5c631daSSadaf Ebrahimi __ str(Narrow, r2, MemOperand(sp, 176));
6703*f5c631daSSadaf Ebrahimi __ strb(r3, MemOperand(sp, 64));
6704*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 68));
6705*f5c631daSSadaf Ebrahimi __ strb(r3, MemOperand(sp, 72));
6706*f5c631daSSadaf Ebrahimi __ strb(r3, MemOperand(sp, 76));
6707*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 92));
6708*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 96));
6709*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 100));
6710*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 108));
6711*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 112));
6712*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 116));
6713*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 120));
6714*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 124));
6715*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 132));
6716*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 136));
6717*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 140));
6718*f5c631daSSadaf Ebrahimi }
Generate_52(TestAssembler * assembler)6719*f5c631daSSadaf Ebrahimi void Generate_52(TestAssembler* assembler) {
6720*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 144));
6721*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 148));
6722*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 156));
6723*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 160));
6724*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 164));
6725*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 168));
6726*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 172));
6727*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 180));
6728*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 184));
6729*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 188));
6730*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 192));
6731*f5c631daSSadaf Ebrahimi __ strb(r3, MemOperand(sp, 200));
6732*f5c631daSSadaf Ebrahimi __ str(Narrow, r1, MemOperand(sp, 48));
6733*f5c631daSSadaf Ebrahimi __ b(eq, Narrow, &l_3646);
6734*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r4, 28));
6735*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r2, 1U);
6736*f5c631daSSadaf Ebrahimi __ b(eq, Narrow, &l_36d6);
6737*f5c631daSSadaf Ebrahimi // --------------
6738*f5c631daSSadaf Ebrahimi __ bind(&l_3646);
6739*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(sp, 248));
6740*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r4);
6741*f5c631daSSadaf Ebrahimi __ mov(Narrow, r1, r8);
6742*f5c631daSSadaf Ebrahimi __ mov(Narrow, r2, sl);
6743*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp));
6744*f5c631daSSadaf Ebrahimi __ mov(Narrow, r3, fp);
6745*f5c631daSSadaf Ebrahimi // --------------
6746*f5c631daSSadaf Ebrahimi __ bind(&l_3652);
6747*f5c631daSSadaf Ebrahimi __ bl(&l_3652);
6748*f5c631daSSadaf Ebrahimi __ ldrb(r3, MemOperand(sp, 72));
6749*f5c631daSSadaf Ebrahimi __ cbz(r3, &l_3698);
6750*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r4, MemOperand(sp, 40));
6751*f5c631daSSadaf Ebrahimi __ movw(r3, 0U);
6752*f5c631daSSadaf Ebrahimi __ movt(r3, 0U);
6753*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r4));
6754*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r2, 8));
6755*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r2, r3);
6756*f5c631daSSadaf Ebrahimi __ b(ne, Narrow, &l_36e8);
6757*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r5, MemOperand(r4, 12));
6758*f5c631daSSadaf Ebrahimi __ add(Narrow, r0, sp, 48U);
6759*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r4, 4));
6760*f5c631daSSadaf Ebrahimi __ subs(Narrow, r5, r5, r3);
6761*f5c631daSSadaf Ebrahimi __ mov(Narrow, r1, r5);
6762*f5c631daSSadaf Ebrahimi // --------------
6763*f5c631daSSadaf Ebrahimi __ bind(&l_3678);
6764*f5c631daSSadaf Ebrahimi __ bl(&l_3678);
6765*f5c631daSSadaf Ebrahimi __ add(r8, r4, 96U);
6766*f5c631daSSadaf Ebrahimi __ add(r7, r4, 44U);
6767*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r0, 0U);
6768*f5c631daSSadaf Ebrahimi __ b(ne, Narrow, &l_36f0);
6769*f5c631daSSadaf Ebrahimi // --------------
6770*f5c631daSSadaf Ebrahimi __ bind(&l_3688);
6771*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r5, MemOperand(r4, 12));
6772*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r8);
6773*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r4, 4));
6774*f5c631daSSadaf Ebrahimi __ mov(Narrow, r1, r7);
6775*f5c631daSSadaf Ebrahimi __ add(Narrow, r2, sp, 48U);
6776*f5c631daSSadaf Ebrahimi __ subs(Narrow, r3, r5, r3);
6777*f5c631daSSadaf Ebrahimi // --------------
6778*f5c631daSSadaf Ebrahimi __ bind(&l_3694);
6779*f5c631daSSadaf Ebrahimi __ bl(&l_3694);
6780*f5c631daSSadaf Ebrahimi // --------------
6781*f5c631daSSadaf Ebrahimi __ bind(&l_3698);
6782*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r4, MemOperand(sp, 192));
6783*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, &l_3748);
6784*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 48));
6785*f5c631daSSadaf Ebrahimi __ cbz(r4, &l_36ae);
6786*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r0, MemOperand(r4));
6787*f5c631daSSadaf Ebrahimi __ cbz(r0, &l_36a8);
6788*f5c631daSSadaf Ebrahimi // --------------
6789*f5c631daSSadaf Ebrahimi __ bind(&l_36a4);
6790*f5c631daSSadaf Ebrahimi __ bl(&l_36a4);
6791*f5c631daSSadaf Ebrahimi // --------------
6792*f5c631daSSadaf Ebrahimi __ bind(&l_36a8);
6793*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r4);
6794*f5c631daSSadaf Ebrahimi // --------------
6795*f5c631daSSadaf Ebrahimi __ bind(&l_36aa);
6796*f5c631daSSadaf Ebrahimi __ bl(&l_36aa);
6797*f5c631daSSadaf Ebrahimi // --------------
6798*f5c631daSSadaf Ebrahimi __ bind(&l_36ae);
6799*f5c631daSSadaf Ebrahimi __ ldrb(r3, MemOperand(sp, 29));
6800*f5c631daSSadaf Ebrahimi __ str(Narrow, r6, MemOperand(sp, 12));
6801*f5c631daSSadaf Ebrahimi __ cbnz(r3, &l_36bc);
6802*f5c631daSSadaf Ebrahimi // --------------
6803*f5c631daSSadaf Ebrahimi __ bind(&l_36b6);
6804*f5c631daSSadaf Ebrahimi __ add(Narrow, sp, sp, 212U);
6805*f5c631daSSadaf Ebrahimi __ pop(RegisterList(0x8ff0));
6806*f5c631daSSadaf Ebrahimi // --------------
6807*f5c631daSSadaf Ebrahimi __ bind(&l_36bc);
6808*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r0, MemOperand(sp, 32));
6809*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r0, 0U);
6810*f5c631daSSadaf Ebrahimi __ b(eq, Narrow, &l_36b6);
6811*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(sp, 36));
6812*f5c631daSSadaf Ebrahimi __ movs(Narrow, r2, 0U);
6813*f5c631daSSadaf Ebrahimi __ strb(r2, MemOperand(sp, 29));
6814*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r3, 1U);
6815*f5c631daSSadaf Ebrahimi __ b(ne, Narrow, &l_36b6);
6816*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r0));
6817*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r3, 28));
6818*f5c631daSSadaf Ebrahimi __ blx(r3);
6819*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_36b6);
6820*f5c631daSSadaf Ebrahimi // --------------
6821*f5c631daSSadaf Ebrahimi __ bind(&l_36d6);
6822*f5c631daSSadaf Ebrahimi __ eor(r1, r5, 0x1);
6823*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r4);
6824*f5c631daSSadaf Ebrahimi __ add(Narrow, r3, sp, 48U);
6825*f5c631daSSadaf Ebrahimi // --------------
6826*f5c631daSSadaf Ebrahimi __ bind(&l_36de);
6827*f5c631daSSadaf Ebrahimi __ bl(&l_36de);
6828*f5c631daSSadaf Ebrahimi __ mov(r8, 14U);
6829*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_3646);
6830*f5c631daSSadaf Ebrahimi // --------------
6831*f5c631daSSadaf Ebrahimi __ bind(&l_36e8);
6832*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r4);
6833*f5c631daSSadaf Ebrahimi __ add(Narrow, r1, sp, 48U);
6834*f5c631daSSadaf Ebrahimi __ blx(r2);
6835*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_3698);
6836*f5c631daSSadaf Ebrahimi // --------------
6837*f5c631daSSadaf Ebrahimi __ bind(&l_36f0);
6838*f5c631daSSadaf Ebrahimi __ ldr(r3, MemOperand(r4, 132));
6839*f5c631daSSadaf Ebrahimi __ add(r8, r4, 96U);
6840*f5c631daSSadaf Ebrahimi __ add(r7, r4, 44U);
6841*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r5, r3);
6842*f5c631daSSadaf Ebrahimi __ b(eq, Narrow, &l_3706);
6843*f5c631daSSadaf Ebrahimi __ adds(Narrow, r2, r5, 2U);
6844*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r3, r2);
6845*f5c631daSSadaf Ebrahimi __ b(ge, Narrow, &l_3688);
6846*f5c631daSSadaf Ebrahimi // --------------
6847*f5c631daSSadaf Ebrahimi __ bind(&l_3706);
6848*f5c631daSSadaf Ebrahimi __ movs(Narrow, r3, 0U);
6849*f5c631daSSadaf Ebrahimi __ mov(Narrow, r2, r5);
6850*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp));
6851*f5c631daSSadaf Ebrahimi __ mov(Narrow, r1, r7);
6852*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r8);
6853*f5c631daSSadaf Ebrahimi __ movs(Narrow, r3, 2U);
6854*f5c631daSSadaf Ebrahimi }
Generate_53(TestAssembler * assembler)6855*f5c631daSSadaf Ebrahimi void Generate_53(TestAssembler* assembler) {
6856*f5c631daSSadaf Ebrahimi // --------------
6857*f5c631daSSadaf Ebrahimi __ bind(&l_3712);
6858*f5c631daSSadaf Ebrahimi __ bl(&l_3712);
6859*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_3688);
6860*f5c631daSSadaf Ebrahimi // --------------
6861*f5c631daSSadaf Ebrahimi __ bind(&l_3718);
6862*f5c631daSSadaf Ebrahimi __ blx(r2);
6863*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_35b0);
6864*f5c631daSSadaf Ebrahimi __ add(Narrow, r0, sp, 40U);
6865*f5c631daSSadaf Ebrahimi // --------------
6866*f5c631daSSadaf Ebrahimi __ bind(&l_371e);
6867*f5c631daSSadaf Ebrahimi __ bl(&l_371e);
6868*f5c631daSSadaf Ebrahimi // --------------
6869*f5c631daSSadaf Ebrahimi __ bind(&l_3722);
6870*f5c631daSSadaf Ebrahimi __ add(Narrow, r0, sp, 208U);
6871*f5c631daSSadaf Ebrahimi __ str(r9, MemOperand(r0, -196, PreIndex));
6872*f5c631daSSadaf Ebrahimi // --------------
6873*f5c631daSSadaf Ebrahimi __ bind(&l_3728);
6874*f5c631daSSadaf Ebrahimi __ bl(&l_3728);
6875*f5c631daSSadaf Ebrahimi // --------------
6876*f5c631daSSadaf Ebrahimi __ bind(&l_372c);
6877*f5c631daSSadaf Ebrahimi __ bl(&l_372c);
6878*f5c631daSSadaf Ebrahimi // --------------
6879*f5c631daSSadaf Ebrahimi __ bind(&l_3730);
6880*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, &l_3748);
6881*f5c631daSSadaf Ebrahimi __ add(Narrow, r0, sp, 76U);
6882*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 48));
6883*f5c631daSSadaf Ebrahimi // --------------
6884*f5c631daSSadaf Ebrahimi __ bind(&l_3736);
6885*f5c631daSSadaf Ebrahimi __ bl(&l_3736);
6886*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_3722);
6887*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_3730);
6888*f5c631daSSadaf Ebrahimi __ nop(Narrow);
6889*f5c631daSSadaf Ebrahimi // --------------
6890*f5c631daSSadaf Ebrahimi __ bind(&l_3740);
6891*f5c631daSSadaf Ebrahimi __ Emit32(0x00000008);
6892*f5c631daSSadaf Ebrahimi // --------------
6893*f5c631daSSadaf Ebrahimi __ bind(&l_3744);
6894*f5c631daSSadaf Ebrahimi __ Emit32(0x00000008);
6895*f5c631daSSadaf Ebrahimi // --------------
6896*f5c631daSSadaf Ebrahimi __ bind(&l_3748);
6897*f5c631daSSadaf Ebrahimi __ Emit32(0x00000008);
6898*f5c631daSSadaf Ebrahimi // --------------
6899*f5c631daSSadaf Ebrahimi __ bind(&l_374c);
6900*f5c631daSSadaf Ebrahimi __ Emit32(0x00000008);
6901*f5c631daSSadaf Ebrahimi __ push(RegisterList(0x4ff0));
6902*f5c631daSSadaf Ebrahimi __ adds(r7, r0, 44U);
6903*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r6, &l_3938);
6904*f5c631daSSadaf Ebrahimi __ sub(Narrow, sp, sp, 212U);
6905*f5c631daSSadaf Ebrahimi __ mov(Narrow, r5, r1);
6906*f5c631daSSadaf Ebrahimi __ mov(r1, 0U);
6907*f5c631daSSadaf Ebrahimi __ mov(Narrow, r4, r0);
6908*f5c631daSSadaf Ebrahimi __ mov(Narrow, sl, r2);
6909*f5c631daSSadaf Ebrahimi __ mov(Narrow, fp, r3);
6910*f5c631daSSadaf Ebrahimi __ mov(Narrow, r8, r5);
6911*f5c631daSSadaf Ebrahimi __ str(Narrow, r6, MemOperand(sp, 12));
6912*f5c631daSSadaf Ebrahimi __ str(Narrow, r1, MemOperand(sp, 16));
6913*f5c631daSSadaf Ebrahimi __ strb(r1, MemOperand(sp, 29));
6914*f5c631daSSadaf Ebrahimi __ b(eq, Narrow, &l_37c4);
6915*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r0, 44));
6916*f5c631daSSadaf Ebrahimi __ movs(Narrow, r2, 1U);
6917*f5c631daSSadaf Ebrahimi __ str(Narrow, r2, MemOperand(sp, 36));
6918*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r7);
6919*f5c631daSSadaf Ebrahimi __ movs(Narrow, r1, 32U);
6920*f5c631daSSadaf Ebrahimi __ str(Narrow, r7, MemOperand(sp, 32));
6921*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r3, 32));
6922*f5c631daSSadaf Ebrahimi __ blx(r3);
6923*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r4, 44));
6924*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r7);
6925*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r3, 24));
6926*f5c631daSSadaf Ebrahimi __ blx(r3);
6927*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r4, 44));
6928*f5c631daSSadaf Ebrahimi __ movw(r3, 0U);
6929*f5c631daSSadaf Ebrahimi __ movt(r3, 0U);
6930*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r7);
6931*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r2));
6932*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r2, r3);
6933*f5c631daSSadaf Ebrahimi __ b(ne, &l_3910);
6934*f5c631daSSadaf Ebrahimi // --------------
6935*f5c631daSSadaf Ebrahimi __ bind(&l_37a0);
6936*f5c631daSSadaf Ebrahimi __ bl(&l_37a0);
6937*f5c631daSSadaf Ebrahimi // --------------
6938*f5c631daSSadaf Ebrahimi __ bind(&l_37a4);
6939*f5c631daSSadaf Ebrahimi __ str(Narrow, r0, MemOperand(sp, 16));
6940*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r1, MemOperand(r0, 20));
6941*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r0, 4));
6942*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r0, 12));
6943*f5c631daSSadaf Ebrahimi __ add(Narrow, r3, r3, r1);
6944*f5c631daSSadaf Ebrahimi __ subs(Narrow, r3, r3, r2);
6945*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r3, 31U);
6946*f5c631daSSadaf Ebrahimi __ b(hi, Narrow, &l_37be);
6947*f5c631daSSadaf Ebrahimi __ lsls(Narrow, r1, r1, 1U);
6948*f5c631daSSadaf Ebrahimi __ adds(r0, 4U);
6949*f5c631daSSadaf Ebrahimi __ adds(Narrow, r1, r1, 32U);
6950*f5c631daSSadaf Ebrahimi // --------------
6951*f5c631daSSadaf Ebrahimi __ bind(&l_37ba);
6952*f5c631daSSadaf Ebrahimi __ bl(&l_37ba);
6953*f5c631daSSadaf Ebrahimi // --------------
6954*f5c631daSSadaf Ebrahimi __ bind(&l_37be);
6955*f5c631daSSadaf Ebrahimi __ movs(Narrow, r3, 1U);
6956*f5c631daSSadaf Ebrahimi __ strb(r3, MemOperand(sp, 29));
6957*f5c631daSSadaf Ebrahimi // --------------
6958*f5c631daSSadaf Ebrahimi __ bind(&l_37c4);
6959*f5c631daSSadaf Ebrahimi __ ldr(r9, &l_3944);
6960*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r5, 14U);
6961*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r1, &l_393c);
6962*f5c631daSSadaf Ebrahimi __ mov(r3, 0U);
6963*f5c631daSSadaf Ebrahimi __ mov(r2, 1U);
6964*f5c631daSSadaf Ebrahimi __ mov(r0, 4U);
6965*f5c631daSSadaf Ebrahimi __ str(Narrow, r4, MemOperand(sp, 40));
6966*f5c631daSSadaf Ebrahimi __ str(Narrow, r5, MemOperand(sp, 44));
6967*f5c631daSSadaf Ebrahimi __ str(r9, MemOperand(sp, 12));
6968*f5c631daSSadaf Ebrahimi __ str(Narrow, r0, MemOperand(sp, 52));
6969*f5c631daSSadaf Ebrahimi __ str(Narrow, r2, MemOperand(sp, 56));
6970*f5c631daSSadaf Ebrahimi __ str(Narrow, r2, MemOperand(sp, 60));
6971*f5c631daSSadaf Ebrahimi __ strb(r2, MemOperand(sp, 88));
6972*f5c631daSSadaf Ebrahimi __ str(Narrow, r2, MemOperand(sp, 104));
6973*f5c631daSSadaf Ebrahimi __ str(Narrow, r2, MemOperand(sp, 128));
6974*f5c631daSSadaf Ebrahimi __ str(Narrow, r2, MemOperand(sp, 152));
6975*f5c631daSSadaf Ebrahimi __ str(Narrow, r2, MemOperand(sp, 176));
6976*f5c631daSSadaf Ebrahimi __ strb(r3, MemOperand(sp, 64));
6977*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 68));
6978*f5c631daSSadaf Ebrahimi __ strb(r3, MemOperand(sp, 72));
6979*f5c631daSSadaf Ebrahimi __ strb(r3, MemOperand(sp, 76));
6980*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 92));
6981*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 96));
6982*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 100));
6983*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 108));
6984*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 112));
6985*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 116));
6986*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 120));
6987*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 124));
6988*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 132));
6989*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 136));
6990*f5c631daSSadaf Ebrahimi }
Generate_54(TestAssembler * assembler)6991*f5c631daSSadaf Ebrahimi void Generate_54(TestAssembler* assembler) {
6992*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 140));
6993*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 144));
6994*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 148));
6995*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 156));
6996*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 160));
6997*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 164));
6998*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 168));
6999*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 172));
7000*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 180));
7001*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 184));
7002*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 188));
7003*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 192));
7004*f5c631daSSadaf Ebrahimi __ strb(r3, MemOperand(sp, 200));
7005*f5c631daSSadaf Ebrahimi __ str(Narrow, r1, MemOperand(sp, 48));
7006*f5c631daSSadaf Ebrahimi __ b(eq, Narrow, &l_383a);
7007*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r4, 28));
7008*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r2, 1U);
7009*f5c631daSSadaf Ebrahimi __ b(eq, Narrow, &l_38ce);
7010*f5c631daSSadaf Ebrahimi // --------------
7011*f5c631daSSadaf Ebrahimi __ bind(&l_383a);
7012*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(sp, 248));
7013*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r4);
7014*f5c631daSSadaf Ebrahimi __ mov(Narrow, r1, r8);
7015*f5c631daSSadaf Ebrahimi __ mov(Narrow, r2, sl);
7016*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp));
7017*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(sp, 252));
7018*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 4));
7019*f5c631daSSadaf Ebrahimi __ mov(Narrow, r3, fp);
7020*f5c631daSSadaf Ebrahimi // --------------
7021*f5c631daSSadaf Ebrahimi __ bind(&l_384a);
7022*f5c631daSSadaf Ebrahimi __ bl(&l_384a);
7023*f5c631daSSadaf Ebrahimi __ ldrb(r3, MemOperand(sp, 72));
7024*f5c631daSSadaf Ebrahimi __ cbz(r3, &l_3890);
7025*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r4, MemOperand(sp, 40));
7026*f5c631daSSadaf Ebrahimi __ movw(r3, 0U);
7027*f5c631daSSadaf Ebrahimi __ movt(r3, 0U);
7028*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r4));
7029*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r2, 8));
7030*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r2, r3);
7031*f5c631daSSadaf Ebrahimi __ b(ne, Narrow, &l_38e0);
7032*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r5, MemOperand(r4, 12));
7033*f5c631daSSadaf Ebrahimi __ add(Narrow, r0, sp, 48U);
7034*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r4, 4));
7035*f5c631daSSadaf Ebrahimi __ subs(Narrow, r5, r5, r3);
7036*f5c631daSSadaf Ebrahimi __ mov(Narrow, r1, r5);
7037*f5c631daSSadaf Ebrahimi // --------------
7038*f5c631daSSadaf Ebrahimi __ bind(&l_3870);
7039*f5c631daSSadaf Ebrahimi __ bl(&l_3870);
7040*f5c631daSSadaf Ebrahimi __ add(r8, r4, 96U);
7041*f5c631daSSadaf Ebrahimi __ add(r7, r4, 44U);
7042*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r0, 0U);
7043*f5c631daSSadaf Ebrahimi __ b(ne, Narrow, &l_38e8);
7044*f5c631daSSadaf Ebrahimi // --------------
7045*f5c631daSSadaf Ebrahimi __ bind(&l_3880);
7046*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r5, MemOperand(r4, 12));
7047*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r8);
7048*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r4, 4));
7049*f5c631daSSadaf Ebrahimi __ mov(Narrow, r1, r7);
7050*f5c631daSSadaf Ebrahimi __ add(Narrow, r2, sp, 48U);
7051*f5c631daSSadaf Ebrahimi __ subs(Narrow, r3, r5, r3);
7052*f5c631daSSadaf Ebrahimi // --------------
7053*f5c631daSSadaf Ebrahimi __ bind(&l_388c);
7054*f5c631daSSadaf Ebrahimi __ bl(&l_388c);
7055*f5c631daSSadaf Ebrahimi // --------------
7056*f5c631daSSadaf Ebrahimi __ bind(&l_3890);
7057*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r4, MemOperand(sp, 192));
7058*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, &l_3940);
7059*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 48));
7060*f5c631daSSadaf Ebrahimi __ cbz(r4, &l_38a6);
7061*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r0, MemOperand(r4));
7062*f5c631daSSadaf Ebrahimi __ cbz(r0, &l_38a0);
7063*f5c631daSSadaf Ebrahimi // --------------
7064*f5c631daSSadaf Ebrahimi __ bind(&l_389c);
7065*f5c631daSSadaf Ebrahimi __ bl(&l_389c);
7066*f5c631daSSadaf Ebrahimi // --------------
7067*f5c631daSSadaf Ebrahimi __ bind(&l_38a0);
7068*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r4);
7069*f5c631daSSadaf Ebrahimi // --------------
7070*f5c631daSSadaf Ebrahimi __ bind(&l_38a2);
7071*f5c631daSSadaf Ebrahimi __ bl(&l_38a2);
7072*f5c631daSSadaf Ebrahimi // --------------
7073*f5c631daSSadaf Ebrahimi __ bind(&l_38a6);
7074*f5c631daSSadaf Ebrahimi __ ldrb(r3, MemOperand(sp, 29));
7075*f5c631daSSadaf Ebrahimi __ str(Narrow, r6, MemOperand(sp, 12));
7076*f5c631daSSadaf Ebrahimi __ cbnz(r3, &l_38b4);
7077*f5c631daSSadaf Ebrahimi // --------------
7078*f5c631daSSadaf Ebrahimi __ bind(&l_38ae);
7079*f5c631daSSadaf Ebrahimi __ add(Narrow, sp, sp, 212U);
7080*f5c631daSSadaf Ebrahimi __ pop(RegisterList(0x8ff0));
7081*f5c631daSSadaf Ebrahimi // --------------
7082*f5c631daSSadaf Ebrahimi __ bind(&l_38b4);
7083*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r0, MemOperand(sp, 32));
7084*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r0, 0U);
7085*f5c631daSSadaf Ebrahimi __ b(eq, Narrow, &l_38ae);
7086*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(sp, 36));
7087*f5c631daSSadaf Ebrahimi __ movs(Narrow, r2, 0U);
7088*f5c631daSSadaf Ebrahimi __ strb(r2, MemOperand(sp, 29));
7089*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r3, 1U);
7090*f5c631daSSadaf Ebrahimi __ b(ne, Narrow, &l_38ae);
7091*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r0));
7092*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r3, 28));
7093*f5c631daSSadaf Ebrahimi __ blx(r3);
7094*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_38ae);
7095*f5c631daSSadaf Ebrahimi // --------------
7096*f5c631daSSadaf Ebrahimi __ bind(&l_38ce);
7097*f5c631daSSadaf Ebrahimi __ eor(r1, r5, 0x1);
7098*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r4);
7099*f5c631daSSadaf Ebrahimi __ add(Narrow, r3, sp, 48U);
7100*f5c631daSSadaf Ebrahimi // --------------
7101*f5c631daSSadaf Ebrahimi __ bind(&l_38d6);
7102*f5c631daSSadaf Ebrahimi __ bl(&l_38d6);
7103*f5c631daSSadaf Ebrahimi __ mov(r8, 14U);
7104*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_383a);
7105*f5c631daSSadaf Ebrahimi // --------------
7106*f5c631daSSadaf Ebrahimi __ bind(&l_38e0);
7107*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r4);
7108*f5c631daSSadaf Ebrahimi __ add(Narrow, r1, sp, 48U);
7109*f5c631daSSadaf Ebrahimi __ blx(r2);
7110*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_3890);
7111*f5c631daSSadaf Ebrahimi // --------------
7112*f5c631daSSadaf Ebrahimi __ bind(&l_38e8);
7113*f5c631daSSadaf Ebrahimi __ ldr(r3, MemOperand(r4, 132));
7114*f5c631daSSadaf Ebrahimi __ add(r8, r4, 96U);
7115*f5c631daSSadaf Ebrahimi __ add(r7, r4, 44U);
7116*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r5, r3);
7117*f5c631daSSadaf Ebrahimi __ b(eq, Narrow, &l_38fe);
7118*f5c631daSSadaf Ebrahimi __ adds(Narrow, r2, r5, 2U);
7119*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r3, r2);
7120*f5c631daSSadaf Ebrahimi __ b(ge, Narrow, &l_3880);
7121*f5c631daSSadaf Ebrahimi // --------------
7122*f5c631daSSadaf Ebrahimi __ bind(&l_38fe);
7123*f5c631daSSadaf Ebrahimi __ movs(Narrow, r3, 0U);
7124*f5c631daSSadaf Ebrahimi __ mov(Narrow, r2, r5);
7125*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp));
7126*f5c631daSSadaf Ebrahimi }
Generate_55(TestAssembler * assembler)7127*f5c631daSSadaf Ebrahimi void Generate_55(TestAssembler* assembler) {
7128*f5c631daSSadaf Ebrahimi __ mov(Narrow, r1, r7);
7129*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r8);
7130*f5c631daSSadaf Ebrahimi __ movs(Narrow, r3, 2U);
7131*f5c631daSSadaf Ebrahimi // --------------
7132*f5c631daSSadaf Ebrahimi __ bind(&l_390a);
7133*f5c631daSSadaf Ebrahimi __ bl(&l_390a);
7134*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_3880);
7135*f5c631daSSadaf Ebrahimi // --------------
7136*f5c631daSSadaf Ebrahimi __ bind(&l_3910);
7137*f5c631daSSadaf Ebrahimi __ blx(r2);
7138*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_37a4);
7139*f5c631daSSadaf Ebrahimi __ add(Narrow, r0, sp, 40U);
7140*f5c631daSSadaf Ebrahimi // --------------
7141*f5c631daSSadaf Ebrahimi __ bind(&l_3916);
7142*f5c631daSSadaf Ebrahimi __ bl(&l_3916);
7143*f5c631daSSadaf Ebrahimi // --------------
7144*f5c631daSSadaf Ebrahimi __ bind(&l_391a);
7145*f5c631daSSadaf Ebrahimi __ add(Narrow, r0, sp, 208U);
7146*f5c631daSSadaf Ebrahimi __ str(r9, MemOperand(r0, -196, PreIndex));
7147*f5c631daSSadaf Ebrahimi // --------------
7148*f5c631daSSadaf Ebrahimi __ bind(&l_3920);
7149*f5c631daSSadaf Ebrahimi __ bl(&l_3920);
7150*f5c631daSSadaf Ebrahimi // --------------
7151*f5c631daSSadaf Ebrahimi __ bind(&l_3924);
7152*f5c631daSSadaf Ebrahimi __ bl(&l_3924);
7153*f5c631daSSadaf Ebrahimi // --------------
7154*f5c631daSSadaf Ebrahimi __ bind(&l_3928);
7155*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, &l_3940);
7156*f5c631daSSadaf Ebrahimi __ add(Narrow, r0, sp, 76U);
7157*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 48));
7158*f5c631daSSadaf Ebrahimi // --------------
7159*f5c631daSSadaf Ebrahimi __ bind(&l_392e);
7160*f5c631daSSadaf Ebrahimi __ bl(&l_392e);
7161*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_391a);
7162*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_3928);
7163*f5c631daSSadaf Ebrahimi __ nop(Narrow);
7164*f5c631daSSadaf Ebrahimi // --------------
7165*f5c631daSSadaf Ebrahimi __ bind(&l_3938);
7166*f5c631daSSadaf Ebrahimi __ Emit32(0x00000008);
7167*f5c631daSSadaf Ebrahimi // --------------
7168*f5c631daSSadaf Ebrahimi __ bind(&l_393c);
7169*f5c631daSSadaf Ebrahimi __ Emit32(0x00000008);
7170*f5c631daSSadaf Ebrahimi // --------------
7171*f5c631daSSadaf Ebrahimi __ bind(&l_3940);
7172*f5c631daSSadaf Ebrahimi __ Emit32(0x00000008);
7173*f5c631daSSadaf Ebrahimi // --------------
7174*f5c631daSSadaf Ebrahimi __ bind(&l_3944);
7175*f5c631daSSadaf Ebrahimi __ Emit32(0x00000008);
7176*f5c631daSSadaf Ebrahimi __ push(RegisterList(0x4ff0));
7177*f5c631daSSadaf Ebrahimi __ adds(r7, r0, 44U);
7178*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r6, &l_3b30);
7179*f5c631daSSadaf Ebrahimi __ sub(Narrow, sp, sp, 212U);
7180*f5c631daSSadaf Ebrahimi __ mov(Narrow, r5, r1);
7181*f5c631daSSadaf Ebrahimi __ mov(r1, 0U);
7182*f5c631daSSadaf Ebrahimi __ mov(Narrow, r4, r0);
7183*f5c631daSSadaf Ebrahimi __ mov(Narrow, sl, r2);
7184*f5c631daSSadaf Ebrahimi __ mov(Narrow, fp, r3);
7185*f5c631daSSadaf Ebrahimi __ mov(Narrow, r8, r5);
7186*f5c631daSSadaf Ebrahimi __ str(Narrow, r6, MemOperand(sp, 12));
7187*f5c631daSSadaf Ebrahimi __ str(Narrow, r1, MemOperand(sp, 16));
7188*f5c631daSSadaf Ebrahimi __ strb(r1, MemOperand(sp, 29));
7189*f5c631daSSadaf Ebrahimi __ b(eq, Narrow, &l_39bc);
7190*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r0, 44));
7191*f5c631daSSadaf Ebrahimi __ movs(Narrow, r2, 1U);
7192*f5c631daSSadaf Ebrahimi __ str(Narrow, r2, MemOperand(sp, 36));
7193*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r7);
7194*f5c631daSSadaf Ebrahimi __ movs(Narrow, r1, 32U);
7195*f5c631daSSadaf Ebrahimi __ str(Narrow, r7, MemOperand(sp, 32));
7196*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r3, 32));
7197*f5c631daSSadaf Ebrahimi __ blx(r3);
7198*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r4, 44));
7199*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r7);
7200*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r3, 24));
7201*f5c631daSSadaf Ebrahimi __ blx(r3);
7202*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r4, 44));
7203*f5c631daSSadaf Ebrahimi __ movw(r3, 0U);
7204*f5c631daSSadaf Ebrahimi __ movt(r3, 0U);
7205*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r7);
7206*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r2));
7207*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r2, r3);
7208*f5c631daSSadaf Ebrahimi __ b(ne, &l_3b08);
7209*f5c631daSSadaf Ebrahimi // --------------
7210*f5c631daSSadaf Ebrahimi __ bind(&l_3998);
7211*f5c631daSSadaf Ebrahimi __ bl(&l_3998);
7212*f5c631daSSadaf Ebrahimi // --------------
7213*f5c631daSSadaf Ebrahimi __ bind(&l_399c);
7214*f5c631daSSadaf Ebrahimi __ str(Narrow, r0, MemOperand(sp, 16));
7215*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r1, MemOperand(r0, 20));
7216*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r0, 4));
7217*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r0, 12));
7218*f5c631daSSadaf Ebrahimi __ add(Narrow, r3, r3, r1);
7219*f5c631daSSadaf Ebrahimi __ subs(Narrow, r3, r3, r2);
7220*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r3, 31U);
7221*f5c631daSSadaf Ebrahimi __ b(hi, Narrow, &l_39b6);
7222*f5c631daSSadaf Ebrahimi __ lsls(Narrow, r1, r1, 1U);
7223*f5c631daSSadaf Ebrahimi __ adds(r0, 4U);
7224*f5c631daSSadaf Ebrahimi __ adds(Narrow, r1, r1, 32U);
7225*f5c631daSSadaf Ebrahimi // --------------
7226*f5c631daSSadaf Ebrahimi __ bind(&l_39b2);
7227*f5c631daSSadaf Ebrahimi __ bl(&l_39b2);
7228*f5c631daSSadaf Ebrahimi // --------------
7229*f5c631daSSadaf Ebrahimi __ bind(&l_39b6);
7230*f5c631daSSadaf Ebrahimi __ movs(Narrow, r3, 1U);
7231*f5c631daSSadaf Ebrahimi __ strb(r3, MemOperand(sp, 29));
7232*f5c631daSSadaf Ebrahimi // --------------
7233*f5c631daSSadaf Ebrahimi __ bind(&l_39bc);
7234*f5c631daSSadaf Ebrahimi __ ldr(r9, &l_3b3c);
7235*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r5, 14U);
7236*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r1, &l_3b34);
7237*f5c631daSSadaf Ebrahimi __ mov(r3, 0U);
7238*f5c631daSSadaf Ebrahimi __ mov(r2, 1U);
7239*f5c631daSSadaf Ebrahimi __ mov(r0, 4U);
7240*f5c631daSSadaf Ebrahimi __ str(Narrow, r4, MemOperand(sp, 40));
7241*f5c631daSSadaf Ebrahimi __ str(Narrow, r5, MemOperand(sp, 44));
7242*f5c631daSSadaf Ebrahimi __ str(r9, MemOperand(sp, 12));
7243*f5c631daSSadaf Ebrahimi __ str(Narrow, r0, MemOperand(sp, 52));
7244*f5c631daSSadaf Ebrahimi __ str(Narrow, r2, MemOperand(sp, 56));
7245*f5c631daSSadaf Ebrahimi __ str(Narrow, r2, MemOperand(sp, 60));
7246*f5c631daSSadaf Ebrahimi __ strb(r2, MemOperand(sp, 88));
7247*f5c631daSSadaf Ebrahimi __ str(Narrow, r2, MemOperand(sp, 104));
7248*f5c631daSSadaf Ebrahimi __ str(Narrow, r2, MemOperand(sp, 128));
7249*f5c631daSSadaf Ebrahimi __ str(Narrow, r2, MemOperand(sp, 152));
7250*f5c631daSSadaf Ebrahimi __ str(Narrow, r2, MemOperand(sp, 176));
7251*f5c631daSSadaf Ebrahimi __ strb(r3, MemOperand(sp, 64));
7252*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 68));
7253*f5c631daSSadaf Ebrahimi __ strb(r3, MemOperand(sp, 72));
7254*f5c631daSSadaf Ebrahimi __ strb(r3, MemOperand(sp, 76));
7255*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 92));
7256*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 96));
7257*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 100));
7258*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 108));
7259*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 112));
7260*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 116));
7261*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 120));
7262*f5c631daSSadaf Ebrahimi }
Generate_56(TestAssembler * assembler)7263*f5c631daSSadaf Ebrahimi void Generate_56(TestAssembler* assembler) {
7264*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 124));
7265*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 132));
7266*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 136));
7267*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 140));
7268*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 144));
7269*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 148));
7270*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 156));
7271*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 160));
7272*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 164));
7273*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 168));
7274*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 172));
7275*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 180));
7276*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 184));
7277*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 188));
7278*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 192));
7279*f5c631daSSadaf Ebrahimi __ strb(r3, MemOperand(sp, 200));
7280*f5c631daSSadaf Ebrahimi __ str(Narrow, r1, MemOperand(sp, 48));
7281*f5c631daSSadaf Ebrahimi __ b(eq, Narrow, &l_3a32);
7282*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r4, 28));
7283*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r2, 1U);
7284*f5c631daSSadaf Ebrahimi __ b(eq, Narrow, &l_3ac6);
7285*f5c631daSSadaf Ebrahimi // --------------
7286*f5c631daSSadaf Ebrahimi __ bind(&l_3a32);
7287*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(sp, 248));
7288*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r4);
7289*f5c631daSSadaf Ebrahimi __ mov(Narrow, r1, r8);
7290*f5c631daSSadaf Ebrahimi __ mov(Narrow, r2, sl);
7291*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp));
7292*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(sp, 252));
7293*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 4));
7294*f5c631daSSadaf Ebrahimi __ mov(Narrow, r3, fp);
7295*f5c631daSSadaf Ebrahimi // --------------
7296*f5c631daSSadaf Ebrahimi __ bind(&l_3a42);
7297*f5c631daSSadaf Ebrahimi __ bl(&l_3a42);
7298*f5c631daSSadaf Ebrahimi __ ldrb(r3, MemOperand(sp, 72));
7299*f5c631daSSadaf Ebrahimi __ cbz(r3, &l_3a88);
7300*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r4, MemOperand(sp, 40));
7301*f5c631daSSadaf Ebrahimi __ movw(r3, 0U);
7302*f5c631daSSadaf Ebrahimi __ movt(r3, 0U);
7303*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r4));
7304*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r2, 8));
7305*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r2, r3);
7306*f5c631daSSadaf Ebrahimi __ b(ne, Narrow, &l_3ad8);
7307*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r5, MemOperand(r4, 12));
7308*f5c631daSSadaf Ebrahimi __ add(Narrow, r0, sp, 48U);
7309*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r4, 4));
7310*f5c631daSSadaf Ebrahimi __ subs(Narrow, r5, r5, r3);
7311*f5c631daSSadaf Ebrahimi __ mov(Narrow, r1, r5);
7312*f5c631daSSadaf Ebrahimi // --------------
7313*f5c631daSSadaf Ebrahimi __ bind(&l_3a68);
7314*f5c631daSSadaf Ebrahimi __ bl(&l_3a68);
7315*f5c631daSSadaf Ebrahimi __ add(r8, r4, 96U);
7316*f5c631daSSadaf Ebrahimi __ add(r7, r4, 44U);
7317*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r0, 0U);
7318*f5c631daSSadaf Ebrahimi __ b(ne, Narrow, &l_3ae0);
7319*f5c631daSSadaf Ebrahimi // --------------
7320*f5c631daSSadaf Ebrahimi __ bind(&l_3a78);
7321*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r5, MemOperand(r4, 12));
7322*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r8);
7323*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r4, 4));
7324*f5c631daSSadaf Ebrahimi __ mov(Narrow, r1, r7);
7325*f5c631daSSadaf Ebrahimi __ add(Narrow, r2, sp, 48U);
7326*f5c631daSSadaf Ebrahimi __ subs(Narrow, r3, r5, r3);
7327*f5c631daSSadaf Ebrahimi // --------------
7328*f5c631daSSadaf Ebrahimi __ bind(&l_3a84);
7329*f5c631daSSadaf Ebrahimi __ bl(&l_3a84);
7330*f5c631daSSadaf Ebrahimi // --------------
7331*f5c631daSSadaf Ebrahimi __ bind(&l_3a88);
7332*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r4, MemOperand(sp, 192));
7333*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, &l_3b38);
7334*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 48));
7335*f5c631daSSadaf Ebrahimi __ cbz(r4, &l_3a9e);
7336*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r0, MemOperand(r4));
7337*f5c631daSSadaf Ebrahimi __ cbz(r0, &l_3a98);
7338*f5c631daSSadaf Ebrahimi // --------------
7339*f5c631daSSadaf Ebrahimi __ bind(&l_3a94);
7340*f5c631daSSadaf Ebrahimi __ bl(&l_3a94);
7341*f5c631daSSadaf Ebrahimi // --------------
7342*f5c631daSSadaf Ebrahimi __ bind(&l_3a98);
7343*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r4);
7344*f5c631daSSadaf Ebrahimi // --------------
7345*f5c631daSSadaf Ebrahimi __ bind(&l_3a9a);
7346*f5c631daSSadaf Ebrahimi __ bl(&l_3a9a);
7347*f5c631daSSadaf Ebrahimi // --------------
7348*f5c631daSSadaf Ebrahimi __ bind(&l_3a9e);
7349*f5c631daSSadaf Ebrahimi __ ldrb(r3, MemOperand(sp, 29));
7350*f5c631daSSadaf Ebrahimi __ str(Narrow, r6, MemOperand(sp, 12));
7351*f5c631daSSadaf Ebrahimi __ cbnz(r3, &l_3aac);
7352*f5c631daSSadaf Ebrahimi // --------------
7353*f5c631daSSadaf Ebrahimi __ bind(&l_3aa6);
7354*f5c631daSSadaf Ebrahimi __ add(Narrow, sp, sp, 212U);
7355*f5c631daSSadaf Ebrahimi __ pop(RegisterList(0x8ff0));
7356*f5c631daSSadaf Ebrahimi // --------------
7357*f5c631daSSadaf Ebrahimi __ bind(&l_3aac);
7358*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r0, MemOperand(sp, 32));
7359*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r0, 0U);
7360*f5c631daSSadaf Ebrahimi __ b(eq, Narrow, &l_3aa6);
7361*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(sp, 36));
7362*f5c631daSSadaf Ebrahimi __ movs(Narrow, r2, 0U);
7363*f5c631daSSadaf Ebrahimi __ strb(r2, MemOperand(sp, 29));
7364*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r3, 1U);
7365*f5c631daSSadaf Ebrahimi __ b(ne, Narrow, &l_3aa6);
7366*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r0));
7367*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r3, 28));
7368*f5c631daSSadaf Ebrahimi __ blx(r3);
7369*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_3aa6);
7370*f5c631daSSadaf Ebrahimi // --------------
7371*f5c631daSSadaf Ebrahimi __ bind(&l_3ac6);
7372*f5c631daSSadaf Ebrahimi __ eor(r1, r5, 0x1);
7373*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r4);
7374*f5c631daSSadaf Ebrahimi __ add(Narrow, r3, sp, 48U);
7375*f5c631daSSadaf Ebrahimi // --------------
7376*f5c631daSSadaf Ebrahimi __ bind(&l_3ace);
7377*f5c631daSSadaf Ebrahimi __ bl(&l_3ace);
7378*f5c631daSSadaf Ebrahimi __ mov(r8, 14U);
7379*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_3a32);
7380*f5c631daSSadaf Ebrahimi // --------------
7381*f5c631daSSadaf Ebrahimi __ bind(&l_3ad8);
7382*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r4);
7383*f5c631daSSadaf Ebrahimi __ add(Narrow, r1, sp, 48U);
7384*f5c631daSSadaf Ebrahimi __ blx(r2);
7385*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_3a88);
7386*f5c631daSSadaf Ebrahimi // --------------
7387*f5c631daSSadaf Ebrahimi __ bind(&l_3ae0);
7388*f5c631daSSadaf Ebrahimi __ ldr(r3, MemOperand(r4, 132));
7389*f5c631daSSadaf Ebrahimi __ add(r8, r4, 96U);
7390*f5c631daSSadaf Ebrahimi __ add(r7, r4, 44U);
7391*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r5, r3);
7392*f5c631daSSadaf Ebrahimi __ b(eq, Narrow, &l_3af6);
7393*f5c631daSSadaf Ebrahimi __ adds(Narrow, r2, r5, 2U);
7394*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r3, r2);
7395*f5c631daSSadaf Ebrahimi __ b(ge, Narrow, &l_3a78);
7396*f5c631daSSadaf Ebrahimi }
Generate_57(TestAssembler * assembler)7397*f5c631daSSadaf Ebrahimi void Generate_57(TestAssembler* assembler) {
7398*f5c631daSSadaf Ebrahimi // --------------
7399*f5c631daSSadaf Ebrahimi __ bind(&l_3af6);
7400*f5c631daSSadaf Ebrahimi __ movs(Narrow, r3, 0U);
7401*f5c631daSSadaf Ebrahimi __ mov(Narrow, r2, r5);
7402*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp));
7403*f5c631daSSadaf Ebrahimi __ mov(Narrow, r1, r7);
7404*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r8);
7405*f5c631daSSadaf Ebrahimi __ movs(Narrow, r3, 2U);
7406*f5c631daSSadaf Ebrahimi // --------------
7407*f5c631daSSadaf Ebrahimi __ bind(&l_3b02);
7408*f5c631daSSadaf Ebrahimi __ bl(&l_3b02);
7409*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_3a78);
7410*f5c631daSSadaf Ebrahimi // --------------
7411*f5c631daSSadaf Ebrahimi __ bind(&l_3b08);
7412*f5c631daSSadaf Ebrahimi __ blx(r2);
7413*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_399c);
7414*f5c631daSSadaf Ebrahimi __ add(Narrow, r0, sp, 40U);
7415*f5c631daSSadaf Ebrahimi // --------------
7416*f5c631daSSadaf Ebrahimi __ bind(&l_3b0e);
7417*f5c631daSSadaf Ebrahimi __ bl(&l_3b0e);
7418*f5c631daSSadaf Ebrahimi // --------------
7419*f5c631daSSadaf Ebrahimi __ bind(&l_3b12);
7420*f5c631daSSadaf Ebrahimi __ add(Narrow, r0, sp, 208U);
7421*f5c631daSSadaf Ebrahimi __ str(r9, MemOperand(r0, -196, PreIndex));
7422*f5c631daSSadaf Ebrahimi // --------------
7423*f5c631daSSadaf Ebrahimi __ bind(&l_3b18);
7424*f5c631daSSadaf Ebrahimi __ bl(&l_3b18);
7425*f5c631daSSadaf Ebrahimi // --------------
7426*f5c631daSSadaf Ebrahimi __ bind(&l_3b1c);
7427*f5c631daSSadaf Ebrahimi __ bl(&l_3b1c);
7428*f5c631daSSadaf Ebrahimi // --------------
7429*f5c631daSSadaf Ebrahimi __ bind(&l_3b20);
7430*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, &l_3b38);
7431*f5c631daSSadaf Ebrahimi __ add(Narrow, r0, sp, 76U);
7432*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 48));
7433*f5c631daSSadaf Ebrahimi // --------------
7434*f5c631daSSadaf Ebrahimi __ bind(&l_3b26);
7435*f5c631daSSadaf Ebrahimi __ bl(&l_3b26);
7436*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_3b12);
7437*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_3b20);
7438*f5c631daSSadaf Ebrahimi __ nop(Narrow);
7439*f5c631daSSadaf Ebrahimi // --------------
7440*f5c631daSSadaf Ebrahimi __ bind(&l_3b30);
7441*f5c631daSSadaf Ebrahimi __ Emit32(0x00000008);
7442*f5c631daSSadaf Ebrahimi // --------------
7443*f5c631daSSadaf Ebrahimi __ bind(&l_3b34);
7444*f5c631daSSadaf Ebrahimi __ Emit32(0x00000008);
7445*f5c631daSSadaf Ebrahimi // --------------
7446*f5c631daSSadaf Ebrahimi __ bind(&l_3b38);
7447*f5c631daSSadaf Ebrahimi __ Emit32(0x00000008);
7448*f5c631daSSadaf Ebrahimi // --------------
7449*f5c631daSSadaf Ebrahimi __ bind(&l_3b3c);
7450*f5c631daSSadaf Ebrahimi __ Emit32(0x00000008);
7451*f5c631daSSadaf Ebrahimi __ movw(r3, 0U);
7452*f5c631daSSadaf Ebrahimi __ push(RegisterList(0x47f0));
7453*f5c631daSSadaf Ebrahimi __ movt(r3, 0U);
7454*f5c631daSSadaf Ebrahimi __ mov(Narrow, r6, r0);
7455*f5c631daSSadaf Ebrahimi __ adds(r4, r6, 44U);
7456*f5c631daSSadaf Ebrahimi __ sub(Narrow, sp, sp, 232U);
7457*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r0, MemOperand(r3));
7458*f5c631daSSadaf Ebrahimi __ mov(r2, 800U);
7459*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r7, &l_3d1c);
7460*f5c631daSSadaf Ebrahimi __ mov(r3, 0U);
7461*f5c631daSSadaf Ebrahimi __ mov(Narrow, r8, r1);
7462*f5c631daSSadaf Ebrahimi __ vstr(s0, MemOperand(sp, 8));
7463*f5c631daSSadaf Ebrahimi __ str(Narrow, r0, MemOperand(sp, 24));
7464*f5c631daSSadaf Ebrahimi __ str(Narrow, r7, MemOperand(sp, 36));
7465*f5c631daSSadaf Ebrahimi __ str(Narrow, r2, MemOperand(sp, 16));
7466*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 40));
7467*f5c631daSSadaf Ebrahimi __ strb(r3, MemOperand(sp, 53));
7468*f5c631daSSadaf Ebrahimi __ b(eq, Narrow, &l_3bc4);
7469*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r6, 44));
7470*f5c631daSSadaf Ebrahimi __ movs(Narrow, r2, 1U);
7471*f5c631daSSadaf Ebrahimi __ str(Narrow, r2, MemOperand(sp, 60));
7472*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r4);
7473*f5c631daSSadaf Ebrahimi __ movs(Narrow, r1, 32U);
7474*f5c631daSSadaf Ebrahimi __ str(Narrow, r4, MemOperand(sp, 56));
7475*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r3, 32));
7476*f5c631daSSadaf Ebrahimi __ blx(r3);
7477*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r6, 44));
7478*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r4);
7479*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r3, 24));
7480*f5c631daSSadaf Ebrahimi __ blx(r3);
7481*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r6, 44));
7482*f5c631daSSadaf Ebrahimi __ movw(r3, 0U);
7483*f5c631daSSadaf Ebrahimi __ movt(r3, 0U);
7484*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r4);
7485*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r2));
7486*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r2, r3);
7487*f5c631daSSadaf Ebrahimi __ b(ne, &l_3cf8);
7488*f5c631daSSadaf Ebrahimi // --------------
7489*f5c631daSSadaf Ebrahimi __ bind(&l_3ba0);
7490*f5c631daSSadaf Ebrahimi __ bl(&l_3ba0);
7491*f5c631daSSadaf Ebrahimi // --------------
7492*f5c631daSSadaf Ebrahimi __ bind(&l_3ba4);
7493*f5c631daSSadaf Ebrahimi __ str(Narrow, r0, MemOperand(sp, 40));
7494*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r1, MemOperand(r0, 20));
7495*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r0, 4));
7496*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r0, 12));
7497*f5c631daSSadaf Ebrahimi __ add(Narrow, r2, r2, r1);
7498*f5c631daSSadaf Ebrahimi __ subs(Narrow, r2, r2, r3);
7499*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r2, 31U);
7500*f5c631daSSadaf Ebrahimi __ b(hi, Narrow, &l_3bbe);
7501*f5c631daSSadaf Ebrahimi __ lsls(Narrow, r1, r1, 1U);
7502*f5c631daSSadaf Ebrahimi __ adds(r0, 4U);
7503*f5c631daSSadaf Ebrahimi __ adds(Narrow, r1, r1, 32U);
7504*f5c631daSSadaf Ebrahimi // --------------
7505*f5c631daSSadaf Ebrahimi __ bind(&l_3bba);
7506*f5c631daSSadaf Ebrahimi __ bl(&l_3bba);
7507*f5c631daSSadaf Ebrahimi // --------------
7508*f5c631daSSadaf Ebrahimi __ bind(&l_3bbe);
7509*f5c631daSSadaf Ebrahimi __ movs(Narrow, r3, 1U);
7510*f5c631daSSadaf Ebrahimi __ strb(r3, MemOperand(sp, 53));
7511*f5c631daSSadaf Ebrahimi // --------------
7512*f5c631daSSadaf Ebrahimi __ bind(&l_3bc4);
7513*f5c631daSSadaf Ebrahimi __ ldr(r9, &l_3d24);
7514*f5c631daSSadaf Ebrahimi __ movs(Narrow, r4, 0U);
7515*f5c631daSSadaf Ebrahimi __ ldr(lr, &l_3d28);
7516*f5c631daSSadaf Ebrahimi __ movs(Narrow, r5, 1U);
7517*f5c631daSSadaf Ebrahimi __ movs(Narrow, r2, 14U);
7518*f5c631daSSadaf Ebrahimi __ mov(sl, 4U);
7519*f5c631daSSadaf Ebrahimi __ add(ip, sp, 8U);
7520*f5c631daSSadaf Ebrahimi __ str(Narrow, r2, MemOperand(sp, 68));
7521*f5c631daSSadaf Ebrahimi __ str(Narrow, r6, MemOperand(sp, 64));
7522*f5c631daSSadaf Ebrahimi __ mov(Narrow, r1, r2);
7523*f5c631daSSadaf Ebrahimi __ str(r9, MemOperand(sp, 36));
7524*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r6);
7525*f5c631daSSadaf Ebrahimi __ str(sl, MemOperand(sp, 76));
7526*f5c631daSSadaf Ebrahimi __ mov(Narrow, r3, r8);
7527*f5c631daSSadaf Ebrahimi __ str(Narrow, r5, MemOperand(sp, 80));
7528*f5c631daSSadaf Ebrahimi __ mov(r2, 800U);
7529*f5c631daSSadaf Ebrahimi __ str(Narrow, r5, MemOperand(sp, 84));
7530*f5c631daSSadaf Ebrahimi __ strb(r5, MemOperand(sp, 112));
7531*f5c631daSSadaf Ebrahimi __ str(Narrow, r5, MemOperand(sp, 128));
7532*f5c631daSSadaf Ebrahimi __ str(Narrow, r5, MemOperand(sp, 152));
7533*f5c631daSSadaf Ebrahimi __ str(Narrow, r5, MemOperand(sp, 176));
7534*f5c631daSSadaf Ebrahimi }
Generate_58(TestAssembler * assembler)7535*f5c631daSSadaf Ebrahimi void Generate_58(TestAssembler* assembler) {
7536*f5c631daSSadaf Ebrahimi __ str(Narrow, r5, MemOperand(sp, 200));
7537*f5c631daSSadaf Ebrahimi __ strb(r4, MemOperand(sp, 88));
7538*f5c631daSSadaf Ebrahimi __ str(Narrow, r4, MemOperand(sp, 92));
7539*f5c631daSSadaf Ebrahimi __ strb(r4, MemOperand(sp, 96));
7540*f5c631daSSadaf Ebrahimi __ strb(r4, MemOperand(sp, 100));
7541*f5c631daSSadaf Ebrahimi __ str(Narrow, r4, MemOperand(sp, 116));
7542*f5c631daSSadaf Ebrahimi __ str(Narrow, r4, MemOperand(sp, 120));
7543*f5c631daSSadaf Ebrahimi __ str(Narrow, r4, MemOperand(sp, 124));
7544*f5c631daSSadaf Ebrahimi __ str(Narrow, r4, MemOperand(sp, 132));
7545*f5c631daSSadaf Ebrahimi __ str(Narrow, r4, MemOperand(sp, 136));
7546*f5c631daSSadaf Ebrahimi __ str(Narrow, r4, MemOperand(sp, 140));
7547*f5c631daSSadaf Ebrahimi __ str(Narrow, r4, MemOperand(sp, 144));
7548*f5c631daSSadaf Ebrahimi __ str(Narrow, r4, MemOperand(sp, 148));
7549*f5c631daSSadaf Ebrahimi __ str(Narrow, r4, MemOperand(sp, 156));
7550*f5c631daSSadaf Ebrahimi __ str(Narrow, r4, MemOperand(sp, 160));
7551*f5c631daSSadaf Ebrahimi __ str(Narrow, r4, MemOperand(sp, 164));
7552*f5c631daSSadaf Ebrahimi __ str(Narrow, r4, MemOperand(sp, 168));
7553*f5c631daSSadaf Ebrahimi __ str(Narrow, r4, MemOperand(sp, 172));
7554*f5c631daSSadaf Ebrahimi __ str(Narrow, r4, MemOperand(sp, 180));
7555*f5c631daSSadaf Ebrahimi __ str(Narrow, r4, MemOperand(sp, 184));
7556*f5c631daSSadaf Ebrahimi __ str(Narrow, r4, MemOperand(sp, 188));
7557*f5c631daSSadaf Ebrahimi __ str(Narrow, r4, MemOperand(sp, 192));
7558*f5c631daSSadaf Ebrahimi __ str(Narrow, r4, MemOperand(sp, 196));
7559*f5c631daSSadaf Ebrahimi __ str(Narrow, r4, MemOperand(sp, 204));
7560*f5c631daSSadaf Ebrahimi __ str(ip, MemOperand(sp));
7561*f5c631daSSadaf Ebrahimi __ str(Narrow, r4, MemOperand(sp, 208));
7562*f5c631daSSadaf Ebrahimi __ str(Narrow, r4, MemOperand(sp, 212));
7563*f5c631daSSadaf Ebrahimi __ str(Narrow, r4, MemOperand(sp, 216));
7564*f5c631daSSadaf Ebrahimi __ strb(r4, MemOperand(sp, 224));
7565*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 72));
7566*f5c631daSSadaf Ebrahimi // --------------
7567*f5c631daSSadaf Ebrahimi __ bind(&l_3c46);
7568*f5c631daSSadaf Ebrahimi __ bl(&l_3c46);
7569*f5c631daSSadaf Ebrahimi __ ldrb(r3, MemOperand(sp, 96));
7570*f5c631daSSadaf Ebrahimi __ cbz(r3, &l_3c8a);
7571*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r4, MemOperand(sp, 64));
7572*f5c631daSSadaf Ebrahimi __ movw(r3, 0U);
7573*f5c631daSSadaf Ebrahimi __ movt(r3, 0U);
7574*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r4));
7575*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r2, 8));
7576*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r2, r3);
7577*f5c631daSSadaf Ebrahimi __ b(ne, Narrow, &l_3cc8);
7578*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r5, MemOperand(r4, 12));
7579*f5c631daSSadaf Ebrahimi __ add(Narrow, r0, sp, 72U);
7580*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r4, 4));
7581*f5c631daSSadaf Ebrahimi __ subs(Narrow, r5, r5, r3);
7582*f5c631daSSadaf Ebrahimi __ mov(Narrow, r1, r5);
7583*f5c631daSSadaf Ebrahimi // --------------
7584*f5c631daSSadaf Ebrahimi __ bind(&l_3c6c);
7585*f5c631daSSadaf Ebrahimi __ bl(&l_3c6c);
7586*f5c631daSSadaf Ebrahimi __ add(r8, r4, 96U);
7587*f5c631daSSadaf Ebrahimi __ add(r6, r4, 44U);
7588*f5c631daSSadaf Ebrahimi __ cbnz(r0, &l_3cd0);
7589*f5c631daSSadaf Ebrahimi // --------------
7590*f5c631daSSadaf Ebrahimi __ bind(&l_3c7a);
7591*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r5, MemOperand(r4, 12));
7592*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r8);
7593*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r4, 4));
7594*f5c631daSSadaf Ebrahimi __ mov(Narrow, r1, r6);
7595*f5c631daSSadaf Ebrahimi __ add(Narrow, r2, sp, 72U);
7596*f5c631daSSadaf Ebrahimi __ subs(Narrow, r3, r5, r3);
7597*f5c631daSSadaf Ebrahimi // --------------
7598*f5c631daSSadaf Ebrahimi __ bind(&l_3c86);
7599*f5c631daSSadaf Ebrahimi __ bl(&l_3c86);
7600*f5c631daSSadaf Ebrahimi // --------------
7601*f5c631daSSadaf Ebrahimi __ bind(&l_3c8a);
7602*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r4, MemOperand(sp, 216));
7603*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, &l_3d20);
7604*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 72));
7605*f5c631daSSadaf Ebrahimi __ cbz(r4, &l_3ca0);
7606*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r0, MemOperand(r4));
7607*f5c631daSSadaf Ebrahimi __ cbz(r0, &l_3c9a);
7608*f5c631daSSadaf Ebrahimi // --------------
7609*f5c631daSSadaf Ebrahimi __ bind(&l_3c96);
7610*f5c631daSSadaf Ebrahimi __ bl(&l_3c96);
7611*f5c631daSSadaf Ebrahimi // --------------
7612*f5c631daSSadaf Ebrahimi __ bind(&l_3c9a);
7613*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r4);
7614*f5c631daSSadaf Ebrahimi // --------------
7615*f5c631daSSadaf Ebrahimi __ bind(&l_3c9c);
7616*f5c631daSSadaf Ebrahimi __ bl(&l_3c9c);
7617*f5c631daSSadaf Ebrahimi // --------------
7618*f5c631daSSadaf Ebrahimi __ bind(&l_3ca0);
7619*f5c631daSSadaf Ebrahimi __ ldrb(r3, MemOperand(sp, 53));
7620*f5c631daSSadaf Ebrahimi __ str(Narrow, r7, MemOperand(sp, 36));
7621*f5c631daSSadaf Ebrahimi __ cbnz(r3, &l_3cae);
7622*f5c631daSSadaf Ebrahimi // --------------
7623*f5c631daSSadaf Ebrahimi __ bind(&l_3ca8);
7624*f5c631daSSadaf Ebrahimi __ add(Narrow, sp, sp, 232U);
7625*f5c631daSSadaf Ebrahimi __ pop(RegisterList(0x87f0));
7626*f5c631daSSadaf Ebrahimi // --------------
7627*f5c631daSSadaf Ebrahimi __ bind(&l_3cae);
7628*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r0, MemOperand(sp, 56));
7629*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r0, 0U);
7630*f5c631daSSadaf Ebrahimi __ b(eq, Narrow, &l_3ca8);
7631*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(sp, 60));
7632*f5c631daSSadaf Ebrahimi __ movs(Narrow, r2, 0U);
7633*f5c631daSSadaf Ebrahimi __ strb(r2, MemOperand(sp, 53));
7634*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r3, 1U);
7635*f5c631daSSadaf Ebrahimi __ b(ne, Narrow, &l_3ca8);
7636*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r0));
7637*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r3, 28));
7638*f5c631daSSadaf Ebrahimi __ blx(r3);
7639*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_3ca8);
7640*f5c631daSSadaf Ebrahimi // --------------
7641*f5c631daSSadaf Ebrahimi __ bind(&l_3cc8);
7642*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r4);
7643*f5c631daSSadaf Ebrahimi __ add(Narrow, r1, sp, 72U);
7644*f5c631daSSadaf Ebrahimi __ blx(r2);
7645*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_3c8a);
7646*f5c631daSSadaf Ebrahimi // --------------
7647*f5c631daSSadaf Ebrahimi __ bind(&l_3cd0);
7648*f5c631daSSadaf Ebrahimi __ ldr(r3, MemOperand(r4, 132));
7649*f5c631daSSadaf Ebrahimi __ add(r8, r4, 96U);
7650*f5c631daSSadaf Ebrahimi __ add(r6, r4, 44U);
7651*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r5, r3);
7652*f5c631daSSadaf Ebrahimi __ b(eq, Narrow, &l_3ce6);
7653*f5c631daSSadaf Ebrahimi __ adds(Narrow, r2, r5, 2U);
7654*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r3, r2);
7655*f5c631daSSadaf Ebrahimi __ b(ge, Narrow, &l_3c7a);
7656*f5c631daSSadaf Ebrahimi // --------------
7657*f5c631daSSadaf Ebrahimi __ bind(&l_3ce6);
7658*f5c631daSSadaf Ebrahimi __ movs(Narrow, r3, 0U);
7659*f5c631daSSadaf Ebrahimi __ mov(Narrow, r2, r5);
7660*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp));
7661*f5c631daSSadaf Ebrahimi __ mov(Narrow, r1, r6);
7662*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r8);
7663*f5c631daSSadaf Ebrahimi __ movs(Narrow, r3, 2U);
7664*f5c631daSSadaf Ebrahimi }
Generate_59(TestAssembler * assembler)7665*f5c631daSSadaf Ebrahimi void Generate_59(TestAssembler* assembler) {
7666*f5c631daSSadaf Ebrahimi // --------------
7667*f5c631daSSadaf Ebrahimi __ bind(&l_3cf2);
7668*f5c631daSSadaf Ebrahimi __ bl(&l_3cf2);
7669*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_3c7a);
7670*f5c631daSSadaf Ebrahimi // --------------
7671*f5c631daSSadaf Ebrahimi __ bind(&l_3cf8);
7672*f5c631daSSadaf Ebrahimi __ blx(r2);
7673*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_3ba4);
7674*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, &l_3d20);
7675*f5c631daSSadaf Ebrahimi __ add(Narrow, r0, sp, 100U);
7676*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 72));
7677*f5c631daSSadaf Ebrahimi // --------------
7678*f5c631daSSadaf Ebrahimi __ bind(&l_3d02);
7679*f5c631daSSadaf Ebrahimi __ bl(&l_3d02);
7680*f5c631daSSadaf Ebrahimi // --------------
7681*f5c631daSSadaf Ebrahimi __ bind(&l_3d06);
7682*f5c631daSSadaf Ebrahimi __ add(Narrow, r0, sp, 232U);
7683*f5c631daSSadaf Ebrahimi __ str(r9, MemOperand(r0, -196, PreIndex));
7684*f5c631daSSadaf Ebrahimi // --------------
7685*f5c631daSSadaf Ebrahimi __ bind(&l_3d0c);
7686*f5c631daSSadaf Ebrahimi __ bl(&l_3d0c);
7687*f5c631daSSadaf Ebrahimi // --------------
7688*f5c631daSSadaf Ebrahimi __ bind(&l_3d10);
7689*f5c631daSSadaf Ebrahimi __ bl(&l_3d10);
7690*f5c631daSSadaf Ebrahimi __ add(Narrow, r0, sp, 64U);
7691*f5c631daSSadaf Ebrahimi // --------------
7692*f5c631daSSadaf Ebrahimi __ bind(&l_3d16);
7693*f5c631daSSadaf Ebrahimi __ bl(&l_3d16);
7694*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_3d06);
7695*f5c631daSSadaf Ebrahimi // --------------
7696*f5c631daSSadaf Ebrahimi __ bind(&l_3d1c);
7697*f5c631daSSadaf Ebrahimi __ Emit32(0x00000008);
7698*f5c631daSSadaf Ebrahimi // --------------
7699*f5c631daSSadaf Ebrahimi __ bind(&l_3d20);
7700*f5c631daSSadaf Ebrahimi __ Emit32(0x00000008);
7701*f5c631daSSadaf Ebrahimi // --------------
7702*f5c631daSSadaf Ebrahimi __ bind(&l_3d24);
7703*f5c631daSSadaf Ebrahimi __ Emit32(0x00000008);
7704*f5c631daSSadaf Ebrahimi // --------------
7705*f5c631daSSadaf Ebrahimi __ bind(&l_3d28);
7706*f5c631daSSadaf Ebrahimi __ Emit32(0x00000008);
7707*f5c631daSSadaf Ebrahimi __ push(RegisterList(0x47f0));
7708*f5c631daSSadaf Ebrahimi __ adds(r9, r0, 44U);
7709*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r6, &l_3f14);
7710*f5c631daSSadaf Ebrahimi __ sub(Narrow, sp, sp, 208U);
7711*f5c631daSSadaf Ebrahimi __ mov(Narrow, r5, r1);
7712*f5c631daSSadaf Ebrahimi __ mov(r1, 0U);
7713*f5c631daSSadaf Ebrahimi __ mov(Narrow, r4, r0);
7714*f5c631daSSadaf Ebrahimi __ mov(Narrow, sl, r2);
7715*f5c631daSSadaf Ebrahimi __ mov(Narrow, r7, r3);
7716*f5c631daSSadaf Ebrahimi __ mov(Narrow, r8, r5);
7717*f5c631daSSadaf Ebrahimi __ str(Narrow, r6, MemOperand(sp, 12));
7718*f5c631daSSadaf Ebrahimi __ str(Narrow, r1, MemOperand(sp, 16));
7719*f5c631daSSadaf Ebrahimi __ strb(r1, MemOperand(sp, 29));
7720*f5c631daSSadaf Ebrahimi __ b(eq, Narrow, &l_3da2);
7721*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r0, 44));
7722*f5c631daSSadaf Ebrahimi __ movs(Narrow, r2, 1U);
7723*f5c631daSSadaf Ebrahimi __ str(Narrow, r2, MemOperand(sp, 36));
7724*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r9);
7725*f5c631daSSadaf Ebrahimi __ movs(Narrow, r1, 32U);
7726*f5c631daSSadaf Ebrahimi __ str(r9, MemOperand(sp, 32));
7727*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r3, 32));
7728*f5c631daSSadaf Ebrahimi __ blx(r3);
7729*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r4, 44));
7730*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r9);
7731*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r3, 24));
7732*f5c631daSSadaf Ebrahimi __ blx(r3);
7733*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r4, 44));
7734*f5c631daSSadaf Ebrahimi __ movw(r3, 0U);
7735*f5c631daSSadaf Ebrahimi __ movt(r3, 0U);
7736*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r9);
7737*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r2));
7738*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r2, r3);
7739*f5c631daSSadaf Ebrahimi __ b(ne, &l_3eec);
7740*f5c631daSSadaf Ebrahimi // --------------
7741*f5c631daSSadaf Ebrahimi __ bind(&l_3d7e);
7742*f5c631daSSadaf Ebrahimi __ bl(&l_3d7e);
7743*f5c631daSSadaf Ebrahimi // --------------
7744*f5c631daSSadaf Ebrahimi __ bind(&l_3d82);
7745*f5c631daSSadaf Ebrahimi __ str(Narrow, r0, MemOperand(sp, 16));
7746*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r1, MemOperand(r0, 20));
7747*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r0, 4));
7748*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r0, 12));
7749*f5c631daSSadaf Ebrahimi __ add(Narrow, r3, r3, r1);
7750*f5c631daSSadaf Ebrahimi __ subs(Narrow, r3, r3, r2);
7751*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r3, 31U);
7752*f5c631daSSadaf Ebrahimi __ b(hi, Narrow, &l_3d9c);
7753*f5c631daSSadaf Ebrahimi __ lsls(Narrow, r1, r1, 1U);
7754*f5c631daSSadaf Ebrahimi __ adds(r0, 4U);
7755*f5c631daSSadaf Ebrahimi __ adds(Narrow, r1, r1, 32U);
7756*f5c631daSSadaf Ebrahimi // --------------
7757*f5c631daSSadaf Ebrahimi __ bind(&l_3d98);
7758*f5c631daSSadaf Ebrahimi __ bl(&l_3d98);
7759*f5c631daSSadaf Ebrahimi // --------------
7760*f5c631daSSadaf Ebrahimi __ bind(&l_3d9c);
7761*f5c631daSSadaf Ebrahimi __ movs(Narrow, r3, 1U);
7762*f5c631daSSadaf Ebrahimi __ strb(r3, MemOperand(sp, 29));
7763*f5c631daSSadaf Ebrahimi // --------------
7764*f5c631daSSadaf Ebrahimi __ bind(&l_3da2);
7765*f5c631daSSadaf Ebrahimi __ ldr(r9, &l_3f20);
7766*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r5, 14U);
7767*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r1, &l_3f18);
7768*f5c631daSSadaf Ebrahimi __ mov(r3, 0U);
7769*f5c631daSSadaf Ebrahimi __ mov(r2, 1U);
7770*f5c631daSSadaf Ebrahimi __ mov(r0, 4U);
7771*f5c631daSSadaf Ebrahimi __ str(Narrow, r4, MemOperand(sp, 40));
7772*f5c631daSSadaf Ebrahimi __ str(Narrow, r5, MemOperand(sp, 44));
7773*f5c631daSSadaf Ebrahimi __ str(r9, MemOperand(sp, 12));
7774*f5c631daSSadaf Ebrahimi __ str(Narrow, r0, MemOperand(sp, 52));
7775*f5c631daSSadaf Ebrahimi __ str(Narrow, r2, MemOperand(sp, 56));
7776*f5c631daSSadaf Ebrahimi __ str(Narrow, r2, MemOperand(sp, 60));
7777*f5c631daSSadaf Ebrahimi __ strb(r2, MemOperand(sp, 88));
7778*f5c631daSSadaf Ebrahimi __ str(Narrow, r2, MemOperand(sp, 104));
7779*f5c631daSSadaf Ebrahimi __ str(Narrow, r2, MemOperand(sp, 128));
7780*f5c631daSSadaf Ebrahimi __ str(Narrow, r2, MemOperand(sp, 152));
7781*f5c631daSSadaf Ebrahimi __ str(Narrow, r2, MemOperand(sp, 176));
7782*f5c631daSSadaf Ebrahimi __ strb(r3, MemOperand(sp, 64));
7783*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 68));
7784*f5c631daSSadaf Ebrahimi __ strb(r3, MemOperand(sp, 72));
7785*f5c631daSSadaf Ebrahimi __ strb(r3, MemOperand(sp, 76));
7786*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 92));
7787*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 96));
7788*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 100));
7789*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 108));
7790*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 112));
7791*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 116));
7792*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 120));
7793*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 124));
7794*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 132));
7795*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 136));
7796*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 140));
7797*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 144));
7798*f5c631daSSadaf Ebrahimi }
Generate_60(TestAssembler * assembler)7799*f5c631daSSadaf Ebrahimi void Generate_60(TestAssembler* assembler) {
7800*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 148));
7801*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 156));
7802*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 160));
7803*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 164));
7804*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 168));
7805*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 172));
7806*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 180));
7807*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 184));
7808*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 188));
7809*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 192));
7810*f5c631daSSadaf Ebrahimi __ strb(r3, MemOperand(sp, 200));
7811*f5c631daSSadaf Ebrahimi __ str(Narrow, r1, MemOperand(sp, 48));
7812*f5c631daSSadaf Ebrahimi __ b(eq, Narrow, &l_3e18);
7813*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r4, 28));
7814*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r2, 1U);
7815*f5c631daSSadaf Ebrahimi __ b(eq, Narrow, &l_3eaa);
7816*f5c631daSSadaf Ebrahimi // --------------
7817*f5c631daSSadaf Ebrahimi __ bind(&l_3e18);
7818*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(sp, 240));
7819*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r4);
7820*f5c631daSSadaf Ebrahimi __ str(Narrow, r7, MemOperand(sp));
7821*f5c631daSSadaf Ebrahimi __ mov(Narrow, r1, r8);
7822*f5c631daSSadaf Ebrahimi __ movs(Narrow, r2, 0U);
7823*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 4));
7824*f5c631daSSadaf Ebrahimi __ mov(Narrow, r3, sl);
7825*f5c631daSSadaf Ebrahimi // --------------
7826*f5c631daSSadaf Ebrahimi __ bind(&l_3e26);
7827*f5c631daSSadaf Ebrahimi __ bl(&l_3e26);
7828*f5c631daSSadaf Ebrahimi __ ldrb(r3, MemOperand(sp, 72));
7829*f5c631daSSadaf Ebrahimi __ cbz(r3, &l_3e6c);
7830*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r4, MemOperand(sp, 40));
7831*f5c631daSSadaf Ebrahimi __ movw(r3, 0U);
7832*f5c631daSSadaf Ebrahimi __ movt(r3, 0U);
7833*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r4));
7834*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r2, 8));
7835*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r2, r3);
7836*f5c631daSSadaf Ebrahimi __ b(ne, Narrow, &l_3ebc);
7837*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r5, MemOperand(r4, 12));
7838*f5c631daSSadaf Ebrahimi __ add(Narrow, r0, sp, 48U);
7839*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r4, 4));
7840*f5c631daSSadaf Ebrahimi __ subs(Narrow, r5, r5, r3);
7841*f5c631daSSadaf Ebrahimi __ mov(Narrow, r1, r5);
7842*f5c631daSSadaf Ebrahimi // --------------
7843*f5c631daSSadaf Ebrahimi __ bind(&l_3e4c);
7844*f5c631daSSadaf Ebrahimi __ bl(&l_3e4c);
7845*f5c631daSSadaf Ebrahimi __ add(r8, r4, 96U);
7846*f5c631daSSadaf Ebrahimi __ add(r7, r4, 44U);
7847*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r0, 0U);
7848*f5c631daSSadaf Ebrahimi __ b(ne, Narrow, &l_3ec4);
7849*f5c631daSSadaf Ebrahimi // --------------
7850*f5c631daSSadaf Ebrahimi __ bind(&l_3e5c);
7851*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r5, MemOperand(r4, 12));
7852*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r8);
7853*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r4, 4));
7854*f5c631daSSadaf Ebrahimi __ mov(Narrow, r1, r7);
7855*f5c631daSSadaf Ebrahimi __ add(Narrow, r2, sp, 48U);
7856*f5c631daSSadaf Ebrahimi __ subs(Narrow, r3, r5, r3);
7857*f5c631daSSadaf Ebrahimi // --------------
7858*f5c631daSSadaf Ebrahimi __ bind(&l_3e68);
7859*f5c631daSSadaf Ebrahimi __ bl(&l_3e68);
7860*f5c631daSSadaf Ebrahimi // --------------
7861*f5c631daSSadaf Ebrahimi __ bind(&l_3e6c);
7862*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r4, MemOperand(sp, 192));
7863*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, &l_3f1c);
7864*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 48));
7865*f5c631daSSadaf Ebrahimi __ cbz(r4, &l_3e82);
7866*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r0, MemOperand(r4));
7867*f5c631daSSadaf Ebrahimi __ cbz(r0, &l_3e7c);
7868*f5c631daSSadaf Ebrahimi // --------------
7869*f5c631daSSadaf Ebrahimi __ bind(&l_3e78);
7870*f5c631daSSadaf Ebrahimi __ bl(&l_3e78);
7871*f5c631daSSadaf Ebrahimi // --------------
7872*f5c631daSSadaf Ebrahimi __ bind(&l_3e7c);
7873*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r4);
7874*f5c631daSSadaf Ebrahimi // --------------
7875*f5c631daSSadaf Ebrahimi __ bind(&l_3e7e);
7876*f5c631daSSadaf Ebrahimi __ bl(&l_3e7e);
7877*f5c631daSSadaf Ebrahimi // --------------
7878*f5c631daSSadaf Ebrahimi __ bind(&l_3e82);
7879*f5c631daSSadaf Ebrahimi __ ldrb(r3, MemOperand(sp, 29));
7880*f5c631daSSadaf Ebrahimi __ str(Narrow, r6, MemOperand(sp, 12));
7881*f5c631daSSadaf Ebrahimi __ cbnz(r3, &l_3e90);
7882*f5c631daSSadaf Ebrahimi // --------------
7883*f5c631daSSadaf Ebrahimi __ bind(&l_3e8a);
7884*f5c631daSSadaf Ebrahimi __ add(Narrow, sp, sp, 208U);
7885*f5c631daSSadaf Ebrahimi __ pop(RegisterList(0x87f0));
7886*f5c631daSSadaf Ebrahimi // --------------
7887*f5c631daSSadaf Ebrahimi __ bind(&l_3e90);
7888*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r0, MemOperand(sp, 32));
7889*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r0, 0U);
7890*f5c631daSSadaf Ebrahimi __ b(eq, Narrow, &l_3e8a);
7891*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(sp, 36));
7892*f5c631daSSadaf Ebrahimi __ movs(Narrow, r2, 0U);
7893*f5c631daSSadaf Ebrahimi __ strb(r2, MemOperand(sp, 29));
7894*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r3, 1U);
7895*f5c631daSSadaf Ebrahimi __ b(ne, Narrow, &l_3e8a);
7896*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r0));
7897*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r3, 28));
7898*f5c631daSSadaf Ebrahimi __ blx(r3);
7899*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_3e8a);
7900*f5c631daSSadaf Ebrahimi // --------------
7901*f5c631daSSadaf Ebrahimi __ bind(&l_3eaa);
7902*f5c631daSSadaf Ebrahimi __ eor(r1, r5, 0x1);
7903*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r4);
7904*f5c631daSSadaf Ebrahimi __ add(Narrow, r3, sp, 48U);
7905*f5c631daSSadaf Ebrahimi // --------------
7906*f5c631daSSadaf Ebrahimi __ bind(&l_3eb2);
7907*f5c631daSSadaf Ebrahimi __ bl(&l_3eb2);
7908*f5c631daSSadaf Ebrahimi __ mov(r8, 14U);
7909*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_3e18);
7910*f5c631daSSadaf Ebrahimi // --------------
7911*f5c631daSSadaf Ebrahimi __ bind(&l_3ebc);
7912*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r4);
7913*f5c631daSSadaf Ebrahimi __ add(Narrow, r1, sp, 48U);
7914*f5c631daSSadaf Ebrahimi __ blx(r2);
7915*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_3e6c);
7916*f5c631daSSadaf Ebrahimi // --------------
7917*f5c631daSSadaf Ebrahimi __ bind(&l_3ec4);
7918*f5c631daSSadaf Ebrahimi __ ldr(r3, MemOperand(r4, 132));
7919*f5c631daSSadaf Ebrahimi __ add(r8, r4, 96U);
7920*f5c631daSSadaf Ebrahimi __ add(r7, r4, 44U);
7921*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r5, r3);
7922*f5c631daSSadaf Ebrahimi __ b(eq, Narrow, &l_3eda);
7923*f5c631daSSadaf Ebrahimi __ adds(Narrow, r2, r5, 2U);
7924*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r3, r2);
7925*f5c631daSSadaf Ebrahimi __ b(ge, Narrow, &l_3e5c);
7926*f5c631daSSadaf Ebrahimi // --------------
7927*f5c631daSSadaf Ebrahimi __ bind(&l_3eda);
7928*f5c631daSSadaf Ebrahimi __ movs(Narrow, r3, 0U);
7929*f5c631daSSadaf Ebrahimi __ mov(Narrow, r2, r5);
7930*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp));
7931*f5c631daSSadaf Ebrahimi __ mov(Narrow, r1, r7);
7932*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r8);
7933*f5c631daSSadaf Ebrahimi __ movs(Narrow, r3, 2U);
7934*f5c631daSSadaf Ebrahimi }
Generate_61(TestAssembler * assembler)7935*f5c631daSSadaf Ebrahimi void Generate_61(TestAssembler* assembler) {
7936*f5c631daSSadaf Ebrahimi // --------------
7937*f5c631daSSadaf Ebrahimi __ bind(&l_3ee6);
7938*f5c631daSSadaf Ebrahimi __ bl(&l_3ee6);
7939*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_3e5c);
7940*f5c631daSSadaf Ebrahimi // --------------
7941*f5c631daSSadaf Ebrahimi __ bind(&l_3eec);
7942*f5c631daSSadaf Ebrahimi __ blx(r2);
7943*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_3d82);
7944*f5c631daSSadaf Ebrahimi __ add(Narrow, r0, sp, 40U);
7945*f5c631daSSadaf Ebrahimi // --------------
7946*f5c631daSSadaf Ebrahimi __ bind(&l_3ef2);
7947*f5c631daSSadaf Ebrahimi __ bl(&l_3ef2);
7948*f5c631daSSadaf Ebrahimi // --------------
7949*f5c631daSSadaf Ebrahimi __ bind(&l_3ef6);
7950*f5c631daSSadaf Ebrahimi __ add(Narrow, r0, sp, 208U);
7951*f5c631daSSadaf Ebrahimi __ str(r9, MemOperand(r0, -196, PreIndex));
7952*f5c631daSSadaf Ebrahimi // --------------
7953*f5c631daSSadaf Ebrahimi __ bind(&l_3efc);
7954*f5c631daSSadaf Ebrahimi __ bl(&l_3efc);
7955*f5c631daSSadaf Ebrahimi // --------------
7956*f5c631daSSadaf Ebrahimi __ bind(&l_3f00);
7957*f5c631daSSadaf Ebrahimi __ bl(&l_3f00);
7958*f5c631daSSadaf Ebrahimi // --------------
7959*f5c631daSSadaf Ebrahimi __ bind(&l_3f04);
7960*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, &l_3f1c);
7961*f5c631daSSadaf Ebrahimi __ add(Narrow, r0, sp, 76U);
7962*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 48));
7963*f5c631daSSadaf Ebrahimi // --------------
7964*f5c631daSSadaf Ebrahimi __ bind(&l_3f0a);
7965*f5c631daSSadaf Ebrahimi __ bl(&l_3f0a);
7966*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_3ef6);
7967*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_3f04);
7968*f5c631daSSadaf Ebrahimi __ nop(Narrow);
7969*f5c631daSSadaf Ebrahimi // --------------
7970*f5c631daSSadaf Ebrahimi __ bind(&l_3f14);
7971*f5c631daSSadaf Ebrahimi __ Emit32(0x00000008);
7972*f5c631daSSadaf Ebrahimi // --------------
7973*f5c631daSSadaf Ebrahimi __ bind(&l_3f18);
7974*f5c631daSSadaf Ebrahimi __ Emit32(0x00000008);
7975*f5c631daSSadaf Ebrahimi // --------------
7976*f5c631daSSadaf Ebrahimi __ bind(&l_3f1c);
7977*f5c631daSSadaf Ebrahimi __ Emit32(0x00000008);
7978*f5c631daSSadaf Ebrahimi // --------------
7979*f5c631daSSadaf Ebrahimi __ bind(&l_3f20);
7980*f5c631daSSadaf Ebrahimi __ Emit32(0x00000008);
7981*f5c631daSSadaf Ebrahimi __ push(RegisterList(0x4ff0));
7982*f5c631daSSadaf Ebrahimi __ adds(r4, r0, 44U);
7983*f5c631daSSadaf Ebrahimi __ ldr(r8, &l_41ec);
7984*f5c631daSSadaf Ebrahimi __ sub(Narrow, sp, sp, 212U);
7985*f5c631daSSadaf Ebrahimi __ mov(Narrow, r7, r1);
7986*f5c631daSSadaf Ebrahimi __ mov(r1, 0U);
7987*f5c631daSSadaf Ebrahimi __ mov(Narrow, r5, r0);
7988*f5c631daSSadaf Ebrahimi __ mov(Narrow, r9, r2);
7989*f5c631daSSadaf Ebrahimi __ mov(Narrow, r6, r3);
7990*f5c631daSSadaf Ebrahimi __ mov(Narrow, sl, r7);
7991*f5c631daSSadaf Ebrahimi __ str(r8, MemOperand(sp, 12));
7992*f5c631daSSadaf Ebrahimi __ str(Narrow, r1, MemOperand(sp, 16));
7993*f5c631daSSadaf Ebrahimi __ strb(r1, MemOperand(sp, 29));
7994*f5c631daSSadaf Ebrahimi __ b(eq, Narrow, &l_3f9c);
7995*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r0, 44));
7996*f5c631daSSadaf Ebrahimi __ movs(Narrow, r2, 1U);
7997*f5c631daSSadaf Ebrahimi __ str(Narrow, r2, MemOperand(sp, 36));
7998*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r4);
7999*f5c631daSSadaf Ebrahimi __ movs(Narrow, r1, 32U);
8000*f5c631daSSadaf Ebrahimi __ str(Narrow, r4, MemOperand(sp, 32));
8001*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r3, 32));
8002*f5c631daSSadaf Ebrahimi __ blx(r3);
8003*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r5, 44));
8004*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r4);
8005*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r3, 24));
8006*f5c631daSSadaf Ebrahimi __ blx(r3);
8007*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r5, 44));
8008*f5c631daSSadaf Ebrahimi __ movw(r3, 0U);
8009*f5c631daSSadaf Ebrahimi __ movt(r3, 0U);
8010*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r4);
8011*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r2));
8012*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r2, r3);
8013*f5c631daSSadaf Ebrahimi __ b(ne, &l_4160);
8014*f5c631daSSadaf Ebrahimi // --------------
8015*f5c631daSSadaf Ebrahimi __ bind(&l_3f78);
8016*f5c631daSSadaf Ebrahimi __ bl(&l_3f78);
8017*f5c631daSSadaf Ebrahimi // --------------
8018*f5c631daSSadaf Ebrahimi __ bind(&l_3f7c);
8019*f5c631daSSadaf Ebrahimi __ str(Narrow, r0, MemOperand(sp, 16));
8020*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r1, MemOperand(r0, 20));
8021*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r0, 4));
8022*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r0, 12));
8023*f5c631daSSadaf Ebrahimi __ add(Narrow, r3, r3, r1);
8024*f5c631daSSadaf Ebrahimi __ subs(Narrow, r3, r3, r2);
8025*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r3, 31U);
8026*f5c631daSSadaf Ebrahimi __ b(hi, Narrow, &l_3f96);
8027*f5c631daSSadaf Ebrahimi __ lsls(Narrow, r1, r1, 1U);
8028*f5c631daSSadaf Ebrahimi __ adds(r0, 4U);
8029*f5c631daSSadaf Ebrahimi __ adds(Narrow, r1, r1, 32U);
8030*f5c631daSSadaf Ebrahimi // --------------
8031*f5c631daSSadaf Ebrahimi __ bind(&l_3f92);
8032*f5c631daSSadaf Ebrahimi __ bl(&l_3f92);
8033*f5c631daSSadaf Ebrahimi // --------------
8034*f5c631daSSadaf Ebrahimi __ bind(&l_3f96);
8035*f5c631daSSadaf Ebrahimi __ movs(Narrow, r4, 1U);
8036*f5c631daSSadaf Ebrahimi __ strb(r4, MemOperand(sp, 29));
8037*f5c631daSSadaf Ebrahimi // --------------
8038*f5c631daSSadaf Ebrahimi __ bind(&l_3f9c);
8039*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r6, 4));
8040*f5c631daSSadaf Ebrahimi __ ldr(fp, &l_41f0);
8041*f5c631daSSadaf Ebrahimi __ ubfx(r3, r2, 5U, 4U);
8042*f5c631daSSadaf Ebrahimi __ str(fp, MemOperand(sp, 12));
8043*f5c631daSSadaf Ebrahimi __ cbz(r3, &l_4000);
8044*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r1, MemOperand(r6, 8));
8045*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r0, MemOperand(r6, 16));
8046*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r1, 4U);
8047*f5c631daSSadaf Ebrahimi __ b(eq, &l_4118);
8048*f5c631daSSadaf Ebrahimi __ tst(r0, 0x1e0);
8049*f5c631daSSadaf Ebrahimi __ b(ne, &l_4126);
8050*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r6, 12));
8051*f5c631daSSadaf Ebrahimi __ and_(r0, r9, 0x1f);
8052*f5c631daSSadaf Ebrahimi __ cbnz(r3, &l_3fd0);
8053*f5c631daSSadaf Ebrahimi __ and_(lr, r2, 0x1f);
8054*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r0, lr);
8055*f5c631daSSadaf Ebrahimi __ b(eq, &l_4146);
8056*f5c631daSSadaf Ebrahimi // --------------
8057*f5c631daSSadaf Ebrahimi __ bind(&l_3fd0);
8058*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r6, 12));
8059*f5c631daSSadaf Ebrahimi __ cbnz(r3, &l_3fe6);
8060*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r0, 15U);
8061*f5c631daSSadaf Ebrahimi __ b(eq, &l_4142);
8062*f5c631daSSadaf Ebrahimi __ and_(r3, r2, 0x1f);
8063*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r3, 15U);
8064*f5c631daSSadaf Ebrahimi __ it(ne);
8065*f5c631daSSadaf Ebrahimi __ mov(ne, Narrow, r1, 1U);
8066*f5c631daSSadaf Ebrahimi __ b(ne, Narrow, &l_400c);
8067*f5c631daSSadaf Ebrahimi // --------------
8068*f5c631daSSadaf Ebrahimi __ bind(&l_3fe6);
8069*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r0, 7U);
8070*f5c631daSSadaf Ebrahimi __ b(hi, &l_4142);
8071*f5c631daSSadaf Ebrahimi __ and_(r2, r2, 0x1f);
8072*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r2, 7U);
8073*f5c631daSSadaf Ebrahimi __ b(hi, &l_4142);
8074*f5c631daSSadaf Ebrahimi }
Generate_62(TestAssembler * assembler)8075*f5c631daSSadaf Ebrahimi void Generate_62(TestAssembler* assembler) {
8076*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r1, 2U);
8077*f5c631daSSadaf Ebrahimi __ ite(hi);
8078*f5c631daSSadaf Ebrahimi __ mov(hi, Narrow, r1, 0U);
8079*f5c631daSSadaf Ebrahimi __ mov(ls, Narrow, r1, 1U);
8080*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_400c);
8081*f5c631daSSadaf Ebrahimi // --------------
8082*f5c631daSSadaf Ebrahimi __ bind(&l_4000);
8083*f5c631daSSadaf Ebrahimi __ and_(r2, r9, 0x1f);
8084*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r2, 7U);
8085*f5c631daSSadaf Ebrahimi __ b(ls, &l_410c);
8086*f5c631daSSadaf Ebrahimi // --------------
8087*f5c631daSSadaf Ebrahimi __ bind(&l_400a);
8088*f5c631daSSadaf Ebrahimi __ mov(Narrow, r1, r3);
8089*f5c631daSSadaf Ebrahimi // --------------
8090*f5c631daSSadaf Ebrahimi __ bind(&l_400c);
8091*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, &l_41e4);
8092*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r7, 14U);
8093*f5c631daSSadaf Ebrahimi __ mov(r4, 0U);
8094*f5c631daSSadaf Ebrahimi __ mov(r3, 1U);
8095*f5c631daSSadaf Ebrahimi __ mov(r0, 4U);
8096*f5c631daSSadaf Ebrahimi __ str(Narrow, r5, MemOperand(sp, 40));
8097*f5c631daSSadaf Ebrahimi __ str(Narrow, r7, MemOperand(sp, 44));
8098*f5c631daSSadaf Ebrahimi __ str(Narrow, r0, MemOperand(sp, 52));
8099*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 56));
8100*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 60));
8101*f5c631daSSadaf Ebrahimi __ strb(r3, MemOperand(sp, 88));
8102*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 104));
8103*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 128));
8104*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 152));
8105*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 176));
8106*f5c631daSSadaf Ebrahimi __ strb(r4, MemOperand(sp, 64));
8107*f5c631daSSadaf Ebrahimi __ str(Narrow, r4, MemOperand(sp, 68));
8108*f5c631daSSadaf Ebrahimi __ strb(r4, MemOperand(sp, 72));
8109*f5c631daSSadaf Ebrahimi __ strb(r4, MemOperand(sp, 76));
8110*f5c631daSSadaf Ebrahimi __ str(Narrow, r4, MemOperand(sp, 92));
8111*f5c631daSSadaf Ebrahimi __ str(Narrow, r4, MemOperand(sp, 96));
8112*f5c631daSSadaf Ebrahimi __ str(Narrow, r4, MemOperand(sp, 100));
8113*f5c631daSSadaf Ebrahimi __ str(Narrow, r4, MemOperand(sp, 108));
8114*f5c631daSSadaf Ebrahimi __ str(Narrow, r4, MemOperand(sp, 112));
8115*f5c631daSSadaf Ebrahimi __ str(Narrow, r4, MemOperand(sp, 116));
8116*f5c631daSSadaf Ebrahimi __ str(Narrow, r4, MemOperand(sp, 120));
8117*f5c631daSSadaf Ebrahimi __ str(Narrow, r4, MemOperand(sp, 124));
8118*f5c631daSSadaf Ebrahimi __ str(Narrow, r4, MemOperand(sp, 132));
8119*f5c631daSSadaf Ebrahimi __ str(Narrow, r4, MemOperand(sp, 136));
8120*f5c631daSSadaf Ebrahimi __ str(Narrow, r4, MemOperand(sp, 140));
8121*f5c631daSSadaf Ebrahimi __ str(Narrow, r4, MemOperand(sp, 144));
8122*f5c631daSSadaf Ebrahimi __ str(Narrow, r4, MemOperand(sp, 148));
8123*f5c631daSSadaf Ebrahimi __ str(Narrow, r4, MemOperand(sp, 156));
8124*f5c631daSSadaf Ebrahimi __ str(Narrow, r4, MemOperand(sp, 160));
8125*f5c631daSSadaf Ebrahimi __ str(Narrow, r4, MemOperand(sp, 164));
8126*f5c631daSSadaf Ebrahimi __ str(Narrow, r4, MemOperand(sp, 168));
8127*f5c631daSSadaf Ebrahimi __ str(Narrow, r4, MemOperand(sp, 172));
8128*f5c631daSSadaf Ebrahimi __ str(Narrow, r4, MemOperand(sp, 180));
8129*f5c631daSSadaf Ebrahimi __ str(Narrow, r4, MemOperand(sp, 184));
8130*f5c631daSSadaf Ebrahimi __ str(Narrow, r4, MemOperand(sp, 188));
8131*f5c631daSSadaf Ebrahimi __ str(Narrow, r4, MemOperand(sp, 192));
8132*f5c631daSSadaf Ebrahimi __ strb(r1, MemOperand(sp, 200));
8133*f5c631daSSadaf Ebrahimi __ str(Narrow, r2, MemOperand(sp, 48));
8134*f5c631daSSadaf Ebrahimi __ b(eq, Narrow, &l_407a);
8135*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r5, 28));
8136*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r2, r3);
8137*f5c631daSSadaf Ebrahimi __ b(eq, Narrow, &l_4164);
8138*f5c631daSSadaf Ebrahimi // --------------
8139*f5c631daSSadaf Ebrahimi __ bind(&l_407a);
8140*f5c631daSSadaf Ebrahimi __ str(Narrow, r6, MemOperand(sp));
8141*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r5);
8142*f5c631daSSadaf Ebrahimi __ mov(Narrow, r1, sl);
8143*f5c631daSSadaf Ebrahimi __ mov(Narrow, r3, r9);
8144*f5c631daSSadaf Ebrahimi __ movs(Narrow, r2, 0U);
8145*f5c631daSSadaf Ebrahimi // --------------
8146*f5c631daSSadaf Ebrahimi __ bind(&l_4084);
8147*f5c631daSSadaf Ebrahimi __ bl(&l_4084);
8148*f5c631daSSadaf Ebrahimi __ ldrb(r3, MemOperand(sp, 72));
8149*f5c631daSSadaf Ebrahimi __ cbz(r3, &l_40cc);
8150*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r4, MemOperand(sp, 40));
8151*f5c631daSSadaf Ebrahimi __ movw(r3, 0U);
8152*f5c631daSSadaf Ebrahimi __ movt(r3, 0U);
8153*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r4));
8154*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r2, 8));
8155*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r2, r3);
8156*f5c631daSSadaf Ebrahimi __ b(ne, &l_41ac);
8157*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r5, MemOperand(r4, 12));
8158*f5c631daSSadaf Ebrahimi __ add(Narrow, r0, sp, 48U);
8159*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r4, 4));
8160*f5c631daSSadaf Ebrahimi __ subs(Narrow, r5, r5, r3);
8161*f5c631daSSadaf Ebrahimi __ mov(Narrow, r1, r5);
8162*f5c631daSSadaf Ebrahimi // --------------
8163*f5c631daSSadaf Ebrahimi __ bind(&l_40ac);
8164*f5c631daSSadaf Ebrahimi __ bl(&l_40ac);
8165*f5c631daSSadaf Ebrahimi __ add(r7, r4, 96U);
8166*f5c631daSSadaf Ebrahimi __ add(r6, r4, 44U);
8167*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r0, 0U);
8168*f5c631daSSadaf Ebrahimi __ b(ne, Narrow, &l_4184);
8169*f5c631daSSadaf Ebrahimi // --------------
8170*f5c631daSSadaf Ebrahimi __ bind(&l_40bc);
8171*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r5, MemOperand(r4, 12));
8172*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r7);
8173*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r4, 4));
8174*f5c631daSSadaf Ebrahimi __ mov(Narrow, r1, r6);
8175*f5c631daSSadaf Ebrahimi __ add(Narrow, r2, sp, 48U);
8176*f5c631daSSadaf Ebrahimi __ subs(Narrow, r3, r5, r3);
8177*f5c631daSSadaf Ebrahimi // --------------
8178*f5c631daSSadaf Ebrahimi __ bind(&l_40c8);
8179*f5c631daSSadaf Ebrahimi __ bl(&l_40c8);
8180*f5c631daSSadaf Ebrahimi // --------------
8181*f5c631daSSadaf Ebrahimi __ bind(&l_40cc);
8182*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r4, MemOperand(sp, 192));
8183*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, &l_41e8);
8184*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 48));
8185*f5c631daSSadaf Ebrahimi __ cbz(r4, &l_40e2);
8186*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r0, MemOperand(r4));
8187*f5c631daSSadaf Ebrahimi __ cbz(r0, &l_40dc);
8188*f5c631daSSadaf Ebrahimi // --------------
8189*f5c631daSSadaf Ebrahimi __ bind(&l_40d8);
8190*f5c631daSSadaf Ebrahimi __ bl(&l_40d8);
8191*f5c631daSSadaf Ebrahimi // --------------
8192*f5c631daSSadaf Ebrahimi __ bind(&l_40dc);
8193*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r4);
8194*f5c631daSSadaf Ebrahimi // --------------
8195*f5c631daSSadaf Ebrahimi __ bind(&l_40de);
8196*f5c631daSSadaf Ebrahimi __ bl(&l_40de);
8197*f5c631daSSadaf Ebrahimi // --------------
8198*f5c631daSSadaf Ebrahimi __ bind(&l_40e2);
8199*f5c631daSSadaf Ebrahimi __ ldrb(r3, MemOperand(sp, 29));
8200*f5c631daSSadaf Ebrahimi __ str(r8, MemOperand(sp, 12));
8201*f5c631daSSadaf Ebrahimi __ cbnz(r3, &l_40f2);
8202*f5c631daSSadaf Ebrahimi }
Generate_63(TestAssembler * assembler)8203*f5c631daSSadaf Ebrahimi void Generate_63(TestAssembler* assembler) {
8204*f5c631daSSadaf Ebrahimi // --------------
8205*f5c631daSSadaf Ebrahimi __ bind(&l_40ec);
8206*f5c631daSSadaf Ebrahimi __ add(Narrow, sp, sp, 212U);
8207*f5c631daSSadaf Ebrahimi __ pop(RegisterList(0x8ff0));
8208*f5c631daSSadaf Ebrahimi // --------------
8209*f5c631daSSadaf Ebrahimi __ bind(&l_40f2);
8210*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r0, MemOperand(sp, 32));
8211*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r0, 0U);
8212*f5c631daSSadaf Ebrahimi __ b(eq, Narrow, &l_40ec);
8213*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(sp, 36));
8214*f5c631daSSadaf Ebrahimi __ movs(Narrow, r2, 0U);
8215*f5c631daSSadaf Ebrahimi __ strb(r2, MemOperand(sp, 29));
8216*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r3, 1U);
8217*f5c631daSSadaf Ebrahimi __ b(ne, Narrow, &l_40ec);
8218*f5c631daSSadaf Ebrahimi // --------------
8219*f5c631daSSadaf Ebrahimi __ bind(&l_4104);
8220*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r0));
8221*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r3, 28));
8222*f5c631daSSadaf Ebrahimi __ blx(r3);
8223*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_40ec);
8224*f5c631daSSadaf Ebrahimi // --------------
8225*f5c631daSSadaf Ebrahimi __ bind(&l_410c);
8226*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r6));
8227*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r3, 255U);
8228*f5c631daSSadaf Ebrahimi __ ite(hi);
8229*f5c631daSSadaf Ebrahimi __ mov(hi, Narrow, r1, 0U);
8230*f5c631daSSadaf Ebrahimi __ mov(ls, Narrow, r1, 1U);
8231*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_400c);
8232*f5c631daSSadaf Ebrahimi // --------------
8233*f5c631daSSadaf Ebrahimi __ bind(&l_4118);
8234*f5c631daSSadaf Ebrahimi __ tst(r0, 0x1e0);
8235*f5c631daSSadaf Ebrahimi __ it(eq);
8236*f5c631daSSadaf Ebrahimi __ and_(eq, r0, r9, 0x1f);
8237*f5c631daSSadaf Ebrahimi __ b(eq, &l_3fe6);
8238*f5c631daSSadaf Ebrahimi // --------------
8239*f5c631daSSadaf Ebrahimi __ bind(&l_4126);
8240*f5c631daSSadaf Ebrahimi __ and_(r3, r2, 0x1f);
8241*f5c631daSSadaf Ebrahimi __ and_(r2, r9, 0x1f);
8242*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r2, 7U);
8243*f5c631daSSadaf Ebrahimi __ it(ls);
8244*f5c631daSSadaf Ebrahimi __ cmp(ls, Narrow, r2, r3);
8245*f5c631daSSadaf Ebrahimi __ ite(eq);
8246*f5c631daSSadaf Ebrahimi __ mov(eq, Narrow, r3, 1U);
8247*f5c631daSSadaf Ebrahimi __ mov(ne, Narrow, r3, 0U);
8248*f5c631daSSadaf Ebrahimi __ b(ne, &l_400a);
8249*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r1, 3U);
8250*f5c631daSSadaf Ebrahimi __ b(ls, Narrow, &l_41b4);
8251*f5c631daSSadaf Ebrahimi // --------------
8252*f5c631daSSadaf Ebrahimi __ bind(&l_4142);
8253*f5c631daSSadaf Ebrahimi __ movs(Narrow, r1, 0U);
8254*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_400c);
8255*f5c631daSSadaf Ebrahimi // --------------
8256*f5c631daSSadaf Ebrahimi __ bind(&l_4146);
8257*f5c631daSSadaf Ebrahimi __ str(r8, MemOperand(sp, 12));
8258*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r4, 0U);
8259*f5c631daSSadaf Ebrahimi __ b(eq, Narrow, &l_40ec);
8260*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r0, MemOperand(sp, 32));
8261*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r0, 0U);
8262*f5c631daSSadaf Ebrahimi __ b(eq, Narrow, &l_40ec);
8263*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(sp, 36));
8264*f5c631daSSadaf Ebrahimi __ strb(r3, MemOperand(sp, 29));
8265*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r2, 1U);
8266*f5c631daSSadaf Ebrahimi __ b(ne, Narrow, &l_40ec);
8267*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_4104);
8268*f5c631daSSadaf Ebrahimi // --------------
8269*f5c631daSSadaf Ebrahimi __ bind(&l_4160);
8270*f5c631daSSadaf Ebrahimi __ blx(r2);
8271*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_3f7c);
8272*f5c631daSSadaf Ebrahimi // --------------
8273*f5c631daSSadaf Ebrahimi __ bind(&l_4164);
8274*f5c631daSSadaf Ebrahimi __ cbz(r1, &l_4172);
8275*f5c631daSSadaf Ebrahimi __ mov(Narrow, r1, r7);
8276*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r5);
8277*f5c631daSSadaf Ebrahimi __ movs(Narrow, r2, 8U);
8278*f5c631daSSadaf Ebrahimi // --------------
8279*f5c631daSSadaf Ebrahimi __ bind(&l_416c);
8280*f5c631daSSadaf Ebrahimi __ bl(&l_416c);
8281*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_407a);
8282*f5c631daSSadaf Ebrahimi // --------------
8283*f5c631daSSadaf Ebrahimi __ bind(&l_4172);
8284*f5c631daSSadaf Ebrahimi __ eor(r1, r7, 0x1);
8285*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r5);
8286*f5c631daSSadaf Ebrahimi __ add(Narrow, r3, sp, 48U);
8287*f5c631daSSadaf Ebrahimi // --------------
8288*f5c631daSSadaf Ebrahimi __ bind(&l_417a);
8289*f5c631daSSadaf Ebrahimi __ bl(&l_417a);
8290*f5c631daSSadaf Ebrahimi __ mov(sl, 14U);
8291*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_407a);
8292*f5c631daSSadaf Ebrahimi // --------------
8293*f5c631daSSadaf Ebrahimi __ bind(&l_4184);
8294*f5c631daSSadaf Ebrahimi __ ldr(r3, MemOperand(r4, 132));
8295*f5c631daSSadaf Ebrahimi __ add(r7, r4, 96U);
8296*f5c631daSSadaf Ebrahimi __ add(r6, r4, 44U);
8297*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r5, r3);
8298*f5c631daSSadaf Ebrahimi __ b(eq, Narrow, &l_419a);
8299*f5c631daSSadaf Ebrahimi __ adds(Narrow, r2, r5, 2U);
8300*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r3, r2);
8301*f5c631daSSadaf Ebrahimi __ b(ge, Narrow, &l_40bc);
8302*f5c631daSSadaf Ebrahimi // --------------
8303*f5c631daSSadaf Ebrahimi __ bind(&l_419a);
8304*f5c631daSSadaf Ebrahimi __ movs(Narrow, r3, 0U);
8305*f5c631daSSadaf Ebrahimi __ mov(Narrow, r2, r5);
8306*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp));
8307*f5c631daSSadaf Ebrahimi __ mov(Narrow, r1, r6);
8308*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r7);
8309*f5c631daSSadaf Ebrahimi __ movs(Narrow, r3, 2U);
8310*f5c631daSSadaf Ebrahimi // --------------
8311*f5c631daSSadaf Ebrahimi __ bind(&l_41a6);
8312*f5c631daSSadaf Ebrahimi __ bl(&l_41a6);
8313*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_40bc);
8314*f5c631daSSadaf Ebrahimi // --------------
8315*f5c631daSSadaf Ebrahimi __ bind(&l_41ac);
8316*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r4);
8317*f5c631daSSadaf Ebrahimi __ add(Narrow, r1, sp, 48U);
8318*f5c631daSSadaf Ebrahimi __ blx(r2);
8319*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_40cc);
8320*f5c631daSSadaf Ebrahimi // --------------
8321*f5c631daSSadaf Ebrahimi __ bind(&l_41b4);
8322*f5c631daSSadaf Ebrahimi __ and_(r3, r0, 0x1f);
8323*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r3, 7U);
8324*f5c631daSSadaf Ebrahimi __ ite(hi);
8325*f5c631daSSadaf Ebrahimi __ mov(hi, Narrow, r1, 0U);
8326*f5c631daSSadaf Ebrahimi __ mov(ls, Narrow, r1, 1U);
8327*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_400c);
8328*f5c631daSSadaf Ebrahimi __ add(Narrow, r0, sp, 40U);
8329*f5c631daSSadaf Ebrahimi // --------------
8330*f5c631daSSadaf Ebrahimi __ bind(&l_41c4);
8331*f5c631daSSadaf Ebrahimi __ bl(&l_41c4);
8332*f5c631daSSadaf Ebrahimi // --------------
8333*f5c631daSSadaf Ebrahimi __ bind(&l_41c8);
8334*f5c631daSSadaf Ebrahimi __ add(Narrow, r0, sp, 208U);
8335*f5c631daSSadaf Ebrahimi __ str(fp, MemOperand(r0, -196, PreIndex));
8336*f5c631daSSadaf Ebrahimi // --------------
8337*f5c631daSSadaf Ebrahimi __ bind(&l_41ce);
8338*f5c631daSSadaf Ebrahimi __ bl(&l_41ce);
8339*f5c631daSSadaf Ebrahimi // --------------
8340*f5c631daSSadaf Ebrahimi __ bind(&l_41d2);
8341*f5c631daSSadaf Ebrahimi __ bl(&l_41d2);
8342*f5c631daSSadaf Ebrahimi // --------------
8343*f5c631daSSadaf Ebrahimi __ bind(&l_41d6);
8344*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, &l_41e8);
8345*f5c631daSSadaf Ebrahimi __ add(Narrow, r0, sp, 76U);
8346*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 48));
8347*f5c631daSSadaf Ebrahimi // --------------
8348*f5c631daSSadaf Ebrahimi __ bind(&l_41dc);
8349*f5c631daSSadaf Ebrahimi __ bl(&l_41dc);
8350*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_41c8);
8351*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_41d6);
8352*f5c631daSSadaf Ebrahimi }
Generate_64(TestAssembler * assembler)8353*f5c631daSSadaf Ebrahimi void Generate_64(TestAssembler* assembler) {
8354*f5c631daSSadaf Ebrahimi // --------------
8355*f5c631daSSadaf Ebrahimi __ bind(&l_41e4);
8356*f5c631daSSadaf Ebrahimi __ Emit32(0x00000008);
8357*f5c631daSSadaf Ebrahimi // --------------
8358*f5c631daSSadaf Ebrahimi __ bind(&l_41e8);
8359*f5c631daSSadaf Ebrahimi __ Emit32(0x00000008);
8360*f5c631daSSadaf Ebrahimi // --------------
8361*f5c631daSSadaf Ebrahimi __ bind(&l_41ec);
8362*f5c631daSSadaf Ebrahimi __ Emit32(0x00000008);
8363*f5c631daSSadaf Ebrahimi // --------------
8364*f5c631daSSadaf Ebrahimi __ bind(&l_41f0);
8365*f5c631daSSadaf Ebrahimi __ Emit32(0x00000008);
8366*f5c631daSSadaf Ebrahimi __ push(RegisterList(0x4ff0));
8367*f5c631daSSadaf Ebrahimi __ adds(r4, r0, 44U);
8368*f5c631daSSadaf Ebrahimi __ ldr(r8, &l_4528);
8369*f5c631daSSadaf Ebrahimi __ sub(Narrow, sp, sp, 212U);
8370*f5c631daSSadaf Ebrahimi __ mov(Narrow, fp, r1);
8371*f5c631daSSadaf Ebrahimi __ mov(r1, 0U);
8372*f5c631daSSadaf Ebrahimi __ mov(Narrow, r5, r0);
8373*f5c631daSSadaf Ebrahimi __ mov(Narrow, r9, r2);
8374*f5c631daSSadaf Ebrahimi __ mov(Narrow, r7, r3);
8375*f5c631daSSadaf Ebrahimi __ mov(Narrow, sl, fp);
8376*f5c631daSSadaf Ebrahimi __ str(r8, MemOperand(sp, 12));
8377*f5c631daSSadaf Ebrahimi __ str(Narrow, r1, MemOperand(sp, 16));
8378*f5c631daSSadaf Ebrahimi __ strb(r1, MemOperand(sp, 29));
8379*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r6, MemOperand(sp, 248));
8380*f5c631daSSadaf Ebrahimi __ b(eq, Narrow, &l_426e);
8381*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r0, 44));
8382*f5c631daSSadaf Ebrahimi __ movs(Narrow, r2, 1U);
8383*f5c631daSSadaf Ebrahimi __ str(Narrow, r2, MemOperand(sp, 36));
8384*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r4);
8385*f5c631daSSadaf Ebrahimi __ movs(Narrow, r1, 32U);
8386*f5c631daSSadaf Ebrahimi __ str(Narrow, r4, MemOperand(sp, 32));
8387*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r3, 32));
8388*f5c631daSSadaf Ebrahimi __ blx(r3);
8389*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r5, 44));
8390*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r4);
8391*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r3, 24));
8392*f5c631daSSadaf Ebrahimi __ blx(r3);
8393*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r5, 44));
8394*f5c631daSSadaf Ebrahimi __ movw(r3, 0U);
8395*f5c631daSSadaf Ebrahimi __ movt(r3, 0U);
8396*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r4);
8397*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r2));
8398*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r2, r3);
8399*f5c631daSSadaf Ebrahimi __ b(ne, &l_445e);
8400*f5c631daSSadaf Ebrahimi // --------------
8401*f5c631daSSadaf Ebrahimi __ bind(&l_424a);
8402*f5c631daSSadaf Ebrahimi __ bl(&l_424a);
8403*f5c631daSSadaf Ebrahimi // --------------
8404*f5c631daSSadaf Ebrahimi __ bind(&l_424e);
8405*f5c631daSSadaf Ebrahimi __ str(Narrow, r0, MemOperand(sp, 16));
8406*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r1, MemOperand(r0, 20));
8407*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r0, 4));
8408*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r0, 12));
8409*f5c631daSSadaf Ebrahimi __ add(Narrow, r3, r3, r1);
8410*f5c631daSSadaf Ebrahimi __ subs(Narrow, r3, r3, r2);
8411*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r3, 31U);
8412*f5c631daSSadaf Ebrahimi __ b(hi, Narrow, &l_4268);
8413*f5c631daSSadaf Ebrahimi __ lsls(Narrow, r1, r1, 1U);
8414*f5c631daSSadaf Ebrahimi __ adds(r0, 4U);
8415*f5c631daSSadaf Ebrahimi __ adds(Narrow, r1, r1, 32U);
8416*f5c631daSSadaf Ebrahimi // --------------
8417*f5c631daSSadaf Ebrahimi __ bind(&l_4264);
8418*f5c631daSSadaf Ebrahimi __ bl(&l_4264);
8419*f5c631daSSadaf Ebrahimi // --------------
8420*f5c631daSSadaf Ebrahimi __ bind(&l_4268);
8421*f5c631daSSadaf Ebrahimi __ movs(Narrow, r4, 1U);
8422*f5c631daSSadaf Ebrahimi __ strb(r4, MemOperand(sp, 29));
8423*f5c631daSSadaf Ebrahimi // --------------
8424*f5c631daSSadaf Ebrahimi __ bind(&l_426e);
8425*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, &l_451c);
8426*f5c631daSSadaf Ebrahimi __ cmp(fp, 14U);
8427*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 12));
8428*f5c631daSSadaf Ebrahimi __ b(eq, Narrow, &l_42a0);
8429*f5c631daSSadaf Ebrahimi // --------------
8430*f5c631daSSadaf Ebrahimi __ bind(&l_4278);
8431*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r6, 4));
8432*f5c631daSSadaf Ebrahimi __ tst(r3, 0x1e0);
8433*f5c631daSSadaf Ebrahimi __ b(ne, Narrow, &l_42b6);
8434*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r1, MemOperand(r6));
8435*f5c631daSSadaf Ebrahimi // --------------
8436*f5c631daSSadaf Ebrahimi __ bind(&l_4282);
8437*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r1, 7U);
8438*f5c631daSSadaf Ebrahimi __ b(hi, &l_443e);
8439*f5c631daSSadaf Ebrahimi __ and_(r3, r7, 0x1f);
8440*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r3, 7U);
8441*f5c631daSSadaf Ebrahimi __ b(hi, &l_43fc);
8442*f5c631daSSadaf Ebrahimi __ and_(r3, r9, 0x1f);
8443*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r3, 7U);
8444*f5c631daSSadaf Ebrahimi __ b(hi, &l_4404);
8445*f5c631daSSadaf Ebrahimi // --------------
8446*f5c631daSSadaf Ebrahimi __ bind(&l_429c);
8447*f5c631daSSadaf Ebrahimi __ movs(Narrow, r1, 1U);
8448*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_4312);
8449*f5c631daSSadaf Ebrahimi // --------------
8450*f5c631daSSadaf Ebrahimi __ bind(&l_42a0);
8451*f5c631daSSadaf Ebrahimi __ and_(r3, r9, 0x1f);
8452*f5c631daSSadaf Ebrahimi __ and_(r2, r7, 0x1f);
8453*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r3, r2);
8454*f5c631daSSadaf Ebrahimi __ b(ne, Narrow, &l_4278);
8455*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r6, 4));
8456*f5c631daSSadaf Ebrahimi __ tst(r3, 0x1e0);
8457*f5c631daSSadaf Ebrahimi __ b(eq, &l_44d4);
8458*f5c631daSSadaf Ebrahimi // --------------
8459*f5c631daSSadaf Ebrahimi __ bind(&l_42b6);
8460*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r6, 8));
8461*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r2, 4U);
8462*f5c631daSSadaf Ebrahimi __ b(eq, Narrow, &l_4310);
8463*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r6, 16));
8464*f5c631daSSadaf Ebrahimi __ tst(r2, 0x1e0);
8465*f5c631daSSadaf Ebrahimi __ b(ne, Narrow, &l_42e0);
8466*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r6, 12));
8467*f5c631daSSadaf Ebrahimi __ cbnz(r2, &l_42e0);
8468*f5c631daSSadaf Ebrahimi __ and_(r2, r9, 0x1f);
8469*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r2, 7U);
8470*f5c631daSSadaf Ebrahimi __ b(hi, Narrow, &l_42e0);
8471*f5c631daSSadaf Ebrahimi __ and_(r2, r7, 0x1f);
8472*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r2, 7U);
8473*f5c631daSSadaf Ebrahimi __ b(hi, Narrow, &l_42e0);
8474*f5c631daSSadaf Ebrahimi __ and_(r2, r3, 0x1f);
8475*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r2, 7U);
8476*f5c631daSSadaf Ebrahimi __ b(ls, Narrow, &l_429c);
8477*f5c631daSSadaf Ebrahimi // --------------
8478*f5c631daSSadaf Ebrahimi __ bind(&l_42e0);
8479*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r6, 16));
8480*f5c631daSSadaf Ebrahimi __ tst(r2, 0x1e0);
8481*f5c631daSSadaf Ebrahimi __ b(ne, Narrow, &l_4304);
8482*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r6, 12));
8483*f5c631daSSadaf Ebrahimi __ cbnz(r2, &l_4304);
8484*f5c631daSSadaf Ebrahimi }
Generate_65(TestAssembler * assembler)8485*f5c631daSSadaf Ebrahimi void Generate_65(TestAssembler* assembler) {
8486*f5c631daSSadaf Ebrahimi __ and_(r1, r9, 0x1f);
8487*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r1, 15U);
8488*f5c631daSSadaf Ebrahimi __ b(eq, Narrow, &l_4304);
8489*f5c631daSSadaf Ebrahimi __ and_(r2, r7, 0x1f);
8490*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r1, r2);
8491*f5c631daSSadaf Ebrahimi __ b(ne, Narrow, &l_4304);
8492*f5c631daSSadaf Ebrahimi __ and_(r2, r3, 0x1d);
8493*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r2, 13U);
8494*f5c631daSSadaf Ebrahimi __ b(ne, Narrow, &l_429c);
8495*f5c631daSSadaf Ebrahimi // --------------
8496*f5c631daSSadaf Ebrahimi __ bind(&l_4304);
8497*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r1, MemOperand(r6, 16));
8498*f5c631daSSadaf Ebrahimi __ ubfx(r2, r1, 5U, 4U);
8499*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r2, 0U);
8500*f5c631daSSadaf Ebrahimi __ b(eq, &l_444c);
8501*f5c631daSSadaf Ebrahimi // --------------
8502*f5c631daSSadaf Ebrahimi __ bind(&l_4310);
8503*f5c631daSSadaf Ebrahimi __ movs(Narrow, r1, 0U);
8504*f5c631daSSadaf Ebrahimi // --------------
8505*f5c631daSSadaf Ebrahimi __ bind(&l_4312);
8506*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, &l_4520);
8507*f5c631daSSadaf Ebrahimi __ cmp(fp, 14U);
8508*f5c631daSSadaf Ebrahimi __ mov(r4, 0U);
8509*f5c631daSSadaf Ebrahimi __ mov(r3, 1U);
8510*f5c631daSSadaf Ebrahimi __ mov(r0, 4U);
8511*f5c631daSSadaf Ebrahimi __ str(Narrow, r5, MemOperand(sp, 40));
8512*f5c631daSSadaf Ebrahimi __ str(fp, MemOperand(sp, 44));
8513*f5c631daSSadaf Ebrahimi __ str(Narrow, r0, MemOperand(sp, 52));
8514*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 56));
8515*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 60));
8516*f5c631daSSadaf Ebrahimi __ strb(r3, MemOperand(sp, 88));
8517*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 104));
8518*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 128));
8519*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 152));
8520*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 176));
8521*f5c631daSSadaf Ebrahimi __ strb(r4, MemOperand(sp, 64));
8522*f5c631daSSadaf Ebrahimi __ str(Narrow, r4, MemOperand(sp, 68));
8523*f5c631daSSadaf Ebrahimi __ strb(r4, MemOperand(sp, 72));
8524*f5c631daSSadaf Ebrahimi __ strb(r4, MemOperand(sp, 76));
8525*f5c631daSSadaf Ebrahimi __ str(Narrow, r4, MemOperand(sp, 92));
8526*f5c631daSSadaf Ebrahimi __ str(Narrow, r4, MemOperand(sp, 96));
8527*f5c631daSSadaf Ebrahimi __ str(Narrow, r4, MemOperand(sp, 100));
8528*f5c631daSSadaf Ebrahimi __ str(Narrow, r4, MemOperand(sp, 108));
8529*f5c631daSSadaf Ebrahimi __ str(Narrow, r4, MemOperand(sp, 112));
8530*f5c631daSSadaf Ebrahimi __ str(Narrow, r4, MemOperand(sp, 116));
8531*f5c631daSSadaf Ebrahimi __ str(Narrow, r4, MemOperand(sp, 120));
8532*f5c631daSSadaf Ebrahimi __ str(Narrow, r4, MemOperand(sp, 124));
8533*f5c631daSSadaf Ebrahimi __ str(Narrow, r4, MemOperand(sp, 132));
8534*f5c631daSSadaf Ebrahimi __ str(Narrow, r4, MemOperand(sp, 136));
8535*f5c631daSSadaf Ebrahimi __ str(Narrow, r4, MemOperand(sp, 140));
8536*f5c631daSSadaf Ebrahimi __ str(Narrow, r4, MemOperand(sp, 144));
8537*f5c631daSSadaf Ebrahimi __ str(Narrow, r4, MemOperand(sp, 148));
8538*f5c631daSSadaf Ebrahimi __ str(Narrow, r4, MemOperand(sp, 156));
8539*f5c631daSSadaf Ebrahimi __ str(Narrow, r4, MemOperand(sp, 160));
8540*f5c631daSSadaf Ebrahimi __ str(Narrow, r4, MemOperand(sp, 164));
8541*f5c631daSSadaf Ebrahimi __ str(Narrow, r4, MemOperand(sp, 168));
8542*f5c631daSSadaf Ebrahimi __ str(Narrow, r4, MemOperand(sp, 172));
8543*f5c631daSSadaf Ebrahimi __ str(Narrow, r4, MemOperand(sp, 180));
8544*f5c631daSSadaf Ebrahimi __ str(Narrow, r4, MemOperand(sp, 184));
8545*f5c631daSSadaf Ebrahimi __ str(Narrow, r4, MemOperand(sp, 188));
8546*f5c631daSSadaf Ebrahimi __ str(Narrow, r4, MemOperand(sp, 192));
8547*f5c631daSSadaf Ebrahimi __ strb(r1, MemOperand(sp, 200));
8548*f5c631daSSadaf Ebrahimi __ str(Narrow, r2, MemOperand(sp, 48));
8549*f5c631daSSadaf Ebrahimi __ b(eq, Narrow, &l_4384);
8550*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r5, 28));
8551*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r2, r3);
8552*f5c631daSSadaf Ebrahimi __ b(eq, Narrow, &l_4462);
8553*f5c631daSSadaf Ebrahimi // --------------
8554*f5c631daSSadaf Ebrahimi __ bind(&l_4384);
8555*f5c631daSSadaf Ebrahimi __ str(Narrow, r7, MemOperand(sp));
8556*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r5);
8557*f5c631daSSadaf Ebrahimi __ str(Narrow, r6, MemOperand(sp, 4));
8558*f5c631daSSadaf Ebrahimi __ mov(Narrow, r1, sl);
8559*f5c631daSSadaf Ebrahimi __ mov(Narrow, r3, r9);
8560*f5c631daSSadaf Ebrahimi __ movs(Narrow, r2, 0U);
8561*f5c631daSSadaf Ebrahimi // --------------
8562*f5c631daSSadaf Ebrahimi __ bind(&l_4390);
8563*f5c631daSSadaf Ebrahimi __ bl(&l_4390);
8564*f5c631daSSadaf Ebrahimi __ ldrb(r3, MemOperand(sp, 72));
8565*f5c631daSSadaf Ebrahimi __ cbz(r3, &l_43d6);
8566*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r4, MemOperand(sp, 40));
8567*f5c631daSSadaf Ebrahimi __ movw(r3, 0U);
8568*f5c631daSSadaf Ebrahimi __ movt(r3, 0U);
8569*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r4));
8570*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(r2, 8));
8571*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r2, r3);
8572*f5c631daSSadaf Ebrahimi __ b(ne, Narrow, &l_44aa);
8573*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r5, MemOperand(r4, 12));
8574*f5c631daSSadaf Ebrahimi __ add(Narrow, r0, sp, 48U);
8575*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r4, 4));
8576*f5c631daSSadaf Ebrahimi __ subs(Narrow, r5, r5, r3);
8577*f5c631daSSadaf Ebrahimi __ mov(Narrow, r1, r5);
8578*f5c631daSSadaf Ebrahimi // --------------
8579*f5c631daSSadaf Ebrahimi __ bind(&l_43b6);
8580*f5c631daSSadaf Ebrahimi __ bl(&l_43b6);
8581*f5c631daSSadaf Ebrahimi __ add(r7, r4, 96U);
8582*f5c631daSSadaf Ebrahimi __ add(r6, r4, 44U);
8583*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r0, 0U);
8584*f5c631daSSadaf Ebrahimi __ b(ne, Narrow, &l_4482);
8585*f5c631daSSadaf Ebrahimi // --------------
8586*f5c631daSSadaf Ebrahimi __ bind(&l_43c6);
8587*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r5, MemOperand(r4, 12));
8588*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r7);
8589*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r4, 4));
8590*f5c631daSSadaf Ebrahimi __ mov(Narrow, r1, r6);
8591*f5c631daSSadaf Ebrahimi __ add(Narrow, r2, sp, 48U);
8592*f5c631daSSadaf Ebrahimi __ subs(Narrow, r3, r5, r3);
8593*f5c631daSSadaf Ebrahimi // --------------
8594*f5c631daSSadaf Ebrahimi __ bind(&l_43d2);
8595*f5c631daSSadaf Ebrahimi __ bl(&l_43d2);
8596*f5c631daSSadaf Ebrahimi // --------------
8597*f5c631daSSadaf Ebrahimi __ bind(&l_43d6);
8598*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r4, MemOperand(sp, 192));
8599*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, &l_4524);
8600*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 48));
8601*f5c631daSSadaf Ebrahimi __ cbz(r4, &l_43ec);
8602*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r0, MemOperand(r4));
8603*f5c631daSSadaf Ebrahimi __ cbz(r0, &l_43e6);
8604*f5c631daSSadaf Ebrahimi }
Generate_66(TestAssembler * assembler)8605*f5c631daSSadaf Ebrahimi void Generate_66(TestAssembler* assembler) {
8606*f5c631daSSadaf Ebrahimi // --------------
8607*f5c631daSSadaf Ebrahimi __ bind(&l_43e2);
8608*f5c631daSSadaf Ebrahimi __ bl(&l_43e2);
8609*f5c631daSSadaf Ebrahimi // --------------
8610*f5c631daSSadaf Ebrahimi __ bind(&l_43e6);
8611*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r4);
8612*f5c631daSSadaf Ebrahimi // --------------
8613*f5c631daSSadaf Ebrahimi __ bind(&l_43e8);
8614*f5c631daSSadaf Ebrahimi __ bl(&l_43e8);
8615*f5c631daSSadaf Ebrahimi // --------------
8616*f5c631daSSadaf Ebrahimi __ bind(&l_43ec);
8617*f5c631daSSadaf Ebrahimi __ ldrb(r3, MemOperand(sp, 29));
8618*f5c631daSSadaf Ebrahimi __ str(r8, MemOperand(sp, 12));
8619*f5c631daSSadaf Ebrahimi __ cbnz(r3, &l_4424);
8620*f5c631daSSadaf Ebrahimi // --------------
8621*f5c631daSSadaf Ebrahimi __ bind(&l_43f6);
8622*f5c631daSSadaf Ebrahimi __ add(Narrow, sp, sp, 212U);
8623*f5c631daSSadaf Ebrahimi __ pop(RegisterList(0x8ff0));
8624*f5c631daSSadaf Ebrahimi // --------------
8625*f5c631daSSadaf Ebrahimi __ bind(&l_43fc);
8626*f5c631daSSadaf Ebrahimi __ and_(r3, r9, 0x1f);
8627*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r3, 7U);
8628*f5c631daSSadaf Ebrahimi __ b(ls, Narrow, &l_4454);
8629*f5c631daSSadaf Ebrahimi // --------------
8630*f5c631daSSadaf Ebrahimi __ bind(&l_4404);
8631*f5c631daSSadaf Ebrahimi __ ands(r1, r1, 0x3);
8632*f5c631daSSadaf Ebrahimi __ b(ne, Narrow, &l_4310);
8633*f5c631daSSadaf Ebrahimi __ and_(r3, r9, 0x1f);
8634*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r3, 7U);
8635*f5c631daSSadaf Ebrahimi __ b(hi, &l_4312);
8636*f5c631daSSadaf Ebrahimi __ and_(r1, r7, 0x1f);
8637*f5c631daSSadaf Ebrahimi __ sub(r1, r1, 13U);
8638*f5c631daSSadaf Ebrahimi __ clz(r1, r1);
8639*f5c631daSSadaf Ebrahimi __ lsrs(Narrow, r1, r1, 5U);
8640*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_4312);
8641*f5c631daSSadaf Ebrahimi // --------------
8642*f5c631daSSadaf Ebrahimi __ bind(&l_4424);
8643*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r0, MemOperand(sp, 32));
8644*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r0, 0U);
8645*f5c631daSSadaf Ebrahimi __ b(eq, Narrow, &l_43f6);
8646*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(sp, 36));
8647*f5c631daSSadaf Ebrahimi __ movs(Narrow, r2, 0U);
8648*f5c631daSSadaf Ebrahimi __ strb(r2, MemOperand(sp, 29));
8649*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r3, 1U);
8650*f5c631daSSadaf Ebrahimi __ b(ne, Narrow, &l_43f6);
8651*f5c631daSSadaf Ebrahimi // --------------
8652*f5c631daSSadaf Ebrahimi __ bind(&l_4436);
8653*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r0));
8654*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r3, 28));
8655*f5c631daSSadaf Ebrahimi __ blx(r3);
8656*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_43f6);
8657*f5c631daSSadaf Ebrahimi // --------------
8658*f5c631daSSadaf Ebrahimi __ bind(&l_443e);
8659*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r1, 255U);
8660*f5c631daSSadaf Ebrahimi __ b(ls, Narrow, &l_43fc);
8661*f5c631daSSadaf Ebrahimi __ cmp(r1, 1020U);
8662*f5c631daSSadaf Ebrahimi __ b(hi, &l_4310);
8663*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_4404);
8664*f5c631daSSadaf Ebrahimi // --------------
8665*f5c631daSSadaf Ebrahimi __ bind(&l_444c);
8666*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r1, MemOperand(r6, 12));
8667*f5c631daSSadaf Ebrahimi __ cbz(r1, &l_44b2);
8668*f5c631daSSadaf Ebrahimi __ mov(Narrow, r1, r2);
8669*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_4312);
8670*f5c631daSSadaf Ebrahimi // --------------
8671*f5c631daSSadaf Ebrahimi __ bind(&l_4454);
8672*f5c631daSSadaf Ebrahimi __ and_(r2, r7, 0x1f);
8673*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r3, r2);
8674*f5c631daSSadaf Ebrahimi __ b(ne, Narrow, &l_4404);
8675*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_429c);
8676*f5c631daSSadaf Ebrahimi // --------------
8677*f5c631daSSadaf Ebrahimi __ bind(&l_445e);
8678*f5c631daSSadaf Ebrahimi __ blx(r2);
8679*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_424e);
8680*f5c631daSSadaf Ebrahimi // --------------
8681*f5c631daSSadaf Ebrahimi __ bind(&l_4462);
8682*f5c631daSSadaf Ebrahimi __ cbz(r1, &l_4470);
8683*f5c631daSSadaf Ebrahimi __ mov(Narrow, r1, fp);
8684*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r5);
8685*f5c631daSSadaf Ebrahimi __ movs(Narrow, r2, 8U);
8686*f5c631daSSadaf Ebrahimi // --------------
8687*f5c631daSSadaf Ebrahimi __ bind(&l_446a);
8688*f5c631daSSadaf Ebrahimi __ bl(&l_446a);
8689*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_4384);
8690*f5c631daSSadaf Ebrahimi // --------------
8691*f5c631daSSadaf Ebrahimi __ bind(&l_4470);
8692*f5c631daSSadaf Ebrahimi __ eor(r1, fp, 0x1);
8693*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r5);
8694*f5c631daSSadaf Ebrahimi __ add(Narrow, r3, sp, 48U);
8695*f5c631daSSadaf Ebrahimi // --------------
8696*f5c631daSSadaf Ebrahimi __ bind(&l_4478);
8697*f5c631daSSadaf Ebrahimi __ bl(&l_4478);
8698*f5c631daSSadaf Ebrahimi __ mov(sl, 14U);
8699*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_4384);
8700*f5c631daSSadaf Ebrahimi // --------------
8701*f5c631daSSadaf Ebrahimi __ bind(&l_4482);
8702*f5c631daSSadaf Ebrahimi __ ldr(r3, MemOperand(r4, 132));
8703*f5c631daSSadaf Ebrahimi __ add(r7, r4, 96U);
8704*f5c631daSSadaf Ebrahimi __ add(r6, r4, 44U);
8705*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r5, r3);
8706*f5c631daSSadaf Ebrahimi __ b(eq, Narrow, &l_4498);
8707*f5c631daSSadaf Ebrahimi __ adds(Narrow, r2, r5, 2U);
8708*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r3, r2);
8709*f5c631daSSadaf Ebrahimi __ b(ge, Narrow, &l_43c6);
8710*f5c631daSSadaf Ebrahimi // --------------
8711*f5c631daSSadaf Ebrahimi __ bind(&l_4498);
8712*f5c631daSSadaf Ebrahimi __ movs(Narrow, r3, 0U);
8713*f5c631daSSadaf Ebrahimi __ mov(Narrow, r2, r5);
8714*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp));
8715*f5c631daSSadaf Ebrahimi __ mov(Narrow, r1, r6);
8716*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r7);
8717*f5c631daSSadaf Ebrahimi __ movs(Narrow, r3, 2U);
8718*f5c631daSSadaf Ebrahimi // --------------
8719*f5c631daSSadaf Ebrahimi __ bind(&l_44a4);
8720*f5c631daSSadaf Ebrahimi __ bl(&l_44a4);
8721*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_43c6);
8722*f5c631daSSadaf Ebrahimi // --------------
8723*f5c631daSSadaf Ebrahimi __ bind(&l_44aa);
8724*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r4);
8725*f5c631daSSadaf Ebrahimi __ add(Narrow, r1, sp, 48U);
8726*f5c631daSSadaf Ebrahimi __ blx(r2);
8727*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_43d6);
8728*f5c631daSSadaf Ebrahimi // --------------
8729*f5c631daSSadaf Ebrahimi __ bind(&l_44b2);
8730*f5c631daSSadaf Ebrahimi __ and_(r0, r9, 0x1f);
8731*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r0, 15U);
8732*f5c631daSSadaf Ebrahimi __ b(eq, &l_4312);
8733*f5c631daSSadaf Ebrahimi __ and_(r2, r7, 0x1f);
8734*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r2, 13U);
8735*f5c631daSSadaf Ebrahimi __ b(ne, &l_4312);
8736*f5c631daSSadaf Ebrahimi __ and_(r3, r3, 0x1f);
8737*f5c631daSSadaf Ebrahimi __ subs(Narrow, r1, r0, r3);
8738*f5c631daSSadaf Ebrahimi __ clz(r1, r1);
8739*f5c631daSSadaf Ebrahimi __ lsrs(Narrow, r1, r1, 5U);
8740*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_4312);
8741*f5c631daSSadaf Ebrahimi // --------------
8742*f5c631daSSadaf Ebrahimi __ bind(&l_44d4);
8743*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r1, MemOperand(r6));
8744*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r1, 0U);
8745*f5c631daSSadaf Ebrahimi __ b(ne, &l_4282);
8746*f5c631daSSadaf Ebrahimi __ str(r8, MemOperand(sp, 12));
8747*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r4, 0U);
8748*f5c631daSSadaf Ebrahimi __ b(eq, Narrow, &l_43f6);
8749*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r0, MemOperand(sp, 32));
8750*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r0, 0U);
8751*f5c631daSSadaf Ebrahimi __ b(eq, Narrow, &l_43f6);
8752*f5c631daSSadaf Ebrahimi }
Generate_67(TestAssembler * assembler)8753*f5c631daSSadaf Ebrahimi void Generate_67(TestAssembler* assembler) {
8754*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(sp, 36));
8755*f5c631daSSadaf Ebrahimi __ strb(r1, MemOperand(sp, 29));
8756*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r3, 1U);
8757*f5c631daSSadaf Ebrahimi __ b(ne, Narrow, &l_43f6);
8758*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_4436);
8759*f5c631daSSadaf Ebrahimi // --------------
8760*f5c631daSSadaf Ebrahimi __ bind(&l_44f6);
8761*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, &l_4524);
8762*f5c631daSSadaf Ebrahimi __ add(Narrow, r0, sp, 76U);
8763*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 48));
8764*f5c631daSSadaf Ebrahimi // --------------
8765*f5c631daSSadaf Ebrahimi __ bind(&l_44fc);
8766*f5c631daSSadaf Ebrahimi __ bl(&l_44fc);
8767*f5c631daSSadaf Ebrahimi // --------------
8768*f5c631daSSadaf Ebrahimi __ bind(&l_4500);
8769*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, &l_451c);
8770*f5c631daSSadaf Ebrahimi __ add(Narrow, r0, sp, 208U);
8771*f5c631daSSadaf Ebrahimi __ str(r3, MemOperand(r0, -196, PreIndex));
8772*f5c631daSSadaf Ebrahimi // --------------
8773*f5c631daSSadaf Ebrahimi __ bind(&l_4508);
8774*f5c631daSSadaf Ebrahimi __ bl(&l_4508);
8775*f5c631daSSadaf Ebrahimi // --------------
8776*f5c631daSSadaf Ebrahimi __ bind(&l_450c);
8777*f5c631daSSadaf Ebrahimi __ bl(&l_450c);
8778*f5c631daSSadaf Ebrahimi __ add(Narrow, r0, sp, 40U);
8779*f5c631daSSadaf Ebrahimi // --------------
8780*f5c631daSSadaf Ebrahimi __ bind(&l_4512);
8781*f5c631daSSadaf Ebrahimi __ bl(&l_4512);
8782*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_4500);
8783*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_44f6);
8784*f5c631daSSadaf Ebrahimi __ nop(Narrow);
8785*f5c631daSSadaf Ebrahimi // --------------
8786*f5c631daSSadaf Ebrahimi __ bind(&l_451c);
8787*f5c631daSSadaf Ebrahimi __ Emit32(0x00000008);
8788*f5c631daSSadaf Ebrahimi // --------------
8789*f5c631daSSadaf Ebrahimi __ bind(&l_4520);
8790*f5c631daSSadaf Ebrahimi __ Emit32(0x00000008);
8791*f5c631daSSadaf Ebrahimi // --------------
8792*f5c631daSSadaf Ebrahimi __ bind(&l_4524);
8793*f5c631daSSadaf Ebrahimi __ Emit32(0x00000008);
8794*f5c631daSSadaf Ebrahimi // --------------
8795*f5c631daSSadaf Ebrahimi __ bind(&l_4528);
8796*f5c631daSSadaf Ebrahimi __ Emit32(0x00000008);
8797*f5c631daSSadaf Ebrahimi __ push(Narrow, RegisterList(r4, r5, r6, lr));
8798*f5c631daSSadaf Ebrahimi __ mov(Narrow, r6, r0);
8799*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r4, MemOperand(r0, 108));
8800*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r5, MemOperand(r0, 112));
8801*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, &l_4594);
8802*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r4, r5);
8803*f5c631daSSadaf Ebrahimi __ add(r2, r3, 504U);
8804*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(r0));
8805*f5c631daSSadaf Ebrahimi __ str(Narrow, r2, MemOperand(r0, 44));
8806*f5c631daSSadaf Ebrahimi __ b(eq, Narrow, &l_4554);
8807*f5c631daSSadaf Ebrahimi // --------------
8808*f5c631daSSadaf Ebrahimi __ bind(&l_4542);
8809*f5c631daSSadaf Ebrahimi __ ldr(r0, MemOperand(r4, 4, PostIndex));
8810*f5c631daSSadaf Ebrahimi __ cbz(r0, &l_454e);
8811*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r0));
8812*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r3, 4));
8813*f5c631daSSadaf Ebrahimi __ blx(r3);
8814*f5c631daSSadaf Ebrahimi // --------------
8815*f5c631daSSadaf Ebrahimi __ bind(&l_454e);
8816*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r5, r4);
8817*f5c631daSSadaf Ebrahimi __ b(ne, Narrow, &l_4542);
8818*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r5, MemOperand(r6, 108));
8819*f5c631daSSadaf Ebrahimi // --------------
8820*f5c631daSSadaf Ebrahimi __ bind(&l_4554);
8821*f5c631daSSadaf Ebrahimi __ cbz(r5, &l_455c);
8822*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r5);
8823*f5c631daSSadaf Ebrahimi // --------------
8824*f5c631daSSadaf Ebrahimi __ bind(&l_4558);
8825*f5c631daSSadaf Ebrahimi __ bl(&l_4558);
8826*f5c631daSSadaf Ebrahimi // --------------
8827*f5c631daSSadaf Ebrahimi __ bind(&l_455c);
8828*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r0, MemOperand(r6, 96));
8829*f5c631daSSadaf Ebrahimi __ cbz(r0, &l_4564);
8830*f5c631daSSadaf Ebrahimi // --------------
8831*f5c631daSSadaf Ebrahimi __ bind(&l_4560);
8832*f5c631daSSadaf Ebrahimi __ bl(&l_4560);
8833*f5c631daSSadaf Ebrahimi // --------------
8834*f5c631daSSadaf Ebrahimi __ bind(&l_4564);
8835*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, &l_4598);
8836*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r6);
8837*f5c631daSSadaf Ebrahimi __ str(r3, MemOperand(r0, 4, PostIndex));
8838*f5c631daSSadaf Ebrahimi // --------------
8839*f5c631daSSadaf Ebrahimi __ bind(&l_456c);
8840*f5c631daSSadaf Ebrahimi __ bl(&l_456c);
8841*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r6);
8842*f5c631daSSadaf Ebrahimi __ pop(Narrow, RegisterList(r4, r5, r6, pc));
8843*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r0, MemOperand(r6, 108));
8844*f5c631daSSadaf Ebrahimi __ cbz(r0, &l_457c);
8845*f5c631daSSadaf Ebrahimi // --------------
8846*f5c631daSSadaf Ebrahimi __ bind(&l_4578);
8847*f5c631daSSadaf Ebrahimi __ bl(&l_4578);
8848*f5c631daSSadaf Ebrahimi // --------------
8849*f5c631daSSadaf Ebrahimi __ bind(&l_457c);
8850*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r0, MemOperand(r6, 96));
8851*f5c631daSSadaf Ebrahimi __ cbz(r0, &l_4584);
8852*f5c631daSSadaf Ebrahimi // --------------
8853*f5c631daSSadaf Ebrahimi __ bind(&l_4580);
8854*f5c631daSSadaf Ebrahimi __ bl(&l_4580);
8855*f5c631daSSadaf Ebrahimi // --------------
8856*f5c631daSSadaf Ebrahimi __ bind(&l_4584);
8857*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, &l_4598);
8858*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r6);
8859*f5c631daSSadaf Ebrahimi __ str(r3, MemOperand(r0, 4, PostIndex));
8860*f5c631daSSadaf Ebrahimi // --------------
8861*f5c631daSSadaf Ebrahimi __ bind(&l_458c);
8862*f5c631daSSadaf Ebrahimi __ bl(&l_458c);
8863*f5c631daSSadaf Ebrahimi // --------------
8864*f5c631daSSadaf Ebrahimi __ bind(&l_4590);
8865*f5c631daSSadaf Ebrahimi __ bl(&l_4590);
8866*f5c631daSSadaf Ebrahimi // --------------
8867*f5c631daSSadaf Ebrahimi __ bind(&l_4594);
8868*f5c631daSSadaf Ebrahimi __ Emit32(0x00000008);
8869*f5c631daSSadaf Ebrahimi // --------------
8870*f5c631daSSadaf Ebrahimi __ bind(&l_4598);
8871*f5c631daSSadaf Ebrahimi __ Emit32(0x00000008);
8872*f5c631daSSadaf Ebrahimi __ sub(r0, r0, 44U);
8873*f5c631daSSadaf Ebrahimi // --------------
8874*f5c631daSSadaf Ebrahimi __ bind(&l_45a0);
8875*f5c631daSSadaf Ebrahimi __ b(Wide, &l_45a0);
8876*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, &l_4724);
8877*f5c631daSSadaf Ebrahimi __ mov(r1, 4096U);
8878*f5c631daSSadaf Ebrahimi __ push(Narrow, RegisterList(0x40f0));
8879*f5c631daSSadaf Ebrahimi __ sub(Narrow, sp, sp, 316U);
8880*f5c631daSSadaf Ebrahimi __ add(Narrow, r0, sp, 12U);
8881*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r4, &l_4728);
8882*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 8));
8883*f5c631daSSadaf Ebrahimi // --------------
8884*f5c631daSSadaf Ebrahimi __ bind(&l_45b4);
8885*f5c631daSSadaf Ebrahimi __ bl(&l_45b4);
8886*f5c631daSSadaf Ebrahimi __ movw(r3, 0U);
8887*f5c631daSSadaf Ebrahimi __ movs(Narrow, r0, 14U);
8888*f5c631daSSadaf Ebrahimi __ movt(r3, 0U);
8889*f5c631daSSadaf Ebrahimi __ str(Narrow, r0, MemOperand(sp, 40));
8890*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r1, MemOperand(r3, 112));
8891*f5c631daSSadaf Ebrahimi __ add(r5, r4, 504U);
8892*f5c631daSSadaf Ebrahimi __ movs(Narrow, r3, 0U);
8893*f5c631daSSadaf Ebrahimi __ movs(Narrow, r2, 1U);
8894*f5c631daSSadaf Ebrahimi __ str(Narrow, r4, MemOperand(sp, 8));
8895*f5c631daSSadaf Ebrahimi __ ubfx(r0, r1, 5U, 4U);
8896*f5c631daSSadaf Ebrahimi __ str(Narrow, r5, MemOperand(sp, 52));
8897*f5c631daSSadaf Ebrahimi __ strb(r3, MemOperand(sp, 32));
8898*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 36));
8899*f5c631daSSadaf Ebrahimi __ strh(r3, MemOperand(sp, 44));
8900*f5c631daSSadaf Ebrahimi __ strb(r3, MemOperand(sp, 47));
8901*f5c631daSSadaf Ebrahimi __ strb(r3, MemOperand(sp, 48));
8902*f5c631daSSadaf Ebrahimi __ strb(r2, MemOperand(sp, 46));
8903*f5c631daSSadaf Ebrahimi __ cbz(r0, &l_45f6);
8904*f5c631daSSadaf Ebrahimi __ and_(r1, r1, 0x1f);
8905*f5c631daSSadaf Ebrahimi __ lsl(r0, r2, r1);
8906*f5c631daSSadaf Ebrahimi // --------------
8907*f5c631daSSadaf Ebrahimi __ bind(&l_45f6);
8908*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r5, &l_472c);
8909*f5c631daSSadaf Ebrahimi __ movs(Narrow, r3, 0U);
8910*f5c631daSSadaf Ebrahimi __ movs(Narrow, r2, 1U);
8911*f5c631daSSadaf Ebrahimi __ movs(Narrow, r4, 4U);
8912*f5c631daSSadaf Ebrahimi }
Generate_68(TestAssembler * assembler)8913*f5c631daSSadaf Ebrahimi void Generate_68(TestAssembler* assembler) {
8914*f5c631daSSadaf Ebrahimi __ movs(Narrow, r6, 0U);
8915*f5c631daSSadaf Ebrahimi __ movs(Narrow, r7, 0U);
8916*f5c631daSSadaf Ebrahimi __ mvn(lr, 2147483648U);
8917*f5c631daSSadaf Ebrahimi __ add(Narrow, r1, sp, 312U);
8918*f5c631daSSadaf Ebrahimi __ str(Narrow, r0, MemOperand(sp, 56));
8919*f5c631daSSadaf Ebrahimi __ add(Narrow, r0, sp, 8U);
8920*f5c631daSSadaf Ebrahimi __ strd(r6, r7, MemOperand(sp, 64));
8921*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 72));
8922*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 76));
8923*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 104));
8924*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 108));
8925*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 112));
8926*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 116));
8927*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 120));
8928*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 124));
8929*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 144));
8930*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 148));
8931*f5c631daSSadaf Ebrahimi __ strb(r3, MemOperand(sp, 152));
8932*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 156));
8933*f5c631daSSadaf Ebrahimi __ strb(r3, MemOperand(sp, 176));
8934*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 180));
8935*f5c631daSSadaf Ebrahimi __ strb(r3, MemOperand(sp, 184));
8936*f5c631daSSadaf Ebrahimi __ strb(r3, MemOperand(sp, 188));
8937*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 204));
8938*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 208));
8939*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 212));
8940*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 220));
8941*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 224));
8942*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 228));
8943*f5c631daSSadaf Ebrahimi __ str(Narrow, r4, MemOperand(sp, 128));
8944*f5c631daSSadaf Ebrahimi __ str(Narrow, r4, MemOperand(sp, 132));
8945*f5c631daSSadaf Ebrahimi __ str(Narrow, r4, MemOperand(sp, 136));
8946*f5c631daSSadaf Ebrahimi __ str(Narrow, r4, MemOperand(sp, 164));
8947*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(sp, 140));
8948*f5c631daSSadaf Ebrahimi __ str(Narrow, r2, MemOperand(sp, 168));
8949*f5c631daSSadaf Ebrahimi __ str(Narrow, r2, MemOperand(sp, 172));
8950*f5c631daSSadaf Ebrahimi __ strb(r2, MemOperand(sp, 200));
8951*f5c631daSSadaf Ebrahimi __ str(Narrow, r2, MemOperand(sp, 216));
8952*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 232));
8953*f5c631daSSadaf Ebrahimi __ str(r5, MemOperand(r1, -152, PreIndex));
8954*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 236));
8955*f5c631daSSadaf Ebrahimi __ str(Narrow, r2, MemOperand(sp, 240));
8956*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 244));
8957*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 248));
8958*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 252));
8959*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 256));
8960*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 260));
8961*f5c631daSSadaf Ebrahimi __ str(Narrow, r2, MemOperand(sp, 264));
8962*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 268));
8963*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 272));
8964*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 276));
8965*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 280));
8966*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 284));
8967*f5c631daSSadaf Ebrahimi __ str(Narrow, r2, MemOperand(sp, 288));
8968*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 292));
8969*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 296));
8970*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 300));
8971*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 304));
8972*f5c631daSSadaf Ebrahimi // --------------
8973*f5c631daSSadaf Ebrahimi __ bind(&l_4684);
8974*f5c631daSSadaf Ebrahimi __ bl(&l_4684);
8975*f5c631daSSadaf Ebrahimi __ add(Narrow, r0, sp, 8U);
8976*f5c631daSSadaf Ebrahimi // --------------
8977*f5c631daSSadaf Ebrahimi __ bind(&l_468a);
8978*f5c631daSSadaf Ebrahimi __ bl(&l_468a);
8979*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r4, MemOperand(sp, 20));
8980*f5c631daSSadaf Ebrahimi __ movs(Narrow, r3, 1U);
8981*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(sp, 12));
8982*f5c631daSSadaf Ebrahimi __ add(Narrow, r0, sp, 104U);
8983*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp));
8984*f5c631daSSadaf Ebrahimi __ add(Narrow, r1, sp, 52U);
8985*f5c631daSSadaf Ebrahimi __ movs(Narrow, r3, 0U);
8986*f5c631daSSadaf Ebrahimi __ subs(Narrow, r2, r4, r2);
8987*f5c631daSSadaf Ebrahimi // --------------
8988*f5c631daSSadaf Ebrahimi __ bind(&l_469e);
8989*f5c631daSSadaf Ebrahimi __ bl(&l_469e);
8990*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r6, MemOperand(sp, 12));
8991*f5c631daSSadaf Ebrahimi __ movs(Narrow, r5, 0U);
8992*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r4, MemOperand(sp, 20));
8993*f5c631daSSadaf Ebrahimi __ mov(r3, 4294967295U);
8994*f5c631daSSadaf Ebrahimi __ str(Narrow, r5, MemOperand(sp, 4));
8995*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r5);
8996*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp));
8997*f5c631daSSadaf Ebrahimi __ movs(Narrow, r2, 7U);
8998*f5c631daSSadaf Ebrahimi __ subs(Narrow, r4, r4, r6);
8999*f5c631daSSadaf Ebrahimi __ movs(Narrow, r3, 33U);
9000*f5c631daSSadaf Ebrahimi __ mov(Narrow, r1, r4);
9001*f5c631daSSadaf Ebrahimi __ strb(r5, MemOperand(sp, 24));
9002*f5c631daSSadaf Ebrahimi // --------------
9003*f5c631daSSadaf Ebrahimi __ bind(&l_46be);
9004*f5c631daSSadaf Ebrahimi __ bl(&l_46be);
9005*f5c631daSSadaf Ebrahimi __ mov(Narrow, r2, r4);
9006*f5c631daSSadaf Ebrahimi __ mov(Narrow, r5, r0);
9007*f5c631daSSadaf Ebrahimi __ mov(Narrow, r1, r6);
9008*f5c631daSSadaf Ebrahimi // --------------
9009*f5c631daSSadaf Ebrahimi __ bind(&l_46c8);
9010*f5c631daSSadaf Ebrahimi __ bl(&l_46c8);
9011*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r5);
9012*f5c631daSSadaf Ebrahimi __ adds(Narrow, r1, r5, r4);
9013*f5c631daSSadaf Ebrahimi // --------------
9014*f5c631daSSadaf Ebrahimi __ bind(&l_46d0);
9015*f5c631daSSadaf Ebrahimi __ bl(&l_46d0);
9016*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r2, MemOperand(sp, 36));
9017*f5c631daSSadaf Ebrahimi __ mov(r0, 1000U);
9018*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(sp, 180));
9019*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r2, 1U);
9020*f5c631daSSadaf Ebrahimi __ it(eq);
9021*f5c631daSSadaf Ebrahimi __ add(eq, r3, 1U);
9022*f5c631daSSadaf Ebrahimi __ add(Narrow, r3, r3, r5);
9023*f5c631daSSadaf Ebrahimi __ blx(r3);
9024*f5c631daSSadaf Ebrahimi __ mov(Narrow, r1, r4);
9025*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r5);
9026*f5c631daSSadaf Ebrahimi }
Generate_69(TestAssembler * assembler)9027*f5c631daSSadaf Ebrahimi void Generate_69(TestAssembler* assembler) {
9028*f5c631daSSadaf Ebrahimi // --------------
9029*f5c631daSSadaf Ebrahimi __ bind(&l_46ea);
9030*f5c631daSSadaf Ebrahimi __ bl(&l_46ea);
9031*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, &l_4730);
9032*f5c631daSSadaf Ebrahimi __ add(Narrow, r0, sp, 188U);
9033*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 160));
9034*f5c631daSSadaf Ebrahimi // --------------
9035*f5c631daSSadaf Ebrahimi __ bind(&l_46f4);
9036*f5c631daSSadaf Ebrahimi __ bl(&l_46f4);
9037*f5c631daSSadaf Ebrahimi __ add(Narrow, r0, sp, 8U);
9038*f5c631daSSadaf Ebrahimi // --------------
9039*f5c631daSSadaf Ebrahimi __ bind(&l_46fa);
9040*f5c631daSSadaf Ebrahimi __ bl(&l_46fa);
9041*f5c631daSSadaf Ebrahimi __ movs(Narrow, r0, 0U);
9042*f5c631daSSadaf Ebrahimi __ add(Narrow, sp, sp, 316U);
9043*f5c631daSSadaf Ebrahimi __ pop(Narrow, RegisterList(0x80f0));
9044*f5c631daSSadaf Ebrahimi // --------------
9045*f5c631daSSadaf Ebrahimi __ bind(&l_4704);
9046*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, &l_4730);
9047*f5c631daSSadaf Ebrahimi __ add(Narrow, r0, sp, 188U);
9048*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(sp, 160));
9049*f5c631daSSadaf Ebrahimi // --------------
9050*f5c631daSSadaf Ebrahimi __ bind(&l_470a);
9051*f5c631daSSadaf Ebrahimi __ bl(&l_470a);
9052*f5c631daSSadaf Ebrahimi __ add(Narrow, r0, sp, 8U);
9053*f5c631daSSadaf Ebrahimi // --------------
9054*f5c631daSSadaf Ebrahimi __ bind(&l_4710);
9055*f5c631daSSadaf Ebrahimi __ bl(&l_4710);
9056*f5c631daSSadaf Ebrahimi // --------------
9057*f5c631daSSadaf Ebrahimi __ bind(&l_4714);
9058*f5c631daSSadaf Ebrahimi __ bl(&l_4714);
9059*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r5);
9060*f5c631daSSadaf Ebrahimi __ mov(Narrow, r1, r4);
9061*f5c631daSSadaf Ebrahimi // --------------
9062*f5c631daSSadaf Ebrahimi __ bind(&l_471c);
9063*f5c631daSSadaf Ebrahimi __ bl(&l_471c);
9064*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_4704);
9065*f5c631daSSadaf Ebrahimi __ nop(Narrow);
9066*f5c631daSSadaf Ebrahimi // --------------
9067*f5c631daSSadaf Ebrahimi __ bind(&l_4724);
9068*f5c631daSSadaf Ebrahimi __ Emit32(0x00000008);
9069*f5c631daSSadaf Ebrahimi // --------------
9070*f5c631daSSadaf Ebrahimi __ bind(&l_4728);
9071*f5c631daSSadaf Ebrahimi __ Emit32(0x00000008);
9072*f5c631daSSadaf Ebrahimi // --------------
9073*f5c631daSSadaf Ebrahimi __ bind(&l_472c);
9074*f5c631daSSadaf Ebrahimi __ Emit32(0x00000008);
9075*f5c631daSSadaf Ebrahimi // --------------
9076*f5c631daSSadaf Ebrahimi __ bind(&l_4730);
9077*f5c631daSSadaf Ebrahimi __ Emit32(0x00000008);
9078*f5c631daSSadaf Ebrahimi __ movw(r3, 0U);
9079*f5c631daSSadaf Ebrahimi __ push(RegisterList(0x4ff0));
9080*f5c631daSSadaf Ebrahimi __ movt(r3, 0U);
9081*f5c631daSSadaf Ebrahimi __ mov(r9, 16416U);
9082*f5c631daSSadaf Ebrahimi __ mov(sl, 16417U);
9083*f5c631daSSadaf Ebrahimi __ mov(r2, 16419U);
9084*f5c631daSSadaf Ebrahimi __ str(r9, MemOperand(r3, 92));
9085*f5c631daSSadaf Ebrahimi __ mov(r9, 16420U);
9086*f5c631daSSadaf Ebrahimi __ str(sl, MemOperand(r3, 88));
9087*f5c631daSSadaf Ebrahimi __ mov(sl, 16421U);
9088*f5c631daSSadaf Ebrahimi __ str(r9, MemOperand(r3, 24));
9089*f5c631daSSadaf Ebrahimi __ mov(r9, 16424U);
9090*f5c631daSSadaf Ebrahimi __ str(Narrow, r2, MemOperand(r3, 76));
9091*f5c631daSSadaf Ebrahimi __ mov(fp, 16418U);
9092*f5c631daSSadaf Ebrahimi __ str(sl, MemOperand(r3, 28));
9093*f5c631daSSadaf Ebrahimi __ mov(r2, 16423U);
9094*f5c631daSSadaf Ebrahimi __ str(r9, MemOperand(r3, 124));
9095*f5c631daSSadaf Ebrahimi __ mov(sl, 16425U);
9096*f5c631daSSadaf Ebrahimi __ mov(r9, 16448U);
9097*f5c631daSSadaf Ebrahimi __ str(fp, MemOperand(r3, 36));
9098*f5c631daSSadaf Ebrahimi __ str(Narrow, r2, MemOperand(r3, 120));
9099*f5c631daSSadaf Ebrahimi __ mov(fp, 16422U);
9100*f5c631daSSadaf Ebrahimi __ str(sl, MemOperand(r3, 128));
9101*f5c631daSSadaf Ebrahimi __ mov(r2, 16427U);
9102*f5c631daSSadaf Ebrahimi __ str(r9, MemOperand(r3, 60));
9103*f5c631daSSadaf Ebrahimi __ mov(sl, 16449U);
9104*f5c631daSSadaf Ebrahimi __ mov(r9, 16452U);
9105*f5c631daSSadaf Ebrahimi __ movs(Narrow, r1, 136U);
9106*f5c631daSSadaf Ebrahimi __ sub(Narrow, sp, sp, 12U);
9107*f5c631daSSadaf Ebrahimi __ str(fp, MemOperand(r3, 32));
9108*f5c631daSSadaf Ebrahimi __ str(r2, MemOperand(r3, 136));
9109*f5c631daSSadaf Ebrahimi __ movt(r1, 1U);
9110*f5c631daSSadaf Ebrahimi __ str(sl, MemOperand(r3, 64));
9111*f5c631daSSadaf Ebrahimi __ mov(fp, 16426U);
9112*f5c631daSSadaf Ebrahimi __ str(r9, MemOperand(r3, 164));
9113*f5c631daSSadaf Ebrahimi __ mov(r2, 16451U);
9114*f5c631daSSadaf Ebrahimi __ mov(sl, 16453U);
9115*f5c631daSSadaf Ebrahimi __ mov(r9, 16456U);
9116*f5c631daSSadaf Ebrahimi __ str(Narrow, r1, MemOperand(sp, 4));
9117*f5c631daSSadaf Ebrahimi __ movs(Narrow, r1, 15U);
9118*f5c631daSSadaf Ebrahimi __ str(fp, MemOperand(r3, 132));
9119*f5c631daSSadaf Ebrahimi __ mov(fp, 16450U);
9120*f5c631daSSadaf Ebrahimi __ str(Narrow, r2, MemOperand(r3, 72));
9121*f5c631daSSadaf Ebrahimi __ mov(r2, 16455U);
9122*f5c631daSSadaf Ebrahimi __ str(sl, MemOperand(r3, 168));
9123*f5c631daSSadaf Ebrahimi __ mov(sl, 16457U);
9124*f5c631daSSadaf Ebrahimi __ str(r9, MemOperand(r3, 180));
9125*f5c631daSSadaf Ebrahimi __ mov(r9, 16429U);
9126*f5c631daSSadaf Ebrahimi __ str(fp, MemOperand(r3, 68));
9127*f5c631daSSadaf Ebrahimi __ mov(fp, 16454U);
9128*f5c631daSSadaf Ebrahimi __ str(r2, MemOperand(r3, 176));
9129*f5c631daSSadaf Ebrahimi __ mov(r2, 16428U);
9130*f5c631daSSadaf Ebrahimi __ str(sl, MemOperand(r3, 184));
9131*f5c631daSSadaf Ebrahimi __ mov(sl, 16431U);
9132*f5c631daSSadaf Ebrahimi __ str(Narrow, r1, MemOperand(r3, 116));
9133*f5c631daSSadaf Ebrahimi __ mov(r1, 16430U);
9134*f5c631daSSadaf Ebrahimi __ str(r9, MemOperand(r3, 140));
9135*f5c631daSSadaf Ebrahimi __ mov(r8, 128U);
9136*f5c631daSSadaf Ebrahimi __ str(r9, MemOperand(r3, 56));
9137*f5c631daSSadaf Ebrahimi __ mov(r9, 16384U);
9138*f5c631daSSadaf Ebrahimi __ str(fp, MemOperand(r3, 172));
9139*f5c631daSSadaf Ebrahimi __ mov(ip, 129U);
9140*f5c631daSSadaf Ebrahimi __ str(Narrow, r2, MemOperand(r3, 112));
9141*f5c631daSSadaf Ebrahimi __ mov(lr, 130U);
9142*f5c631daSSadaf Ebrahimi __ str(r2, MemOperand(r3, 152));
9143*f5c631daSSadaf Ebrahimi __ movs(Narrow, r7, 131U);
9144*f5c631daSSadaf Ebrahimi __ str(r1, MemOperand(r3, 144));
9145*f5c631daSSadaf Ebrahimi __ movs(Narrow, r6, 132U);
9146*f5c631daSSadaf Ebrahimi __ str(Narrow, r1, MemOperand(r3, 108));
9147*f5c631daSSadaf Ebrahimi __ movs(Narrow, r1, 0U);
9148*f5c631daSSadaf Ebrahimi __ str(sl, MemOperand(r3, 148));
9149*f5c631daSSadaf Ebrahimi __ movs(Narrow, r5, 133U);
9150*f5c631daSSadaf Ebrahimi __ str(sl, MemOperand(r3, 156));
9151*f5c631daSSadaf Ebrahimi __ mov(sl, 16458U);
9152*f5c631daSSadaf Ebrahimi }
Generate_70(TestAssembler * assembler)9153*f5c631daSSadaf Ebrahimi void Generate_70(TestAssembler* assembler) {
9154*f5c631daSSadaf Ebrahimi __ str(r9, MemOperand(r3, 40));
9155*f5c631daSSadaf Ebrahimi __ movs(Narrow, r4, 134U);
9156*f5c631daSSadaf Ebrahimi __ str(r9, MemOperand(r3, 272));
9157*f5c631daSSadaf Ebrahimi __ mov(r9, 16459U);
9158*f5c631daSSadaf Ebrahimi __ str(r9, MemOperand(r3, 192));
9159*f5c631daSSadaf Ebrahimi __ mov(r9, 16460U);
9160*f5c631daSSadaf Ebrahimi __ str(r9, MemOperand(r3, 196));
9161*f5c631daSSadaf Ebrahimi __ mov(r9, 16461U);
9162*f5c631daSSadaf Ebrahimi __ str(r9, MemOperand(r3, 200));
9163*f5c631daSSadaf Ebrahimi __ mov(r9, 16462U);
9164*f5c631daSSadaf Ebrahimi __ str(r9, MemOperand(r3, 204));
9165*f5c631daSSadaf Ebrahimi __ mov(r9, 16463U);
9166*f5c631daSSadaf Ebrahimi __ str(r9, MemOperand(r3, 52));
9167*f5c631daSSadaf Ebrahimi __ mov(r9, 16464U);
9168*f5c631daSSadaf Ebrahimi __ str(r9, MemOperand(r3, 208));
9169*f5c631daSSadaf Ebrahimi __ mov(r9, 16465U);
9170*f5c631daSSadaf Ebrahimi __ str(r9, MemOperand(r3, 212));
9171*f5c631daSSadaf Ebrahimi __ mov(r9, 16466U);
9172*f5c631daSSadaf Ebrahimi __ str(r9, MemOperand(r3, 216));
9173*f5c631daSSadaf Ebrahimi __ mov(r9, 16467U);
9174*f5c631daSSadaf Ebrahimi __ str(r9, MemOperand(r3, 220));
9175*f5c631daSSadaf Ebrahimi __ mov(r9, 16468U);
9176*f5c631daSSadaf Ebrahimi __ str(r9, MemOperand(r3, 224));
9177*f5c631daSSadaf Ebrahimi __ mov(r9, 16469U);
9178*f5c631daSSadaf Ebrahimi __ str(r9, MemOperand(r3, 228));
9179*f5c631daSSadaf Ebrahimi __ mov(r9, 16470U);
9180*f5c631daSSadaf Ebrahimi __ str(r9, MemOperand(r3, 232));
9181*f5c631daSSadaf Ebrahimi __ mov(r9, 16471U);
9182*f5c631daSSadaf Ebrahimi __ str(r9, MemOperand(r3, 236));
9183*f5c631daSSadaf Ebrahimi __ mov(r9, 16472U);
9184*f5c631daSSadaf Ebrahimi __ str(r9, MemOperand(r3, 240));
9185*f5c631daSSadaf Ebrahimi __ mov(r9, 16473U);
9186*f5c631daSSadaf Ebrahimi __ str(r9, MemOperand(r3, 244));
9187*f5c631daSSadaf Ebrahimi __ mov(r9, 16474U);
9188*f5c631daSSadaf Ebrahimi __ str(r9, MemOperand(r3, 248));
9189*f5c631daSSadaf Ebrahimi __ mov(r9, 16475U);
9190*f5c631daSSadaf Ebrahimi __ str(r9, MemOperand(r3, 252));
9191*f5c631daSSadaf Ebrahimi __ mov(r9, 16476U);
9192*f5c631daSSadaf Ebrahimi __ str(r9, MemOperand(r3, 256));
9193*f5c631daSSadaf Ebrahimi __ mov(r9, 16477U);
9194*f5c631daSSadaf Ebrahimi __ str(r9, MemOperand(r3, 260));
9195*f5c631daSSadaf Ebrahimi __ mov(r9, 16478U);
9196*f5c631daSSadaf Ebrahimi __ str(r9, MemOperand(r3, 264));
9197*f5c631daSSadaf Ebrahimi __ mov(r9, 16479U);
9198*f5c631daSSadaf Ebrahimi __ str(r9, MemOperand(r3, 268));
9199*f5c631daSSadaf Ebrahimi __ mov(r9, 32864U);
9200*f5c631daSSadaf Ebrahimi __ str(r9, MemOperand(r3, 276));
9201*f5c631daSSadaf Ebrahimi __ mov(r9, 32865U);
9202*f5c631daSSadaf Ebrahimi __ str(r9, MemOperand(r3, 280));
9203*f5c631daSSadaf Ebrahimi __ mov(r9, 32866U);
9204*f5c631daSSadaf Ebrahimi __ str(r9, MemOperand(r3, 284));
9205*f5c631daSSadaf Ebrahimi __ mov(r9, 32867U);
9206*f5c631daSSadaf Ebrahimi __ str(r9, MemOperand(r3, 288));
9207*f5c631daSSadaf Ebrahimi __ mov(r9, 32868U);
9208*f5c631daSSadaf Ebrahimi __ str(r9, MemOperand(r3, 84));
9209*f5c631daSSadaf Ebrahimi __ mov(r9, 32869U);
9210*f5c631daSSadaf Ebrahimi __ str(r9, MemOperand(r3, 292));
9211*f5c631daSSadaf Ebrahimi __ mov(r9, 32870U);
9212*f5c631daSSadaf Ebrahimi __ str(r9, MemOperand(r3, 44));
9213*f5c631daSSadaf Ebrahimi __ mov(r9, 32871U);
9214*f5c631daSSadaf Ebrahimi __ str(r9, MemOperand(r3, 48));
9215*f5c631daSSadaf Ebrahimi __ mov(r9, 32872U);
9216*f5c631daSSadaf Ebrahimi __ str(r9, MemOperand(r3, 296));
9217*f5c631daSSadaf Ebrahimi __ mov(r9, 32873U);
9218*f5c631daSSadaf Ebrahimi __ str(r1, MemOperand(r3, 160));
9219*f5c631daSSadaf Ebrahimi __ movs(Narrow, r0, 135U);
9220*f5c631daSSadaf Ebrahimi __ str(sl, MemOperand(r3, 188));
9221*f5c631daSSadaf Ebrahimi __ mov(fp, 137U);
9222*f5c631daSSadaf Ebrahimi __ str(r9, MemOperand(r3, 300));
9223*f5c631daSSadaf Ebrahimi __ mov(r9, 32874U);
9224*f5c631daSSadaf Ebrahimi __ str(r9, MemOperand(r3, 304));
9225*f5c631daSSadaf Ebrahimi __ mov(r9, 32875U);
9226*f5c631daSSadaf Ebrahimi __ str(r9, MemOperand(r3, 308));
9227*f5c631daSSadaf Ebrahimi __ mov(r9, 32876U);
9228*f5c631daSSadaf Ebrahimi __ str(r9, MemOperand(r3, 312));
9229*f5c631daSSadaf Ebrahimi __ mov(r9, 32877U);
9230*f5c631daSSadaf Ebrahimi __ str(r9, MemOperand(r3, 316));
9231*f5c631daSSadaf Ebrahimi __ mov(r9, 32878U);
9232*f5c631daSSadaf Ebrahimi __ str(r9, MemOperand(r3, 320));
9233*f5c631daSSadaf Ebrahimi __ mov(r9, 32879U);
9234*f5c631daSSadaf Ebrahimi __ str(r9, MemOperand(r3, 324));
9235*f5c631daSSadaf Ebrahimi __ mov(r9, 32880U);
9236*f5c631daSSadaf Ebrahimi __ str(r9, MemOperand(r3, 328));
9237*f5c631daSSadaf Ebrahimi __ mov(r9, 32881U);
9238*f5c631daSSadaf Ebrahimi __ str(r9, MemOperand(r3, 332));
9239*f5c631daSSadaf Ebrahimi __ mov(r9, 32882U);
9240*f5c631daSSadaf Ebrahimi __ str(r9, MemOperand(r3, 336));
9241*f5c631daSSadaf Ebrahimi __ mov(r9, 32883U);
9242*f5c631daSSadaf Ebrahimi __ str(r9, MemOperand(r3, 340));
9243*f5c631daSSadaf Ebrahimi __ mov(r9, 32884U);
9244*f5c631daSSadaf Ebrahimi __ str(r9, MemOperand(r3, 344));
9245*f5c631daSSadaf Ebrahimi __ mov(r9, 32885U);
9246*f5c631daSSadaf Ebrahimi __ str(r9, MemOperand(r3, 348));
9247*f5c631daSSadaf Ebrahimi __ mov(r9, 32886U);
9248*f5c631daSSadaf Ebrahimi __ str(r9, MemOperand(r3, 352));
9249*f5c631daSSadaf Ebrahimi __ mov(r9, 32887U);
9250*f5c631daSSadaf Ebrahimi __ str(r9, MemOperand(r3, 356));
9251*f5c631daSSadaf Ebrahimi __ mov(r9, 32888U);
9252*f5c631daSSadaf Ebrahimi __ str(r9, MemOperand(r3, 360));
9253*f5c631daSSadaf Ebrahimi __ mov(r9, 32889U);
9254*f5c631daSSadaf Ebrahimi }
Generate_71(TestAssembler * assembler)9255*f5c631daSSadaf Ebrahimi void Generate_71(TestAssembler* assembler) {
9256*f5c631daSSadaf Ebrahimi __ str(r9, MemOperand(r3, 364));
9257*f5c631daSSadaf Ebrahimi __ mov(r9, 32890U);
9258*f5c631daSSadaf Ebrahimi __ str(r9, MemOperand(r3, 368));
9259*f5c631daSSadaf Ebrahimi __ mov(r9, 32891U);
9260*f5c631daSSadaf Ebrahimi __ str(r9, MemOperand(r3, 372));
9261*f5c631daSSadaf Ebrahimi __ mov(r9, 32892U);
9262*f5c631daSSadaf Ebrahimi __ str(r9, MemOperand(r3, 376));
9263*f5c631daSSadaf Ebrahimi __ mov(r9, 32893U);
9264*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r1, MemOperand(sp, 4));
9265*f5c631daSSadaf Ebrahimi __ movs(Narrow, r2, 138U);
9266*f5c631daSSadaf Ebrahimi __ str(r9, MemOperand(r3, 380));
9267*f5c631daSSadaf Ebrahimi __ mov(r9, 32894U);
9268*f5c631daSSadaf Ebrahimi __ str(r9, MemOperand(r3, 384));
9269*f5c631daSSadaf Ebrahimi __ mov(r9, 32895U);
9270*f5c631daSSadaf Ebrahimi __ str(r9, MemOperand(r3, 388));
9271*f5c631daSSadaf Ebrahimi __ movt(r8, 1U);
9272*f5c631daSSadaf Ebrahimi __ movt(ip, 1U);
9273*f5c631daSSadaf Ebrahimi __ movt(lr, 1U);
9274*f5c631daSSadaf Ebrahimi __ movt(r7, 1U);
9275*f5c631daSSadaf Ebrahimi __ movt(r6, 1U);
9276*f5c631daSSadaf Ebrahimi __ movt(r5, 1U);
9277*f5c631daSSadaf Ebrahimi __ movt(r4, 1U);
9278*f5c631daSSadaf Ebrahimi __ movt(r0, 1U);
9279*f5c631daSSadaf Ebrahimi __ movt(fp, 1U);
9280*f5c631daSSadaf Ebrahimi __ movt(r2, 1U);
9281*f5c631daSSadaf Ebrahimi __ mov(r9, 32768U);
9282*f5c631daSSadaf Ebrahimi __ str(r9, MemOperand(r3));
9283*f5c631daSSadaf Ebrahimi __ mov(sl, 139U);
9284*f5c631daSSadaf Ebrahimi __ str(r8, MemOperand(r3, 4));
9285*f5c631daSSadaf Ebrahimi __ mov(r9, 140U);
9286*f5c631daSSadaf Ebrahimi __ str(ip, MemOperand(r3, 8));
9287*f5c631daSSadaf Ebrahimi __ mov(ip, 141U);
9288*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(r3, 80));
9289*f5c631daSSadaf Ebrahimi __ movt(sl, 1U);
9290*f5c631daSSadaf Ebrahimi __ str(r7, MemOperand(r3, 392));
9291*f5c631daSSadaf Ebrahimi __ movs(Narrow, r7, 142U);
9292*f5c631daSSadaf Ebrahimi __ str(r6, MemOperand(r3, 396));
9293*f5c631daSSadaf Ebrahimi __ movs(Narrow, r6, 143U);
9294*f5c631daSSadaf Ebrahimi __ str(r5, MemOperand(r3, 400));
9295*f5c631daSSadaf Ebrahimi __ movt(r9, 1U);
9296*f5c631daSSadaf Ebrahimi __ str(r4, MemOperand(r3, 404));
9297*f5c631daSSadaf Ebrahimi __ movt(ip, 1U);
9298*f5c631daSSadaf Ebrahimi __ str(r0, MemOperand(r3, 408));
9299*f5c631daSSadaf Ebrahimi __ movt(r7, 1U);
9300*f5c631daSSadaf Ebrahimi __ str(Narrow, r1, MemOperand(r3, 96));
9301*f5c631daSSadaf Ebrahimi __ movt(r6, 1U);
9302*f5c631daSSadaf Ebrahimi __ str(fp, MemOperand(r3, 100));
9303*f5c631daSSadaf Ebrahimi __ mov(r5, 65536U);
9304*f5c631daSSadaf Ebrahimi __ str(Narrow, r2, MemOperand(r3, 104));
9305*f5c631daSSadaf Ebrahimi __ movs(Narrow, r2, 0U);
9306*f5c631daSSadaf Ebrahimi __ movs(Narrow, r4, 1U);
9307*f5c631daSSadaf Ebrahimi __ str(r2, MemOperand(r3, 424));
9308*f5c631daSSadaf Ebrahimi __ movs(Narrow, r2, 15U);
9309*f5c631daSSadaf Ebrahimi __ movs(Narrow, r0, 2U);
9310*f5c631daSSadaf Ebrahimi __ movs(Narrow, r1, 3U);
9311*f5c631daSSadaf Ebrahimi __ mov(lr, 4U);
9312*f5c631daSSadaf Ebrahimi __ str(sl, MemOperand(r3, 412));
9313*f5c631daSSadaf Ebrahimi __ mov(r8, 6U);
9314*f5c631daSSadaf Ebrahimi __ str(r9, MemOperand(r3, 416));
9315*f5c631daSSadaf Ebrahimi __ mov(sl, 8U);
9316*f5c631daSSadaf Ebrahimi __ mov(r9, 7U);
9317*f5c631daSSadaf Ebrahimi __ str(r2, MemOperand(r3, 484));
9318*f5c631daSSadaf Ebrahimi __ mov(fp, 9U);
9319*f5c631daSSadaf Ebrahimi __ str(ip, MemOperand(r3, 12));
9320*f5c631daSSadaf Ebrahimi __ str(Narrow, r7, MemOperand(r3, 16));
9321*f5c631daSSadaf Ebrahimi __ mov(ip, 10U);
9322*f5c631daSSadaf Ebrahimi __ movs(Narrow, r7, 11U);
9323*f5c631daSSadaf Ebrahimi __ str(Narrow, r6, MemOperand(r3, 20));
9324*f5c631daSSadaf Ebrahimi __ str(r5, MemOperand(r3, 420));
9325*f5c631daSSadaf Ebrahimi __ movs(Narrow, r6, 12U);
9326*f5c631daSSadaf Ebrahimi __ movs(Narrow, r5, 13U);
9327*f5c631daSSadaf Ebrahimi __ str(r4, MemOperand(r3, 428));
9328*f5c631daSSadaf Ebrahimi __ movs(Narrow, r2, 5U);
9329*f5c631daSSadaf Ebrahimi __ movs(Narrow, r4, 14U);
9330*f5c631daSSadaf Ebrahimi __ str(r0, MemOperand(r3, 432));
9331*f5c631daSSadaf Ebrahimi __ str(r1, MemOperand(r3, 436));
9332*f5c631daSSadaf Ebrahimi __ str(lr, MemOperand(r3, 440));
9333*f5c631daSSadaf Ebrahimi __ str(r2, MemOperand(r3, 444));
9334*f5c631daSSadaf Ebrahimi __ str(r8, MemOperand(r3, 448));
9335*f5c631daSSadaf Ebrahimi __ str(r9, MemOperand(r3, 452));
9336*f5c631daSSadaf Ebrahimi __ str(sl, MemOperand(r3, 456));
9337*f5c631daSSadaf Ebrahimi __ str(fp, MemOperand(r3, 460));
9338*f5c631daSSadaf Ebrahimi __ str(ip, MemOperand(r3, 464));
9339*f5c631daSSadaf Ebrahimi __ str(r7, MemOperand(r3, 468));
9340*f5c631daSSadaf Ebrahimi __ str(r6, MemOperand(r3, 472));
9341*f5c631daSSadaf Ebrahimi __ str(r5, MemOperand(r3, 476));
9342*f5c631daSSadaf Ebrahimi __ str(r4, MemOperand(r3, 480));
9343*f5c631daSSadaf Ebrahimi __ add(Narrow, sp, sp, 12U);
9344*f5c631daSSadaf Ebrahimi __ pop(RegisterList(0x8ff0));
9345*f5c631daSSadaf Ebrahimi __ nop(Narrow);
9346*f5c631daSSadaf Ebrahimi // --------------
9347*f5c631daSSadaf Ebrahimi __ bind(&l_4b0c);
9348*f5c631daSSadaf Ebrahimi __ push(Narrow, RegisterList(r4, r5, r6, lr));
9349*f5c631daSSadaf Ebrahimi __ mov(Narrow, r6, r0);
9350*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r4, MemOperand(r0, 108));
9351*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r5, MemOperand(r0, 112));
9352*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, &l_4b7c);
9353*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r4, r5);
9354*f5c631daSSadaf Ebrahimi __ add(r2, r3, 504U);
9355*f5c631daSSadaf Ebrahimi __ str(Narrow, r3, MemOperand(r0));
9356*f5c631daSSadaf Ebrahimi __ str(Narrow, r2, MemOperand(r0, 44));
9357*f5c631daSSadaf Ebrahimi __ b(eq, Narrow, &l_4b34);
9358*f5c631daSSadaf Ebrahimi }
Generate_72(TestAssembler * assembler)9359*f5c631daSSadaf Ebrahimi void Generate_72(TestAssembler* assembler) {
9360*f5c631daSSadaf Ebrahimi // --------------
9361*f5c631daSSadaf Ebrahimi __ bind(&l_4b22);
9362*f5c631daSSadaf Ebrahimi __ ldr(r0, MemOperand(r4, 4, PostIndex));
9363*f5c631daSSadaf Ebrahimi __ cbz(r0, &l_4b2e);
9364*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r0));
9365*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, MemOperand(r3, 4));
9366*f5c631daSSadaf Ebrahimi __ blx(r3);
9367*f5c631daSSadaf Ebrahimi // --------------
9368*f5c631daSSadaf Ebrahimi __ bind(&l_4b2e);
9369*f5c631daSSadaf Ebrahimi __ cmp(Narrow, r5, r4);
9370*f5c631daSSadaf Ebrahimi __ b(ne, Narrow, &l_4b22);
9371*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r5, MemOperand(r6, 108));
9372*f5c631daSSadaf Ebrahimi // --------------
9373*f5c631daSSadaf Ebrahimi __ bind(&l_4b34);
9374*f5c631daSSadaf Ebrahimi __ cbz(r5, &l_4b3c);
9375*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r5);
9376*f5c631daSSadaf Ebrahimi // --------------
9377*f5c631daSSadaf Ebrahimi __ bind(&l_4b38);
9378*f5c631daSSadaf Ebrahimi __ bl(&l_4b38);
9379*f5c631daSSadaf Ebrahimi // --------------
9380*f5c631daSSadaf Ebrahimi __ bind(&l_4b3c);
9381*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r0, MemOperand(r6, 96));
9382*f5c631daSSadaf Ebrahimi __ cbz(r0, &l_4b44);
9383*f5c631daSSadaf Ebrahimi // --------------
9384*f5c631daSSadaf Ebrahimi __ bind(&l_4b40);
9385*f5c631daSSadaf Ebrahimi __ bl(&l_4b40);
9386*f5c631daSSadaf Ebrahimi // --------------
9387*f5c631daSSadaf Ebrahimi __ bind(&l_4b44);
9388*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, &l_4b80);
9389*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r6);
9390*f5c631daSSadaf Ebrahimi __ str(r3, MemOperand(r0, 4, PostIndex));
9391*f5c631daSSadaf Ebrahimi // --------------
9392*f5c631daSSadaf Ebrahimi __ bind(&l_4b4c);
9393*f5c631daSSadaf Ebrahimi __ bl(&l_4b4c);
9394*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r6);
9395*f5c631daSSadaf Ebrahimi // --------------
9396*f5c631daSSadaf Ebrahimi __ bind(&l_4b52);
9397*f5c631daSSadaf Ebrahimi __ bl(&l_4b52);
9398*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r6);
9399*f5c631daSSadaf Ebrahimi __ pop(Narrow, RegisterList(r4, r5, r6, pc));
9400*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r0, MemOperand(r6, 108));
9401*f5c631daSSadaf Ebrahimi __ cbz(r0, &l_4b62);
9402*f5c631daSSadaf Ebrahimi // --------------
9403*f5c631daSSadaf Ebrahimi __ bind(&l_4b5e);
9404*f5c631daSSadaf Ebrahimi __ bl(&l_4b5e);
9405*f5c631daSSadaf Ebrahimi // --------------
9406*f5c631daSSadaf Ebrahimi __ bind(&l_4b62);
9407*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r0, MemOperand(r6, 96));
9408*f5c631daSSadaf Ebrahimi __ cbz(r0, &l_4b6a);
9409*f5c631daSSadaf Ebrahimi // --------------
9410*f5c631daSSadaf Ebrahimi __ bind(&l_4b66);
9411*f5c631daSSadaf Ebrahimi __ bl(&l_4b66);
9412*f5c631daSSadaf Ebrahimi // --------------
9413*f5c631daSSadaf Ebrahimi __ bind(&l_4b6a);
9414*f5c631daSSadaf Ebrahimi __ ldr(Narrow, r3, &l_4b80);
9415*f5c631daSSadaf Ebrahimi __ mov(Narrow, r0, r6);
9416*f5c631daSSadaf Ebrahimi __ str(r3, MemOperand(r0, 4, PostIndex));
9417*f5c631daSSadaf Ebrahimi // --------------
9418*f5c631daSSadaf Ebrahimi __ bind(&l_4b72);
9419*f5c631daSSadaf Ebrahimi __ bl(&l_4b72);
9420*f5c631daSSadaf Ebrahimi // --------------
9421*f5c631daSSadaf Ebrahimi __ bind(&l_4b76);
9422*f5c631daSSadaf Ebrahimi __ bl(&l_4b76);
9423*f5c631daSSadaf Ebrahimi __ nop(Narrow);
9424*f5c631daSSadaf Ebrahimi // --------------
9425*f5c631daSSadaf Ebrahimi __ bind(&l_4b7c);
9426*f5c631daSSadaf Ebrahimi __ Emit32(0x00000008);
9427*f5c631daSSadaf Ebrahimi // --------------
9428*f5c631daSSadaf Ebrahimi __ bind(&l_4b80);
9429*f5c631daSSadaf Ebrahimi __ Emit32(0x00000008);
9430*f5c631daSSadaf Ebrahimi __ sub(r0, r0, 44U);
9431*f5c631daSSadaf Ebrahimi __ b(Narrow, &l_4b0c);
9432*f5c631daSSadaf Ebrahimi __ nop(Narrow);
9433*f5c631daSSadaf Ebrahimi }
9434*f5c631daSSadaf Ebrahimi
9435*f5c631daSSadaf Ebrahimi public:
Generator(TestAssembler * assembler)9436*f5c631daSSadaf Ebrahimi explicit Generator(TestAssembler* assembler) {
9437*f5c631daSSadaf Ebrahimi Generate_1(assembler);
9438*f5c631daSSadaf Ebrahimi Generate_2(assembler);
9439*f5c631daSSadaf Ebrahimi Generate_3(assembler);
9440*f5c631daSSadaf Ebrahimi Generate_4(assembler);
9441*f5c631daSSadaf Ebrahimi Generate_5(assembler);
9442*f5c631daSSadaf Ebrahimi Generate_6(assembler);
9443*f5c631daSSadaf Ebrahimi Generate_7(assembler);
9444*f5c631daSSadaf Ebrahimi Generate_8(assembler);
9445*f5c631daSSadaf Ebrahimi Generate_9(assembler);
9446*f5c631daSSadaf Ebrahimi Generate_10(assembler);
9447*f5c631daSSadaf Ebrahimi Generate_11(assembler);
9448*f5c631daSSadaf Ebrahimi Generate_12(assembler);
9449*f5c631daSSadaf Ebrahimi Generate_13(assembler);
9450*f5c631daSSadaf Ebrahimi Generate_14(assembler);
9451*f5c631daSSadaf Ebrahimi Generate_15(assembler);
9452*f5c631daSSadaf Ebrahimi Generate_16(assembler);
9453*f5c631daSSadaf Ebrahimi Generate_17(assembler);
9454*f5c631daSSadaf Ebrahimi Generate_18(assembler);
9455*f5c631daSSadaf Ebrahimi Generate_19(assembler);
9456*f5c631daSSadaf Ebrahimi Generate_20(assembler);
9457*f5c631daSSadaf Ebrahimi Generate_21(assembler);
9458*f5c631daSSadaf Ebrahimi Generate_22(assembler);
9459*f5c631daSSadaf Ebrahimi Generate_23(assembler);
9460*f5c631daSSadaf Ebrahimi Generate_24(assembler);
9461*f5c631daSSadaf Ebrahimi Generate_25(assembler);
9462*f5c631daSSadaf Ebrahimi Generate_26(assembler);
9463*f5c631daSSadaf Ebrahimi Generate_27(assembler);
9464*f5c631daSSadaf Ebrahimi Generate_28(assembler);
9465*f5c631daSSadaf Ebrahimi Generate_29(assembler);
9466*f5c631daSSadaf Ebrahimi Generate_30(assembler);
9467*f5c631daSSadaf Ebrahimi Generate_31(assembler);
9468*f5c631daSSadaf Ebrahimi Generate_32(assembler);
9469*f5c631daSSadaf Ebrahimi Generate_33(assembler);
9470*f5c631daSSadaf Ebrahimi Generate_34(assembler);
9471*f5c631daSSadaf Ebrahimi Generate_35(assembler);
9472*f5c631daSSadaf Ebrahimi Generate_36(assembler);
9473*f5c631daSSadaf Ebrahimi Generate_37(assembler);
9474*f5c631daSSadaf Ebrahimi Generate_38(assembler);
9475*f5c631daSSadaf Ebrahimi Generate_39(assembler);
9476*f5c631daSSadaf Ebrahimi Generate_40(assembler);
9477*f5c631daSSadaf Ebrahimi Generate_41(assembler);
9478*f5c631daSSadaf Ebrahimi Generate_42(assembler);
9479*f5c631daSSadaf Ebrahimi Generate_43(assembler);
9480*f5c631daSSadaf Ebrahimi Generate_44(assembler);
9481*f5c631daSSadaf Ebrahimi Generate_45(assembler);
9482*f5c631daSSadaf Ebrahimi Generate_46(assembler);
9483*f5c631daSSadaf Ebrahimi Generate_47(assembler);
9484*f5c631daSSadaf Ebrahimi Generate_48(assembler);
9485*f5c631daSSadaf Ebrahimi Generate_49(assembler);
9486*f5c631daSSadaf Ebrahimi Generate_50(assembler);
9487*f5c631daSSadaf Ebrahimi Generate_51(assembler);
9488*f5c631daSSadaf Ebrahimi Generate_52(assembler);
9489*f5c631daSSadaf Ebrahimi Generate_53(assembler);
9490*f5c631daSSadaf Ebrahimi Generate_54(assembler);
9491*f5c631daSSadaf Ebrahimi Generate_55(assembler);
9492*f5c631daSSadaf Ebrahimi Generate_56(assembler);
9493*f5c631daSSadaf Ebrahimi Generate_57(assembler);
9494*f5c631daSSadaf Ebrahimi Generate_58(assembler);
9495*f5c631daSSadaf Ebrahimi Generate_59(assembler);
9496*f5c631daSSadaf Ebrahimi Generate_60(assembler);
9497*f5c631daSSadaf Ebrahimi Generate_61(assembler);
9498*f5c631daSSadaf Ebrahimi Generate_62(assembler);
9499*f5c631daSSadaf Ebrahimi Generate_63(assembler);
9500*f5c631daSSadaf Ebrahimi Generate_64(assembler);
9501*f5c631daSSadaf Ebrahimi Generate_65(assembler);
9502*f5c631daSSadaf Ebrahimi Generate_66(assembler);
9503*f5c631daSSadaf Ebrahimi Generate_67(assembler);
9504*f5c631daSSadaf Ebrahimi Generate_68(assembler);
9505*f5c631daSSadaf Ebrahimi Generate_69(assembler);
9506*f5c631daSSadaf Ebrahimi Generate_70(assembler);
9507*f5c631daSSadaf Ebrahimi Generate_71(assembler);
9508*f5c631daSSadaf Ebrahimi Generate_72(assembler);
9509*f5c631daSSadaf Ebrahimi }
9510*f5c631daSSadaf Ebrahimi };
9511*f5c631daSSadaf Ebrahimi
9512*f5c631daSSadaf Ebrahimi #ifdef __arm__
9513*f5c631daSSadaf Ebrahimi const int kMaxPerfCpus = 10;
9514*f5c631daSSadaf Ebrahimi #endif
9515*f5c631daSSadaf Ebrahimi
9516*f5c631daSSadaf Ebrahimi class PerfScope {
9517*f5c631daSSadaf Ebrahimi public:
9518*f5c631daSSadaf Ebrahimi explicit PerfScope(int64_t* counter);
9519*f5c631daSSadaf Ebrahimi ~PerfScope();
9520*f5c631daSSadaf Ebrahimi
9521*f5c631daSSadaf Ebrahimi private:
9522*f5c631daSSadaf Ebrahimi #ifdef __arm__
9523*f5c631daSSadaf Ebrahimi int fd_[kMaxPerfCpus];
9524*f5c631daSSadaf Ebrahimi #endif
9525*f5c631daSSadaf Ebrahimi int64_t* counter_;
9526*f5c631daSSadaf Ebrahimi };
9527*f5c631daSSadaf Ebrahimi
9528*f5c631daSSadaf Ebrahimi
PerfScope(int64_t * counter)9529*f5c631daSSadaf Ebrahimi PerfScope::PerfScope(int64_t* counter) : counter_(counter) {
9530*f5c631daSSadaf Ebrahimi *counter_ = -1;
9531*f5c631daSSadaf Ebrahimi #ifdef __arm__
9532*f5c631daSSadaf Ebrahimi perf_event_attr attr;
9533*f5c631daSSadaf Ebrahimi memset(&attr, 0, sizeof(attr));
9534*f5c631daSSadaf Ebrahimi attr.size = sizeof(attr);
9535*f5c631daSSadaf Ebrahimi attr.type = PERF_TYPE_HARDWARE;
9536*f5c631daSSadaf Ebrahimi attr.config = PERF_COUNT_HW_CPU_CYCLES;
9537*f5c631daSSadaf Ebrahimi attr.exclude_kernel = 1;
9538*f5c631daSSadaf Ebrahimi bool ok = false;
9539*f5c631daSSadaf Ebrahimi for (int cpu = 0; cpu < kMaxPerfCpus; cpu++) {
9540*f5c631daSSadaf Ebrahimi fd_[cpu] =
9541*f5c631daSSadaf Ebrahimi static_cast<int>(syscall(__NR_perf_event_open, &attr, 0, cpu, -1, 0));
9542*f5c631daSSadaf Ebrahimi if (fd_[cpu] >= 0) {
9543*f5c631daSSadaf Ebrahimi if (ioctl(fd_[cpu], PERF_EVENT_IOC_ENABLE, 0) == 0) ok = true;
9544*f5c631daSSadaf Ebrahimi }
9545*f5c631daSSadaf Ebrahimi }
9546*f5c631daSSadaf Ebrahimi if (!ok) printf("Can't set perf counter.\n");
9547*f5c631daSSadaf Ebrahimi #endif
9548*f5c631daSSadaf Ebrahimi }
9549*f5c631daSSadaf Ebrahimi
9550*f5c631daSSadaf Ebrahimi
~PerfScope()9551*f5c631daSSadaf Ebrahimi PerfScope::~PerfScope() {
9552*f5c631daSSadaf Ebrahimi *counter_ = 0;
9553*f5c631daSSadaf Ebrahimi #ifdef __arm__
9554*f5c631daSSadaf Ebrahimi for (int cpu = 0; cpu < 6; cpu++) {
9555*f5c631daSSadaf Ebrahimi int64_t tmp;
9556*f5c631daSSadaf Ebrahimi if (fd_[cpu] >= 0) {
9557*f5c631daSSadaf Ebrahimi size_t size = read(fd_[cpu], &tmp, sizeof(tmp));
9558*f5c631daSSadaf Ebrahimi if (size != sizeof(tmp)) {
9559*f5c631daSSadaf Ebrahimi printf("Could not read counter for cpu %d.\n", cpu);
9560*f5c631daSSadaf Ebrahimi } else if (tmp > *counter_) {
9561*f5c631daSSadaf Ebrahimi *counter_ = tmp;
9562*f5c631daSSadaf Ebrahimi }
9563*f5c631daSSadaf Ebrahimi close(fd_[cpu]);
9564*f5c631daSSadaf Ebrahimi }
9565*f5c631daSSadaf Ebrahimi }
9566*f5c631daSSadaf Ebrahimi #endif
9567*f5c631daSSadaf Ebrahimi }
9568*f5c631daSSadaf Ebrahimi
9569*f5c631daSSadaf Ebrahimi
Benchmark()9570*f5c631daSSadaf Ebrahimi void Benchmark() {
9571*f5c631daSSadaf Ebrahimi TestAssembler assembler;
9572*f5c631daSSadaf Ebrahimi {
9573*f5c631daSSadaf Ebrahimi int64_t cycles = 0;
9574*f5c631daSSadaf Ebrahimi timeval start;
9575*f5c631daSSadaf Ebrahimi timeval end;
9576*f5c631daSSadaf Ebrahimi {
9577*f5c631daSSadaf Ebrahimi PerfScope scope(&cycles);
9578*f5c631daSSadaf Ebrahimi gettimeofday(&start, NULL);
9579*f5c631daSSadaf Ebrahimi Generator generator(&assembler);
9580*f5c631daSSadaf Ebrahimi assembler.FinalizeCode();
9581*f5c631daSSadaf Ebrahimi gettimeofday(&end, NULL);
9582*f5c631daSSadaf Ebrahimi }
9583*f5c631daSSadaf Ebrahimi
9584*f5c631daSSadaf Ebrahimi double delta = (end.tv_sec - start.tv_sec) +
9585*f5c631daSSadaf Ebrahimi static_cast<double>(end.tv_usec - start.tv_usec) / 1000000;
9586*f5c631daSSadaf Ebrahimi printf("T32 assembler: time: %gs, cycles: %" PRId64 "\n", delta, cycles);
9587*f5c631daSSadaf Ebrahimi }
9588*f5c631daSSadaf Ebrahimi {
9589*f5c631daSSadaf Ebrahimi PrintDisassembler disassembler(std::cerr);
9590*f5c631daSSadaf Ebrahimi int64_t cycles = 0;
9591*f5c631daSSadaf Ebrahimi timeval start;
9592*f5c631daSSadaf Ebrahimi timeval end;
9593*f5c631daSSadaf Ebrahimi {
9594*f5c631daSSadaf Ebrahimi PerfScope scope(&cycles);
9595*f5c631daSSadaf Ebrahimi gettimeofday(&start, NULL);
9596*f5c631daSSadaf Ebrahimi disassembler.DisassembleT32Buffer(assembler.GetBuffer()
9597*f5c631daSSadaf Ebrahimi ->GetStartAddress<uint16_t*>(),
9598*f5c631daSSadaf Ebrahimi assembler.GetCursorOffset());
9599*f5c631daSSadaf Ebrahimi gettimeofday(&end, NULL);
9600*f5c631daSSadaf Ebrahimi }
9601*f5c631daSSadaf Ebrahimi
9602*f5c631daSSadaf Ebrahimi double delta = (end.tv_sec - start.tv_sec) +
9603*f5c631daSSadaf Ebrahimi static_cast<double>(end.tv_usec - start.tv_usec) / 1000000;
9604*f5c631daSSadaf Ebrahimi printf("T32 disassembler: time: %gs, cycles: %" PRId64 "\n", delta, cycles);
9605*f5c631daSSadaf Ebrahimi }
9606*f5c631daSSadaf Ebrahimi }
9607*f5c631daSSadaf Ebrahimi
9608*f5c631daSSadaf Ebrahimi
main(int argc,char * argv[])9609*f5c631daSSadaf Ebrahimi int main(int argc, char* argv[]) {
9610*f5c631daSSadaf Ebrahimi if (argc > 2) {
9611*f5c631daSSadaf Ebrahimi printf("Usage: %s [iteration count]\n", argv[0]);
9612*f5c631daSSadaf Ebrahimi exit(1);
9613*f5c631daSSadaf Ebrahimi }
9614*f5c631daSSadaf Ebrahimi #ifdef VIXL_INCLUDE_TARGET_T32
9615*f5c631daSSadaf Ebrahimi int count = 1;
9616*f5c631daSSadaf Ebrahimi if (argc == 2) count = atoi(argv[1]);
9617*f5c631daSSadaf Ebrahimi while (count > 0) {
9618*f5c631daSSadaf Ebrahimi Benchmark();
9619*f5c631daSSadaf Ebrahimi count--;
9620*f5c631daSSadaf Ebrahimi }
9621*f5c631daSSadaf Ebrahimi #else
9622*f5c631daSSadaf Ebrahimi printf("Speed test only available for T32.\n");
9623*f5c631daSSadaf Ebrahimi exit(0); // Even if the test is not done, it must not fail.
9624*f5c631daSSadaf Ebrahimi #endif
9625*f5c631daSSadaf Ebrahimi
9626*f5c631daSSadaf Ebrahimi return 0;
9627*f5c631daSSadaf Ebrahimi }
9628