1// Copyright 2017, VIXL authors 2// All rights reserved. 3// 4// Redistribution and use in source and binary forms, with or without 5// modification, are permitted provided that the following conditions are met: 6// 7// * Redistributions of source code must retain the above copyright notice, 8// this list of conditions and the following disclaimer. 9// * Redistributions in binary form must reproduce the above copyright notice, 10// this list of conditions and the following disclaimer in the documentation 11// and/or other materials provided with the distribution. 12// * Neither the name of ARM Limited nor the names of its contributors may be 13// used to endorse or promote products derived from this software without 14// specific prior written permission. 15// 16// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS CONTRIBUTORS "AS IS" AND 17// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 18// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 19// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE 20// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 21// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 22// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 23// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 24// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 25// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26 27extern "C" { 28#ifdef __arm__ 29#include <linux/perf_event.h> 30#endif 31#include <stdint.h> 32#include <stdio.h> 33#include <sys/ioctl.h> 34#include <sys/syscall.h> 35#include <sys/time.h> 36#include <unistd.h> 37} 38#include <iostream> 39 40#include "aarch32/assembler-aarch32.h" 41#include "aarch32/constants-aarch32.h" 42#include "aarch32/disasm-aarch32.h" 43#include "aarch32/instructions-aarch32.h" 44#include "aarch32/operands-aarch32.h" 45 46// This benchmark tests the speed of the assembler and the disassembler. 47// 7210 instructions (19340 bytes): 48// The command is: 49// asm-disasm-speed-test 2> /dev/null 50// We redirect the output to check only the disassembler speed and not the time 51// to display the disassembly. 52// Example of output: 53// T32 assembler: time: 0.001333s, cycles: 850453 54// T32 disassembler: time: 0.166865s, cycles: 86770518 55 56using namespace vixl; 57using namespace vixl::aarch32; 58 59#define __ assembler-> 60 61const int kBufferSize = 512 * KBytes; 62const Register sl(10); 63const Register fp(11); 64 65class TestAssembler : public Assembler { 66 public: 67 TestAssembler() : Assembler(kBufferSize) { 68 UseInstructionSet(T32); 69 SetAllowAssembler(true); 70 } 71 void Emit8(uint8_t data) { GetBuffer()->Emit8(data); } 72 void Emit16(uint16_t data) { GetBuffer()->Emit16(data); } 73 void Emit32(uint32_t data) { GetBuffer()->Emit32(data); } 74}; 75 76class Generator { 77 Label l_0000, l_007c, l_0080, l_008a, l_009e, l_00a2, l_00a8, l_00ac; 78 Label l_00b0, l_00d2, l_00dc, l_00e2, l_00e6, l_00ee, l_00f2, l_0100; 79 Label l_0126, l_012a, l_0160, l_0166, l_016e, l_0172, l_018c, l_0196; 80 Label l_019a, l_01a8, l_01b4, l_01c0, l_01ce, l_0212, l_0226, l_0238; 81 Label l_028a, l_028e, l_02a4, l_02a8, l_02ac, l_02c6, l_02cc, l_02dc; 82 Label l_030c, l_0334, l_035c, l_03ba, l_03be, l_03d4, l_03d8, l_03dc; 83 Label l_0494, l_049a, l_04aa, l_04f8, l_04fc, l_0512, l_0516, l_051a; 84 Label l_05d2, l_05d8, l_05f0, l_05f8, l_05fc, l_0600, l_0604, l_0622; 85 Label l_066c, l_0670, l_0686, l_068a, l_068e, l_06b2, l_06b8, l_06c6; 86 Label l_06f2, l_071a, l_077e, l_0782, l_0798, l_079c, l_07a8, l_07d0; 87 Label l_07dc, l_088e, l_0894, l_08a4, l_08cc, l_096c, l_09d6, l_09dc; 88 Label l_09e0, l_09e4, l_09e8, l_09fa, l_0a00, l_0aa2, l_0ad4, l_0aec; 89 Label l_0afc, l_0b00, l_0b16, l_0b1a, l_0b1c, l_0b20, l_0b2e, l_0b36; 90 Label l_0b42, l_0b6c, l_0b98, l_0c2e, l_0c60, l_0c8c, l_0cb8, l_0d10; 91 Label l_0d18, l_0d1c, l_0d20, l_0d24, l_0d28, l_0df8, l_0e04, l_0e18; 92 Label l_0e2e, l_0e44, l_0e88, l_0e8c, l_0e9e, l_0ea4, l_0ec0, l_0ec6; 93 Label l_0ed8, l_0efc, l_0f4a, l_0f4e, l_0f60, l_0f66, l_0f94, l_0f9a; 94 Label l_0fac, l_0fbe, l_1006, l_100a, l_101c, l_1022, l_1040, l_1048; 95 Label l_1052, l_1064, l_1068, l_106c, l_10a6, l_10aa, l_10bc, l_10c2; 96 Label l_10e4, l_10ec, l_10fe, l_1152, l_1156, l_1168, l_116e, l_118e; 97 Label l_1196, l_11a0, l_11ac, l_11c4, l_11ce, l_120e, l_1212, l_1224; 98 Label l_122a, l_12e2, l_12ea, l_12fc, l_133a, l_133e, l_1350, l_1356; 99 Label l_13fc, l_1400, l_1404, l_1416, l_141e, l_1430, l_1472, l_1476; 100 Label l_1488, l_148e, l_14b0, l_14b6, l_14c0, l_1552, l_1556, l_1568; 101 Label l_156e, l_158a, l_1590, l_159a, l_15ae, l_15dc, l_15e8, l_15f2; 102 Label l_1648, l_164c, l_165e, l_1664, l_1694, l_16a2, l_1724, l_1728; 103 Label l_172c, l_175a, l_1760, l_1772, l_178c, l_17a0, l_17ce, l_17da; 104 Label l_17f2, l_17f6, l_17f8, l_17fc, l_1826, l_1842, l_1856, l_1868; 105 Label l_18ac, l_18b0, l_18c6, l_18ca, l_18ce, l_18e6, l_18ec, l_18f6; 106 Label l_1938, l_193c, l_1952, l_1956, l_195a, l_1a18, l_1a1e, l_1a2e; 107 Label l_1a36, l_1a54, l_1a72, l_1a90, l_1a98, l_1aa0, l_1aa8, l_1ab0; 108 Label l_1ab8, l_1ac2, l_1b00, l_1b04, l_1b3a, l_1b3e, l_1b44, l_1b4a; 109 Label l_1b68, l_1b88, l_1ba8, l_1bc8, l_1be8, l_1bec, l_1bf0, l_1c0e; 110 Label l_1c2e, l_1c48, l_1c4e, l_1c54, l_1c5a, l_1c60, l_1c6a, l_1c72; 111 Label l_1c78, l_1c80, l_1c86, l_1c8e, l_1c94, l_1c9c, l_1ca2, l_1caa; 112 Label l_1cb0, l_1cb8, l_1cbe, l_1cc6, l_1ccc, l_1cd4, l_1cda, l_1ce2; 113 Label l_1d00, l_1d24, l_1d2a, l_1d30, l_1d3a, l_1d42, l_1d4a, l_1d50; 114 Label l_1d56, l_1d5c, l_1d62, l_1d6a, l_1d72, l_1d78, l_1d80, l_1d88; 115 Label l_1d8a, l_1d92, l_1d9c, l_1dba, l_1dbe, l_1dc4, l_1dc8, l_1dd0; 116 Label l_1dd4, l_1dda, l_1dde, l_1de8, l_1df2, l_1df6, l_1dfc, l_1e00; 117 Label l_1e06, l_1e0a, l_1e10, l_1e16, l_1e1a, l_1e20, l_1e26, l_1e2c; 118 Label l_1e38, l_1e3c, l_1e42, l_1e48, l_1e4e, l_1e52, l_1e5e, l_1e64; 119 Label l_1e6a, l_1e70, l_1e76, l_1e7c, l_1e82, l_1e86, l_1e8c, l_1e96; 120 Label l_1e9a, l_1ea0, l_1eaa, l_1eb0, l_1eb4, l_1eb8, l_1ebe, l_1ec8; 121 Label l_1ed0, l_1ed6, l_1edc, l_1ee0, l_1ee6, l_1eec, l_1ef2, l_1ef6; 122 Label l_1efc, l_1f02, l_1f0a, l_1f12, l_1f1a, l_1f22, l_1f26, l_1f2c; 123 Label l_1f36, l_1f40, l_1f46, l_1f4c, l_1f50, l_1f56, l_1f5e, l_1f62; 124 Label l_1f68, l_1f74, l_1f7e, l_1f84, l_1fb0, l_1fc2, l_1fcc, l_1fda; 125 Label l_1fe0, l_1fe8, l_1ff4, l_1ffc, l_2028, l_202c, l_2044, l_2054; 126 Label l_2058, l_2070, l_2080, l_2082, l_208a, l_20a4, l_20b4, l_20b6; 127 Label l_20be, l_20d8, l_20dc, l_20f4, l_20f8, l_20fa, l_20fe, l_212c; 128 Label l_213c, l_2158, l_2178, l_21a6, l_21ae, l_21f6, l_21fc, l_2220; 129 Label l_2248, l_2256, l_225c, l_2282, l_2284, l_22a8, l_22b0, l_22c8; 130 Label l_22de, l_22e0, l_22e6, l_2304, l_230c, l_2316, l_2334, l_233a; 131 Label l_2374, l_2388, l_238c, l_238e, l_2394, l_23a2, l_23a8, l_23ac; 132 Label l_23b4, l_23c8, l_23d8, l_23de, l_23e2, l_23ee, l_23f4, l_23fa; 133 Label l_2400, l_2404, l_240a, l_2432, l_2446, l_2466, l_246a, l_2474; 134 Label l_2484, l_248a, l_2490, l_24ba, l_24c4, l_24ca, l_24e6, l_2500; 135 Label l_2510, l_2522, l_2528, l_255c, l_2564, l_256a, l_2592, l_25be; 136 Label l_25c8, l_25ce, l_25d8, l_25da, l_25dc, l_25ec, l_25f4, l_25fa; 137 Label l_2630, l_2660, l_2680, l_268e, l_2694, l_26b0, l_26b2, l_26c4; 138 Label l_26e2, l_26f8, l_272a, l_2734, l_274a, l_2776, l_277e, l_2782; 139 Label l_2794, l_279a, l_27a4, l_27dc, l_27e8, l_27f0, l_2808, l_280e; 140 Label l_283c, l_2840, l_2846, l_284a, l_2864, l_286c, l_28a2, l_28f8; 141 Label l_28fc, l_2906, l_2910, l_294c, l_2972, l_297c, l_2982, l_29a2; 142 Label l_29d4, l_29e4, l_29f0, l_2a00, l_2a30, l_2a62, l_2a66, l_2a86; 143 Label l_2aba, l_2ad2, l_2afc, l_2b02, l_2b2e, l_2b30, l_2b4e, l_2b76; 144 Label l_2b7c, l_2b8a, l_2ba6, l_2bbc, l_2bda, l_2be2, l_2bfc, l_2c2e; 145 Label l_2c44, l_2ca8, l_2cac, l_2ce2, l_2cf0, l_2d0c, l_2d16, l_2d6c; 146 Label l_2d7a, l_2db8, l_2dfa, l_2e32, l_2e38, l_2e4a, l_2e9c, l_2ea4; 147 Label l_2ebe, l_2ed0, l_2ee0, l_2f0a, l_2f20, l_2f26, l_2f3a, l_2f3e; 148 Label l_2f9a, l_2fa4, l_2fce, l_2ff8, l_3020, l_302a, l_3030, l_3058; 149 Label l_3072, l_3080, l_30a0, l_30b6, l_30ba, l_30e2, l_30ee, l_30f2; 150 Label l_3124, l_315a, l_3164, l_3192, l_31a0, l_31ae, l_31be, l_31ce; 151 Label l_31d2, l_31e8, l_31ec, l_31f2, l_31fe, l_3216, l_322c, l_3230; 152 Label l_323c, l_3242, l_3292, l_329a, l_32a0, l_32a4, l_32ae, l_32b2; 153 Label l_32da, l_32e8, l_3310, l_3316, l_3340, l_3346, l_3350, l_3354; 154 Label l_3366, l_3384, l_33c8, l_33d2, l_33e0, l_33ee, l_33f2, l_33fa; 155 Label l_340c, l_3410, l_342c, l_3430, l_343a, l_343e, l_3444, l_3448; 156 Label l_3460, l_3466, l_346e, l_3480, l_3484, l_3492, l_34a6, l_34da; 157 Label l_34e8, l_34f4, l_34f8, l_3506, l_350a, l_350c, l_3510, l_3518; 158 Label l_3520, l_3536, l_3542, l_3550, l_3554, l_3558, l_35ac, l_35b0; 159 Label l_35c6, l_35ca, l_35d0, l_3646, l_3652, l_3678, l_3688, l_3694; 160 Label l_3698, l_36a4, l_36a8, l_36aa, l_36ae, l_36b6, l_36bc, l_36d6; 161 Label l_36de, l_36e8, l_36f0, l_3706, l_3712, l_3718, l_371e, l_3722; 162 Label l_3728, l_372c, l_3730, l_3736, l_3740, l_3744, l_3748, l_374c; 163 Label l_37a0, l_37a4, l_37ba, l_37be, l_37c4, l_383a, l_384a, l_3870; 164 Label l_3880, l_388c, l_3890, l_389c, l_38a0, l_38a2, l_38a6, l_38ae; 165 Label l_38b4, l_38ce, l_38d6, l_38e0, l_38e8, l_38fe, l_390a, l_3910; 166 Label l_3916, l_391a, l_3920, l_3924, l_3928, l_392e, l_3938, l_393c; 167 Label l_3940, l_3944, l_3998, l_399c, l_39b2, l_39b6, l_39bc, l_3a32; 168 Label l_3a42, l_3a68, l_3a78, l_3a84, l_3a88, l_3a94, l_3a98, l_3a9a; 169 Label l_3a9e, l_3aa6, l_3aac, l_3ac6, l_3ace, l_3ad8, l_3ae0, l_3af6; 170 Label l_3b02, l_3b08, l_3b0e, l_3b12, l_3b18, l_3b1c, l_3b20, l_3b26; 171 Label l_3b30, l_3b34, l_3b38, l_3b3c, l_3ba0, l_3ba4, l_3bba, l_3bbe; 172 Label l_3bc4, l_3c46, l_3c6c, l_3c7a, l_3c86, l_3c8a, l_3c96, l_3c9a; 173 Label l_3c9c, l_3ca0, l_3ca8, l_3cae, l_3cc8, l_3cd0, l_3ce6, l_3cf2; 174 Label l_3cf8, l_3d02, l_3d06, l_3d0c, l_3d10, l_3d16, l_3d1c, l_3d20; 175 Label l_3d24, l_3d28, l_3d7e, l_3d82, l_3d98, l_3d9c, l_3da2, l_3e18; 176 Label l_3e26, l_3e4c, l_3e5c, l_3e68, l_3e6c, l_3e78, l_3e7c, l_3e7e; 177 Label l_3e82, l_3e8a, l_3e90, l_3eaa, l_3eb2, l_3ebc, l_3ec4, l_3eda; 178 Label l_3ee6, l_3eec, l_3ef2, l_3ef6, l_3efc, l_3f00, l_3f04, l_3f0a; 179 Label l_3f14, l_3f18, l_3f1c, l_3f20, l_3f78, l_3f7c, l_3f92, l_3f96; 180 Label l_3f9c, l_3fd0, l_3fe6, l_4000, l_400a, l_400c, l_407a, l_4084; 181 Label l_40ac, l_40bc, l_40c8, l_40cc, l_40d8, l_40dc, l_40de, l_40e2; 182 Label l_40ec, l_40f2, l_4104, l_410c, l_4118, l_4126, l_4142, l_4146; 183 Label l_4160, l_4164, l_416c, l_4172, l_417a, l_4184, l_419a, l_41a6; 184 Label l_41ac, l_41b4, l_41c4, l_41c8, l_41ce, l_41d2, l_41d6, l_41dc; 185 Label l_41e4, l_41e8, l_41ec, l_41f0, l_424a, l_424e, l_4264, l_4268; 186 Label l_426e, l_4278, l_4282, l_429c, l_42a0, l_42b6, l_42e0, l_4304; 187 Label l_4310, l_4312, l_4384, l_4390, l_43b6, l_43c6, l_43d2, l_43d6; 188 Label l_43e2, l_43e6, l_43e8, l_43ec, l_43f6, l_43fc, l_4404, l_4424; 189 Label l_4436, l_443e, l_444c, l_4454, l_445e, l_4462, l_446a, l_4470; 190 Label l_4478, l_4482, l_4498, l_44a4, l_44aa, l_44b2, l_44d4, l_44f6; 191 Label l_44fc, l_4500, l_4508, l_450c, l_4512, l_451c, l_4520, l_4524; 192 Label l_4528, l_4542, l_454e, l_4554, l_4558, l_455c, l_4560, l_4564; 193 Label l_456c, l_4578, l_457c, l_4580, l_4584, l_458c, l_4590, l_4594; 194 Label l_4598, l_45a0, l_45b4, l_45f6, l_4684, l_468a, l_469e, l_46be; 195 Label l_46c8, l_46d0, l_46ea, l_46f4, l_46fa, l_4704, l_470a, l_4710; 196 Label l_4714, l_471c, l_4724, l_4728, l_472c, l_4730, l_4b0c, l_4b22; 197 Label l_4b2e, l_4b34, l_4b38, l_4b3c, l_4b40, l_4b44, l_4b4c, l_4b52; 198 Label l_4b5e, l_4b62, l_4b66, l_4b6a, l_4b72, l_4b76, l_4b7c, l_4b80; 199 void Generate_1(TestAssembler* assembler) { 200 // -------------- 201 __ bind(&l_0000); 202 __ push(Narrow, RegisterList(0x40f8)); 203 __ mov(Narrow, r7, r2); 204 __ ldr(Narrow, r6, MemOperand(r7)); 205 __ mov(Narrow, r4, r0); 206 __ movs(Narrow, r3, 0U); 207 __ movs(Narrow, r5, 1U); 208 __ ldr(Narrow, r2, &l_00a8); 209 __ movs(Narrow, r0, 4U); 210 __ cmp(Narrow, r6, 14U); 211 __ stm(r4, NO_WRITE_BACK, RegisterList(r1, r6)); 212 __ str(Narrow, r0, MemOperand(r4, 12)); 213 __ str(Narrow, r5, MemOperand(r4, 16)); 214 __ str(Narrow, r5, MemOperand(r4, 20)); 215 __ strb(r5, MemOperand(r4, 48)); 216 __ str(Narrow, r5, MemOperand(r4, 64)); 217 __ str(Narrow, r5, MemOperand(r4, 88)); 218 __ str(Narrow, r5, MemOperand(r4, 112)); 219 __ str(r5, MemOperand(r4, 136)); 220 __ strb(Narrow, r3, MemOperand(r4, 24)); 221 __ str(Narrow, r3, MemOperand(r4, 28)); 222 __ strb(r3, MemOperand(r4, 32)); 223 __ strb(r3, MemOperand(r4, 36)); 224 __ str(Narrow, r3, MemOperand(r4, 52)); 225 __ str(Narrow, r3, MemOperand(r4, 56)); 226 __ str(Narrow, r3, MemOperand(r4, 60)); 227 __ str(Narrow, r3, MemOperand(r4, 68)); 228 __ str(Narrow, r3, MemOperand(r4, 72)); 229 __ str(Narrow, r3, MemOperand(r4, 76)); 230 __ str(Narrow, r3, MemOperand(r4, 80)); 231 __ str(Narrow, r3, MemOperand(r4, 84)); 232 __ str(Narrow, r3, MemOperand(r4, 92)); 233 __ str(Narrow, r3, MemOperand(r4, 96)); 234 __ str(Narrow, r3, MemOperand(r4, 100)); 235 __ str(Narrow, r3, MemOperand(r4, 104)); 236 __ str(Narrow, r3, MemOperand(r4, 108)); 237 __ str(Narrow, r3, MemOperand(r4, 116)); 238 __ str(Narrow, r3, MemOperand(r4, 120)); 239 __ str(Narrow, r3, MemOperand(r4, 124)); 240 __ str(r3, MemOperand(r4, 128)); 241 __ str(r3, MemOperand(r4, 132)); 242 __ str(r3, MemOperand(r4, 140)); 243 __ str(r3, MemOperand(r4, 144)); 244 __ str(r3, MemOperand(r4, 148)); 245 __ str(r3, MemOperand(r4, 152)); 246 __ strb(r3, MemOperand(r4, 160)); 247 __ str(Narrow, r2, MemOperand(r4, 8)); 248 __ b(eq, Narrow, &l_007c); 249 __ ldr(Narrow, r2, MemOperand(r1, 28)); 250 __ cmp(Narrow, r2, r5); 251 __ b(eq, Narrow, &l_0080); 252 // -------------- 253 __ bind(&l_007c); 254 __ mov(Narrow, r0, r4); 255 __ pop(Narrow, RegisterList(0x80f8)); 256 // -------------- 257 __ bind(&l_0080); 258 __ mov(Narrow, r0, r1); 259 __ add(r3, r4, 8U); 260 __ eor(r1, r6, 0x1); 261 // -------------- 262 __ bind(&l_008a); 263 __ bl(&l_008a); 264 __ movs(Narrow, r3, 14U); 265 __ mov(Narrow, r0, r4); 266 __ str(Narrow, r3, MemOperand(r7)); 267 __ pop(Narrow, RegisterList(0x80f8)); 268 __ ldr(Narrow, r3, &l_00ac); 269 __ add(r0, r4, 36U); 270 __ str(Narrow, r3, MemOperand(r4, 8)); 271 // -------------- 272 __ bind(&l_009e); 273 __ bl(&l_009e); 274 // -------------- 275 __ bind(&l_00a2); 276 __ bl(&l_00a2); 277 __ nop(Narrow); 278 // -------------- 279 __ bind(&l_00a8); 280 __ Emit32(0x00000008); 281 // -------------- 282 __ bind(&l_00ac); 283 __ Emit32(0x00000008); 284 // -------------- 285 __ bind(&l_00b0); 286 __ push(RegisterList(0x4ff8)); 287 __ mov(Narrow, r6, r1); 288 __ ldr(Narrow, r4, MemOperand(r0)); 289 __ mov(Narrow, r7, r0); 290 __ mov(Narrow, r5, r2); 291 __ ldr(Narrow, r1, MemOperand(r0, 4)); 292 __ cmp(Narrow, r4, r1); 293 __ b(eq, &l_01ce); 294 __ mov(Narrow, r9, r3); 295 __ ldr(Narrow, r3, MemOperand(sp, 40)); 296 __ cmp(Narrow, r3, 0U); 297 __ b(eq, Narrow, &l_01a8); 298 __ ldr(Narrow, r3, MemOperand(r4, 4)); 299 __ cmp(Narrow, r2, r3); 300 __ b(lt, Narrow, &l_01c0); 301 // -------------- 302 __ bind(&l_00d2); 303 __ ldr(Narrow, r3, MemOperand(r4)); 304 __ cbz(r3, &l_00e6); 305 __ add(r3, r4, 24U); 306 __ b(Narrow, &l_00e2); 307 // -------------- 308 __ bind(&l_00dc); 309 __ ldr(r2, MemOperand(r3, 24, PostIndex)); 310 __ cbz(r2, &l_00e6); 311 // -------------- 312 __ bind(&l_00e2); 313 __ cmp(Narrow, r1, r3); 314 __ b(ne, Narrow, &l_00dc); 315 // -------------- 316 __ bind(&l_00e6); 317 __ movw(sl, 0U); 318 __ movt(sl, 0U); 319 // -------------- 320 __ bind(&l_00ee); 321 __ cmp(Narrow, r1, r4); 322 __ b(eq, Narrow, &l_016e); 323 // -------------- 324 __ bind(&l_00f2); 325 __ ldr(Narrow, r3, MemOperand(r7, 40)); 326 __ add(r0, r5, r9); 327 __ ldr(Narrow, r2, MemOperand(r4, 8)); 328 __ add(Narrow, r3, r3, r0); 329 __ cmp(Narrow, r2, r3); 330 } 331 void Generate_2(TestAssembler* assembler) { 332 __ b(gt, Narrow, &l_018c); 333 // -------------- 334 __ bind(&l_0100); 335 __ ldr(Narrow, r3, MemOperand(r4, 12)); 336 __ mov(Narrow, r0, r6); 337 __ ldr(Narrow, r2, MemOperand(r6)); 338 __ ldr(fp, MemOperand(r4)); 339 __ subs(r3, 1U); 340 __ add(r8, r5, r3); 341 __ ldr(Narrow, r2, MemOperand(r2, 44)); 342 __ bic(r8, r8, r3); 343 __ rsb(r1, r5, r8); 344 __ blx(r2); 345 __ ldr(Narrow, r3, MemOperand(r6)); 346 __ mov(Narrow, r0, r6); 347 __ ldr(Narrow, r3, MemOperand(r3)); 348 __ cmp(Narrow, r3, sl); 349 __ b(ne, Narrow, &l_0196); 350 // -------------- 351 __ bind(&l_0126); 352 __ bl(&l_0126); 353 // -------------- 354 __ bind(&l_012a); 355 __ ldr(r3, MemOperand(fp)); 356 __ mov(Narrow, r1, r0); 357 __ str(r8, MemOperand(fp, 20)); 358 __ mov(Narrow, r0, fp); 359 __ ldr(Narrow, r3, MemOperand(r3, 20)); 360 __ blx(r3); 361 __ ldr(r3, MemOperand(fp)); 362 __ mov(Narrow, r0, fp); 363 __ mov(Narrow, r1, r6); 364 __ ldr(Narrow, r3, MemOperand(r3, 16)); 365 __ blx(r3); 366 __ ldr(r3, MemOperand(fp)); 367 __ mov(Narrow, r0, fp); 368 __ ldr(r5, MemOperand(fp, 4)); 369 __ ldr(Narrow, r3, MemOperand(r3, 24)); 370 __ blx(r3); 371 __ cbz(r0, &l_019a); 372 __ movs(Narrow, r3, 1U); 373 __ mov(Narrow, r1, r4); 374 __ strb(r3, MemOperand(fp, 16)); 375 __ mov(Narrow, r0, r7); 376 // -------------- 377 __ bind(&l_0160); 378 __ bl(&l_0160); 379 __ mov(Narrow, r4, r0); 380 // -------------- 381 __ bind(&l_0166); 382 __ ldr(Narrow, r1, MemOperand(r7, 4)); 383 __ add(Narrow, r5, r5, r8); 384 __ cmp(Narrow, r1, r4); 385 __ b(ne, Narrow, &l_00f2); 386 // -------------- 387 __ bind(&l_016e); 388 __ mov(Narrow, r0, r7); 389 __ movs(Narrow, r1, 0U); 390 // -------------- 391 __ bind(&l_0172); 392 __ bl(&l_0172); 393 __ ldr(Narrow, r3, MemOperand(r6)); 394 __ mov(Narrow, r0, r6); 395 __ ldr(Narrow, r3, MemOperand(r3, 40)); 396 __ blx(r3); 397 __ ldr(Narrow, r0, MemOperand(r7, 28)); 398 __ subs(r0, 1U); 399 __ add(Narrow, r5, r5, r0); 400 __ bic(r0, r5, r0); 401 __ pop(RegisterList(0x8ff8)); 402 // -------------- 403 __ bind(&l_018c); 404 __ ldr(Narrow, r3, MemOperand(r4, 16)); 405 __ cmp(Narrow, r5, r3); 406 __ b(ge, Narrow, &l_0100); 407 __ adds(Narrow, r4, r4, 24U); 408 __ b(Narrow, &l_00ee); 409 // -------------- 410 __ bind(&l_0196); 411 __ blx(r3); 412 __ b(Narrow, &l_012a); 413 // -------------- 414 __ bind(&l_019a); 415 __ ldr(Narrow, r0, MemOperand(r4)); 416 __ mov(Narrow, r1, r4); 417 __ adds(Narrow, r4, r4, 24U); 418 __ ldr(Narrow, r3, MemOperand(r0)); 419 __ ldr(Narrow, r3, MemOperand(r3, 28)); 420 __ blx(r3); 421 __ b(Narrow, &l_0166); 422 // -------------- 423 __ bind(&l_01a8); 424 __ ldr(Narrow, r3, MemOperand(r6)); 425 __ mov(Narrow, r0, r6); 426 __ ldr(Narrow, r3, MemOperand(r3, 36)); 427 __ blx(r3); 428 __ ldr(Narrow, r3, MemOperand(r7, 24)); 429 __ add(Narrow, r5, r5, r3); 430 // -------------- 431 __ bind(&l_01b4); 432 __ ldr(Narrow, r4, MemOperand(r7)); 433 __ ldr(Narrow, r1, MemOperand(r7, 4)); 434 __ cmp(Narrow, r4, r1); 435 __ b(ne, Narrow, &l_00d2); 436 __ mov(Narrow, r1, r4); 437 __ b(Narrow, &l_00e6); 438 // -------------- 439 __ bind(&l_01c0); 440 __ ldr(Narrow, r2, MemOperand(r6)); 441 __ subs(Narrow, r1, r3, r5); 442 __ mov(Narrow, r0, r6); 443 __ mov(Narrow, r5, r3); 444 __ ldr(Narrow, r3, MemOperand(r2, 48)); 445 __ blx(r3); 446 __ b(Narrow, &l_01b4); 447 // -------------- 448 __ bind(&l_01ce); 449 __ mov(Narrow, r0, r2); 450 __ pop(RegisterList(0x8ff8)); 451 __ push(RegisterList(0x4ff0)); 452 __ movw(r7, 0U); 453 __ movt(r7, 0U); 454 __ sub(sp, sp, 2476U); 455 __ mov(Narrow, r4, r0); 456 __ ldr(Narrow, r3, MemOperand(r7, 4)); 457 __ ldr(Narrow, r5, MemOperand(r7, 24)); 458 __ ldr(Narrow, r0, MemOperand(r7, 28)); 459 __ str(Narrow, r3, MemOperand(sp, 64)); 460 } 461 void Generate_3(TestAssembler* assembler) { 462 __ ldr(Narrow, r3, MemOperand(r7, 8)); 463 __ ubfx(r2, r5, 5U, 4U); 464 __ ldr(Narrow, r1, MemOperand(r7, 32)); 465 __ str(Narrow, r3, MemOperand(sp, 36)); 466 __ ldr(Narrow, r3, MemOperand(r7, 12)); 467 __ str(Narrow, r3, MemOperand(sp, 60)); 468 __ ldr(Narrow, r3, MemOperand(r7, 16)); 469 __ str(Narrow, r3, MemOperand(sp, 56)); 470 __ ldr(Narrow, r3, MemOperand(r7, 20)); 471 __ str(Narrow, r3, MemOperand(sp, 52)); 472 __ cbz(r2, &l_0212); 473 __ and_(r5, r5, 0x1f); 474 __ mov(r8, 1U); 475 __ lsl(r2, r8, r5); 476 // -------------- 477 __ bind(&l_0212); 478 __ ubfx(r3, r0, 5U, 4U); 479 __ mov(Narrow, r8, r3); 480 __ cbz(r3, &l_0226); 481 __ and_(r0, r0, 0x1f); 482 __ mov(r8, 1U); 483 __ lsl(r8, r8, r0); 484 // -------------- 485 __ bind(&l_0226); 486 __ ubfx(r3, r1, 5U, 4U); 487 __ orr(r8, r8, r2); 488 __ cbz(r3, &l_0238); 489 __ and_(r1, r1, 0x1f); 490 __ movs(Narrow, r3, 1U); 491 __ lsls(Narrow, r3, r3, r1); 492 // -------------- 493 __ bind(&l_0238); 494 __ movs(Narrow, r1, 14U); 495 __ ldr(r9, &l_0600); 496 __ str(Narrow, r1, MemOperand(sp, 84)); 497 __ adds(r1, r4, 44U); 498 __ add(r5, sp, 2136U); 499 __ mov(r2, 0U); 500 __ orr(r8, r8, r3); 501 __ str(r9, MemOperand(r5)); 502 __ str(Narrow, r2, MemOperand(r5, 4)); 503 __ mov(Narrow, r6, r1); 504 __ strb(Narrow, r2, MemOperand(r5, 17)); 505 __ str(Narrow, r1, MemOperand(sp, 20)); 506 __ b(eq, Narrow, &l_02ac); 507 __ ldr(Narrow, r3, MemOperand(r4, 44)); 508 __ movs(Narrow, r2, 1U); 509 __ str(Narrow, r1, MemOperand(r5, 20)); 510 __ mov(Narrow, r0, r1); 511 __ str(Narrow, r2, MemOperand(r5, 24)); 512 __ movs(Narrow, r1, 32U); 513 __ ldr(Narrow, r3, MemOperand(r3, 32)); 514 __ blx(r3); 515 __ ldr(Narrow, r3, MemOperand(r4, 44)); 516 __ mov(Narrow, r0, r6); 517 __ ldr(Narrow, r3, MemOperand(r3, 24)); 518 __ blx(r3); 519 __ ldr(Narrow, r2, MemOperand(r4, 44)); 520 __ movw(r3, 0U); 521 __ movt(r3, 0U); 522 __ ldr(Narrow, r2, MemOperand(r2)); 523 __ cmp(Narrow, r2, r3); 524 __ b(ne, &l_1aa8); 525 __ mov(Narrow, r0, r6); 526 // -------------- 527 __ bind(&l_028a); 528 __ bl(&l_028a); 529 // -------------- 530 __ bind(&l_028e); 531 __ str(Narrow, r0, MemOperand(r5, 4)); 532 __ ldr(Narrow, r1, MemOperand(r0, 20)); 533 __ ldr(Narrow, r3, MemOperand(r0, 4)); 534 __ ldr(Narrow, r2, MemOperand(r0, 12)); 535 __ add(Narrow, r3, r3, r1); 536 __ subs(Narrow, r3, r3, r2); 537 __ cmp(Narrow, r3, 31U); 538 __ b(hi, Narrow, &l_02a8); 539 __ lsls(Narrow, r1, r1, 1U); 540 __ adds(r0, 4U); 541 __ adds(Narrow, r1, r1, 32U); 542 // -------------- 543 __ bind(&l_02a4); 544 __ bl(&l_02a4); 545 // -------------- 546 __ bind(&l_02a8); 547 __ movs(Narrow, r3, 1U); 548 __ strb(Narrow, r3, MemOperand(r5, 17)); 549 // -------------- 550 __ bind(&l_02ac); 551 __ ldr(Narrow, r3, &l_05f8); 552 __ add(fp, sp, 2304U); 553 __ mov(Narrow, r0, fp); 554 __ mov(Narrow, r1, r4); 555 __ add(Narrow, r2, sp, 84U); 556 __ str(Narrow, r3, MemOperand(r5)); 557 __ bl(&l_0000); 558 __ mov(Narrow, r0, r4); 559 __ ldr(Narrow, r1, MemOperand(sp, 84)); 560 __ mov(Narrow, r3, r8); 561 __ movs(Narrow, r2, 0U); 562 // -------------- 563 __ bind(&l_02c6); 564 __ bl(&l_02c6); 565 __ mov(Narrow, r0, fp); 566 // -------------- 567 __ bind(&l_02cc); 568 __ bl(&l_02cc); 569 __ ldrb(Narrow, r3, MemOperand(r5, 17)); 570 __ str(r9, MemOperand(r5)); 571 __ cmp(Narrow, r3, 0U); 572 __ b(ne, &l_1a72); 573 // -------------- 574 __ bind(&l_02dc); 575 __ ldr(Narrow, r3, MemOperand(r7)); 576 __ add(r6, sp, 2304U); 577 __ vmov(F64, d7, 0.12500); 578 __ mov(sl, 832U); 579 __ mov(Narrow, r0, r4); 580 __ str(fp, MemOperand(sp)); 581 __ str(r3, MemOperand(sp, 2320)); 582 __ movs(Narrow, r1, 14U); 583 __ vstr(d7, MemOperand(r6)); 584 } 585 void Generate_4(TestAssembler* assembler) { 586 __ mov(r2, 800U); 587 __ ldr(Narrow, r3, MemOperand(sp, 60)); 588 __ add(r6, sp, 2304U); 589 __ str(sl, MemOperand(sp, 2312)); 590 __ mov(r8, 0U); 591 // -------------- 592 __ bind(&l_030c); 593 __ bl(&l_030c); 594 __ vldr(d7, &l_05f0); 595 __ mov(Narrow, r0, r4); 596 __ str(fp, MemOperand(sp)); 597 __ movs(Narrow, r1, 14U); 598 __ str(sl, MemOperand(sp, 2312)); 599 __ mov(r2, 800U); 600 __ vstr(d7, MemOperand(r6)); 601 __ add(sl, sp, 1968U); 602 __ ldr(Narrow, r6, MemOperand(r7)); 603 __ ldr(Narrow, r3, MemOperand(sp, 56)); 604 __ str(r6, MemOperand(sp, 2320)); 605 // -------------- 606 __ bind(&l_0334); 607 __ bl(&l_0334); 608 __ ldr(Narrow, r3, MemOperand(r7, 36)); 609 __ movs(Narrow, r1, 14U); 610 __ ldr(lr, MemOperand(r7, 40)); 611 __ mov(Narrow, r0, r4); 612 __ str(r8, MemOperand(sp, 2304)); 613 __ mov(Narrow, r2, r3); 614 __ str(Narrow, r3, MemOperand(sp, 72)); 615 __ mov(Narrow, r3, fp); 616 __ str(r8, MemOperand(sp, 2312)); 617 __ str(lr, MemOperand(sp, 2308)); 618 __ str(lr, MemOperand(sp, 2320)); 619 __ str(r8, MemOperand(sp, 2316)); 620 // -------------- 621 __ bind(&l_035c); 622 __ bl(&l_035c); 623 __ mov(r3, 1056U); 624 __ ldr(Narrow, r1, MemOperand(r7)); 625 __ str(r3, MemOperand(sl, 8)); 626 __ movs(Narrow, r2, 42U); 627 __ ldr(Narrow, r3, MemOperand(r7, 44)); 628 __ str(r8, MemOperand(r5, 4)); 629 __ strb(r8, MemOperand(r5, 17)); 630 __ str(Narrow, r3, MemOperand(sp, 48)); 631 __ ldr(Narrow, r3, MemOperand(r7, 48)); 632 __ str(r9, MemOperand(r5)); 633 __ str(r1, MemOperand(sl, 16)); 634 __ str(Narrow, r3, MemOperand(sp, 44)); 635 __ ldr(Narrow, r3, MemOperand(sp, 20)); 636 __ str(r2, MemOperand(sl)); 637 __ cbz(r3, &l_03dc); 638 __ mov(Narrow, r6, r3); 639 __ ldr(Narrow, r3, MemOperand(r4, 44)); 640 __ movs(Narrow, r2, 1U); 641 __ str(Narrow, r6, MemOperand(r5, 20)); 642 __ str(Narrow, r2, MemOperand(r5, 24)); 643 __ mov(Narrow, r0, r6); 644 __ movs(Narrow, r1, 32U); 645 __ ldr(Narrow, r3, MemOperand(r3, 32)); 646 __ blx(r3); 647 __ ldr(Narrow, r3, MemOperand(r4, 44)); 648 __ mov(Narrow, r0, r6); 649 __ ldr(Narrow, r3, MemOperand(r3, 24)); 650 __ blx(r3); 651 __ ldr(Narrow, r2, MemOperand(r4, 44)); 652 __ movw(r3, 0U); 653 __ movt(r3, 0U); 654 __ ldr(Narrow, r2, MemOperand(r2)); 655 __ cmp(Narrow, r2, r3); 656 __ b(ne, &l_1ab0); 657 __ mov(Narrow, r0, r6); 658 // -------------- 659 __ bind(&l_03ba); 660 __ bl(&l_03ba); 661 // -------------- 662 __ bind(&l_03be); 663 __ str(Narrow, r0, MemOperand(r5, 4)); 664 __ ldr(Narrow, r1, MemOperand(r0, 20)); 665 __ ldr(Narrow, r3, MemOperand(r0, 4)); 666 __ ldr(Narrow, r2, MemOperand(r0, 12)); 667 __ add(Narrow, r3, r3, r1); 668 __ subs(Narrow, r3, r3, r2); 669 __ cmp(Narrow, r3, 31U); 670 __ b(hi, Narrow, &l_03d8); 671 __ lsls(Narrow, r1, r1, 1U); 672 __ adds(r0, 4U); 673 __ adds(Narrow, r1, r1, 32U); 674 // -------------- 675 __ bind(&l_03d4); 676 __ bl(&l_03d4); 677 // -------------- 678 __ bind(&l_03d8); 679 __ movs(Narrow, r3, 1U); 680 __ strb(Narrow, r3, MemOperand(r5, 17)); 681 // -------------- 682 __ bind(&l_03dc); 683 __ ldr(Narrow, r1, &l_05f8); 684 __ mov(lr, 0U); 685 __ ldr(Narrow, r6, &l_05fc); 686 __ mov(ip, 1U); 687 __ movs(Narrow, r3, 14U); 688 __ movs(Narrow, r2, 4U); 689 __ str(Narrow, r1, MemOperand(r5)); 690 __ mov(Narrow, r0, r4); 691 __ str(r3, MemOperand(sp, 2308)); 692 __ mov(Narrow, r1, r3); 693 __ str(r2, MemOperand(sp, 2316)); 694 __ mov(r2, 1032U); 695 __ str(r4, MemOperand(sp, 2304)); 696 __ str(ip, MemOperand(sp, 2320)); 697 __ ldr(Narrow, r3, MemOperand(sp, 48)); 698 __ str(ip, MemOperand(sp, 2324)); 699 __ strb(ip, MemOperand(sp, 2352)); 700 __ str(ip, MemOperand(sp, 2368)); 701 __ str(ip, MemOperand(sp, 2392)); 702 } 703 void Generate_5(TestAssembler* assembler) { 704 __ str(ip, MemOperand(sp, 2416)); 705 __ str(ip, MemOperand(sp, 2440)); 706 __ strb(lr, MemOperand(sp, 2328)); 707 __ str(lr, MemOperand(sp, 2332)); 708 __ strb(lr, MemOperand(sp, 2336)); 709 __ strb(lr, MemOperand(sp, 2340)); 710 __ str(lr, MemOperand(sp, 2356)); 711 __ str(lr, MemOperand(sp, 2360)); 712 __ str(lr, MemOperand(sp, 2364)); 713 __ str(lr, MemOperand(sp, 2372)); 714 __ str(lr, MemOperand(sp, 2376)); 715 __ str(lr, MemOperand(sp, 2380)); 716 __ str(lr, MemOperand(sp, 2384)); 717 __ str(lr, MemOperand(sp, 2388)); 718 __ str(lr, MemOperand(sp, 2396)); 719 __ str(lr, MemOperand(sp, 2400)); 720 __ str(lr, MemOperand(sp, 2404)); 721 __ str(lr, MemOperand(sp, 2408)); 722 __ str(lr, MemOperand(sp, 2412)); 723 __ str(lr, MemOperand(sp, 2420)); 724 __ str(lr, MemOperand(sp, 2424)); 725 __ str(lr, MemOperand(sp, 2428)); 726 __ str(lr, MemOperand(sp, 2432)); 727 __ str(lr, MemOperand(sp, 2436)); 728 __ str(sl, MemOperand(sp)); 729 __ str(lr, MemOperand(sp, 2444)); 730 __ str(lr, MemOperand(sp, 2448)); 731 __ str(lr, MemOperand(sp, 2452)); 732 __ str(lr, MemOperand(sp, 2456)); 733 __ strb(lr, MemOperand(sp, 2464)); 734 __ str(r6, MemOperand(sp, 2312)); 735 // -------------- 736 __ bind(&l_0494); 737 __ bl(&l_0494); 738 __ mov(Narrow, r0, fp); 739 // -------------- 740 __ bind(&l_049a); 741 __ bl(&l_049a); 742 __ ldrb(Narrow, r3, MemOperand(r5, 17)); 743 __ str(r9, MemOperand(r5)); 744 __ cmp(Narrow, r3, 0U); 745 __ b(ne, &l_1a54); 746 // -------------- 747 __ bind(&l_04aa); 748 __ movs(Narrow, r3, 0U); 749 __ ldr(Narrow, r0, MemOperand(r7)); 750 __ str(Narrow, r3, MemOperand(r5, 4)); 751 __ movs(Narrow, r1, 32U); 752 __ strb(Narrow, r3, MemOperand(r5, 17)); 753 __ mov(r2, 1056U); 754 __ ldr(Narrow, r3, MemOperand(sp, 20)); 755 __ str(r9, MemOperand(r5)); 756 __ str(r1, MemOperand(sl)); 757 __ str(r0, MemOperand(sl, 16)); 758 __ str(r2, MemOperand(sl, 8)); 759 __ cbz(r3, &l_051a); 760 __ mov(Narrow, r6, r3); 761 __ ldr(Narrow, r3, MemOperand(r4, 44)); 762 __ movs(Narrow, r2, 1U); 763 __ mov(Narrow, r0, r6); 764 __ str(Narrow, r2, MemOperand(r5, 24)); 765 __ str(Narrow, r6, MemOperand(r5, 20)); 766 __ ldr(Narrow, r3, MemOperand(r3, 32)); 767 __ blx(r3); 768 __ ldr(Narrow, r3, MemOperand(r4, 44)); 769 __ mov(Narrow, r0, r6); 770 __ ldr(Narrow, r3, MemOperand(r3, 24)); 771 __ blx(r3); 772 __ ldr(Narrow, r2, MemOperand(r4, 44)); 773 __ movw(r3, 0U); 774 __ movt(r3, 0U); 775 __ ldr(Narrow, r2, MemOperand(r2)); 776 __ cmp(Narrow, r2, r3); 777 __ b(ne, &l_1a98); 778 __ mov(Narrow, r0, r6); 779 // -------------- 780 __ bind(&l_04f8); 781 __ bl(&l_04f8); 782 // -------------- 783 __ bind(&l_04fc); 784 __ str(Narrow, r0, MemOperand(r5, 4)); 785 __ ldr(Narrow, r1, MemOperand(r0, 20)); 786 __ ldr(Narrow, r3, MemOperand(r0, 4)); 787 __ ldr(Narrow, r2, MemOperand(r0, 12)); 788 __ add(Narrow, r3, r3, r1); 789 __ subs(Narrow, r3, r3, r2); 790 __ cmp(Narrow, r3, 31U); 791 __ b(hi, Narrow, &l_0516); 792 __ lsls(Narrow, r1, r1, 1U); 793 __ adds(r0, 4U); 794 __ adds(Narrow, r1, r1, 32U); 795 // -------------- 796 __ bind(&l_0512); 797 __ bl(&l_0512); 798 // -------------- 799 __ bind(&l_0516); 800 __ movs(Narrow, r3, 1U); 801 __ strb(Narrow, r3, MemOperand(r5, 17)); 802 // -------------- 803 __ bind(&l_051a); 804 __ ldr(Narrow, r1, &l_05f8); 805 __ mov(lr, 0U); 806 __ ldr(Narrow, r6, &l_05fc); 807 __ mov(ip, 1U); 808 __ movs(Narrow, r3, 14U); 809 __ movs(Narrow, r2, 4U); 810 __ str(Narrow, r1, MemOperand(r5)); 811 __ mov(Narrow, r0, r4); 812 __ str(r3, MemOperand(sp, 2308)); 813 __ mov(Narrow, r1, r3); 814 __ str(r2, MemOperand(sp, 2316)); 815 __ mov(r2, 1032U); 816 __ str(r4, MemOperand(sp, 2304)); 817 __ str(ip, MemOperand(sp, 2320)); 818 __ ldr(Narrow, r3, MemOperand(sp, 44)); 819 __ str(ip, MemOperand(sp, 2324)); 820 } 821 void Generate_6(TestAssembler* assembler) { 822 __ strb(ip, MemOperand(sp, 2352)); 823 __ str(ip, MemOperand(sp, 2368)); 824 __ str(ip, MemOperand(sp, 2392)); 825 __ str(ip, MemOperand(sp, 2416)); 826 __ str(ip, MemOperand(sp, 2440)); 827 __ strb(lr, MemOperand(sp, 2328)); 828 __ str(lr, MemOperand(sp, 2332)); 829 __ strb(lr, MemOperand(sp, 2336)); 830 __ strb(lr, MemOperand(sp, 2340)); 831 __ str(lr, MemOperand(sp, 2356)); 832 __ str(lr, MemOperand(sp, 2360)); 833 __ str(lr, MemOperand(sp, 2364)); 834 __ str(lr, MemOperand(sp, 2372)); 835 __ str(lr, MemOperand(sp, 2376)); 836 __ str(lr, MemOperand(sp, 2380)); 837 __ str(lr, MemOperand(sp, 2384)); 838 __ str(lr, MemOperand(sp, 2388)); 839 __ str(lr, MemOperand(sp, 2396)); 840 __ str(lr, MemOperand(sp, 2400)); 841 __ str(lr, MemOperand(sp, 2404)); 842 __ str(lr, MemOperand(sp, 2408)); 843 __ str(lr, MemOperand(sp, 2412)); 844 __ str(lr, MemOperand(sp, 2420)); 845 __ str(lr, MemOperand(sp, 2424)); 846 __ str(lr, MemOperand(sp, 2428)); 847 __ str(lr, MemOperand(sp, 2432)); 848 __ str(lr, MemOperand(sp, 2436)); 849 __ str(sl, MemOperand(sp)); 850 __ str(lr, MemOperand(sp, 2444)); 851 __ str(lr, MemOperand(sp, 2448)); 852 __ str(lr, MemOperand(sp, 2452)); 853 __ str(lr, MemOperand(sp, 2456)); 854 __ strb(lr, MemOperand(sp, 2464)); 855 __ str(r6, MemOperand(sp, 2312)); 856 // -------------- 857 __ bind(&l_05d2); 858 __ bl(&l_05d2); 859 __ mov(Narrow, r0, fp); 860 // -------------- 861 __ bind(&l_05d8); 862 __ bl(&l_05d8); 863 __ ldrb(Narrow, r3, MemOperand(r5, 17)); 864 __ str(r9, MemOperand(r5)); 865 __ cmp(Narrow, r3, 0U); 866 __ b(ne, &l_1a36); 867 __ b(Narrow, &l_0604); 868 __ nop(Narrow); 869 __ nop(Wide); 870 // -------------- 871 __ bind(&l_05f0); 872 __ Emit32(0x00000000); 873 __ Emit32(0x3fb00000); 874 // -------------- 875 __ bind(&l_05f8); 876 __ Emit32(0x00000008); 877 // -------------- 878 __ bind(&l_05fc); 879 __ Emit32(0x00000008); 880 // -------------- 881 __ bind(&l_0600); 882 __ Emit32(0x00000008); 883 // -------------- 884 __ bind(&l_0604); 885 __ ldr(Narrow, r3, MemOperand(r7, 48)); 886 __ mov(Narrow, r0, r4); 887 __ ldr(Narrow, r1, MemOperand(r7, 52)); 888 __ add(r8, sp, 120U); 889 __ vmov(F32, s0, -2.0000); 890 __ and_(r3, r3, 0x1f); 891 __ orr(r3, r3, 0x8000); 892 __ orr(r3, r3, 0x60); 893 __ mov(Narrow, r6, r3); 894 __ str(Narrow, r3, MemOperand(sp, 76)); 895 // -------------- 896 __ bind(&l_0622); 897 __ bl(&l_0622); 898 __ movs(Narrow, r3, 0U); 899 __ movs(Narrow, r2, 1U); 900 __ str(Narrow, r3, MemOperand(r5, 4)); 901 __ movs(Narrow, r1, 14U); 902 __ strb(Narrow, r3, MemOperand(r5, 17)); 903 __ mov(Narrow, r0, r6); 904 __ ldr(Narrow, r3, MemOperand(sp, 20)); 905 __ str(r9, MemOperand(r5)); 906 __ stm(r8, NO_WRITE_BACK, RegisterList(r0, r2)); 907 __ str(Narrow, r1, MemOperand(sp, 88)); 908 __ cbz(r3, &l_068e); 909 __ mov(Narrow, r6, r3); 910 __ ldr(Narrow, r3, MemOperand(r4, 44)); 911 __ str(Narrow, r2, MemOperand(r5, 24)); 912 __ mov(Narrow, r0, r6); 913 __ str(Narrow, r6, MemOperand(r5, 20)); 914 __ movs(Narrow, r1, 32U); 915 __ ldr(Narrow, r3, MemOperand(r3, 32)); 916 __ blx(r3); 917 __ ldr(Narrow, r3, MemOperand(r4, 44)); 918 __ mov(Narrow, r0, r6); 919 __ ldr(Narrow, r3, MemOperand(r3, 24)); 920 __ blx(r3); 921 __ ldr(Narrow, r2, MemOperand(r4, 44)); 922 __ movw(r3, 0U); 923 __ movt(r3, 0U); 924 __ ldr(Narrow, r2, MemOperand(r2)); 925 __ cmp(Narrow, r2, r3); 926 __ b(ne, &l_1a90); 927 __ mov(Narrow, r0, r6); 928 // -------------- 929 __ bind(&l_066c); 930 __ bl(&l_066c); 931 // -------------- 932 __ bind(&l_0670); 933 __ str(Narrow, r0, MemOperand(r5, 4)); 934 __ ldr(Narrow, r1, MemOperand(r0, 20)); 935 __ ldr(Narrow, r3, MemOperand(r0, 4)); 936 __ ldr(Narrow, r2, MemOperand(r0, 12)); 937 __ add(Narrow, r3, r3, r1); 938 __ subs(Narrow, r3, r3, r2); 939 __ cmp(Narrow, r3, 31U); 940 __ b(hi, Narrow, &l_068a); 941 __ lsls(Narrow, r1, r1, 1U); 942 } 943 void Generate_7(TestAssembler* assembler) { 944 __ adds(r0, 4U); 945 __ adds(Narrow, r1, r1, 32U); 946 // -------------- 947 __ bind(&l_0686); 948 __ bl(&l_0686); 949 // -------------- 950 __ bind(&l_068a); 951 __ movs(Narrow, r3, 1U); 952 __ strb(Narrow, r3, MemOperand(r5, 17)); 953 // -------------- 954 __ bind(&l_068e); 955 __ ldr(Narrow, r3, &l_09dc); 956 __ mov(Narrow, r0, fp); 957 __ mov(Narrow, r1, r4); 958 __ add(Narrow, r2, sp, 88U); 959 __ str(Narrow, r3, MemOperand(r5)); 960 __ bl(&l_0000); 961 __ ldm(r8, NO_WRITE_BACK, RegisterList(r0, r1)); 962 __ mov(r2, 1568U); 963 __ ldr(lr, MemOperand(sp, 88)); 964 __ ldr(Narrow, r3, MemOperand(sp, 36)); 965 __ stm(sp, NO_WRITE_BACK, RegisterList(r0, r1)); 966 __ mov(Narrow, r0, r4); 967 __ mov(Narrow, r1, lr); 968 // -------------- 969 __ bind(&l_06b2); 970 __ bl(&l_06b2); 971 __ mov(Narrow, r0, fp); 972 // -------------- 973 __ bind(&l_06b8); 974 __ bl(&l_06b8); 975 __ ldr(Narrow, r3, &l_09dc); 976 __ mov(Narrow, r0, r5); 977 __ mov(r8, 0U); 978 __ str(Narrow, r3, MemOperand(r5)); 979 // -------------- 980 __ bind(&l_06c6); 981 __ bl(&l_06c6); 982 __ ldr(Narrow, r3, MemOperand(r7)); 983 __ mov(lr, 832U); 984 __ vmov(F64, d7, 4.0000); 985 __ mov(Narrow, r0, r4); 986 __ str(fp, MemOperand(sp)); 987 __ movs(Narrow, r1, 14U); 988 __ str(r3, MemOperand(sp, 2320)); 989 __ add(r3, sp, 2304U); 990 __ vstr(d7, MemOperand(r3)); 991 __ mov(r2, 800U); 992 __ ldr(Narrow, r3, MemOperand(sp, 52)); 993 __ str(lr, MemOperand(sp, 2312)); 994 // -------------- 995 __ bind(&l_06f2); 996 __ bl(&l_06f2); 997 __ ldr(lr, MemOperand(r7, 40)); 998 __ mov(ip, 64U); 999 __ ldr(Narrow, r2, MemOperand(r7, 24)); 1000 __ mov(Narrow, r3, fp); 1001 __ mov(Narrow, r0, r4); 1002 __ movs(Narrow, r1, 14U); 1003 __ str(r8, MemOperand(sp, 2312)); 1004 __ str(r8, MemOperand(sp, 2316)); 1005 __ str(lr, MemOperand(sp, 2308)); 1006 __ str(lr, MemOperand(sp, 2320)); 1007 __ str(ip, MemOperand(sp, 2304)); 1008 // -------------- 1009 __ bind(&l_071a); 1010 __ bl(&l_071a); 1011 __ movs(Narrow, r2, 132U); 1012 __ ldr(Narrow, r3, MemOperand(r7, 40)); 1013 __ str(r2, MemOperand(sl)); 1014 __ ldr(Narrow, r2, MemOperand(sp, 20)); 1015 __ str(r8, MemOperand(sl, 8)); 1016 __ str(r8, MemOperand(sl, 12)); 1017 __ str(r8, MemOperand(r5, 4)); 1018 __ strb(r8, MemOperand(r5, 17)); 1019 __ str(r3, MemOperand(sl, 4)); 1020 __ str(r3, MemOperand(sl, 16)); 1021 __ str(r9, MemOperand(r5)); 1022 __ ldr(Narrow, r3, &l_09dc); 1023 __ ldr(r8, MemOperand(r7, 56)); 1024 __ cmp(Narrow, r2, 0U); 1025 __ b(eq, &l_1ab8); 1026 __ ldr(Narrow, r3, MemOperand(r4, 44)); 1027 __ mov(Narrow, r6, r2); 1028 __ movs(Narrow, r2, 1U); 1029 __ str(Narrow, r6, MemOperand(r5, 20)); 1030 __ str(Narrow, r2, MemOperand(r5, 24)); 1031 __ mov(Narrow, r0, r6); 1032 __ movs(Narrow, r1, 32U); 1033 __ ldr(Narrow, r3, MemOperand(r3, 32)); 1034 __ blx(r3); 1035 __ ldr(Narrow, r3, MemOperand(r4, 44)); 1036 __ mov(Narrow, r0, r6); 1037 __ ldr(Narrow, r3, MemOperand(r3, 24)); 1038 __ blx(r3); 1039 __ ldr(Narrow, r2, MemOperand(r4, 44)); 1040 __ movw(r3, 0U); 1041 __ movt(r3, 0U); 1042 __ ldr(Narrow, r2, MemOperand(r2)); 1043 __ cmp(Narrow, r2, r3); 1044 __ b(ne, &l_1aa0); 1045 __ mov(Narrow, r0, r6); 1046 // -------------- 1047 __ bind(&l_077e); 1048 __ bl(&l_077e); 1049 // -------------- 1050 __ bind(&l_0782); 1051 __ str(Narrow, r0, MemOperand(r5, 4)); 1052 __ ldr(Narrow, r1, MemOperand(r0, 20)); 1053 __ ldr(Narrow, r3, MemOperand(r0, 4)); 1054 __ ldr(Narrow, r2, MemOperand(r0, 12)); 1055 __ add(Narrow, r3, r3, r1); 1056 __ subs(Narrow, r3, r3, r2); 1057 __ cmp(Narrow, r3, 31U); 1058 __ b(hi, Narrow, &l_079c); 1059 __ lsls(Narrow, r1, r1, 1U); 1060 __ adds(r0, 4U); 1061 __ adds(Narrow, r1, r1, 32U); 1062 // -------------- 1063 __ bind(&l_0798); 1064 __ bl(&l_0798); 1065 // -------------- 1066 __ bind(&l_079c); 1067 __ movs(Narrow, r3, 1U); 1068 } 1069 void Generate_8(TestAssembler* assembler) { 1070 __ ldr(Narrow, r2, &l_09dc); 1071 __ strb(Narrow, r3, MemOperand(r5, 17)); 1072 __ and_(r3, r8, 0x1f); 1073 __ str(Narrow, r2, MemOperand(r5)); 1074 // -------------- 1075 __ bind(&l_07a8); 1076 __ ldr(r0, MemOperand(sl, 4)); 1077 __ ubfx(r1, r0, 5U, 4U); 1078 __ cmp(Narrow, r1, 0U); 1079 __ b(ne, &l_1ac2); 1080 __ ldr(r2, MemOperand(sl)); 1081 __ cmp(Narrow, r2, 0U); 1082 __ b(eq, &l_1d88); 1083 __ cmp(Narrow, r2, 7U); 1084 __ b(hi, &l_1b3e); 1085 __ cmp(Narrow, r3, 7U); 1086 __ it(ls); 1087 __ mov(ls, ip, 1U); 1088 __ b(ls, Narrow, &l_07dc); 1089 // -------------- 1090 __ bind(&l_07d0); 1091 __ cmp(Narrow, r3, 7U); 1092 __ ite(hi); 1093 __ mov(hi, ip, 0U); 1094 __ mov(ls, ip, 1U); 1095 // -------------- 1096 __ bind(&l_07dc); 1097 __ ldr(Narrow, r6, &l_09e0); 1098 __ mov(lr, 0U); 1099 __ movs(Narrow, r3, 1U); 1100 __ movs(Narrow, r2, 4U); 1101 __ movs(Narrow, r1, 14U); 1102 __ str(r2, MemOperand(sp, 2316)); 1103 __ str(r3, MemOperand(sp, 2320)); 1104 __ mov(Narrow, r2, lr); 1105 __ str(r3, MemOperand(sp, 2324)); 1106 __ mov(Narrow, r0, r4); 1107 __ strb(r3, MemOperand(sp, 2352)); 1108 __ str(r3, MemOperand(sp, 2368)); 1109 __ str(r3, MemOperand(sp, 2392)); 1110 __ str(r3, MemOperand(sp, 2416)); 1111 __ str(r3, MemOperand(sp, 2440)); 1112 __ mov(Narrow, r3, r8); 1113 __ str(r4, MemOperand(sp, 2304)); 1114 __ str(r1, MemOperand(sp, 2308)); 1115 __ strb(lr, MemOperand(sp, 2328)); 1116 __ str(lr, MemOperand(sp, 2332)); 1117 __ strb(lr, MemOperand(sp, 2336)); 1118 __ strb(lr, MemOperand(sp, 2340)); 1119 __ str(lr, MemOperand(sp, 2356)); 1120 __ str(lr, MemOperand(sp, 2360)); 1121 __ str(lr, MemOperand(sp, 2364)); 1122 __ str(lr, MemOperand(sp, 2372)); 1123 __ str(lr, MemOperand(sp, 2376)); 1124 __ str(lr, MemOperand(sp, 2380)); 1125 __ str(lr, MemOperand(sp, 2384)); 1126 __ str(lr, MemOperand(sp, 2388)); 1127 __ str(lr, MemOperand(sp, 2396)); 1128 __ str(lr, MemOperand(sp, 2400)); 1129 __ str(lr, MemOperand(sp, 2404)); 1130 __ str(lr, MemOperand(sp, 2408)); 1131 __ str(lr, MemOperand(sp, 2412)); 1132 __ str(lr, MemOperand(sp, 2420)); 1133 __ str(lr, MemOperand(sp, 2424)); 1134 __ str(lr, MemOperand(sp, 2428)); 1135 __ str(lr, MemOperand(sp, 2432)); 1136 __ str(lr, MemOperand(sp, 2436)); 1137 __ str(lr, MemOperand(sp, 2444)); 1138 __ str(lr, MemOperand(sp, 2448)); 1139 __ str(r8, MemOperand(sp)); 1140 __ str(sl, MemOperand(sp, 4)); 1141 __ str(lr, MemOperand(sp, 2452)); 1142 __ str(lr, MemOperand(sp, 2456)); 1143 __ str(r6, MemOperand(sp, 2312)); 1144 __ strb(ip, MemOperand(sp, 2464)); 1145 // -------------- 1146 __ bind(&l_088e); 1147 __ bl(&l_088e); 1148 __ mov(Narrow, r0, fp); 1149 // -------------- 1150 __ bind(&l_0894); 1151 __ bl(&l_0894); 1152 __ ldrb(Narrow, r3, MemOperand(r5, 17)); 1153 __ str(r9, MemOperand(r5)); 1154 __ cmp(Narrow, r3, 0U); 1155 __ b(ne, &l_1ce2); 1156 // -------------- 1157 __ bind(&l_08a4); 1158 __ ldr(Narrow, r3, MemOperand(r7, 32)); 1159 __ mov(r8, 0U); 1160 __ ldr(Narrow, r6, MemOperand(r7, 40)); 1161 __ mov(Narrow, r0, r4); 1162 __ movs(Narrow, r1, 14U); 1163 __ str(r8, MemOperand(sp, 2304)); 1164 __ mov(Narrow, r2, r3); 1165 __ str(Narrow, r3, MemOperand(sp, 68)); 1166 __ ldr(Narrow, r3, MemOperand(r7, 56)); 1167 __ str(r6, MemOperand(sp, 2320)); 1168 __ str(r8, MemOperand(sp, 2312)); 1169 __ str(r3, MemOperand(sp, 2308)); 1170 __ mov(Narrow, r3, fp); 1171 __ str(r8, MemOperand(sp, 2316)); 1172 // -------------- 1173 __ bind(&l_08cc); 1174 __ bl(&l_08cc); 1175 __ movs(Narrow, r2, 4U); 1176 __ movs(Narrow, r3, 1U); 1177 __ str(Narrow, r2, MemOperand(sp, 476)); 1178 __ add(Narrow, r1, sp, 472U); 1179 __ ldr(Narrow, r2, &l_09e0); 1180 __ mov(Narrow, r0, r4); 1181 __ str(Narrow, r3, MemOperand(sp, 480)); 1182 __ str(Narrow, r3, MemOperand(sp, 484)); 1183 __ strb(r3, MemOperand(sp, 512)); 1184 } 1185 void Generate_9(TestAssembler* assembler) { 1186 __ str(Narrow, r3, MemOperand(sp, 528)); 1187 __ str(Narrow, r3, MemOperand(sp, 552)); 1188 __ str(Narrow, r3, MemOperand(sp, 576)); 1189 __ str(Narrow, r3, MemOperand(sp, 600)); 1190 __ strb(r8, MemOperand(sp, 488)); 1191 __ str(r8, MemOperand(sp, 492)); 1192 __ strb(r8, MemOperand(sp, 496)); 1193 __ strb(r8, MemOperand(sp, 500)); 1194 __ str(r8, MemOperand(sp, 516)); 1195 __ str(r8, MemOperand(sp, 520)); 1196 __ str(r8, MemOperand(sp, 524)); 1197 __ str(r8, MemOperand(sp, 532)); 1198 __ str(r8, MemOperand(sp, 536)); 1199 __ str(r8, MemOperand(sp, 540)); 1200 __ str(r8, MemOperand(sp, 544)); 1201 __ str(r8, MemOperand(sp, 548)); 1202 __ str(r8, MemOperand(sp, 556)); 1203 __ str(r8, MemOperand(sp, 560)); 1204 __ str(r8, MemOperand(sp, 564)); 1205 __ str(r8, MemOperand(sp, 568)); 1206 __ str(r8, MemOperand(sp, 572)); 1207 __ str(r8, MemOperand(sp, 580)); 1208 __ str(r8, MemOperand(sp, 584)); 1209 __ str(r8, MemOperand(sp, 588)); 1210 __ str(r8, MemOperand(sp, 592)); 1211 __ str(r8, MemOperand(sp, 596)); 1212 __ str(r8, MemOperand(sp, 604)); 1213 __ str(r8, MemOperand(sp, 608)); 1214 __ str(r8, MemOperand(sp, 612)); 1215 __ str(r8, MemOperand(sp, 616)); 1216 __ ldr(Narrow, r3, MemOperand(r4)); 1217 __ str(Narrow, r2, MemOperand(sp, 472)); 1218 __ ldr(Narrow, r2, &l_09e4); 1219 __ ldr(Narrow, r3, MemOperand(r3, 8)); 1220 __ str(Narrow, r2, MemOperand(sp, 24)); 1221 __ blx(r3); 1222 __ ldr(Narrow, r3, &l_09e4); 1223 __ mov(Narrow, r0, r4); 1224 __ ldr(Narrow, r1, MemOperand(r7, 60)); 1225 __ vmov(F32, s0, -2.0000); 1226 __ str(Narrow, r3, MemOperand(sp, 24)); 1227 // -------------- 1228 __ bind(&l_096c); 1229 __ bl(&l_096c); 1230 __ movs(Narrow, r3, 0U); 1231 __ add(r8, sp, 136U); 1232 __ movt(r3, 49148U); 1233 __ mov(r1, 800U); 1234 __ str(r1, MemOperand(r8, 8)); 1235 __ str(r3, MemOperand(r8)); 1236 __ movs(Narrow, r3, 0U); 1237 __ ldr(Narrow, r1, MemOperand(sp, 20)); 1238 __ ldr(Narrow, r2, MemOperand(r7)); 1239 __ str(Narrow, r3, MemOperand(sp, 168)); 1240 __ strb(r3, MemOperand(sp, 181)); 1241 __ ldr(Narrow, r3, MemOperand(r7, 64)); 1242 __ str(r2, MemOperand(r8, 16)); 1243 __ str(r9, MemOperand(sp, 164)); 1244 __ mov(Narrow, r6, r3); 1245 __ cmp(Narrow, r1, 0U); 1246 __ b(eq, Narrow, &l_0a00); 1247 __ movs(Narrow, r2, 1U); 1248 __ ldr(Narrow, r3, MemOperand(r4, 44)); 1249 __ str(Narrow, r2, MemOperand(sp, 188)); 1250 __ mov(Narrow, r0, r1); 1251 __ ldr(Narrow, r2, &l_09e4); 1252 __ str(Narrow, r1, MemOperand(sp, 184)); 1253 __ movs(Narrow, r1, 32U); 1254 __ ldr(Narrow, r3, MemOperand(r3, 32)); 1255 __ str(Narrow, r2, MemOperand(sp, 24)); 1256 __ blx(r3); 1257 __ ldr(Narrow, r3, MemOperand(r4, 44)); 1258 __ ldr(Narrow, r2, &l_09e4); 1259 __ ldr(Narrow, r0, MemOperand(sp, 20)); 1260 __ ldr(Narrow, r3, MemOperand(r3, 24)); 1261 __ str(Narrow, r2, MemOperand(sp, 24)); 1262 __ blx(r3); 1263 __ ldr(Narrow, r2, MemOperand(r4, 44)); 1264 __ movw(r3, 0U); 1265 __ movt(r3, 0U); 1266 __ ldr(Narrow, r0, MemOperand(sp, 20)); 1267 __ ldr(Narrow, r2, MemOperand(r2)); 1268 __ cmp(Narrow, r2, r3); 1269 __ b(ne, &l_1d30); 1270 // -------------- 1271 __ bind(&l_09d6); 1272 __ bl(&l_09d6); 1273 __ b(Narrow, &l_09e8); 1274 // -------------- 1275 __ bind(&l_09dc); 1276 __ Emit32(0x00000008); 1277 // -------------- 1278 __ bind(&l_09e0); 1279 __ Emit32(0x00000008); 1280 // -------------- 1281 __ bind(&l_09e4); 1282 __ Emit32(0x00000008); 1283 // -------------- 1284 __ bind(&l_09e8); 1285 __ str(Narrow, r0, MemOperand(sp, 168)); 1286 __ ldr(Narrow, r1, MemOperand(r0, 20)); 1287 __ ldr(Narrow, r3, MemOperand(r0, 4)); 1288 __ ldr(Narrow, r2, MemOperand(r0, 12)); 1289 __ add(Narrow, r3, r3, r1); 1290 __ subs(Narrow, r3, r3, r2); 1291 __ cmp(Narrow, r3, 31U); 1292 __ b(ls, &l_1c60); 1293 // -------------- 1294 __ bind(&l_09fa); 1295 __ movs(Narrow, r3, 1U); 1296 __ strb(r3, MemOperand(sp, 181)); 1297 // -------------- 1298 __ bind(&l_0a00); 1299 __ ldr(Narrow, r3, &l_0d18); 1300 __ mov(lr, 0U); 1301 __ movs(Narrow, r2, 1U); 1302 } 1303 void Generate_10(TestAssembler* assembler) { 1304 __ movs(Narrow, r0, 14U); 1305 __ movs(Narrow, r1, 4U); 1306 __ str(Narrow, r0, MemOperand(sp, 628)); 1307 __ str(Narrow, r3, MemOperand(sp, 164)); 1308 __ mov(Narrow, r3, r6); 1309 __ ldr(Narrow, r6, &l_0d1c); 1310 __ str(Narrow, r1, MemOperand(sp, 636)); 1311 __ mov(Narrow, r1, r0); 1312 __ str(Narrow, r2, MemOperand(sp, 640)); 1313 __ mov(Narrow, r0, r4); 1314 __ str(Narrow, r2, MemOperand(sp, 644)); 1315 __ strb(r2, MemOperand(sp, 672)); 1316 __ str(Narrow, r2, MemOperand(sp, 688)); 1317 __ str(Narrow, r2, MemOperand(sp, 712)); 1318 __ str(Narrow, r2, MemOperand(sp, 736)); 1319 __ str(Narrow, r2, MemOperand(sp, 760)); 1320 __ mov(r2, 800U); 1321 __ str(Narrow, r4, MemOperand(sp, 624)); 1322 __ strb(lr, MemOperand(sp, 648)); 1323 __ str(lr, MemOperand(sp, 652)); 1324 __ strb(lr, MemOperand(sp, 656)); 1325 __ strb(lr, MemOperand(sp, 660)); 1326 __ str(lr, MemOperand(sp, 676)); 1327 __ str(lr, MemOperand(sp, 680)); 1328 __ str(lr, MemOperand(sp, 684)); 1329 __ str(lr, MemOperand(sp, 692)); 1330 __ str(lr, MemOperand(sp, 696)); 1331 __ str(lr, MemOperand(sp, 700)); 1332 __ str(lr, MemOperand(sp, 704)); 1333 __ str(lr, MemOperand(sp, 708)); 1334 __ str(lr, MemOperand(sp, 716)); 1335 __ str(lr, MemOperand(sp, 720)); 1336 __ str(lr, MemOperand(sp, 724)); 1337 __ str(lr, MemOperand(sp, 728)); 1338 __ str(lr, MemOperand(sp, 732)); 1339 __ str(lr, MemOperand(sp, 740)); 1340 __ str(lr, MemOperand(sp, 744)); 1341 __ str(lr, MemOperand(sp, 748)); 1342 __ str(lr, MemOperand(sp, 752)); 1343 __ str(lr, MemOperand(sp, 756)); 1344 __ str(lr, MemOperand(sp, 764)); 1345 __ str(r8, MemOperand(sp)); 1346 __ str(lr, MemOperand(sp, 768)); 1347 __ str(lr, MemOperand(sp, 772)); 1348 __ str(lr, MemOperand(sp, 776)); 1349 __ str(Narrow, r6, MemOperand(sp, 632)); 1350 __ strb(lr, MemOperand(sp, 784)); 1351 // -------------- 1352 __ bind(&l_0aa2); 1353 __ bl(&l_0aa2); 1354 __ ldrb(r3, MemOperand(sp, 656)); 1355 __ cbz(r3, &l_0b00); 1356 __ ldr(r8, MemOperand(sp, 624)); 1357 __ movw(r3, 0U); 1358 __ movt(r3, 0U); 1359 __ ldr(r2, MemOperand(r8)); 1360 __ ldr(Narrow, r2, MemOperand(r2, 8)); 1361 __ cmp(Narrow, r2, r3); 1362 __ b(ne, &l_1d92); 1363 __ ldr(r2, MemOperand(r8, 12)); 1364 __ add(Narrow, r0, sp, 632U); 1365 __ ldr(r3, MemOperand(r8, 4)); 1366 __ subs(Narrow, r3, r2, r3); 1367 __ mov(Narrow, r1, r3); 1368 __ str(Narrow, r3, MemOperand(sp, 28)); 1369 // -------------- 1370 __ bind(&l_0ad4); 1371 __ bl(&l_0ad4); 1372 __ cmp(Narrow, r0, 0U); 1373 __ b(ne, &l_1d00); 1374 __ add(r3, r8, 96U); 1375 __ mov(Narrow, r6, r3); 1376 __ add(r3, r8, 44U); 1377 __ mov(Narrow, r1, r3); 1378 __ str(Narrow, r3, MemOperand(sp, 24)); 1379 // -------------- 1380 __ bind(&l_0aec); 1381 __ ldr(lr, MemOperand(r8, 12)); 1382 __ mov(Narrow, r0, r6); 1383 __ ldr(r3, MemOperand(r8, 4)); 1384 __ add(Narrow, r2, sp, 632U); 1385 __ rsb(r3, r3, lr); 1386 // -------------- 1387 __ bind(&l_0afc); 1388 __ bl(&l_0afc); 1389 // -------------- 1390 __ bind(&l_0b00); 1391 __ ldr(Narrow, r3, &l_0d20); 1392 __ ldr(r8, MemOperand(sp, 776)); 1393 __ str(Narrow, r3, MemOperand(sp, 24)); 1394 __ str(Narrow, r3, MemOperand(sp, 632)); 1395 __ cmp(r8, 0U); 1396 __ b(eq, Narrow, &l_0b20); 1397 __ ldr(r0, MemOperand(r8)); 1398 __ cbz(r0, &l_0b1a); 1399 // -------------- 1400 __ bind(&l_0b16); 1401 __ bl(&l_0b16); 1402 // -------------- 1403 __ bind(&l_0b1a); 1404 __ mov(Narrow, r0, r8); 1405 // -------------- 1406 __ bind(&l_0b1c); 1407 __ bl(&l_0b1c); 1408 // -------------- 1409 __ bind(&l_0b20); 1410 __ ldrb(r3, MemOperand(sp, 181)); 1411 __ str(r9, MemOperand(sp, 164)); 1412 __ cmp(Narrow, r3, 0U); 1413 __ b(ne, &l_1c0e); 1414 // -------------- 1415 __ bind(&l_0b2e); 1416 __ mov(Narrow, r0, r4); 1417 __ ldr(Narrow, r1, MemOperand(r7, 68)); 1418 __ vmov(F32, s0, -1.9375); 1419 // -------------- 1420 __ bind(&l_0b36); 1421 __ bl(&l_0b36); 1422 __ mov(Narrow, r0, r4); 1423 __ ldr(Narrow, r1, MemOperand(r7, 72)); 1424 __ vldr(s0, &l_0d24); 1425 // -------------- 1426 __ bind(&l_0b42); 1427 __ bl(&l_0b42); 1428 } 1429 void Generate_11(TestAssembler* assembler) { 1430 __ ldr(ip, MemOperand(r7, 40)); 1431 __ movs(Narrow, r3, 32U); 1432 __ mov(lr, 0U); 1433 __ str(r3, MemOperand(sp, 2304)); 1434 __ mov(Narrow, r0, r4); 1435 __ movs(Narrow, r1, 14U); 1436 __ ldr(Narrow, r2, MemOperand(r7, 28)); 1437 __ mov(Narrow, r3, fp); 1438 __ str(ip, MemOperand(sp, 2308)); 1439 __ str(ip, MemOperand(sp, 2320)); 1440 __ str(lr, MemOperand(sp, 2312)); 1441 __ str(lr, MemOperand(sp, 2316)); 1442 // -------------- 1443 __ bind(&l_0b6c); 1444 __ bl(&l_0b6c); 1445 __ ldr(Narrow, r3, MemOperand(r7, 76)); 1446 __ mov(lr, 0U); 1447 __ ldr(Narrow, r6, MemOperand(sp, 68)); 1448 __ mov(Narrow, r0, r4); 1449 __ movs(Narrow, r1, 14U); 1450 __ str(lr, MemOperand(sp, 2304)); 1451 __ mov(Narrow, r2, r3); 1452 __ str(Narrow, r3, MemOperand(sp, 40)); 1453 __ ldr(Narrow, r3, MemOperand(r7, 40)); 1454 __ str(r6, MemOperand(sp, 2308)); 1455 __ str(lr, MemOperand(sp, 2312)); 1456 __ str(r3, MemOperand(sp, 2320)); 1457 __ mov(Narrow, r3, fp); 1458 __ str(lr, MemOperand(sp, 2316)); 1459 // -------------- 1460 __ bind(&l_0b98); 1461 __ bl(&l_0b98); 1462 __ movs(Narrow, r2, 1U); 1463 __ movs(Narrow, r3, 0U); 1464 __ str(Narrow, r2, MemOperand(sp, 632)); 1465 __ movs(Narrow, r1, 4U); 1466 __ str(Narrow, r2, MemOperand(sp, 636)); 1467 __ mov(Narrow, r0, r4); 1468 __ strb(r2, MemOperand(sp, 664)); 1469 __ str(Narrow, r2, MemOperand(sp, 680)); 1470 __ str(Narrow, r2, MemOperand(sp, 704)); 1471 __ str(Narrow, r2, MemOperand(sp, 728)); 1472 __ str(Narrow, r2, MemOperand(sp, 752)); 1473 __ ldr(Narrow, r2, MemOperand(r7, 80)); 1474 __ str(Narrow, r1, MemOperand(sp, 628)); 1475 __ add(Narrow, r1, sp, 624U); 1476 __ strb(r3, MemOperand(sp, 640)); 1477 __ str(Narrow, r3, MemOperand(sp, 644)); 1478 __ strb(r3, MemOperand(sp, 648)); 1479 __ strb(r3, MemOperand(sp, 652)); 1480 __ str(Narrow, r3, MemOperand(sp, 668)); 1481 __ str(Narrow, r3, MemOperand(sp, 672)); 1482 __ str(Narrow, r3, MemOperand(sp, 676)); 1483 __ str(Narrow, r3, MemOperand(sp, 684)); 1484 __ str(Narrow, r3, MemOperand(sp, 688)); 1485 __ str(Narrow, r3, MemOperand(sp, 692)); 1486 __ str(Narrow, r3, MemOperand(sp, 696)); 1487 __ str(Narrow, r3, MemOperand(sp, 700)); 1488 __ str(Narrow, r3, MemOperand(sp, 708)); 1489 __ str(Narrow, r3, MemOperand(sp, 712)); 1490 __ str(Narrow, r3, MemOperand(sp, 716)); 1491 __ str(Narrow, r3, MemOperand(sp, 720)); 1492 __ str(Narrow, r3, MemOperand(sp, 724)); 1493 __ str(Narrow, r3, MemOperand(sp, 732)); 1494 __ str(Narrow, r3, MemOperand(sp, 736)); 1495 __ str(Narrow, r3, MemOperand(sp, 740)); 1496 __ str(Narrow, r3, MemOperand(sp, 744)); 1497 __ str(Narrow, r3, MemOperand(sp, 748)); 1498 __ str(Narrow, r3, MemOperand(sp, 756)); 1499 __ str(Narrow, r2, MemOperand(sp, 28)); 1500 __ ldr(Narrow, r6, MemOperand(r7, 84)); 1501 __ ldr(Narrow, r2, MemOperand(r4)); 1502 __ str(Narrow, r3, MemOperand(sp, 760)); 1503 __ str(Narrow, r6, MemOperand(sp, 32)); 1504 __ ldr(Narrow, r6, &l_0d1c); 1505 __ str(Narrow, r3, MemOperand(sp, 764)); 1506 __ str(Narrow, r3, MemOperand(sp, 768)); 1507 __ str(Narrow, r6, MemOperand(sp, 624)); 1508 __ ldr(Narrow, r3, MemOperand(r2, 8)); 1509 __ blx(r3); 1510 __ ldr(ip, MemOperand(r7, 40)); 1511 __ movs(Narrow, r1, 1U); 1512 __ mov(lr, 0U); 1513 __ ldr(Narrow, r2, MemOperand(r7, 88)); 1514 __ ldr(Narrow, r3, MemOperand(r7, 92)); 1515 __ mov(Narrow, r0, r4); 1516 __ str(r1, MemOperand(sp, 2304)); 1517 __ movs(Narrow, r1, 14U); 1518 __ str(fp, MemOperand(sp)); 1519 __ str(ip, MemOperand(sp, 2308)); 1520 __ str(ip, MemOperand(sp, 2320)); 1521 __ str(lr, MemOperand(sp, 2312)); 1522 __ str(lr, MemOperand(sp, 2316)); 1523 // -------------- 1524 __ bind(&l_0c2e); 1525 __ bl(&l_0c2e); 1526 __ vldr(d7, &l_0d10); 1527 __ add(r6, sp, 2304U); 1528 __ ldr(r8, MemOperand(r7, 96)); 1529 __ mov(lr, 832U); 1530 __ str(fp, MemOperand(sp)); 1531 __ mov(Narrow, r0, r4); 1532 __ vstr(d7, MemOperand(r6)); 1533 __ movs(Narrow, r1, 14U); 1534 __ ldr(Narrow, r6, MemOperand(r7)); 1535 __ mov(Narrow, r3, r8); 1536 } 1537 void Generate_12(TestAssembler* assembler) { 1538 __ mov(r2, 800U); 1539 __ str(lr, MemOperand(sp, 2312)); 1540 __ str(r6, MemOperand(sp, 2320)); 1541 __ ldr(Narrow, r6, MemOperand(r7, 100)); 1542 // -------------- 1543 __ bind(&l_0c60); 1544 __ bl(&l_0c60); 1545 __ movs(Narrow, r2, 0U); 1546 __ movs(Narrow, r3, 0U); 1547 __ str(fp, MemOperand(sp)); 1548 __ add(ip, sp, 2304U); 1549 __ strd(r2, r3, MemOperand(ip)); 1550 __ mov(lr, 832U); 1551 __ ldr(Narrow, r3, MemOperand(r7)); 1552 __ mov(Narrow, r0, r4); 1553 __ movs(Narrow, r1, 14U); 1554 __ mov(r2, 800U); 1555 __ str(lr, MemOperand(sp, 2312)); 1556 __ str(r3, MemOperand(sp, 2320)); 1557 __ mov(Narrow, r3, r6); 1558 // -------------- 1559 __ bind(&l_0c8c); 1560 __ bl(&l_0c8c); 1561 __ movs(Narrow, r2, 0U); 1562 __ movs(Narrow, r3, 0U); 1563 __ str(fp, MemOperand(sp)); 1564 __ add(ip, sp, 2304U); 1565 __ strd(r2, r3, MemOperand(ip)); 1566 __ mov(lr, 832U); 1567 __ ldr(Narrow, r3, MemOperand(r7)); 1568 __ mov(Narrow, r0, r4); 1569 __ movs(Narrow, r1, 14U); 1570 __ mov(r2, 800U); 1571 __ str(lr, MemOperand(sp, 2312)); 1572 __ str(r3, MemOperand(sp, 2320)); 1573 __ ldr(Narrow, r3, MemOperand(sp, 28)); 1574 // -------------- 1575 __ bind(&l_0cb8); 1576 __ bl(&l_0cb8); 1577 __ movs(Narrow, r3, 0U); 1578 __ movs(Narrow, r2, 1U); 1579 __ movs(Narrow, r1, 4U); 1580 __ str(Narrow, r2, MemOperand(r5, 8)); 1581 __ str(Narrow, r1, MemOperand(r5, 4)); 1582 __ mov(Narrow, r0, r4); 1583 __ str(Narrow, r2, MemOperand(r5, 12)); 1584 __ strb(r2, MemOperand(r5, 40)); 1585 __ str(Narrow, r2, MemOperand(r5, 56)); 1586 __ str(Narrow, r2, MemOperand(r5, 80)); 1587 __ str(Narrow, r2, MemOperand(r5, 104)); 1588 __ str(r2, MemOperand(r5, 128)); 1589 __ strb(Narrow, r3, MemOperand(r5, 16)); 1590 __ str(Narrow, r3, MemOperand(r5, 20)); 1591 __ strb(Narrow, r3, MemOperand(r5, 24)); 1592 __ strb(Narrow, r3, MemOperand(r5, 28)); 1593 __ str(Narrow, r3, MemOperand(r5, 44)); 1594 __ str(Narrow, r3, MemOperand(r5, 48)); 1595 __ str(Narrow, r3, MemOperand(r5, 52)); 1596 __ str(Narrow, r3, MemOperand(r5, 60)); 1597 __ str(Narrow, r3, MemOperand(r5, 64)); 1598 __ str(Narrow, r3, MemOperand(r5, 68)); 1599 __ str(Narrow, r3, MemOperand(r5, 72)); 1600 __ str(Narrow, r3, MemOperand(r5, 76)); 1601 __ str(Narrow, r3, MemOperand(r5, 84)); 1602 __ str(Narrow, r3, MemOperand(r5, 88)); 1603 __ str(Narrow, r3, MemOperand(r5, 92)); 1604 __ str(Narrow, r3, MemOperand(r5, 96)); 1605 __ str(Narrow, r3, MemOperand(r5, 100)); 1606 __ str(Narrow, r3, MemOperand(r5, 108)); 1607 __ str(Narrow, r3, MemOperand(r5, 112)); 1608 __ str(Narrow, r3, MemOperand(r5, 116)); 1609 __ str(Narrow, r3, MemOperand(r5, 120)); 1610 __ str(Narrow, r3, MemOperand(r5, 124)); 1611 __ str(r3, MemOperand(r5, 132)); 1612 __ b(Narrow, &l_0d28); 1613 __ nop(Narrow); 1614 __ nop(Wide); 1615 // -------------- 1616 __ bind(&l_0d10); 1617 __ nop(Wide); 1618 __ nop(Wide); 1619 // -------------- 1620 __ bind(&l_0d18); 1621 __ Emit32(0x00000008); 1622 // -------------- 1623 __ bind(&l_0d1c); 1624 __ Emit32(0x00000008); 1625 // -------------- 1626 __ bind(&l_0d20); 1627 __ Emit32(0x00000008); 1628 // -------------- 1629 __ bind(&l_0d24); 1630 __ Emit32(0xbff40000); 1631 // -------------- 1632 __ bind(&l_0d28); 1633 __ str(r3, MemOperand(r5, 136)); 1634 __ str(r3, MemOperand(r5, 140)); 1635 __ str(r3, MemOperand(r5, 144)); 1636 __ str(r2, MemOperand(sp, 2312)); 1637 __ str(r2, MemOperand(sp, 2316)); 1638 __ strb(r2, MemOperand(sp, 2344)); 1639 __ str(r2, MemOperand(sp, 2360)); 1640 __ str(r2, MemOperand(sp, 2384)); 1641 __ str(r2, MemOperand(sp, 2408)); 1642 __ str(r2, MemOperand(sp, 2432)); 1643 __ ldr(Narrow, r2, &l_1064); 1644 __ str(r1, MemOperand(sp, 2308)); 1645 __ mov(Narrow, r1, r5); 1646 __ strb(r3, MemOperand(sp, 2320)); 1647 __ str(r3, MemOperand(sp, 2324)); 1648 __ strb(r3, MemOperand(sp, 2328)); 1649 __ strb(r3, MemOperand(sp, 2332)); 1650 __ str(r3, MemOperand(sp, 2348)); 1651 __ str(r3, MemOperand(sp, 2352)); 1652 __ str(r3, MemOperand(sp, 2356)); 1653 __ str(r3, MemOperand(sp, 2364)); 1654 __ str(r3, MemOperand(sp, 2368)); 1655 __ str(r3, MemOperand(sp, 2372)); 1656 } 1657 void Generate_13(TestAssembler* assembler) { 1658 __ str(r3, MemOperand(sp, 2376)); 1659 __ str(r3, MemOperand(sp, 2380)); 1660 __ str(r3, MemOperand(sp, 2388)); 1661 __ str(r3, MemOperand(sp, 2392)); 1662 __ str(r3, MemOperand(sp, 2396)); 1663 __ str(r3, MemOperand(sp, 2400)); 1664 __ str(r3, MemOperand(sp, 2404)); 1665 __ str(r3, MemOperand(sp, 2412)); 1666 __ str(r3, MemOperand(sp, 2416)); 1667 __ str(r3, MemOperand(sp, 2420)); 1668 __ str(r3, MemOperand(sp, 2424)); 1669 __ str(r3, MemOperand(sp, 2428)); 1670 __ str(r3, MemOperand(sp, 2436)); 1671 __ str(r3, MemOperand(sp, 2440)); 1672 __ str(Narrow, r2, MemOperand(r5)); 1673 __ str(r3, MemOperand(sp, 2444)); 1674 __ str(r3, MemOperand(sp, 2448)); 1675 __ ldr(Narrow, r2, MemOperand(r4)); 1676 __ ldr(Narrow, r3, &l_1064); 1677 __ str(r3, MemOperand(sp, 2304)); 1678 __ ldr(Narrow, r3, MemOperand(r2, 8)); 1679 __ blx(r3); 1680 __ ldr(Narrow, r1, MemOperand(r7, 40)); 1681 __ mov(lr, 0U); 1682 __ ldr(Narrow, r2, MemOperand(r7, 88)); 1683 __ mov(ip, 1U); 1684 __ str(sl, MemOperand(sp)); 1685 __ mov(Narrow, r0, r4); 1686 __ str(r1, MemOperand(sl, 4)); 1687 __ str(r1, MemOperand(sl, 16)); 1688 __ mov(Narrow, r3, r2); 1689 __ movs(Narrow, r1, 14U); 1690 __ str(ip, MemOperand(sl)); 1691 __ str(lr, MemOperand(sl, 8)); 1692 __ str(lr, MemOperand(sl, 12)); 1693 // -------------- 1694 __ bind(&l_0df8); 1695 __ bl(&l_0df8); 1696 __ mov(Narrow, r0, r4); 1697 __ movs(Narrow, r1, 13U); 1698 __ mov(Narrow, r2, fp); 1699 __ movs(Narrow, r3, 2U); 1700 // -------------- 1701 __ bind(&l_0e04); 1702 __ bl(&l_0e04); 1703 __ ldr(Narrow, r3, MemOperand(r7, 104)); 1704 __ mov(Narrow, r0, r4); 1705 __ str(r8, MemOperand(sp)); 1706 __ movs(Narrow, r1, 14U); 1707 __ str(Narrow, r6, MemOperand(sp, 4)); 1708 __ mov(r2, 800U); 1709 // -------------- 1710 __ bind(&l_0e18); 1711 __ bl(&l_0e18); 1712 __ str(r8, MemOperand(sp)); 1713 __ mov(Narrow, r0, r4); 1714 __ str(r8, MemOperand(sp, 4)); 1715 __ movs(Narrow, r1, 14U); 1716 __ mov(r2, 800U); 1717 __ mov(Narrow, r3, r8); 1718 // -------------- 1719 __ bind(&l_0e2e); 1720 __ bl(&l_0e2e); 1721 __ ldr(Narrow, r3, MemOperand(sp, 64)); 1722 __ mov(Narrow, r0, r4); 1723 __ str(r8, MemOperand(sp, 4)); 1724 __ movs(Narrow, r1, 14U); 1725 __ mov(r2, 800U); 1726 __ str(Narrow, r3, MemOperand(sp)); 1727 __ mov(Narrow, r3, r8); 1728 // -------------- 1729 __ bind(&l_0e44); 1730 __ bl(&l_0e44); 1731 __ ldr(Narrow, r1, MemOperand(sp, 20)); 1732 __ movs(Narrow, r3, 0U); 1733 __ movs(Narrow, r2, 14U); 1734 __ str(r9, MemOperand(sp, 192)); 1735 __ str(Narrow, r2, MemOperand(sp, 92)); 1736 __ str(Narrow, r3, MemOperand(sp, 196)); 1737 __ strb(r3, MemOperand(sp, 209)); 1738 __ cbz(r1, &l_0ea4); 1739 __ ldr(Narrow, r3, MemOperand(r4, 44)); 1740 __ movs(Narrow, r2, 1U); 1741 __ str(Narrow, r1, MemOperand(sp, 212)); 1742 __ mov(Narrow, r0, r1); 1743 __ str(Narrow, r2, MemOperand(sp, 216)); 1744 __ movs(Narrow, r1, 32U); 1745 __ ldr(Narrow, r3, MemOperand(r3, 32)); 1746 __ blx(r3); 1747 __ ldr(Narrow, r3, MemOperand(r4, 44)); 1748 __ ldr(Narrow, r0, MemOperand(sp, 20)); 1749 __ ldr(Narrow, r3, MemOperand(r3, 24)); 1750 __ blx(r3); 1751 __ ldr(Narrow, r2, MemOperand(r4, 44)); 1752 __ movw(r3, 0U); 1753 __ movt(r3, 0U); 1754 __ ldr(Narrow, r0, MemOperand(sp, 20)); 1755 __ ldr(Narrow, r2, MemOperand(r2)); 1756 __ cmp(Narrow, r2, r3); 1757 __ b(ne, &l_1d56); 1758 // -------------- 1759 __ bind(&l_0e88); 1760 __ bl(&l_0e88); 1761 // -------------- 1762 __ bind(&l_0e8c); 1763 __ str(Narrow, r0, MemOperand(sp, 196)); 1764 __ ldr(Narrow, r1, MemOperand(r0, 20)); 1765 __ ldr(Narrow, r3, MemOperand(r0, 4)); 1766 __ ldr(Narrow, r2, MemOperand(r0, 12)); 1767 __ add(Narrow, r3, r3, r1); 1768 __ subs(Narrow, r3, r3, r2); 1769 __ cmp(Narrow, r3, 31U); 1770 __ b(ls, &l_1c72); 1771 // -------------- 1772 __ bind(&l_0e9e); 1773 __ movs(Narrow, r3, 1U); 1774 } 1775 void Generate_14(TestAssembler* assembler) { 1776 __ strb(r3, MemOperand(sp, 209)); 1777 // -------------- 1778 __ bind(&l_0ea4); 1779 __ ldr(Narrow, r3, &l_1068); 1780 __ mov(Narrow, r1, r4); 1781 __ add(Narrow, r0, sp, 792U); 1782 __ add(Narrow, r2, sp, 92U); 1783 __ str(Narrow, r3, MemOperand(sp, 192)); 1784 __ bl(&l_0000); 1785 __ ldr(Narrow, r1, MemOperand(sp, 92)); 1786 __ mov(Narrow, r0, r4); 1787 __ str(Narrow, r6, MemOperand(sp)); 1788 __ mov(r2, 800U); 1789 __ str(Narrow, r6, MemOperand(sp, 4)); 1790 __ mov(Narrow, r3, r8); 1791 // -------------- 1792 __ bind(&l_0ec0); 1793 __ bl(&l_0ec0); 1794 __ add(Narrow, r0, sp, 792U); 1795 // -------------- 1796 __ bind(&l_0ec6); 1797 __ bl(&l_0ec6); 1798 __ ldrb(r3, MemOperand(sp, 209)); 1799 __ str(r9, MemOperand(sp, 192)); 1800 __ cmp(Narrow, r3, 0U); 1801 __ b(ne, &l_1ba8); 1802 // -------------- 1803 __ bind(&l_0ed8); 1804 __ ldr(Narrow, r3, MemOperand(sp, 36)); 1805 __ mov(ip, 0U); 1806 __ mov(lr, 1056U); 1807 __ str(sl, MemOperand(sp)); 1808 __ mov(Narrow, r0, r4); 1809 __ movs(Narrow, r1, 14U); 1810 __ str(r3, MemOperand(sl, 16)); 1811 __ mov(r2, 800U); 1812 __ mov(Narrow, r3, r6); 1813 __ str(ip, MemOperand(sl)); 1814 __ str(lr, MemOperand(sl, 8)); 1815 // -------------- 1816 __ bind(&l_0efc); 1817 __ bl(&l_0efc); 1818 __ ldr(Narrow, r1, MemOperand(sp, 76)); 1819 __ movs(Narrow, r3, 14U); 1820 __ str(Narrow, r3, MemOperand(sp, 96)); 1821 __ movs(Narrow, r3, 0U); 1822 __ str(Narrow, r3, MemOperand(sp, 224)); 1823 __ movs(Narrow, r2, 1U); 1824 __ str(Narrow, r1, MemOperand(sp, 128)); 1825 __ ldr(Narrow, r1, MemOperand(sp, 20)); 1826 __ strb(r3, MemOperand(sp, 237)); 1827 __ ldr(Narrow, r3, MemOperand(r7, 104)); 1828 __ str(Narrow, r2, MemOperand(sp, 132)); 1829 __ str(r9, MemOperand(sp, 220)); 1830 __ str(Narrow, r3, MemOperand(sp, 76)); 1831 __ cbz(r1, &l_0f66); 1832 __ ldr(Narrow, r3, MemOperand(r4, 44)); 1833 __ mov(Narrow, r0, r1); 1834 __ str(Narrow, r1, MemOperand(sp, 240)); 1835 __ movs(Narrow, r1, 32U); 1836 __ str(Narrow, r2, MemOperand(sp, 244)); 1837 __ ldr(Narrow, r3, MemOperand(r3, 32)); 1838 __ blx(r3); 1839 __ ldr(Narrow, r3, MemOperand(r4, 44)); 1840 __ ldr(Narrow, r0, MemOperand(sp, 20)); 1841 __ ldr(Narrow, r3, MemOperand(r3, 24)); 1842 __ blx(r3); 1843 __ ldr(Narrow, r2, MemOperand(r4, 44)); 1844 __ movw(r3, 0U); 1845 __ movt(r3, 0U); 1846 __ ldr(Narrow, r0, MemOperand(sp, 20)); 1847 __ ldr(Narrow, r2, MemOperand(r2)); 1848 __ cmp(Narrow, r2, r3); 1849 __ b(ne, &l_1d5c); 1850 // -------------- 1851 __ bind(&l_0f4a); 1852 __ bl(&l_0f4a); 1853 // -------------- 1854 __ bind(&l_0f4e); 1855 __ str(Narrow, r0, MemOperand(sp, 224)); 1856 __ ldr(Narrow, r1, MemOperand(r0, 20)); 1857 __ ldr(Narrow, r3, MemOperand(r0, 4)); 1858 __ ldr(Narrow, r2, MemOperand(r0, 12)); 1859 __ add(Narrow, r3, r3, r1); 1860 __ subs(Narrow, r3, r3, r2); 1861 __ cmp(Narrow, r3, 31U); 1862 __ b(ls, &l_1c80); 1863 // -------------- 1864 __ bind(&l_0f60); 1865 __ movs(Narrow, r3, 1U); 1866 __ strb(r3, MemOperand(sp, 237)); 1867 // -------------- 1868 __ bind(&l_0f66); 1869 __ ldr(Narrow, r3, &l_1068); 1870 __ mov(Narrow, r1, r4); 1871 __ add(Narrow, r0, sp, 960U); 1872 __ add(Narrow, r2, sp, 96U); 1873 __ str(Narrow, r3, MemOperand(sp, 220)); 1874 __ bl(&l_0000); 1875 __ add(Narrow, r2, sp, 128U); 1876 __ ldr(lr, MemOperand(sp, 96)); 1877 __ ldm(r2, NO_WRITE_BACK, RegisterList(r0, r1)); 1878 __ mov(Narrow, r3, sp); 1879 __ ldr(Narrow, r2, MemOperand(sp, 76)); 1880 __ str(r2, MemOperand(r3, 4, PostIndex)); 1881 __ mov(r2, 800U); 1882 __ stm(r3, NO_WRITE_BACK, RegisterList(r0, r1)); 1883 __ mov(Narrow, r3, r6); 1884 __ mov(Narrow, r1, lr); 1885 __ mov(Narrow, r0, r4); 1886 // -------------- 1887 __ bind(&l_0f94); 1888 __ bl(&l_0f94); 1889 __ add(Narrow, r0, sp, 960U); 1890 // -------------- 1891 __ bind(&l_0f9a); 1892 __ bl(&l_0f9a); 1893 __ ldrb(r3, MemOperand(sp, 237)); 1894 __ str(r9, MemOperand(sp, 220)); 1895 __ cmp(Narrow, r3, 0U); 1896 __ b(ne, &l_1b88); 1897 // -------------- 1898 __ bind(&l_0fac); 1899 __ ldr(Narrow, r3, MemOperand(r7, 104)); 1900 } 1901 void Generate_15(TestAssembler* assembler) { 1902 __ mov(Narrow, r0, r4); 1903 __ str(r8, MemOperand(sp)); 1904 __ movs(Narrow, r1, 14U); 1905 __ str(r8, MemOperand(sp, 4)); 1906 __ mov(r2, 800U); 1907 // -------------- 1908 __ bind(&l_0fbe); 1909 __ bl(&l_0fbe); 1910 __ ldr(Narrow, r1, MemOperand(sp, 20)); 1911 __ movs(Narrow, r3, 0U); 1912 __ movs(Narrow, r2, 14U); 1913 __ str(r9, MemOperand(sp, 248)); 1914 __ str(Narrow, r2, MemOperand(sp, 100)); 1915 __ str(Narrow, r3, MemOperand(sp, 252)); 1916 __ strb(r3, MemOperand(sp, 265)); 1917 __ ldr(r8, MemOperand(r7, 104)); 1918 __ cbz(r1, &l_1022); 1919 __ ldr(Narrow, r3, MemOperand(r4, 44)); 1920 __ movs(Narrow, r2, 1U); 1921 __ str(Narrow, r1, MemOperand(sp, 268)); 1922 __ mov(Narrow, r0, r1); 1923 __ str(Narrow, r2, MemOperand(sp, 272)); 1924 __ movs(Narrow, r1, 32U); 1925 __ ldr(Narrow, r3, MemOperand(r3, 32)); 1926 __ blx(r3); 1927 __ ldr(Narrow, r3, MemOperand(r4, 44)); 1928 __ ldr(Narrow, r0, MemOperand(sp, 20)); 1929 __ ldr(Narrow, r3, MemOperand(r3, 24)); 1930 __ blx(r3); 1931 __ ldr(Narrow, r2, MemOperand(r4, 44)); 1932 __ movw(r3, 0U); 1933 __ movt(r3, 0U); 1934 __ ldr(Narrow, r0, MemOperand(sp, 20)); 1935 __ ldr(Narrow, r2, MemOperand(r2)); 1936 __ cmp(Narrow, r2, r3); 1937 __ b(ne, &l_1d72); 1938 // -------------- 1939 __ bind(&l_1006); 1940 __ bl(&l_1006); 1941 // -------------- 1942 __ bind(&l_100a); 1943 __ str(Narrow, r0, MemOperand(sp, 252)); 1944 __ ldr(Narrow, r1, MemOperand(r0, 20)); 1945 __ ldr(Narrow, r3, MemOperand(r0, 4)); 1946 __ ldr(Narrow, r2, MemOperand(r0, 12)); 1947 __ add(Narrow, r3, r3, r1); 1948 __ subs(Narrow, r3, r3, r2); 1949 __ cmp(Narrow, r3, 31U); 1950 __ b(ls, &l_1c8e); 1951 // -------------- 1952 __ bind(&l_101c); 1953 __ movs(Narrow, r3, 1U); 1954 __ strb(r3, MemOperand(sp, 265)); 1955 // -------------- 1956 __ bind(&l_1022); 1957 __ ldr(Narrow, r3, &l_1068); 1958 __ mov(Narrow, r1, r4); 1959 __ add(r0, sp, 1128U); 1960 __ add(Narrow, r2, sp, 100U); 1961 __ str(Narrow, r3, MemOperand(sp, 248)); 1962 __ bl(&l_0000); 1963 __ ldr(Narrow, r1, MemOperand(sp, 100)); 1964 __ mov(Narrow, r3, r8); 1965 __ str(Narrow, r6, MemOperand(sp)); 1966 __ mov(Narrow, r0, r4); 1967 __ str(Narrow, r6, MemOperand(sp, 4)); 1968 __ mov(r2, 800U); 1969 // -------------- 1970 __ bind(&l_1040); 1971 __ bl(&l_1040); 1972 __ add(r0, sp, 1128U); 1973 // -------------- 1974 __ bind(&l_1048); 1975 __ bl(&l_1048); 1976 __ ldr(Narrow, r3, &l_1068); 1977 __ add(Narrow, r0, sp, 248U); 1978 __ str(Narrow, r3, MemOperand(sp, 248)); 1979 // -------------- 1980 __ bind(&l_1052); 1981 __ bl(&l_1052); 1982 __ movs(Narrow, r3, 0U); 1983 __ movs(Narrow, r2, 14U); 1984 __ str(Narrow, r3, MemOperand(sp, 280)); 1985 __ strb(r3, MemOperand(sp, 293)); 1986 __ ldr(Narrow, r3, MemOperand(sp, 20)); 1987 __ b(Narrow, &l_106c); 1988 // -------------- 1989 __ bind(&l_1064); 1990 __ Emit32(0x00000008); 1991 // -------------- 1992 __ bind(&l_1068); 1993 __ Emit32(0x00000008); 1994 // -------------- 1995 __ bind(&l_106c); 1996 __ str(Narrow, r2, MemOperand(sp, 104)); 1997 __ str(r9, MemOperand(sp, 276)); 1998 __ ldr(r8, MemOperand(r7, 104)); 1999 __ cbz(r3, &l_10c2); 2000 __ mov(Narrow, r6, r3); 2001 __ ldr(Narrow, r3, MemOperand(r4, 44)); 2002 __ movs(Narrow, r2, 1U); 2003 __ str(Narrow, r6, MemOperand(sp, 296)); 2004 __ mov(Narrow, r0, r6); 2005 __ str(Narrow, r2, MemOperand(sp, 300)); 2006 __ movs(Narrow, r1, 32U); 2007 __ ldr(Narrow, r3, MemOperand(r3, 32)); 2008 __ blx(r3); 2009 __ ldr(Narrow, r3, MemOperand(r4, 44)); 2010 __ mov(Narrow, r0, r6); 2011 __ ldr(Narrow, r3, MemOperand(r3, 24)); 2012 __ blx(r3); 2013 __ ldr(Narrow, r2, MemOperand(r4, 44)); 2014 __ movw(r3, 0U); 2015 __ movt(r3, 0U); 2016 __ ldr(Narrow, r2, MemOperand(r2)); 2017 __ cmp(Narrow, r2, r3); 2018 __ b(ne, &l_1d3a); 2019 __ mov(Narrow, r0, r6); 2020 // -------------- 2021 __ bind(&l_10a6); 2022 __ bl(&l_10a6); 2023 // -------------- 2024 __ bind(&l_10aa); 2025 __ str(Narrow, r0, MemOperand(sp, 280)); 2026 __ ldr(Narrow, r1, MemOperand(r0, 20)); 2027 __ ldr(Narrow, r3, MemOperand(r0, 4)); 2028 } 2029 void Generate_16(TestAssembler* assembler) { 2030 __ ldr(Narrow, r2, MemOperand(r0, 12)); 2031 __ add(Narrow, r3, r3, r1); 2032 __ subs(Narrow, r3, r3, r2); 2033 __ cmp(Narrow, r3, 31U); 2034 __ b(ls, &l_1cc6); 2035 // -------------- 2036 __ bind(&l_10bc); 2037 __ movs(Narrow, r3, 1U); 2038 __ strb(r3, MemOperand(sp, 293)); 2039 // -------------- 2040 __ bind(&l_10c2); 2041 __ ldr(Narrow, r3, &l_13fc); 2042 __ mov(Narrow, r1, r4); 2043 __ add(r0, sp, 1296U); 2044 __ add(Narrow, r2, sp, 104U); 2045 __ str(Narrow, r3, MemOperand(sp, 276)); 2046 __ bl(&l_0000); 2047 __ ldr(Narrow, r2, MemOperand(sp, 52)); 2048 __ mov(Narrow, r3, r8); 2049 __ ldr(Narrow, r1, MemOperand(sp, 104)); 2050 __ mov(Narrow, r0, r4); 2051 __ str(r8, MemOperand(sp)); 2052 __ str(Narrow, r2, MemOperand(sp, 4)); 2053 __ mov(r2, 800U); 2054 // -------------- 2055 __ bind(&l_10e4); 2056 __ bl(&l_10e4); 2057 __ add(r0, sp, 1296U); 2058 // -------------- 2059 __ bind(&l_10ec); 2060 __ bl(&l_10ec); 2061 __ ldrb(r3, MemOperand(sp, 293)); 2062 __ str(r9, MemOperand(sp, 276)); 2063 __ cmp(Narrow, r3, 0U); 2064 __ b(ne, &l_1b68); 2065 // -------------- 2066 __ bind(&l_10fe); 2067 __ movs(Narrow, r3, 0U); 2068 __ ldr(Narrow, r2, MemOperand(r7, 104)); 2069 __ str(r3, MemOperand(sl)); 2070 __ mov(r1, 1056U); 2071 __ str(Narrow, r3, MemOperand(sp, 308)); 2072 __ strb(r3, MemOperand(sp, 321)); 2073 __ ldr(Narrow, r3, MemOperand(sp, 20)); 2074 __ str(r2, MemOperand(sl, 16)); 2075 __ movs(Narrow, r2, 14U); 2076 __ str(r9, MemOperand(sp, 304)); 2077 __ str(r1, MemOperand(sl, 8)); 2078 __ str(Narrow, r2, MemOperand(sp, 108)); 2079 __ cbz(r3, &l_116e); 2080 __ mov(Narrow, r6, r3); 2081 __ ldr(Narrow, r3, MemOperand(r4, 44)); 2082 __ movs(Narrow, r2, 1U); 2083 __ str(Narrow, r6, MemOperand(sp, 324)); 2084 __ mov(Narrow, r0, r6); 2085 __ str(Narrow, r2, MemOperand(sp, 328)); 2086 __ movs(Narrow, r1, 32U); 2087 __ ldr(Narrow, r3, MemOperand(r3, 32)); 2088 __ blx(r3); 2089 __ ldr(Narrow, r3, MemOperand(r4, 44)); 2090 __ mov(Narrow, r0, r6); 2091 __ ldr(Narrow, r3, MemOperand(r3, 24)); 2092 __ blx(r3); 2093 __ ldr(Narrow, r2, MemOperand(r4, 44)); 2094 __ movw(r3, 0U); 2095 __ movt(r3, 0U); 2096 __ ldr(Narrow, r2, MemOperand(r2)); 2097 __ cmp(Narrow, r2, r3); 2098 __ b(ne, &l_1d42); 2099 __ mov(Narrow, r0, r6); 2100 // -------------- 2101 __ bind(&l_1152); 2102 __ bl(&l_1152); 2103 // -------------- 2104 __ bind(&l_1156); 2105 __ str(Narrow, r0, MemOperand(sp, 308)); 2106 __ ldr(Narrow, r1, MemOperand(r0, 20)); 2107 __ ldr(Narrow, r3, MemOperand(r0, 4)); 2108 __ ldr(Narrow, r2, MemOperand(r0, 12)); 2109 __ add(Narrow, r3, r3, r1); 2110 __ subs(Narrow, r3, r3, r2); 2111 __ cmp(Narrow, r3, 31U); 2112 __ b(ls, &l_1cd4); 2113 // -------------- 2114 __ bind(&l_1168); 2115 __ movs(Narrow, r3, 1U); 2116 __ strb(r3, MemOperand(sp, 321)); 2117 // -------------- 2118 __ bind(&l_116e); 2119 __ ldr(Narrow, r3, &l_13fc); 2120 __ mov(Narrow, r1, r4); 2121 __ add(r0, sp, 1464U); 2122 __ add(Narrow, r2, sp, 108U); 2123 __ str(Narrow, r3, MemOperand(sp, 304)); 2124 __ bl(&l_0000); 2125 __ ldr(Narrow, r3, MemOperand(sp, 28)); 2126 __ mov(Narrow, r0, r4); 2127 __ ldr(Narrow, r1, MemOperand(sp, 108)); 2128 __ mov(r2, 800U); 2129 __ str(sl, MemOperand(sp, 4)); 2130 __ str(Narrow, r3, MemOperand(sp)); 2131 // -------------- 2132 __ bind(&l_118e); 2133 __ bl(&l_118e); 2134 __ add(r0, sp, 1464U); 2135 // -------------- 2136 __ bind(&l_1196); 2137 __ bl(&l_1196); 2138 __ ldr(Narrow, r3, &l_13fc); 2139 __ add(Narrow, r0, sp, 304U); 2140 __ str(Narrow, r3, MemOperand(sp, 304)); 2141 // -------------- 2142 __ bind(&l_11a0); 2143 __ bl(&l_11a0); 2144 __ mov(Narrow, r0, r4); 2145 __ movs(Narrow, r1, 14U); 2146 __ mov(Narrow, r2, r5); 2147 __ movs(Narrow, r3, 2U); 2148 // -------------- 2149 __ bind(&l_11ac); 2150 __ bl(&l_11ac); 2151 __ ldr(Narrow, r3, MemOperand(r4)); 2152 __ mov(Narrow, r0, r4); 2153 __ mov(Narrow, r1, fp); 2154 __ ldr(Narrow, r3, MemOperand(r3, 8)); 2155 __ blx(r3); 2156 } 2157 void Generate_17(TestAssembler* assembler) { 2158 __ ldr(Narrow, r6, MemOperand(sp, 24)); 2159 __ add(r0, sp, 2332U); 2160 __ str(r6, MemOperand(sp, 2304)); 2161 // -------------- 2162 __ bind(&l_11c4); 2163 __ bl(&l_11c4); 2164 __ str(Narrow, r6, MemOperand(r5)); 2165 __ add(r0, sp, 2164U); 2166 // -------------- 2167 __ bind(&l_11ce); 2168 __ bl(&l_11ce); 2169 __ ldr(Narrow, r6, MemOperand(sp, 20)); 2170 __ movs(Narrow, r3, 0U); 2171 __ str(r9, MemOperand(sp, 332)); 2172 __ str(Narrow, r3, MemOperand(sp, 336)); 2173 __ strb(r3, MemOperand(sp, 349)); 2174 __ cbz(r6, &l_122a); 2175 __ ldr(Narrow, r3, MemOperand(r4, 44)); 2176 __ movs(Narrow, r2, 1U); 2177 __ str(Narrow, r6, MemOperand(sp, 352)); 2178 __ mov(Narrow, r0, r6); 2179 __ str(Narrow, r2, MemOperand(sp, 356)); 2180 __ movs(Narrow, r1, 32U); 2181 __ ldr(Narrow, r3, MemOperand(r3, 32)); 2182 __ blx(r3); 2183 __ ldr(Narrow, r3, MemOperand(r4, 44)); 2184 __ mov(Narrow, r0, r6); 2185 __ ldr(Narrow, r3, MemOperand(r3, 24)); 2186 __ blx(r3); 2187 __ ldr(Narrow, r2, MemOperand(r4, 44)); 2188 __ movw(r3, 0U); 2189 __ movt(r3, 0U); 2190 __ ldr(Narrow, r2, MemOperand(r2)); 2191 __ cmp(Narrow, r2, r3); 2192 __ b(ne, &l_1d6a); 2193 __ mov(Narrow, r0, r6); 2194 // -------------- 2195 __ bind(&l_120e); 2196 __ bl(&l_120e); 2197 // -------------- 2198 __ bind(&l_1212); 2199 __ str(Narrow, r0, MemOperand(sp, 336)); 2200 __ ldr(Narrow, r1, MemOperand(r0, 20)); 2201 __ ldr(Narrow, r3, MemOperand(r0, 4)); 2202 __ ldr(Narrow, r2, MemOperand(r0, 12)); 2203 __ add(Narrow, r3, r3, r1); 2204 __ subs(Narrow, r3, r3, r2); 2205 __ cmp(Narrow, r3, 31U); 2206 __ b(ls, &l_1cb8); 2207 // -------------- 2208 __ bind(&l_1224); 2209 __ movs(Narrow, r3, 1U); 2210 __ strb(r3, MemOperand(sp, 349)); 2211 // -------------- 2212 __ bind(&l_122a); 2213 __ ldr(Narrow, r1, &l_13fc); 2214 __ mov(lr, 0U); 2215 __ mov(ip, 1U); 2216 __ movs(Narrow, r3, 14U); 2217 __ movs(Narrow, r2, 4U); 2218 __ str(r3, MemOperand(sp, 1636)); 2219 __ str(Narrow, r1, MemOperand(sp, 332)); 2220 __ mov(Narrow, r1, r3); 2221 __ str(r2, MemOperand(sp, 1644)); 2222 __ mov(Narrow, r0, r4); 2223 __ str(r4, MemOperand(sp, 1632)); 2224 __ mov(r2, 1056U); 2225 __ str(ip, MemOperand(sp, 1648)); 2226 __ ldr(Narrow, r3, MemOperand(sp, 32)); 2227 __ str(ip, MemOperand(sp, 1652)); 2228 __ strb(ip, MemOperand(sp, 1680)); 2229 __ str(ip, MemOperand(sp, 1696)); 2230 __ str(ip, MemOperand(sp, 1720)); 2231 __ str(ip, MemOperand(sp, 1744)); 2232 __ str(ip, MemOperand(sp, 1768)); 2233 __ strb(lr, MemOperand(sp, 1656)); 2234 __ str(lr, MemOperand(sp, 1660)); 2235 __ strb(lr, MemOperand(sp, 1664)); 2236 __ strb(lr, MemOperand(sp, 1668)); 2237 __ str(lr, MemOperand(sp, 1684)); 2238 __ str(lr, MemOperand(sp, 1688)); 2239 __ str(lr, MemOperand(sp, 1692)); 2240 __ str(lr, MemOperand(sp, 1700)); 2241 __ str(lr, MemOperand(sp, 1704)); 2242 __ str(lr, MemOperand(sp, 1708)); 2243 __ str(lr, MemOperand(sp, 1712)); 2244 __ str(lr, MemOperand(sp, 1716)); 2245 __ str(lr, MemOperand(sp, 1724)); 2246 __ str(lr, MemOperand(sp, 1728)); 2247 __ str(lr, MemOperand(sp, 1732)); 2248 __ str(lr, MemOperand(sp, 1736)); 2249 __ str(lr, MemOperand(sp, 1740)); 2250 __ str(lr, MemOperand(sp, 1748)); 2251 __ str(lr, MemOperand(sp, 1752)); 2252 __ str(lr, MemOperand(sp, 1756)); 2253 __ str(lr, MemOperand(sp, 1760)); 2254 __ str(lr, MemOperand(sp, 1764)); 2255 __ ldr(Narrow, r6, MemOperand(sp, 28)); 2256 __ str(lr, MemOperand(sp, 1772)); 2257 __ str(lr, MemOperand(sp, 1776)); 2258 __ str(Narrow, r6, MemOperand(sp)); 2259 __ ldr(Narrow, r6, &l_1400); 2260 __ str(lr, MemOperand(sp, 1780)); 2261 __ str(lr, MemOperand(sp, 1784)); 2262 __ str(r6, MemOperand(sp, 1640)); 2263 __ strb(lr, MemOperand(sp, 1792)); 2264 // -------------- 2265 __ bind(&l_12e2); 2266 __ bl(&l_12e2); 2267 __ add(r0, sp, 1632U); 2268 // -------------- 2269 __ bind(&l_12ea); 2270 __ bl(&l_12ea); 2271 __ ldrb(r3, MemOperand(sp, 349)); 2272 __ str(r9, MemOperand(sp, 332)); 2273 __ cmp(Narrow, r3, 0U); 2274 } 2275 void Generate_18(TestAssembler* assembler) { 2276 __ b(ne, &l_1bc8); 2277 // -------------- 2278 __ bind(&l_12fc); 2279 __ movs(Narrow, r3, 0U); 2280 __ str(r9, MemOperand(sp, 360)); 2281 __ str(Narrow, r3, MemOperand(sp, 364)); 2282 __ strb(r3, MemOperand(sp, 377)); 2283 __ ldr(Narrow, r3, MemOperand(sp, 20)); 2284 __ cbz(r3, &l_1356); 2285 __ mov(Narrow, r6, r3); 2286 __ ldr(Narrow, r3, MemOperand(r4, 44)); 2287 __ movs(Narrow, r2, 1U); 2288 __ str(Narrow, r6, MemOperand(sp, 380)); 2289 __ mov(Narrow, r0, r6); 2290 __ str(Narrow, r2, MemOperand(sp, 384)); 2291 __ movs(Narrow, r1, 32U); 2292 __ ldr(Narrow, r3, MemOperand(r3, 32)); 2293 __ blx(r3); 2294 __ ldr(Narrow, r3, MemOperand(r4, 44)); 2295 __ mov(Narrow, r0, r6); 2296 __ ldr(Narrow, r3, MemOperand(r3, 24)); 2297 __ blx(r3); 2298 __ ldr(Narrow, r2, MemOperand(r4, 44)); 2299 __ movw(r3, 0U); 2300 __ movt(r3, 0U); 2301 __ ldr(Narrow, r2, MemOperand(r2)); 2302 __ cmp(Narrow, r2, r3); 2303 __ b(ne, &l_1d62); 2304 __ mov(Narrow, r0, r6); 2305 // -------------- 2306 __ bind(&l_133a); 2307 __ bl(&l_133a); 2308 // -------------- 2309 __ bind(&l_133e); 2310 __ str(Narrow, r0, MemOperand(sp, 364)); 2311 __ ldr(Narrow, r1, MemOperand(r0, 20)); 2312 __ ldr(Narrow, r3, MemOperand(r0, 4)); 2313 __ ldr(Narrow, r2, MemOperand(r0, 12)); 2314 __ add(Narrow, r3, r3, r1); 2315 __ subs(Narrow, r3, r3, r2); 2316 __ cmp(Narrow, r3, 31U); 2317 __ b(ls, &l_1caa); 2318 // -------------- 2319 __ bind(&l_1350); 2320 __ movs(Narrow, r3, 1U); 2321 __ strb(r3, MemOperand(sp, 377)); 2322 // -------------- 2323 __ bind(&l_1356); 2324 __ ldr(Narrow, r0, &l_13fc); 2325 __ mov(lr, 0U); 2326 __ movs(Narrow, r3, 1U); 2327 __ movs(Narrow, r2, 14U); 2328 __ movs(Narrow, r1, 4U); 2329 __ str(r2, MemOperand(sp, 1804)); 2330 __ str(Narrow, r0, MemOperand(sp, 360)); 2331 __ mov(Narrow, r0, r4); 2332 __ str(r1, MemOperand(sp, 1812)); 2333 __ mov(Narrow, r1, r2); 2334 __ str(r3, MemOperand(sp, 1816)); 2335 __ mov(r2, 1040U); 2336 __ str(r3, MemOperand(sp, 1820)); 2337 __ strb(r3, MemOperand(sp, 1848)); 2338 __ str(r3, MemOperand(sp, 1864)); 2339 __ str(r3, MemOperand(sp, 1888)); 2340 __ str(r3, MemOperand(sp, 1912)); 2341 __ str(r3, MemOperand(sp, 1936)); 2342 __ str(r4, MemOperand(sp, 1800)); 2343 __ ldr(Narrow, r3, MemOperand(sp, 32)); 2344 __ strb(lr, MemOperand(sp, 1824)); 2345 __ str(lr, MemOperand(sp, 1828)); 2346 __ strb(lr, MemOperand(sp, 1832)); 2347 __ strb(lr, MemOperand(sp, 1836)); 2348 __ str(lr, MemOperand(sp, 1852)); 2349 __ str(lr, MemOperand(sp, 1856)); 2350 __ str(lr, MemOperand(sp, 1860)); 2351 __ str(lr, MemOperand(sp, 1868)); 2352 __ str(lr, MemOperand(sp, 1872)); 2353 __ str(lr, MemOperand(sp, 1876)); 2354 __ str(lr, MemOperand(sp, 1880)); 2355 __ str(lr, MemOperand(sp, 1884)); 2356 __ str(lr, MemOperand(sp, 1892)); 2357 __ str(lr, MemOperand(sp, 1896)); 2358 __ str(lr, MemOperand(sp, 1900)); 2359 __ str(lr, MemOperand(sp, 1904)); 2360 __ str(lr, MemOperand(sp, 1908)); 2361 __ str(lr, MemOperand(sp, 1916)); 2362 __ str(lr, MemOperand(sp, 1920)); 2363 __ str(lr, MemOperand(sp, 1924)); 2364 __ str(lr, MemOperand(sp, 1928)); 2365 __ str(lr, MemOperand(sp, 1932)); 2366 __ ldr(Narrow, r6, MemOperand(sp, 28)); 2367 __ str(lr, MemOperand(sp, 1940)); 2368 __ str(lr, MemOperand(sp, 1944)); 2369 __ str(Narrow, r6, MemOperand(sp)); 2370 __ b(Narrow, &l_1404); 2371 // -------------- 2372 __ bind(&l_13fc); 2373 __ Emit32(0x00000008); 2374 // -------------- 2375 __ bind(&l_1400); 2376 __ Emit32(0x00000008); 2377 // -------------- 2378 __ bind(&l_1404); 2379 __ ldr(Narrow, r6, &l_1724); 2380 __ str(lr, MemOperand(sp, 1948)); 2381 __ str(lr, MemOperand(sp, 1952)); 2382 __ str(r6, MemOperand(sp, 1808)); 2383 __ strb(lr, MemOperand(sp, 1960)); 2384 // -------------- 2385 __ bind(&l_1416); 2386 __ bl(&l_1416); 2387 __ add(r0, sp, 1800U); 2388 // -------------- 2389 __ bind(&l_141e); 2390 __ bl(&l_141e); 2391 __ ldrb(r3, MemOperand(sp, 377)); 2392 __ str(r9, MemOperand(sp, 360)); 2393 __ cmp(Narrow, r3, 0U); 2394 __ b(ne, &l_1bf0); 2395 // -------------- 2396 __ bind(&l_1430); 2397 __ movs(Narrow, r3, 0U); 2398 } 2399 void Generate_19(TestAssembler* assembler) { 2400 __ movs(Narrow, r2, 14U); 2401 __ str(Narrow, r3, MemOperand(sp, 392)); 2402 __ strb(r3, MemOperand(sp, 405)); 2403 __ ldr(Narrow, r3, MemOperand(sp, 20)); 2404 __ str(Narrow, r2, MemOperand(sp, 112)); 2405 __ str(r9, MemOperand(sp, 388)); 2406 __ cbz(r3, &l_148e); 2407 __ mov(Narrow, r6, r3); 2408 __ ldr(Narrow, r3, MemOperand(r4, 44)); 2409 __ movs(Narrow, r2, 1U); 2410 __ str(Narrow, r6, MemOperand(sp, 408)); 2411 __ mov(Narrow, r0, r6); 2412 __ str(Narrow, r2, MemOperand(sp, 412)); 2413 __ movs(Narrow, r1, 32U); 2414 __ ldr(Narrow, r3, MemOperand(r3, 32)); 2415 __ blx(r3); 2416 __ ldr(Narrow, r3, MemOperand(r4, 44)); 2417 __ mov(Narrow, r0, r6); 2418 __ ldr(Narrow, r3, MemOperand(r3, 24)); 2419 __ blx(r3); 2420 __ ldr(Narrow, r2, MemOperand(r4, 44)); 2421 __ movw(r3, 0U); 2422 __ movt(r3, 0U); 2423 __ ldr(Narrow, r2, MemOperand(r2)); 2424 __ cmp(Narrow, r2, r3); 2425 __ b(ne, &l_1d78); 2426 __ mov(Narrow, r0, r6); 2427 // -------------- 2428 __ bind(&l_1472); 2429 __ bl(&l_1472); 2430 // -------------- 2431 __ bind(&l_1476); 2432 __ str(Narrow, r0, MemOperand(sp, 392)); 2433 __ ldr(Narrow, r1, MemOperand(r0, 20)); 2434 __ ldr(Narrow, r3, MemOperand(r0, 4)); 2435 __ ldr(Narrow, r2, MemOperand(r0, 12)); 2436 __ add(Narrow, r3, r3, r1); 2437 __ subs(Narrow, r3, r3, r2); 2438 __ cmp(Narrow, r3, 31U); 2439 __ b(ls, &l_1c9c); 2440 // -------------- 2441 __ bind(&l_1488); 2442 __ movs(Narrow, r3, 1U); 2443 __ strb(r3, MemOperand(sp, 405)); 2444 // -------------- 2445 __ bind(&l_148e); 2446 __ ldr(Narrow, r3, &l_1728); 2447 __ mov(Narrow, r0, sl); 2448 __ mov(Narrow, r1, r4); 2449 __ add(Narrow, r2, sp, 112U); 2450 __ str(Narrow, r3, MemOperand(sp, 388)); 2451 __ bl(&l_0000); 2452 __ ldr(Narrow, r3, MemOperand(sp, 44)); 2453 __ mov(Narrow, r0, r4); 2454 __ ldr(Narrow, r6, MemOperand(sp, 32)); 2455 __ mov(r2, 1568U); 2456 __ ldr(Narrow, r1, MemOperand(sp, 112)); 2457 __ str(Narrow, r3, MemOperand(sp)); 2458 __ ldr(Narrow, r3, MemOperand(sp, 48)); 2459 __ str(Narrow, r3, MemOperand(sp, 4)); 2460 __ mov(Narrow, r3, r6); 2461 // -------------- 2462 __ bind(&l_14b0); 2463 __ bl(&l_14b0); 2464 __ mov(Narrow, r0, sl); 2465 // -------------- 2466 __ bind(&l_14b6); 2467 __ bl(&l_14b6); 2468 __ ldr(Narrow, r3, &l_1728); 2469 __ add(Narrow, r0, sp, 388U); 2470 __ str(Narrow, r3, MemOperand(sp, 388)); 2471 // -------------- 2472 __ bind(&l_14c0); 2473 __ bl(&l_14c0); 2474 __ and_(r3, r6, 0x1f); 2475 __ ldr(Narrow, r1, MemOperand(r7, 40)); 2476 __ orr(r3, r3, 0x8000); 2477 __ movs(Narrow, r2, 0U); 2478 __ orr(r3, r3, 0x60); 2479 __ mov(lr, 1U); 2480 __ str(r3, MemOperand(sl)); 2481 __ mov(r0, 4098U); 2482 __ ldr(Narrow, r3, MemOperand(sp, 40)); 2483 __ str(r1, MemOperand(sp, 2316)); 2484 __ str(r2, MemOperand(sl, 4)); 2485 __ str(r3, MemOperand(sp, 2304)); 2486 __ movs(Narrow, r3, 14U); 2487 __ str(Narrow, r3, MemOperand(sp, 116)); 2488 __ ldr(Narrow, r3, MemOperand(sp, 20)); 2489 __ str(r2, MemOperand(sl, 12)); 2490 __ str(r2, MemOperand(sp, 2308)); 2491 __ str(r2, MemOperand(sp, 2312)); 2492 __ str(r2, MemOperand(sp, 2320)); 2493 __ str(r2, MemOperand(sp, 2324)); 2494 __ str(Narrow, r2, MemOperand(sp, 420)); 2495 __ strb(r2, MemOperand(sp, 433)); 2496 __ str(r9, MemOperand(sp, 416)); 2497 __ str(lr, MemOperand(sl, 8)); 2498 __ str(lr, MemOperand(sl, 16)); 2499 __ str(lr, MemOperand(sp, 2332)); 2500 __ str(r0, MemOperand(sp, 2328)); 2501 __ cbz(r3, &l_156e); 2502 __ mov(Narrow, r6, r3); 2503 __ ldr(Narrow, r3, MemOperand(r4, 44)); 2504 __ mov(Narrow, r0, r6); 2505 __ str(Narrow, r6, MemOperand(sp, 436)); 2506 __ movs(Narrow, r1, 32U); 2507 __ str(lr, MemOperand(sp, 440)); 2508 __ ldr(Narrow, r3, MemOperand(r3, 32)); 2509 __ blx(r3); 2510 __ ldr(Narrow, r3, MemOperand(r4, 44)); 2511 __ mov(Narrow, r0, r6); 2512 __ ldr(Narrow, r3, MemOperand(r3, 24)); 2513 __ blx(r3); 2514 } 2515 void Generate_20(TestAssembler* assembler) { 2516 __ ldr(Narrow, r2, MemOperand(r4, 44)); 2517 __ movw(r3, 0U); 2518 __ movt(r3, 0U); 2519 __ ldr(Narrow, r2, MemOperand(r2)); 2520 __ cmp(Narrow, r2, r3); 2521 __ b(ne, &l_1d2a); 2522 __ mov(Narrow, r0, r6); 2523 // -------------- 2524 __ bind(&l_1552); 2525 __ bl(&l_1552); 2526 // -------------- 2527 __ bind(&l_1556); 2528 __ str(Narrow, r0, MemOperand(sp, 420)); 2529 __ ldr(Narrow, r1, MemOperand(r0, 20)); 2530 __ ldr(Narrow, r3, MemOperand(r0, 4)); 2531 __ ldr(Narrow, r2, MemOperand(r0, 12)); 2532 __ add(Narrow, r3, r3, r1); 2533 __ subs(Narrow, r3, r3, r2); 2534 __ cmp(Narrow, r3, 31U); 2535 __ b(ls, &l_1c48); 2536 // -------------- 2537 __ bind(&l_1568); 2538 __ movs(Narrow, r3, 1U); 2539 __ strb(r3, MemOperand(sp, 433)); 2540 // -------------- 2541 __ bind(&l_156e); 2542 __ ldr(Narrow, r3, &l_1728); 2543 __ mov(Narrow, r0, r5); 2544 __ mov(Narrow, r1, r4); 2545 __ add(Narrow, r2, sp, 116U); 2546 __ str(Narrow, r3, MemOperand(sp, 416)); 2547 __ bl(&l_0000); 2548 __ ldr(Narrow, r1, MemOperand(sp, 116)); 2549 __ mov(Narrow, r0, r4); 2550 __ str(fp, MemOperand(sp)); 2551 __ mov(r2, 1568U); 2552 __ mov(Narrow, r3, sl); 2553 // -------------- 2554 __ bind(&l_158a); 2555 __ bl(&l_158a); 2556 __ mov(Narrow, r0, r5); 2557 // -------------- 2558 __ bind(&l_1590); 2559 __ bl(&l_1590); 2560 __ ldr(Narrow, r3, &l_1728); 2561 __ add(Narrow, r0, sp, 416U); 2562 __ str(Narrow, r3, MemOperand(sp, 416)); 2563 // -------------- 2564 __ bind(&l_159a); 2565 __ bl(&l_159a); 2566 __ ldr(Narrow, r2, MemOperand(sp, 60)); 2567 __ mov(Narrow, r0, r4); 2568 __ ldr(Narrow, r3, MemOperand(sp, 64)); 2569 __ movs(Narrow, r1, 14U); 2570 __ str(Narrow, r2, MemOperand(sp, 4)); 2571 __ mov(r2, 800U); 2572 __ str(Narrow, r3, MemOperand(sp)); 2573 // -------------- 2574 __ bind(&l_15ae); 2575 __ bl(&l_15ae); 2576 __ ldr(Narrow, r1, MemOperand(r7, 40)); 2577 __ mov(lr, 0U); 2578 __ ldr(Narrow, r2, MemOperand(r7, 28)); 2579 __ mov(ip, 1U); 2580 __ str(fp, MemOperand(sp)); 2581 __ mov(Narrow, r0, r4); 2582 __ str(r1, MemOperand(sp, 2308)); 2583 __ str(r1, MemOperand(sp, 2320)); 2584 __ mov(Narrow, r3, r2); 2585 __ movs(Narrow, r1, 14U); 2586 __ str(ip, MemOperand(sp, 2304)); 2587 __ str(lr, MemOperand(sp, 2312)); 2588 __ str(lr, MemOperand(sp, 2316)); 2589 // -------------- 2590 __ bind(&l_15dc); 2591 __ bl(&l_15dc); 2592 __ mov(Narrow, r0, r4); 2593 __ movs(Narrow, r1, 1U); 2594 __ add(Narrow, r2, sp, 624U); 2595 __ movs(Narrow, r3, 2U); 2596 // -------------- 2597 __ bind(&l_15e8); 2598 __ bl(&l_15e8); 2599 __ ldr(Narrow, r3, MemOperand(sp, 24)); 2600 __ add(Narrow, r0, sp, 652U); 2601 __ str(Narrow, r3, MemOperand(sp, 624)); 2602 // -------------- 2603 __ bind(&l_15f2); 2604 __ bl(&l_15f2); 2605 __ ldr(Narrow, r2, MemOperand(sp, 40)); 2606 __ movs(Narrow, r3, 0U); 2607 __ ldr(Narrow, r6, MemOperand(sp, 20)); 2608 __ ldr(Narrow, r1, MemOperand(r7, 40)); 2609 __ stm(r5, NO_WRITE_BACK, RegisterList(r2, r3)); 2610 __ mov(r2, 4096U); 2611 __ str(Narrow, r3, MemOperand(r5, 8)); 2612 __ str(Narrow, r1, MemOperand(r5, 12)); 2613 __ str(Narrow, r3, MemOperand(r5, 16)); 2614 __ str(Narrow, r3, MemOperand(r5, 20)); 2615 __ str(Narrow, r3, MemOperand(sp, 448)); 2616 __ strb(r3, MemOperand(sp, 461)); 2617 __ str(r9, MemOperand(sp, 444)); 2618 __ str(Narrow, r2, MemOperand(r5, 24)); 2619 __ cbz(r6, &l_1664); 2620 __ ldr(Narrow, r3, MemOperand(r4, 44)); 2621 __ movs(Narrow, r2, 1U); 2622 __ str(Narrow, r6, MemOperand(sp, 464)); 2623 __ mov(Narrow, r0, r6); 2624 __ str(Narrow, r2, MemOperand(sp, 468)); 2625 __ movs(Narrow, r1, 32U); 2626 __ ldr(Narrow, r3, MemOperand(r3, 32)); 2627 __ blx(r3); 2628 __ ldr(Narrow, r3, MemOperand(r4, 44)); 2629 __ mov(Narrow, r0, r6); 2630 __ ldr(Narrow, r3, MemOperand(r3, 24)); 2631 __ blx(r3); 2632 __ ldr(Narrow, r2, MemOperand(r4, 44)); 2633 __ movw(r3, 0U); 2634 __ movt(r3, 0U); 2635 __ ldr(Narrow, r2, MemOperand(r2)); 2636 __ cmp(Narrow, r2, r3); 2637 __ b(ne, &l_1d24); 2638 } 2639 void Generate_21(TestAssembler* assembler) { 2640 __ mov(Narrow, r0, r6); 2641 // -------------- 2642 __ bind(&l_1648); 2643 __ bl(&l_1648); 2644 // -------------- 2645 __ bind(&l_164c); 2646 __ str(Narrow, r0, MemOperand(sp, 448)); 2647 __ ldr(Narrow, r1, MemOperand(r0, 20)); 2648 __ ldr(Narrow, r3, MemOperand(r0, 4)); 2649 __ ldr(Narrow, r2, MemOperand(r0, 12)); 2650 __ add(Narrow, r3, r3, r1); 2651 __ subs(Narrow, r3, r3, r2); 2652 __ cmp(Narrow, r3, 31U); 2653 __ b(ls, &l_1c54); 2654 // -------------- 2655 __ bind(&l_165e); 2656 __ movs(Narrow, r3, 1U); 2657 __ strb(r3, MemOperand(sp, 461)); 2658 // -------------- 2659 __ bind(&l_1664); 2660 __ ldr(Narrow, r3, &l_1728); 2661 __ ldr(Narrow, r2, MemOperand(r5, 12)); 2662 __ str(Narrow, r3, MemOperand(sp, 444)); 2663 __ ubfx(r3, r2, 5U, 4U); 2664 __ cmp(Narrow, r3, 0U); 2665 __ b(ne, &l_1b04); 2666 __ ldr(Narrow, r2, MemOperand(sp, 72)); 2667 __ and_(r2, r2, 0x1f); 2668 __ cmp(Narrow, r2, 7U); 2669 __ b(hi, &l_1b00); 2670 __ ldr(Narrow, r2, MemOperand(r5)); 2671 __ and_(r2, r2, 0x1f); 2672 __ cmp(Narrow, r2, 7U); 2673 __ b(hi, &l_1b00); 2674 __ ldr(Narrow, r2, MemOperand(r5, 4)); 2675 __ cmp(Narrow, r2, 31U); 2676 __ b(hi, &l_1b00); 2677 // -------------- 2678 __ bind(&l_1694); 2679 __ ldr(Narrow, r3, MemOperand(r5, 24)); 2680 __ ubfx(r3, r3, 0U, 12U); 2681 __ clz(ip, r3); 2682 __ lsr(ip, ip, 5U); 2683 // -------------- 2684 __ bind(&l_16a2); 2685 __ ldr(Narrow, r6, &l_1724); 2686 __ mov(lr, 0U); 2687 __ movs(Narrow, r0, 1U); 2688 __ movs(Narrow, r2, 4U); 2689 __ movs(Narrow, r1, 14U); 2690 __ str(r2, MemOperand(sp, 2316)); 2691 __ str(r0, MemOperand(sp, 2320)); 2692 __ mov(Narrow, r2, lr); 2693 __ str(r0, MemOperand(sp, 2324)); 2694 __ strb(r0, MemOperand(sp, 2352)); 2695 __ str(r0, MemOperand(sp, 2368)); 2696 __ str(r0, MemOperand(sp, 2392)); 2697 __ str(r0, MemOperand(sp, 2416)); 2698 __ str(r0, MemOperand(sp, 2440)); 2699 __ mov(Narrow, r0, r4); 2700 __ str(r4, MemOperand(sp, 2304)); 2701 __ ldr(Narrow, r3, MemOperand(sp, 72)); 2702 __ str(r1, MemOperand(sp, 2308)); 2703 __ strb(lr, MemOperand(sp, 2328)); 2704 __ str(lr, MemOperand(sp, 2332)); 2705 __ strb(lr, MemOperand(sp, 2336)); 2706 __ strb(lr, MemOperand(sp, 2340)); 2707 __ str(lr, MemOperand(sp, 2356)); 2708 __ str(lr, MemOperand(sp, 2360)); 2709 __ str(lr, MemOperand(sp, 2364)); 2710 __ str(lr, MemOperand(sp, 2372)); 2711 __ str(lr, MemOperand(sp, 2376)); 2712 __ str(lr, MemOperand(sp, 2380)); 2713 __ str(lr, MemOperand(sp, 2384)); 2714 __ str(lr, MemOperand(sp, 2388)); 2715 __ str(lr, MemOperand(sp, 2396)); 2716 __ str(lr, MemOperand(sp, 2400)); 2717 __ str(lr, MemOperand(sp, 2404)); 2718 __ str(lr, MemOperand(sp, 2408)); 2719 __ str(lr, MemOperand(sp, 2412)); 2720 __ b(Narrow, &l_172c); 2721 __ nop(Narrow); 2722 // -------------- 2723 __ bind(&l_1724); 2724 __ Emit32(0x00000008); 2725 // -------------- 2726 __ bind(&l_1728); 2727 __ Emit32(0x00000008); 2728 // -------------- 2729 __ bind(&l_172c); 2730 __ str(lr, MemOperand(sp, 2420)); 2731 __ str(lr, MemOperand(sp, 2424)); 2732 __ str(lr, MemOperand(sp, 2428)); 2733 __ str(lr, MemOperand(sp, 2432)); 2734 __ str(lr, MemOperand(sp, 2436)); 2735 __ str(lr, MemOperand(sp, 2444)); 2736 __ str(Narrow, r5, MemOperand(sp)); 2737 __ str(lr, MemOperand(sp, 2448)); 2738 __ str(lr, MemOperand(sp, 2452)); 2739 __ str(lr, MemOperand(sp, 2456)); 2740 __ str(r6, MemOperand(sp, 2312)); 2741 __ strb(ip, MemOperand(sp, 2464)); 2742 // -------------- 2743 __ bind(&l_175a); 2744 __ bl(&l_175a); 2745 __ mov(Narrow, r0, fp); 2746 // -------------- 2747 __ bind(&l_1760); 2748 __ bl(&l_1760); 2749 __ ldrb(r3, MemOperand(sp, 461)); 2750 __ str(r9, MemOperand(sp, 444)); 2751 __ cmp(Narrow, r3, 0U); 2752 __ b(ne, &l_1b4a); 2753 // -------------- 2754 __ bind(&l_1772); 2755 __ ldr(lr, MemOperand(r7, 40)); 2756 __ movw(r1, 0U); 2757 __ ldr(Narrow, r2, MemOperand(sp, 68)); 2758 __ movt(r1, 0U); 2759 __ mov(Narrow, r0, r4); 2760 __ str(lr, MemOperand(sp)); 2761 __ mov(Narrow, r3, lr); 2762 __ str(lr, MemOperand(sp, 4)); 2763 // -------------- 2764 __ bind(&l_178c); 2765 __ bl(&l_178c); 2766 } 2767 void Generate_22(TestAssembler* assembler) { 2768 __ ldr(Narrow, r2, MemOperand(sp, 56)); 2769 __ mov(Narrow, r0, r4); 2770 __ ldr(Narrow, r3, MemOperand(sp, 36)); 2771 __ movs(Narrow, r1, 14U); 2772 __ str(Narrow, r2, MemOperand(sp, 4)); 2773 __ mov(r2, 800U); 2774 __ str(Narrow, r3, MemOperand(sp)); 2775 // -------------- 2776 __ bind(&l_17a0); 2777 __ bl(&l_17a0); 2778 __ ldr(Narrow, r1, MemOperand(r7, 40)); 2779 __ mov(lr, 0U); 2780 __ ldr(Narrow, r2, MemOperand(r7, 24)); 2781 __ mov(ip, 1U); 2782 __ str(fp, MemOperand(sp)); 2783 __ mov(Narrow, r0, r4); 2784 __ str(r1, MemOperand(sp, 2308)); 2785 __ str(r1, MemOperand(sp, 2320)); 2786 __ mov(Narrow, r3, r2); 2787 __ movs(Narrow, r1, 14U); 2788 __ str(ip, MemOperand(sp, 2304)); 2789 __ str(lr, MemOperand(sp, 2312)); 2790 __ str(lr, MemOperand(sp, 2316)); 2791 // -------------- 2792 __ bind(&l_17ce); 2793 __ bl(&l_17ce); 2794 __ mov(Narrow, r0, r4); 2795 __ movs(Narrow, r1, 1U); 2796 __ add(Narrow, r2, sp, 472U); 2797 __ movs(Narrow, r3, 2U); 2798 // -------------- 2799 __ bind(&l_17da); 2800 __ bl(&l_17da); 2801 __ ldr(Narrow, r3, MemOperand(sp, 24)); 2802 __ ldr(r8, MemOperand(sp, 616)); 2803 __ str(Narrow, r3, MemOperand(sp, 472)); 2804 __ cmp(r8, 0U); 2805 __ b(eq, Narrow, &l_17fc); 2806 __ ldr(r0, MemOperand(r8)); 2807 __ cbz(r0, &l_17f6); 2808 // -------------- 2809 __ bind(&l_17f2); 2810 __ bl(&l_17f2); 2811 // -------------- 2812 __ bind(&l_17f6); 2813 __ mov(Narrow, r0, r8); 2814 // -------------- 2815 __ bind(&l_17f8); 2816 __ bl(&l_17f8); 2817 // -------------- 2818 __ bind(&l_17fc); 2819 __ ldr(Narrow, r1, MemOperand(r7, 40)); 2820 __ mov(lr, 0U); 2821 __ ldr(Narrow, r2, MemOperand(r7, 56)); 2822 __ mov(ip, 132U); 2823 __ mov(Narrow, r0, r4); 2824 __ str(fp, MemOperand(sp)); 2825 __ str(r1, MemOperand(sp, 2308)); 2826 __ mov(Narrow, r3, r2); 2827 __ str(r1, MemOperand(sp, 2320)); 2828 __ movs(Narrow, r1, 14U); 2829 __ str(ip, MemOperand(sp, 2304)); 2830 __ str(lr, MemOperand(sp, 2312)); 2831 __ str(lr, MemOperand(sp, 2316)); 2832 // -------------- 2833 __ bind(&l_1826); 2834 __ bl(&l_1826); 2835 __ ldr(Narrow, r3, MemOperand(r7, 24)); 2836 __ ldr(Narrow, r0, MemOperand(r7, 28)); 2837 __ ldr(Narrow, r2, MemOperand(r7, 32)); 2838 __ ubfx(r1, r3, 5U, 4U); 2839 __ cbz(r1, &l_1842); 2840 __ and_(lr, r3, 0x1f); 2841 __ mov(r8, 1U); 2842 __ lsl(r1, r8, lr); 2843 // -------------- 2844 __ bind(&l_1842); 2845 __ ubfx(r3, r0, 5U, 4U); 2846 __ mov(Narrow, r8, r3); 2847 __ cbz(r3, &l_1856); 2848 __ and_(r0, r0, 0x1f); 2849 __ mov(r8, 1U); 2850 __ lsl(r8, r8, r0); 2851 // -------------- 2852 __ bind(&l_1856); 2853 __ ubfx(r3, r2, 5U, 4U); 2854 __ orr(r8, r8, r1); 2855 __ cbz(r3, &l_1868); 2856 __ and_(r2, r2, 0x1f); 2857 __ movs(Narrow, r3, 1U); 2858 __ lsls(Narrow, r3, r3, r2); 2859 // -------------- 2860 __ bind(&l_1868); 2861 __ ldr(Narrow, r6, MemOperand(sp, 20)); 2862 __ movs(Narrow, r2, 0U); 2863 __ movs(Narrow, r1, 14U); 2864 __ orr(r8, r8, r3); 2865 __ str(r9, MemOperand(r5)); 2866 __ str(r1, MemOperand(sl)); 2867 __ str(Narrow, r2, MemOperand(r5, 4)); 2868 __ strb(Narrow, r2, MemOperand(r5, 17)); 2869 __ cbz(r6, &l_18ce); 2870 __ ldr(Narrow, r3, MemOperand(r4, 44)); 2871 __ movs(Narrow, r2, 1U); 2872 __ str(Narrow, r2, MemOperand(r5, 24)); 2873 __ mov(Narrow, r0, r6); 2874 __ str(Narrow, r6, MemOperand(r5, 20)); 2875 __ movs(Narrow, r1, 32U); 2876 __ ldr(Narrow, r3, MemOperand(r3, 32)); 2877 __ blx(r3); 2878 __ ldr(Narrow, r3, MemOperand(r4, 44)); 2879 __ mov(Narrow, r0, r6); 2880 __ ldr(Narrow, r3, MemOperand(r3, 24)); 2881 __ blx(r3); 2882 __ ldr(Narrow, r2, MemOperand(r4, 44)); 2883 __ movw(r3, 0U); 2884 __ movt(r3, 0U); 2885 __ ldr(Narrow, r2, MemOperand(r2)); 2886 __ cmp(Narrow, r2, r3); 2887 __ b(ne, &l_1d50); 2888 __ mov(Narrow, r0, r6); 2889 // -------------- 2890 __ bind(&l_18ac); 2891 __ bl(&l_18ac); 2892 } 2893 void Generate_23(TestAssembler* assembler) { 2894 // -------------- 2895 __ bind(&l_18b0); 2896 __ str(Narrow, r0, MemOperand(r5, 4)); 2897 __ ldr(Narrow, r1, MemOperand(r0, 20)); 2898 __ ldr(Narrow, r3, MemOperand(r0, 4)); 2899 __ ldr(Narrow, r2, MemOperand(r0, 12)); 2900 __ add(Narrow, r3, r3, r1); 2901 __ subs(Narrow, r3, r3, r2); 2902 __ cmp(Narrow, r3, 31U); 2903 __ b(hi, Narrow, &l_18ca); 2904 __ lsls(Narrow, r1, r1, 1U); 2905 __ adds(r0, 4U); 2906 __ adds(Narrow, r1, r1, 32U); 2907 // -------------- 2908 __ bind(&l_18c6); 2909 __ bl(&l_18c6); 2910 // -------------- 2911 __ bind(&l_18ca); 2912 __ movs(Narrow, r3, 1U); 2913 __ strb(Narrow, r3, MemOperand(r5, 17)); 2914 // -------------- 2915 __ bind(&l_18ce); 2916 __ ldr(Narrow, r3, &l_1be8); 2917 __ mov(Narrow, r0, fp); 2918 __ mov(Narrow, r1, r4); 2919 __ mov(Narrow, r2, sl); 2920 __ str(Narrow, r3, MemOperand(r5)); 2921 __ bl(&l_0000); 2922 __ mov(Narrow, r0, r4); 2923 __ ldr(r1, MemOperand(sl)); 2924 __ mov(Narrow, r3, r8); 2925 __ movs(Narrow, r2, 0U); 2926 // -------------- 2927 __ bind(&l_18e6); 2928 __ bl(&l_18e6); 2929 __ mov(Narrow, r0, fp); 2930 // -------------- 2931 __ bind(&l_18ec); 2932 __ bl(&l_18ec); 2933 __ ldr(Narrow, r3, &l_1be8); 2934 __ mov(Narrow, r0, r5); 2935 __ str(Narrow, r3, MemOperand(r5)); 2936 // -------------- 2937 __ bind(&l_18f6); 2938 __ bl(&l_18f6); 2939 __ movs(Narrow, r3, 0U); 2940 __ ldr(Narrow, r7, MemOperand(r7, 108)); 2941 __ str(Narrow, r3, MemOperand(r5, 4)); 2942 __ strb(Narrow, r3, MemOperand(r5, 17)); 2943 __ ldr(Narrow, r3, MemOperand(sp, 20)); 2944 __ str(r9, MemOperand(r5)); 2945 __ cbz(r3, &l_195a); 2946 __ mov(Narrow, r6, r3); 2947 __ ldr(Narrow, r3, MemOperand(r4, 44)); 2948 __ movs(Narrow, r2, 1U); 2949 __ str(Narrow, r6, MemOperand(r5, 20)); 2950 __ str(Narrow, r2, MemOperand(r5, 24)); 2951 __ mov(Narrow, r0, r6); 2952 __ movs(Narrow, r1, 32U); 2953 __ ldr(Narrow, r3, MemOperand(r3, 32)); 2954 __ blx(r3); 2955 __ ldr(Narrow, r3, MemOperand(r4, 44)); 2956 __ mov(Narrow, r0, r6); 2957 __ ldr(Narrow, r3, MemOperand(r3, 24)); 2958 __ blx(r3); 2959 __ ldr(Narrow, r2, MemOperand(r4, 44)); 2960 __ movw(r3, 0U); 2961 __ movt(r3, 0U); 2962 __ ldr(Narrow, r2, MemOperand(r2)); 2963 __ cmp(Narrow, r2, r3); 2964 __ b(ne, &l_1d4a); 2965 __ mov(Narrow, r0, r6); 2966 // -------------- 2967 __ bind(&l_1938); 2968 __ bl(&l_1938); 2969 // -------------- 2970 __ bind(&l_193c); 2971 __ str(Narrow, r0, MemOperand(r5, 4)); 2972 __ ldr(Narrow, r1, MemOperand(r0, 20)); 2973 __ ldr(Narrow, r3, MemOperand(r0, 4)); 2974 __ ldr(Narrow, r2, MemOperand(r0, 12)); 2975 __ add(Narrow, r3, r3, r1); 2976 __ subs(Narrow, r3, r3, r2); 2977 __ cmp(Narrow, r3, 31U); 2978 __ b(hi, Narrow, &l_1956); 2979 __ lsls(Narrow, r1, r1, 1U); 2980 __ adds(r0, 4U); 2981 __ adds(Narrow, r1, r1, 32U); 2982 // -------------- 2983 __ bind(&l_1952); 2984 __ bl(&l_1952); 2985 // -------------- 2986 __ bind(&l_1956); 2987 __ movs(Narrow, r3, 1U); 2988 __ strb(Narrow, r3, MemOperand(r5, 17)); 2989 // -------------- 2990 __ bind(&l_195a); 2991 __ movs(Narrow, r3, 1U); 2992 __ and_(r6, r7, 0x1f); 2993 __ subs(r8, r6, 15U); 2994 __ str(r3, MemOperand(sp, 2320)); 2995 __ str(r3, MemOperand(sp, 2324)); 2996 __ mov(lr, 14U); 2997 __ strb(r3, MemOperand(sp, 2352)); 2998 __ mov(ip, 4U); 2999 __ str(r3, MemOperand(sp, 2368)); 3000 __ it(ne); 3001 __ mov(ne, r8, 1U); 3002 __ str(r3, MemOperand(sp, 2392)); 3003 __ mov(Narrow, r2, r7); 3004 __ str(r3, MemOperand(sp, 2416)); 3005 __ movs(Narrow, r7, 0U); 3006 __ str(r3, MemOperand(sp, 2440)); 3007 __ mov(Narrow, r0, r4); 3008 __ ldr(Narrow, r6, &l_1be8); 3009 __ mov(Narrow, r1, lr); 3010 __ ldr(Narrow, r3, &l_1bec); 3011 __ str(r4, MemOperand(sp, 2304)); 3012 __ str(Narrow, r6, MemOperand(r5)); 3013 __ str(lr, MemOperand(sp, 2308)); 3014 __ str(ip, MemOperand(sp, 2316)); 3015 __ strb(r7, MemOperand(sp, 2328)); 3016 __ str(r7, MemOperand(sp, 2332)); 3017 __ strb(r7, MemOperand(sp, 2336)); 3018 } 3019 void Generate_24(TestAssembler* assembler) { 3020 __ strb(r7, MemOperand(sp, 2340)); 3021 __ str(r7, MemOperand(sp, 2356)); 3022 __ str(r7, MemOperand(sp, 2360)); 3023 __ str(r7, MemOperand(sp, 2364)); 3024 __ str(r7, MemOperand(sp, 2372)); 3025 __ str(r7, MemOperand(sp, 2376)); 3026 __ str(r7, MemOperand(sp, 2380)); 3027 __ str(r7, MemOperand(sp, 2384)); 3028 __ str(r7, MemOperand(sp, 2388)); 3029 __ str(r7, MemOperand(sp, 2396)); 3030 __ str(r7, MemOperand(sp, 2400)); 3031 __ str(r7, MemOperand(sp, 2404)); 3032 __ str(r7, MemOperand(sp, 2408)); 3033 __ str(r7, MemOperand(sp, 2412)); 3034 __ str(r7, MemOperand(sp, 2420)); 3035 __ str(r7, MemOperand(sp, 2424)); 3036 __ str(r7, MemOperand(sp, 2428)); 3037 __ str(r7, MemOperand(sp, 2432)); 3038 __ str(r7, MemOperand(sp, 2436)); 3039 __ str(r7, MemOperand(sp, 2444)); 3040 __ str(r7, MemOperand(sp, 2448)); 3041 __ str(r7, MemOperand(sp, 2452)); 3042 __ str(r7, MemOperand(sp, 2456)); 3043 __ str(r3, MemOperand(sp, 2312)); 3044 __ strb(r8, MemOperand(sp, 2464)); 3045 // -------------- 3046 __ bind(&l_1a18); 3047 __ bl(&l_1a18); 3048 __ mov(Narrow, r0, fp); 3049 // -------------- 3050 __ bind(&l_1a1e); 3051 __ bl(&l_1a1e); 3052 __ ldrb(Narrow, r3, MemOperand(r5, 17)); 3053 __ str(r9, MemOperand(r5)); 3054 __ cmp(Narrow, r3, 0U); 3055 __ b(ne, &l_1c2e); 3056 // -------------- 3057 __ bind(&l_1a2e); 3058 __ add(sp, sp, 2476U); 3059 __ pop(RegisterList(0x8ff0)); 3060 // -------------- 3061 __ bind(&l_1a36); 3062 __ ldr(Narrow, r0, MemOperand(r5, 20)); 3063 __ cmp(Narrow, r0, 0U); 3064 __ b(eq, &l_0604); 3065 __ ldr(Narrow, r3, MemOperand(r5, 24)); 3066 __ movs(Narrow, r2, 0U); 3067 __ strb(Narrow, r2, MemOperand(r5, 17)); 3068 __ cmp(Narrow, r3, 1U); 3069 __ b(ne, &l_0604); 3070 __ ldr(Narrow, r3, MemOperand(r0)); 3071 __ ldr(Narrow, r3, MemOperand(r3, 28)); 3072 __ blx(r3); 3073 __ b(&l_0604); 3074 // -------------- 3075 __ bind(&l_1a54); 3076 __ ldr(Narrow, r0, MemOperand(r5, 20)); 3077 __ cmp(Narrow, r0, 0U); 3078 __ b(eq, &l_04aa); 3079 __ ldr(Narrow, r3, MemOperand(r5, 24)); 3080 __ movs(Narrow, r2, 0U); 3081 __ strb(Narrow, r2, MemOperand(r5, 17)); 3082 __ cmp(Narrow, r3, 1U); 3083 __ b(ne, &l_04aa); 3084 __ ldr(Narrow, r3, MemOperand(r0)); 3085 __ ldr(Narrow, r3, MemOperand(r3, 28)); 3086 __ blx(r3); 3087 __ b(&l_04aa); 3088 // -------------- 3089 __ bind(&l_1a72); 3090 __ ldr(Narrow, r0, MemOperand(r5, 20)); 3091 __ cmp(Narrow, r0, 0U); 3092 __ b(eq, &l_02dc); 3093 __ ldr(Narrow, r3, MemOperand(r5, 24)); 3094 __ movs(Narrow, r2, 0U); 3095 __ strb(Narrow, r2, MemOperand(r5, 17)); 3096 __ cmp(Narrow, r3, 1U); 3097 __ b(ne, &l_02dc); 3098 __ ldr(Narrow, r3, MemOperand(r0)); 3099 __ ldr(Narrow, r3, MemOperand(r3, 28)); 3100 __ blx(r3); 3101 __ b(&l_02dc); 3102 // -------------- 3103 __ bind(&l_1a90); 3104 __ ldr(Narrow, r0, MemOperand(sp, 20)); 3105 __ blx(r2); 3106 __ b(&l_0670); 3107 // -------------- 3108 __ bind(&l_1a98); 3109 __ ldr(Narrow, r0, MemOperand(sp, 20)); 3110 __ blx(r2); 3111 __ b(&l_04fc); 3112 // -------------- 3113 __ bind(&l_1aa0); 3114 __ ldr(Narrow, r0, MemOperand(sp, 20)); 3115 __ blx(r2); 3116 __ b(&l_0782); 3117 // -------------- 3118 __ bind(&l_1aa8); 3119 __ ldr(Narrow, r0, MemOperand(sp, 20)); 3120 __ blx(r2); 3121 __ b(&l_028e); 3122 // -------------- 3123 __ bind(&l_1ab0); 3124 __ ldr(Narrow, r0, MemOperand(sp, 20)); 3125 __ blx(r2); 3126 __ b(&l_03be); 3127 // -------------- 3128 __ bind(&l_1ab8); 3129 __ str(Narrow, r3, MemOperand(r5)); 3130 __ and_(r3, r8, 0x1f); 3131 __ b(&l_07a8); 3132 // -------------- 3133 __ bind(&l_1ac2); 3134 __ ldr(r2, MemOperand(sl, 8)); 3135 __ cmp(Narrow, r2, 4U); 3136 __ b(eq, &l_1d80); 3137 __ ldr(r2, MemOperand(sl, 16)); 3138 __ ubfx(r2, r2, 5U, 4U); 3139 __ cmp(Narrow, r2, 0U); 3140 __ b(ne, &l_1d80); 3141 __ ldr(r1, MemOperand(sl, 12)); 3142 __ mov(Narrow, ip, r2); 3143 __ cmp(Narrow, r1, 0U); 3144 __ b(ne, &l_07dc); 3145 __ cmp(Narrow, r3, 7U); 3146 } 3147 void Generate_25(TestAssembler* assembler) { 3148 __ b(hi, Narrow, &l_1b44); 3149 __ and_(ip, r0, 0x1f); 3150 __ cmp(ip, 7U); 3151 __ ite(hi); 3152 __ mov(hi, ip, 0U); 3153 __ mov(ls, ip, 1U); 3154 __ b(&l_07dc); 3155 // -------------- 3156 __ bind(&l_1b00); 3157 __ mov(Narrow, ip, r3); 3158 __ b(Narrow, &l_16a2); 3159 // -------------- 3160 __ bind(&l_1b04); 3161 __ ldr(Narrow, r3, MemOperand(r5, 16)); 3162 __ mov(ip, 0U); 3163 __ cmp(Narrow, r3, 0U); 3164 __ b(ne, &l_16a2); 3165 __ ldr(Narrow, r1, MemOperand(r5, 20)); 3166 __ cmp(Narrow, r1, 0U); 3167 __ b(ne, Narrow, &l_1b00); 3168 __ ldr(Narrow, r3, MemOperand(sp, 72)); 3169 __ and_(r3, r3, 0x1f); 3170 __ cmp(Narrow, r3, 7U); 3171 __ b(hi, Narrow, &l_1b3a); 3172 __ ldr(Narrow, r3, MemOperand(r5)); 3173 __ and_(r3, r3, 0x1f); 3174 __ cmp(Narrow, r3, 7U); 3175 __ b(hi, Narrow, &l_1b3a); 3176 __ and_(r2, r2, 0x1f); 3177 __ cmp(Narrow, r2, 7U); 3178 __ b(hi, Narrow, &l_1b3a); 3179 __ ldr(Narrow, r3, MemOperand(r5, 8)); 3180 __ cmp(Narrow, r3, 0U); 3181 __ b(eq, &l_1694); 3182 // -------------- 3183 __ bind(&l_1b3a); 3184 __ mov(Narrow, ip, r1); 3185 __ b(Narrow, &l_16a2); 3186 // -------------- 3187 __ bind(&l_1b3e); 3188 __ cmp(Narrow, r2, 255U); 3189 __ b(ls, &l_07d0); 3190 // -------------- 3191 __ bind(&l_1b44); 3192 __ mov(Narrow, ip, r1); 3193 __ b(&l_07dc); 3194 // -------------- 3195 __ bind(&l_1b4a); 3196 __ ldr(Narrow, r0, MemOperand(sp, 464)); 3197 __ cmp(Narrow, r0, 0U); 3198 __ b(eq, &l_1772); 3199 __ ldr(Narrow, r3, MemOperand(sp, 468)); 3200 __ movs(Narrow, r2, 0U); 3201 __ strb(r2, MemOperand(sp, 461)); 3202 __ cmp(Narrow, r3, 1U); 3203 __ b(ne, &l_1772); 3204 __ ldr(Narrow, r3, MemOperand(r0)); 3205 __ ldr(Narrow, r3, MemOperand(r3, 28)); 3206 __ blx(r3); 3207 __ b(Narrow, &l_1772); 3208 // -------------- 3209 __ bind(&l_1b68); 3210 __ ldr(Narrow, r0, MemOperand(sp, 296)); 3211 __ cmp(Narrow, r0, 0U); 3212 __ b(eq, &l_10fe); 3213 __ ldr(Narrow, r3, MemOperand(sp, 300)); 3214 __ movs(Narrow, r2, 0U); 3215 __ strb(r2, MemOperand(sp, 293)); 3216 __ cmp(Narrow, r3, 1U); 3217 __ b(ne, &l_10fe); 3218 __ ldr(Narrow, r3, MemOperand(r0)); 3219 __ ldr(Narrow, r3, MemOperand(r3, 28)); 3220 __ blx(r3); 3221 __ b(&l_10fe); 3222 // -------------- 3223 __ bind(&l_1b88); 3224 __ ldr(Narrow, r0, MemOperand(sp, 240)); 3225 __ cmp(Narrow, r0, 0U); 3226 __ b(eq, &l_0fac); 3227 __ ldr(Narrow, r3, MemOperand(sp, 244)); 3228 __ movs(Narrow, r2, 0U); 3229 __ strb(r2, MemOperand(sp, 237)); 3230 __ cmp(Narrow, r3, 1U); 3231 __ b(ne, &l_0fac); 3232 __ ldr(Narrow, r3, MemOperand(r0)); 3233 __ ldr(Narrow, r3, MemOperand(r3, 28)); 3234 __ blx(r3); 3235 __ b(&l_0fac); 3236 // -------------- 3237 __ bind(&l_1ba8); 3238 __ ldr(Narrow, r0, MemOperand(sp, 212)); 3239 __ cmp(Narrow, r0, 0U); 3240 __ b(eq, &l_0ed8); 3241 __ ldr(Narrow, r3, MemOperand(sp, 216)); 3242 __ movs(Narrow, r2, 0U); 3243 __ strb(r2, MemOperand(sp, 209)); 3244 __ cmp(Narrow, r3, 1U); 3245 __ b(ne, &l_0ed8); 3246 __ ldr(Narrow, r3, MemOperand(r0)); 3247 __ ldr(Narrow, r3, MemOperand(r3, 28)); 3248 __ blx(r3); 3249 __ b(&l_0ed8); 3250 // -------------- 3251 __ bind(&l_1bc8); 3252 __ ldr(Narrow, r0, MemOperand(sp, 352)); 3253 __ cmp(Narrow, r0, 0U); 3254 __ b(eq, &l_12fc); 3255 __ ldr(Narrow, r3, MemOperand(sp, 356)); 3256 __ movs(Narrow, r2, 0U); 3257 __ strb(r2, MemOperand(sp, 349)); 3258 __ cmp(Narrow, r3, 1U); 3259 __ b(ne, &l_12fc); 3260 __ ldr(Narrow, r3, MemOperand(r0)); 3261 __ ldr(Narrow, r3, MemOperand(r3, 28)); 3262 __ blx(r3); 3263 __ b(&l_12fc); 3264 // -------------- 3265 __ bind(&l_1be8); 3266 __ Emit32(0x00000008); 3267 // -------------- 3268 __ bind(&l_1bec); 3269 __ Emit32(0x00000008); 3270 // -------------- 3271 __ bind(&l_1bf0); 3272 __ ldr(Narrow, r0, MemOperand(sp, 380)); 3273 __ cmp(Narrow, r0, 0U); 3274 } 3275 void Generate_26(TestAssembler* assembler) { 3276 __ b(eq, &l_1430); 3277 __ ldr(Narrow, r3, MemOperand(sp, 384)); 3278 __ movs(Narrow, r2, 0U); 3279 __ strb(r2, MemOperand(sp, 377)); 3280 __ cmp(Narrow, r3, 1U); 3281 __ b(ne, &l_1430); 3282 __ ldr(Narrow, r3, MemOperand(r0)); 3283 __ ldr(Narrow, r3, MemOperand(r3, 28)); 3284 __ blx(r3); 3285 __ b(Narrow, &l_1430); 3286 // -------------- 3287 __ bind(&l_1c0e); 3288 __ ldr(Narrow, r0, MemOperand(sp, 184)); 3289 __ cmp(Narrow, r0, 0U); 3290 __ b(eq, &l_0b2e); 3291 __ ldr(Narrow, r3, MemOperand(sp, 188)); 3292 __ movs(Narrow, r2, 0U); 3293 __ strb(r2, MemOperand(sp, 181)); 3294 __ cmp(Narrow, r3, 1U); 3295 __ b(ne, &l_0b2e); 3296 __ ldr(Narrow, r3, MemOperand(r0)); 3297 __ ldr(Narrow, r3, MemOperand(r3, 28)); 3298 __ blx(r3); 3299 __ b(&l_0b2e); 3300 // -------------- 3301 __ bind(&l_1c2e); 3302 __ ldr(Narrow, r0, MemOperand(r5, 20)); 3303 __ cmp(Narrow, r0, 0U); 3304 __ b(eq, &l_1a2e); 3305 __ ldr(Narrow, r3, MemOperand(r5, 24)); 3306 __ strb(Narrow, r7, MemOperand(r5, 17)); 3307 __ cmp(Narrow, r3, 1U); 3308 __ b(ne, &l_1a2e); 3309 __ ldr(Narrow, r3, MemOperand(r0)); 3310 __ ldr(Narrow, r3, MemOperand(r3, 28)); 3311 __ blx(r3); 3312 __ b(Narrow, &l_1a2e); 3313 // -------------- 3314 __ bind(&l_1c48); 3315 __ lsls(Narrow, r1, r1, 1U); 3316 __ adds(r0, 4U); 3317 __ adds(Narrow, r1, r1, 32U); 3318 // -------------- 3319 __ bind(&l_1c4e); 3320 __ bl(&l_1c4e); 3321 __ b(Narrow, &l_1568); 3322 // -------------- 3323 __ bind(&l_1c54); 3324 __ lsls(Narrow, r1, r1, 1U); 3325 __ adds(r0, 4U); 3326 __ adds(Narrow, r1, r1, 32U); 3327 // -------------- 3328 __ bind(&l_1c5a); 3329 __ bl(&l_1c5a); 3330 __ b(Narrow, &l_165e); 3331 // -------------- 3332 __ bind(&l_1c60); 3333 __ lsls(Narrow, r1, r1, 1U); 3334 __ ldr(Narrow, r3, &l_1f4c); 3335 __ adds(r0, 4U); 3336 __ adds(Narrow, r1, r1, 32U); 3337 __ str(Narrow, r3, MemOperand(sp, 24)); 3338 // -------------- 3339 __ bind(&l_1c6a); 3340 __ bl(&l_1c6a); 3341 __ b(&l_09fa); 3342 // -------------- 3343 __ bind(&l_1c72); 3344 __ lsls(Narrow, r1, r1, 1U); 3345 __ adds(r0, 4U); 3346 __ adds(Narrow, r1, r1, 32U); 3347 // -------------- 3348 __ bind(&l_1c78); 3349 __ bl(&l_1c78); 3350 __ b(&l_0e9e); 3351 // -------------- 3352 __ bind(&l_1c80); 3353 __ lsls(Narrow, r1, r1, 1U); 3354 __ adds(r0, 4U); 3355 __ adds(Narrow, r1, r1, 32U); 3356 // -------------- 3357 __ bind(&l_1c86); 3358 __ bl(&l_1c86); 3359 __ b(&l_0f60); 3360 // -------------- 3361 __ bind(&l_1c8e); 3362 __ lsls(Narrow, r1, r1, 1U); 3363 __ adds(r0, 4U); 3364 __ adds(Narrow, r1, r1, 32U); 3365 // -------------- 3366 __ bind(&l_1c94); 3367 __ bl(&l_1c94); 3368 __ b(&l_101c); 3369 // -------------- 3370 __ bind(&l_1c9c); 3371 __ lsls(Narrow, r1, r1, 1U); 3372 __ adds(r0, 4U); 3373 __ adds(Narrow, r1, r1, 32U); 3374 // -------------- 3375 __ bind(&l_1ca2); 3376 __ bl(&l_1ca2); 3377 __ b(&l_1488); 3378 // -------------- 3379 __ bind(&l_1caa); 3380 __ lsls(Narrow, r1, r1, 1U); 3381 __ adds(r0, 4U); 3382 __ adds(Narrow, r1, r1, 32U); 3383 // -------------- 3384 __ bind(&l_1cb0); 3385 __ bl(&l_1cb0); 3386 __ b(&l_1350); 3387 // -------------- 3388 __ bind(&l_1cb8); 3389 __ lsls(Narrow, r1, r1, 1U); 3390 __ adds(r0, 4U); 3391 __ adds(Narrow, r1, r1, 32U); 3392 // -------------- 3393 __ bind(&l_1cbe); 3394 __ bl(&l_1cbe); 3395 __ b(&l_1224); 3396 // -------------- 3397 __ bind(&l_1cc6); 3398 __ lsls(Narrow, r1, r1, 1U); 3399 __ adds(r0, 4U); 3400 __ adds(Narrow, r1, r1, 32U); 3401 // -------------- 3402 __ bind(&l_1ccc); 3403 __ bl(&l_1ccc); 3404 __ b(&l_10bc); 3405 // -------------- 3406 __ bind(&l_1cd4); 3407 __ lsls(Narrow, r1, r1, 1U); 3408 __ adds(r0, 4U); 3409 __ adds(Narrow, r1, r1, 32U); 3410 // -------------- 3411 __ bind(&l_1cda); 3412 __ bl(&l_1cda); 3413 __ b(&l_1168); 3414 // -------------- 3415 __ bind(&l_1ce2); 3416 __ ldr(Narrow, r0, MemOperand(r5, 20)); 3417 __ cmp(Narrow, r0, 0U); 3418 __ b(eq, &l_08a4); 3419 __ ldr(Narrow, r3, MemOperand(r5, 24)); 3420 __ movs(Narrow, r2, 0U); 3421 __ strb(Narrow, r2, MemOperand(r5, 17)); 3422 __ cmp(Narrow, r3, 1U); 3423 __ b(ne, &l_08a4); 3424 __ ldr(Narrow, r3, MemOperand(r0)); 3425 __ ldr(Narrow, r3, MemOperand(r3, 28)); 3426 } 3427 void Generate_27(TestAssembler* assembler) { 3428 __ blx(r3); 3429 __ b(&l_08a4); 3430 // -------------- 3431 __ bind(&l_1d00); 3432 __ ldr(Narrow, r1, MemOperand(sp, 28)); 3433 __ add(r2, r8, 96U); 3434 __ ldr(r3, MemOperand(r8, 132)); 3435 __ mov(Narrow, r6, r2); 3436 __ mov(Narrow, r2, r1); 3437 __ cmp(Narrow, r1, r3); 3438 __ b(eq, Narrow, &l_1d9c); 3439 __ adds(r2, 2U); 3440 __ cmp(Narrow, r3, r2); 3441 __ b(lt, Narrow, &l_1d9c); 3442 __ add(r3, r8, 44U); 3443 __ str(Narrow, r3, MemOperand(sp, 24)); 3444 __ mov(Narrow, r1, r3); 3445 __ b(&l_0aec); 3446 // -------------- 3447 __ bind(&l_1d24); 3448 __ ldr(Narrow, r0, MemOperand(sp, 20)); 3449 __ blx(r2); 3450 __ b(Narrow, &l_164c); 3451 // -------------- 3452 __ bind(&l_1d2a); 3453 __ ldr(Narrow, r0, MemOperand(sp, 20)); 3454 __ blx(r2); 3455 __ b(Narrow, &l_1556); 3456 // -------------- 3457 __ bind(&l_1d30); 3458 __ ldr(Narrow, r3, &l_1f4c); 3459 __ str(Narrow, r3, MemOperand(sp, 24)); 3460 __ blx(r2); 3461 __ b(&l_09e8); 3462 // -------------- 3463 __ bind(&l_1d3a); 3464 __ ldr(Narrow, r0, MemOperand(sp, 20)); 3465 __ blx(r2); 3466 __ b(&l_10aa); 3467 // -------------- 3468 __ bind(&l_1d42); 3469 __ ldr(Narrow, r0, MemOperand(sp, 20)); 3470 __ blx(r2); 3471 __ b(&l_1156); 3472 // -------------- 3473 __ bind(&l_1d4a); 3474 __ ldr(Narrow, r0, MemOperand(sp, 20)); 3475 __ blx(r2); 3476 __ b(Narrow, &l_193c); 3477 // -------------- 3478 __ bind(&l_1d50); 3479 __ ldr(Narrow, r0, MemOperand(sp, 20)); 3480 __ blx(r2); 3481 __ b(Narrow, &l_18b0); 3482 // -------------- 3483 __ bind(&l_1d56); 3484 __ blx(r2); 3485 __ b(&l_0e8c); 3486 // -------------- 3487 __ bind(&l_1d5c); 3488 __ blx(r2); 3489 __ b(&l_0f4e); 3490 // -------------- 3491 __ bind(&l_1d62); 3492 __ ldr(Narrow, r0, MemOperand(sp, 20)); 3493 __ blx(r2); 3494 __ b(&l_133e); 3495 // -------------- 3496 __ bind(&l_1d6a); 3497 __ ldr(Narrow, r0, MemOperand(sp, 20)); 3498 __ blx(r2); 3499 __ b(&l_1212); 3500 // -------------- 3501 __ bind(&l_1d72); 3502 __ blx(r2); 3503 __ b(&l_100a); 3504 // -------------- 3505 __ bind(&l_1d78); 3506 __ ldr(Narrow, r0, MemOperand(sp, 20)); 3507 __ blx(r2); 3508 __ b(&l_1476); 3509 // -------------- 3510 __ bind(&l_1d80); 3511 __ mov(ip, 0U); 3512 __ b(&l_07dc); 3513 // -------------- 3514 __ bind(&l_1d88); 3515 __ mov(Narrow, r0, r5); 3516 // -------------- 3517 __ bind(&l_1d8a); 3518 __ bl(&l_1d8a); 3519 __ b(&l_08a4); 3520 // -------------- 3521 __ bind(&l_1d92); 3522 __ mov(Narrow, r0, r8); 3523 __ add(Narrow, r1, sp, 632U); 3524 __ blx(r2); 3525 __ b(&l_0b00); 3526 // -------------- 3527 __ bind(&l_1d9c); 3528 __ add(r3, r8, 44U); 3529 __ ldr(Narrow, r2, MemOperand(sp, 28)); 3530 __ mov(Narrow, r1, r3); 3531 __ str(Narrow, r3, MemOperand(sp, 24)); 3532 __ movs(Narrow, r3, 0U); 3533 __ mov(Narrow, r0, r6); 3534 __ str(Narrow, r3, MemOperand(sp)); 3535 __ movs(Narrow, r3, 2U); 3536 __ bl(&l_00b0); 3537 __ ldr(Narrow, r1, MemOperand(sp, 24)); 3538 __ b(&l_0aec); 3539 __ mov(Narrow, r0, fp); 3540 // -------------- 3541 __ bind(&l_1dba); 3542 __ bl(&l_1dba); 3543 // -------------- 3544 __ bind(&l_1dbe); 3545 __ ldr(Narrow, r3, &l_1f50); 3546 __ mov(Narrow, r0, r5); 3547 __ str(Narrow, r3, MemOperand(r5)); 3548 // -------------- 3549 __ bind(&l_1dc4); 3550 __ bl(&l_1dc4); 3551 // -------------- 3552 __ bind(&l_1dc8); 3553 __ bl(&l_1dc8); 3554 __ add(r0, sp, 1296U); 3555 // -------------- 3556 __ bind(&l_1dd0); 3557 __ bl(&l_1dd0); 3558 // -------------- 3559 __ bind(&l_1dd4); 3560 __ ldr(Narrow, r3, &l_1f50); 3561 __ add(Narrow, r0, sp, 276U); 3562 __ str(Narrow, r3, MemOperand(sp, 276)); 3563 // -------------- 3564 __ bind(&l_1dda); 3565 __ bl(&l_1dda); 3566 // -------------- 3567 __ bind(&l_1dde); 3568 __ ldr(Narrow, r4, MemOperand(sp, 24)); 3569 __ add(r0, sp, 2332U); 3570 __ str(r4, MemOperand(sp, 2304)); 3571 // -------------- 3572 __ bind(&l_1de8); 3573 __ bl(&l_1de8); 3574 __ add(r0, sp, 2164U); 3575 __ str(Narrow, r4, MemOperand(r5)); 3576 // -------------- 3577 __ bind(&l_1df2); 3578 __ bl(&l_1df2); 3579 // -------------- 3580 __ bind(&l_1df6); 3581 __ ldr(Narrow, r3, MemOperand(sp, 24)); 3582 __ add(Narrow, r0, sp, 652U); 3583 __ str(Narrow, r3, MemOperand(sp, 624)); 3584 // -------------- 3585 __ bind(&l_1dfc); 3586 __ bl(&l_1dfc); 3587 // -------------- 3588 __ bind(&l_1e00); 3589 __ ldr(Narrow, r3, MemOperand(sp, 24)); 3590 __ add(Narrow, r0, sp, 500U); 3591 __ str(Narrow, r3, MemOperand(sp, 472)); 3592 } 3593 void Generate_28(TestAssembler* assembler) { 3594 // -------------- 3595 __ bind(&l_1e06); 3596 __ bl(&l_1e06); 3597 // -------------- 3598 __ bind(&l_1e0a); 3599 __ bl(&l_1e0a); 3600 __ b(Narrow, &l_1dd4); 3601 // -------------- 3602 __ bind(&l_1e10); 3603 __ ldr(Narrow, r3, &l_1f50); 3604 __ mov(Narrow, r0, r5); 3605 __ str(Narrow, r3, MemOperand(r5)); 3606 // -------------- 3607 __ bind(&l_1e16); 3608 __ bl(&l_1e16); 3609 // -------------- 3610 __ bind(&l_1e1a); 3611 __ bl(&l_1e1a); 3612 __ mov(Narrow, r0, fp); 3613 // -------------- 3614 __ bind(&l_1e20); 3615 __ bl(&l_1e20); 3616 __ b(Narrow, &l_1e10); 3617 // -------------- 3618 __ bind(&l_1e26); 3619 __ ldr(Narrow, r3, &l_1f50); 3620 __ add(Narrow, r0, sp, 388U); 3621 __ str(Narrow, r3, MemOperand(sp, 388)); 3622 // -------------- 3623 __ bind(&l_1e2c); 3624 __ bl(&l_1e2c); 3625 __ b(Narrow, &l_1df6); 3626 __ ldr(Narrow, r3, &l_1f4c); 3627 __ add(Narrow, r0, sp, 624U); 3628 __ str(Narrow, r3, MemOperand(sp, 24)); 3629 // -------------- 3630 __ bind(&l_1e38); 3631 __ bl(&l_1e38); 3632 // -------------- 3633 __ bind(&l_1e3c); 3634 __ ldr(Narrow, r3, &l_1f50); 3635 __ add(Narrow, r0, sp, 164U); 3636 __ str(Narrow, r3, MemOperand(sp, 164)); 3637 // -------------- 3638 __ bind(&l_1e42); 3639 __ bl(&l_1e42); 3640 __ b(Narrow, &l_1e00); 3641 // -------------- 3642 __ bind(&l_1e48); 3643 __ ldr(Narrow, r3, &l_1f50); 3644 __ mov(Narrow, r0, r5); 3645 __ str(Narrow, r3, MemOperand(r5)); 3646 // -------------- 3647 __ bind(&l_1e4e); 3648 __ bl(&l_1e4e); 3649 // -------------- 3650 __ bind(&l_1e52); 3651 __ bl(&l_1e52); 3652 __ ldr(Narrow, r3, &l_1f4c); 3653 __ add(Narrow, r0, sp, 660U); 3654 __ str(Narrow, r3, MemOperand(sp, 24)); 3655 __ str(Narrow, r3, MemOperand(sp, 632)); 3656 // -------------- 3657 __ bind(&l_1e5e); 3658 __ bl(&l_1e5e); 3659 __ b(Narrow, &l_1e3c); 3660 // -------------- 3661 __ bind(&l_1e64); 3662 __ ldr(Narrow, r3, &l_1f50); 3663 __ add(Narrow, r0, sp, 220U); 3664 __ str(Narrow, r3, MemOperand(sp, 220)); 3665 // -------------- 3666 __ bind(&l_1e6a); 3667 __ bl(&l_1e6a); 3668 __ b(Narrow, &l_1dde); 3669 // -------------- 3670 __ bind(&l_1e70); 3671 __ ldr(Narrow, r3, &l_1f50); 3672 __ add(Narrow, r0, sp, 332U); 3673 __ str(Narrow, r3, MemOperand(sp, 332)); 3674 // -------------- 3675 __ bind(&l_1e76); 3676 __ bl(&l_1e76); 3677 __ b(Narrow, &l_1df6); 3678 // -------------- 3679 __ bind(&l_1e7c); 3680 __ ldr(Narrow, r3, &l_1f50); 3681 __ mov(Narrow, r0, r5); 3682 __ str(Narrow, r3, MemOperand(r5)); 3683 // -------------- 3684 __ bind(&l_1e82); 3685 __ bl(&l_1e82); 3686 // -------------- 3687 __ bind(&l_1e86); 3688 __ bl(&l_1e86); 3689 __ mov(Narrow, r0, fp); 3690 // -------------- 3691 __ bind(&l_1e8c); 3692 __ bl(&l_1e8c); 3693 __ b(Narrow, &l_1e7c); 3694 __ add(r0, sp, 1128U); 3695 // -------------- 3696 __ bind(&l_1e96); 3697 __ bl(&l_1e96); 3698 // -------------- 3699 __ bind(&l_1e9a); 3700 __ ldr(Narrow, r3, &l_1f50); 3701 __ add(Narrow, r0, sp, 248U); 3702 __ str(Narrow, r3, MemOperand(sp, 248)); 3703 // -------------- 3704 __ bind(&l_1ea0); 3705 __ bl(&l_1ea0); 3706 __ b(Narrow, &l_1dde); 3707 __ b(Narrow, &l_1e9a); 3708 __ b(Narrow, &l_1e00); 3709 // -------------- 3710 __ bind(&l_1eaa); 3711 __ ldr(Narrow, r3, &l_1f50); 3712 __ mov(Narrow, r0, r5); 3713 __ str(Narrow, r3, MemOperand(r5)); 3714 // -------------- 3715 __ bind(&l_1eb0); 3716 __ bl(&l_1eb0); 3717 // -------------- 3718 __ bind(&l_1eb4); 3719 __ bl(&l_1eb4); 3720 // -------------- 3721 __ bind(&l_1eb8); 3722 __ ldr(Narrow, r3, &l_1f50); 3723 __ add(Narrow, r0, sp, 360U); 3724 __ str(Narrow, r3, MemOperand(sp, 360)); 3725 // -------------- 3726 __ bind(&l_1ebe); 3727 __ bl(&l_1ebe); 3728 __ b(Narrow, &l_1df6); 3729 __ add(r0, sp, 1800U); 3730 // -------------- 3731 __ bind(&l_1ec8); 3732 __ bl(&l_1ec8); 3733 __ b(Narrow, &l_1eb8); 3734 __ mov(Narrow, r0, fp); 3735 // -------------- 3736 __ bind(&l_1ed0); 3737 __ bl(&l_1ed0); 3738 __ b(Narrow, &l_1e48); 3739 // -------------- 3740 __ bind(&l_1ed6); 3741 __ ldr(Narrow, r3, &l_1f50); 3742 __ mov(Narrow, r0, r5); 3743 __ str(Narrow, r3, MemOperand(r5)); 3744 // -------------- 3745 __ bind(&l_1edc); 3746 __ bl(&l_1edc); 3747 // -------------- 3748 __ bind(&l_1ee0); 3749 __ bl(&l_1ee0); 3750 __ mov(Narrow, r0, fp); 3751 // -------------- 3752 __ bind(&l_1ee6); 3753 __ bl(&l_1ee6); 3754 __ b(Narrow, &l_1eaa); 3755 // -------------- 3756 __ bind(&l_1eec); 3757 __ ldr(Narrow, r3, &l_1f50); 3758 __ mov(Narrow, r0, r5); 3759 __ str(Narrow, r3, MemOperand(r5)); 3760 // -------------- 3761 __ bind(&l_1ef2); 3762 __ bl(&l_1ef2); 3763 // -------------- 3764 __ bind(&l_1ef6); 3765 __ bl(&l_1ef6); 3766 __ b(Narrow, &l_1dbe); 3767 // -------------- 3768 __ bind(&l_1efc); 3769 __ ldr(Narrow, r3, &l_1f50); 3770 __ add(Narrow, r0, sp, 444U); 3771 __ str(Narrow, r3, MemOperand(sp, 444)); 3772 // -------------- 3773 __ bind(&l_1f02); 3774 __ bl(&l_1f02); 3775 __ b(Narrow, &l_1e00); 3776 __ mov(Narrow, r0, fp); 3777 // -------------- 3778 __ bind(&l_1f0a); 3779 __ bl(&l_1f0a); 3780 } 3781 void Generate_29(TestAssembler* assembler) { 3782 __ b(Narrow, &l_1eec); 3783 __ mov(Narrow, r0, fp); 3784 // -------------- 3785 __ bind(&l_1f12); 3786 __ bl(&l_1f12); 3787 __ b(Narrow, &l_1ed6); 3788 __ mov(Narrow, r0, fp); 3789 // -------------- 3790 __ bind(&l_1f1a); 3791 __ bl(&l_1f1a); 3792 __ b(Narrow, &l_1efc); 3793 __ mov(Narrow, r0, r5); 3794 // -------------- 3795 __ bind(&l_1f22); 3796 __ bl(&l_1f22); 3797 // -------------- 3798 __ bind(&l_1f26); 3799 __ ldr(Narrow, r3, &l_1f50); 3800 __ add(Narrow, r0, sp, 416U); 3801 __ str(Narrow, r3, MemOperand(sp, 416)); 3802 // -------------- 3803 __ bind(&l_1f2c); 3804 __ bl(&l_1f2c); 3805 __ b(Narrow, &l_1df6); 3806 __ b(Narrow, &l_1f26); 3807 __ mov(Narrow, r0, sl); 3808 // -------------- 3809 __ bind(&l_1f36); 3810 __ bl(&l_1f36); 3811 __ b(Narrow, &l_1e26); 3812 __ b(Narrow, &l_1dde); 3813 __ b(Narrow, &l_1df6); 3814 // -------------- 3815 __ bind(&l_1f40); 3816 __ ldr(Narrow, r3, &l_1f50); 3817 __ add(Narrow, r0, sp, 304U); 3818 __ str(Narrow, r3, MemOperand(sp, 304)); 3819 // -------------- 3820 __ bind(&l_1f46); 3821 __ bl(&l_1f46); 3822 __ b(Narrow, &l_1dde); 3823 // -------------- 3824 __ bind(&l_1f4c); 3825 __ Emit32(0x00000008); 3826 // -------------- 3827 __ bind(&l_1f50); 3828 __ Emit32(0x00000008); 3829 __ add(Narrow, r0, sp, 960U); 3830 // -------------- 3831 __ bind(&l_1f56); 3832 __ bl(&l_1f56); 3833 __ b(Narrow, &l_1e64); 3834 __ add(Narrow, r0, sp, 792U); 3835 // -------------- 3836 __ bind(&l_1f5e); 3837 __ bl(&l_1f5e); 3838 // -------------- 3839 __ bind(&l_1f62); 3840 __ ldr(Narrow, r3, &l_1f84); 3841 __ add(Narrow, r0, sp, 192U); 3842 __ str(Narrow, r3, MemOperand(sp, 192)); 3843 // -------------- 3844 __ bind(&l_1f68); 3845 __ bl(&l_1f68); 3846 __ b(Narrow, &l_1dde); 3847 __ b(Narrow, &l_1f62); 3848 __ add(r0, sp, 1632U); 3849 // -------------- 3850 __ bind(&l_1f74); 3851 __ bl(&l_1f74); 3852 __ b(Narrow, &l_1e70); 3853 __ add(r0, sp, 1464U); 3854 // -------------- 3855 __ bind(&l_1f7e); 3856 __ bl(&l_1f7e); 3857 __ b(Narrow, &l_1f40); 3858 // -------------- 3859 __ bind(&l_1f84); 3860 __ Emit32(0x00000008); 3861 __ bx(lr); 3862 __ nop(Narrow); 3863 __ movs(Narrow, r0, 1U); 3864 __ bx(lr); 3865 __ bx(lr); 3866 __ nop(Narrow); 3867 __ movs(Narrow, r0, 1U); 3868 __ bx(lr); 3869 __ movs(Narrow, r0, 0U); 3870 __ bx(lr); 3871 __ movs(Narrow, r0, 0U); 3872 __ bx(lr); 3873 __ movs(Narrow, r0, 0U); 3874 __ bx(lr); 3875 __ movs(Narrow, r0, 0U); 3876 __ bx(lr); 3877 __ movs(Narrow, r0, 0U); 3878 __ bx(lr); 3879 __ push(Narrow, RegisterList(r4, lr)); 3880 __ mov(Narrow, r4, r0); 3881 // -------------- 3882 __ bind(&l_1fb0); 3883 __ bl(&l_1fb0); 3884 __ mov(Narrow, r0, r4); 3885 __ pop(Narrow, RegisterList(r4, pc)); 3886 __ ldr(Narrow, r2, &l_1fcc); 3887 __ push(Narrow, RegisterList(r4, lr)); 3888 __ mov(Narrow, r4, r0); 3889 __ str(r2, MemOperand(r0, 4, PostIndex)); 3890 // -------------- 3891 __ bind(&l_1fc2); 3892 __ bl(&l_1fc2); 3893 __ mov(Narrow, r0, r4); 3894 __ pop(Narrow, RegisterList(r4, pc)); 3895 __ nop(Narrow); 3896 // -------------- 3897 __ bind(&l_1fcc); 3898 __ Emit32(0x00000008); 3899 __ ldr(Narrow, r3, &l_1fe8); 3900 __ push(Narrow, RegisterList(r4, lr)); 3901 __ mov(Narrow, r4, r0); 3902 __ str(r3, MemOperand(r0, 4, PostIndex)); 3903 // -------------- 3904 __ bind(&l_1fda); 3905 __ bl(&l_1fda); 3906 __ mov(Narrow, r0, r4); 3907 // -------------- 3908 __ bind(&l_1fe0); 3909 __ bl(&l_1fe0); 3910 __ mov(Narrow, r0, r4); 3911 __ pop(Narrow, RegisterList(r4, pc)); 3912 // -------------- 3913 __ bind(&l_1fe8); 3914 __ Emit32(0x00000008); 3915 __ ldr(Narrow, r2, MemOperand(r0, 8)); 3916 __ ldr(Narrow, r3, MemOperand(r1, 8)); 3917 __ cmp(Narrow, r2, r3); 3918 __ b(eq, Narrow, &l_1ffc); 3919 // -------------- 3920 __ bind(&l_1ff4); 3921 __ ite(lt); 3922 __ mov(lt, Narrow, r0, 1U); 3923 __ mov(ge, Narrow, r0, 0U); 3924 __ bx(lr); 3925 // -------------- 3926 __ bind(&l_1ffc); 3927 __ ldr(Narrow, r2, MemOperand(r0)); 3928 __ ldr(Narrow, r3, MemOperand(r1)); 3929 __ ldr(Narrow, r2, MemOperand(r2, 4)); 3930 __ ldr(Narrow, r3, MemOperand(r3, 4)); 3931 __ cmp(Narrow, r2, r3); 3932 } 3933 void Generate_30(TestAssembler* assembler) { 3934 __ b(ne, Narrow, &l_1ff4); 3935 __ ldr(Narrow, r2, MemOperand(r0, 12)); 3936 __ ldr(Narrow, r3, MemOperand(r1, 12)); 3937 __ cmp(Narrow, r2, r3); 3938 __ b(ne, Narrow, &l_1ff4); 3939 __ ldr(Narrow, r2, MemOperand(r0, 4)); 3940 __ ldr(Narrow, r3, MemOperand(r1, 4)); 3941 __ cmp(Narrow, r2, r3); 3942 __ b(ne, Narrow, &l_1ff4); 3943 __ movs(Narrow, r0, 0U); 3944 __ bx(lr); 3945 __ ldrb(Narrow, r3, MemOperand(r0, 17)); 3946 __ ldr(Narrow, r2, &l_2044); 3947 __ push(Narrow, RegisterList(r4, lr)); 3948 __ mov(Narrow, r4, r0); 3949 __ str(Narrow, r2, MemOperand(r0)); 3950 __ cbnz(r3, &l_202c); 3951 // -------------- 3952 __ bind(&l_2028); 3953 __ mov(Narrow, r0, r4); 3954 __ pop(Narrow, RegisterList(r4, pc)); 3955 // -------------- 3956 __ bind(&l_202c); 3957 __ ldr(Narrow, r0, MemOperand(r0, 20)); 3958 __ cmp(Narrow, r0, 0U); 3959 __ b(eq, Narrow, &l_2028); 3960 __ ldr(Narrow, r3, MemOperand(r4, 24)); 3961 __ movs(Narrow, r2, 0U); 3962 __ strb(Narrow, r2, MemOperand(r4, 17)); 3963 __ cmp(Narrow, r3, 1U); 3964 __ b(ne, Narrow, &l_2028); 3965 __ ldr(Narrow, r3, MemOperand(r0)); 3966 __ ldr(Narrow, r3, MemOperand(r3, 28)); 3967 __ blx(r3); 3968 __ b(Narrow, &l_2028); 3969 // -------------- 3970 __ bind(&l_2044); 3971 __ Emit32(0x00000008); 3972 __ ldrb(Narrow, r3, MemOperand(r0, 17)); 3973 __ ldr(Narrow, r2, &l_2070); 3974 __ push(Narrow, RegisterList(r4, lr)); 3975 __ mov(Narrow, r4, r0); 3976 __ str(Narrow, r2, MemOperand(r0)); 3977 __ cbnz(r3, &l_2058); 3978 // -------------- 3979 __ bind(&l_2054); 3980 __ mov(Narrow, r0, r4); 3981 __ pop(Narrow, RegisterList(r4, pc)); 3982 // -------------- 3983 __ bind(&l_2058); 3984 __ ldr(Narrow, r0, MemOperand(r0, 20)); 3985 __ cmp(Narrow, r0, 0U); 3986 __ b(eq, Narrow, &l_2054); 3987 __ ldr(Narrow, r3, MemOperand(r4, 24)); 3988 __ movs(Narrow, r2, 0U); 3989 __ strb(Narrow, r2, MemOperand(r4, 17)); 3990 __ cmp(Narrow, r3, 1U); 3991 __ b(ne, Narrow, &l_2054); 3992 __ ldr(Narrow, r3, MemOperand(r0)); 3993 __ ldr(Narrow, r3, MemOperand(r3, 28)); 3994 __ blx(r3); 3995 __ b(Narrow, &l_2054); 3996 // -------------- 3997 __ bind(&l_2070); 3998 __ Emit32(0x00000008); 3999 __ ldrb(Narrow, r3, MemOperand(r0, 17)); 4000 __ ldr(Narrow, r2, &l_20a4); 4001 __ push(Narrow, RegisterList(r4, lr)); 4002 __ mov(Narrow, r4, r0); 4003 __ str(Narrow, r2, MemOperand(r0)); 4004 __ cbnz(r3, &l_208a); 4005 // -------------- 4006 __ bind(&l_2080); 4007 __ mov(Narrow, r0, r4); 4008 // -------------- 4009 __ bind(&l_2082); 4010 __ bl(&l_2082); 4011 __ mov(Narrow, r0, r4); 4012 __ pop(Narrow, RegisterList(r4, pc)); 4013 // -------------- 4014 __ bind(&l_208a); 4015 __ ldr(Narrow, r0, MemOperand(r0, 20)); 4016 __ cmp(Narrow, r0, 0U); 4017 __ b(eq, Narrow, &l_2080); 4018 __ ldr(Narrow, r3, MemOperand(r4, 24)); 4019 __ movs(Narrow, r2, 0U); 4020 __ strb(Narrow, r2, MemOperand(r4, 17)); 4021 __ cmp(Narrow, r3, 1U); 4022 __ b(ne, Narrow, &l_2080); 4023 __ ldr(Narrow, r3, MemOperand(r0)); 4024 __ ldr(Narrow, r3, MemOperand(r3, 28)); 4025 __ blx(r3); 4026 __ b(Narrow, &l_2080); 4027 __ nop(Narrow); 4028 // -------------- 4029 __ bind(&l_20a4); 4030 __ Emit32(0x00000008); 4031 __ ldrb(Narrow, r3, MemOperand(r0, 17)); 4032 __ ldr(Narrow, r2, &l_20d8); 4033 __ push(Narrow, RegisterList(r4, lr)); 4034 __ mov(Narrow, r4, r0); 4035 __ str(Narrow, r2, MemOperand(r0)); 4036 __ cbnz(r3, &l_20be); 4037 // -------------- 4038 __ bind(&l_20b4); 4039 __ mov(Narrow, r0, r4); 4040 // -------------- 4041 __ bind(&l_20b6); 4042 __ bl(&l_20b6); 4043 __ mov(Narrow, r0, r4); 4044 __ pop(Narrow, RegisterList(r4, pc)); 4045 // -------------- 4046 __ bind(&l_20be); 4047 __ ldr(Narrow, r0, MemOperand(r0, 20)); 4048 __ cmp(Narrow, r0, 0U); 4049 __ b(eq, Narrow, &l_20b4); 4050 __ ldr(Narrow, r3, MemOperand(r4, 24)); 4051 __ movs(Narrow, r2, 0U); 4052 __ strb(Narrow, r2, MemOperand(r4, 17)); 4053 __ cmp(Narrow, r3, 1U); 4054 __ b(ne, Narrow, &l_20b4); 4055 __ ldr(Narrow, r3, MemOperand(r0)); 4056 __ ldr(Narrow, r3, MemOperand(r3, 28)); 4057 __ blx(r3); 4058 __ b(Narrow, &l_20b4); 4059 __ nop(Narrow); 4060 } 4061 void Generate_31(TestAssembler* assembler) { 4062 // -------------- 4063 __ bind(&l_20d8); 4064 __ Emit32(0x00000008); 4065 // -------------- 4066 __ bind(&l_20dc); 4067 __ bx(lr); 4068 __ nop(Narrow); 4069 __ sub(r0, r0, 44U); 4070 __ b(Narrow, &l_20dc); 4071 __ nop(Narrow); 4072 __ push(Narrow, RegisterList(r3, r4, r5, lr)); 4073 __ mov(Narrow, r5, r0); 4074 __ ldr(Narrow, r4, MemOperand(r0, 116)); 4075 __ cbz(r4, &l_20fe); 4076 __ ldr(Narrow, r0, MemOperand(r4)); 4077 __ cbz(r0, &l_20f8); 4078 // -------------- 4079 __ bind(&l_20f4); 4080 __ bl(&l_20f4); 4081 // -------------- 4082 __ bind(&l_20f8); 4083 __ mov(Narrow, r0, r4); 4084 // -------------- 4085 __ bind(&l_20fa); 4086 __ bl(&l_20fa); 4087 // -------------- 4088 __ bind(&l_20fe); 4089 __ mov(Narrow, r0, r5); 4090 __ pop(Narrow, RegisterList(r3, r4, r5, pc)); 4091 __ nop(Narrow); 4092 __ push(RegisterList(0x4ff0)); 4093 __ sub(Narrow, sp, sp, 12U); 4094 __ ldr(Narrow, r6, MemOperand(r0, 36)); 4095 __ ldr(Narrow, r4, MemOperand(sp, 48)); 4096 __ cmp(Narrow, r6, r1); 4097 __ b(eq, &l_22de); 4098 __ adds(Narrow, r5, r1, r2); 4099 __ cmp(Narrow, r6, r5); 4100 __ b(lt, &l_22de); 4101 __ cmp(Narrow, r3, 0U); 4102 __ b(eq, &l_2304); 4103 __ ldr(Narrow, r7, MemOperand(r0)); 4104 __ ldr(Narrow, r6, MemOperand(r0, 4)); 4105 __ cmp(Narrow, r7, r6); 4106 __ b(eq, &l_2304); 4107 // -------------- 4108 __ bind(&l_212c); 4109 __ ldr(Narrow, r1, MemOperand(r7)); 4110 __ cmp(Narrow, r4, r1); 4111 __ b(eq, &l_22e6); 4112 __ adds(Narrow, r7, r7, 24U); 4113 __ cmp(Narrow, r6, r7); 4114 __ b(ne, Narrow, &l_212c); 4115 __ movs(Narrow, r7, 0U); 4116 // -------------- 4117 __ bind(&l_213c); 4118 __ mov(Narrow, r9, r3); 4119 __ ldr(Narrow, r3, MemOperand(r4)); 4120 __ mov(Narrow, fp, r0); 4121 __ str(Narrow, r2, MemOperand(sp, 4)); 4122 __ mov(Narrow, r0, r4); 4123 __ ldr(sl, MemOperand(r4, 8)); 4124 __ ldr(Narrow, r3, MemOperand(r3, 32)); 4125 __ blx(r3); 4126 __ cbz(r0, &l_2158); 4127 __ ldr(Narrow, r3, MemOperand(r4)); 4128 __ mov(Narrow, r0, r4); 4129 __ ldr(Narrow, r3, MemOperand(r3, 36)); 4130 __ blx(r3); 4131 // -------------- 4132 __ bind(&l_2158); 4133 __ ldr(r3, MemOperand(r9, 12)); 4134 __ mov(Narrow, r0, r4); 4135 __ ldr(Narrow, r2, MemOperand(r4)); 4136 __ ldr(r1, MemOperand(r9, 16)); 4137 __ ldr(Narrow, r2, MemOperand(r2, 32)); 4138 __ bic(r8, r3, Operand(r3, ASR, 31)); 4139 __ str(Narrow, r1, MemOperand(sp)); 4140 __ blx(r2); 4141 __ cbz(r0, &l_2178); 4142 __ ldr(Narrow, r3, MemOperand(r4)); 4143 __ mov(Narrow, r0, r4); 4144 __ ldr(Narrow, r3, MemOperand(r3, 36)); 4145 __ blx(r3); 4146 // -------------- 4147 __ bind(&l_2178); 4148 __ ldr(r3, MemOperand(r9, 8)); 4149 __ cmp(Narrow, sl, r3); 4150 __ it(lt); 4151 __ mov(lt, Narrow, sl, r3); 4152 __ cbz(r7, &l_21ae); 4153 __ ldr(Narrow, r2, MemOperand(r7, 4)); 4154 __ mov(Narrow, r0, r4); 4155 __ ldr(Narrow, r3, MemOperand(r7, 8)); 4156 __ ldr(Narrow, r1, MemOperand(r4)); 4157 __ cmp(Narrow, r8, r2); 4158 __ it(lt); 4159 __ mov(lt, Narrow, r8, r2); 4160 __ ldr(Narrow, r2, MemOperand(sp)); 4161 __ ldr(Narrow, r1, MemOperand(r1, 32)); 4162 __ cmp(Narrow, r2, r3); 4163 __ it(ge); 4164 __ mov(ge, Narrow, r2, r3); 4165 __ str(Narrow, r2, MemOperand(sp)); 4166 __ blx(r1); 4167 __ cmp(Narrow, r0, 0U); 4168 __ b(ne, &l_230c); 4169 // -------------- 4170 __ bind(&l_21a6); 4171 __ ldr(Narrow, r3, MemOperand(r7, 12)); 4172 __ cmp(Narrow, sl, r3); 4173 __ it(lt); 4174 __ mov(lt, Narrow, sl, r3); 4175 // -------------- 4176 __ bind(&l_21ae); 4177 __ ldr(r1, MemOperand(fp, 4)); 4178 __ rsb(lr, sl, 0U); 4179 __ ldr(Narrow, r3, MemOperand(sp)); 4180 __ ldr(r7, MemOperand(r1, -12)); 4181 __ and_(r2, lr, r3); 4182 __ ldr(r3, MemOperand(r1, -24)); 4183 __ ldr(r0, MemOperand(r1, -16)); 4184 __ ldr(ip, MemOperand(r3, 4)); 4185 __ rsbs(Narrow, r3, r7, 0U); 4186 } 4187 void Generate_32(TestAssembler* assembler) { 4188 __ ands(Narrow, r3, r3, r0); 4189 __ add(Narrow, r3, r3, ip); 4190 __ cmp(Narrow, r3, r2); 4191 __ b(le, &l_2304); 4192 __ ldr(r3, MemOperand(fp, 40)); 4193 __ mov(Narrow, r6, r3); 4194 __ ldr(Narrow, r3, MemOperand(sp, 4)); 4195 __ add(Narrow, r3, r3, r5); 4196 __ mov(Narrow, r9, r3); 4197 __ mov(Narrow, r3, r6); 4198 __ add(Narrow, r3, r3, r9); 4199 __ cmp(Narrow, r3, r2); 4200 __ b(le, &l_2304); 4201 __ ldr(Narrow, r3, MemOperand(sp)); 4202 __ cmp(Narrow, r0, r3); 4203 __ b(eq, &l_233a); 4204 // -------------- 4205 __ bind(&l_21f6); 4206 __ ite(lt); 4207 __ mov(lt, Narrow, r3, 1U); 4208 __ mov(ge, Narrow, r3, 0U); 4209 // -------------- 4210 __ bind(&l_21fc); 4211 __ cmp(Narrow, r3, 0U); 4212 __ b(eq, &l_2334); 4213 __ ldr(Narrow, r3, MemOperand(r4, 4)); 4214 __ mov(r2, 65535U); 4215 __ movt(r2, 32767U); 4216 __ subs(Narrow, r2, r2, r3); 4217 __ ldr(Narrow, r3, MemOperand(sp)); 4218 __ cmp(Narrow, r3, r2); 4219 __ ite(le); 4220 __ and_(le, r2, lr, r3); 4221 __ and_(gt, r2, lr, r2); 4222 __ cmp(Narrow, r2, r8); 4223 __ b(lt, Narrow, &l_22de); 4224 // -------------- 4225 __ bind(&l_2220); 4226 __ ldr(r0, MemOperand(fp)); 4227 __ mov(r3, 43691U); 4228 __ movt(r3, 43690U); 4229 __ subs(Narrow, r1, r1, r0); 4230 __ asrs(Narrow, r1, r1, 3U); 4231 __ mul(r1, r3, r1); 4232 __ subs(Narrow, r3, r1, 1U); 4233 __ b(mi, Narrow, &l_22c8); 4234 __ lsls(Narrow, r7, r3, 5U); 4235 __ sub(ip, r0, 112U); 4236 __ movs(Narrow, r1, 1U); 4237 __ sub(r3, r7, Operand(r3, LSL, 3)); 4238 __ subs(Narrow, r3, r3, 88U); 4239 __ add(Narrow, r3, r3, r0); 4240 // -------------- 4241 __ bind(&l_2248); 4242 __ cbz(r1, &l_2282); 4243 __ ldr(Narrow, r0, MemOperand(r3, 96)); 4244 __ ldr(Narrow, r6, MemOperand(sp)); 4245 __ pld(MemOperand(r3)); 4246 __ cmp(Narrow, r0, r6); 4247 __ b(eq, Narrow, &l_2316); 4248 // -------------- 4249 __ bind(&l_2256); 4250 __ ite(lt); 4251 __ mov(lt, Narrow, r0, 1U); 4252 __ mov(ge, Narrow, r0, 0U); 4253 // -------------- 4254 __ bind(&l_225c); 4255 __ cbz(r0, &l_2282); 4256 __ ldr(Narrow, r1, MemOperand(r4, 4)); 4257 __ subs(Narrow, r2, r2, r1); 4258 __ ldr(Narrow, r1, MemOperand(sp)); 4259 __ cmp(Narrow, r2, r1); 4260 __ ite(le); 4261 __ and_(le, r2, lr, r2); 4262 __ and_(gt, r2, lr, r1); 4263 __ cmp(Narrow, r5, r2); 4264 __ ite(le); 4265 __ mov(le, Narrow, r1, 0U); 4266 __ mov(gt, Narrow, r1, 1U); 4267 __ cmp(Narrow, r2, r8); 4268 __ it(lt); 4269 __ orr(lt, r1, r1, 0x1); 4270 __ cbnz(r1, &l_22de); 4271 // -------------- 4272 __ bind(&l_2282); 4273 __ ldr(Narrow, r0, MemOperand(r3, 88)); 4274 // -------------- 4275 __ bind(&l_2284); 4276 __ cmp(Narrow, r4, r0); 4277 __ b(eq, Narrow, &l_22a8); 4278 __ ldr(Narrow, r0, MemOperand(r0, 4)); 4279 __ ldr(Narrow, r7, MemOperand(r3, 100)); 4280 __ subs(Narrow, r2, r2, r0); 4281 __ ldr(Narrow, r0, MemOperand(r3, 92)); 4282 __ rsbs(Narrow, r7, r7, 0U); 4283 __ mov(Narrow, r6, r0); 4284 __ ldr(Narrow, r0, MemOperand(r3, 96)); 4285 __ cmp(Narrow, r2, r0); 4286 __ ite(le); 4287 __ and_(le, Narrow, r2, r2, r7); 4288 __ and_(gt, r2, r7, r0); 4289 __ cmp(Narrow, r5, r2); 4290 __ it(le); 4291 __ cmp(le, Narrow, r6, r2); 4292 __ b(gt, Narrow, &l_22de); 4293 // -------------- 4294 __ bind(&l_22a8); 4295 __ subs(Narrow, r3, r3, 24U); 4296 __ cmp(Narrow, r3, ip); 4297 __ b(ne, Narrow, &l_2248); 4298 __ cbnz(r1, &l_22c8); 4299 // -------------- 4300 __ bind(&l_22b0); 4301 __ ldr(r3, MemOperand(fp, 24)); 4302 __ ldr(r0, MemOperand(fp, 28)); 4303 __ subs(Narrow, r2, r2, r3); 4304 __ rsbs(Narrow, r0, r0, 0U); 4305 __ ands(Narrow, r2, r2, r0); 4306 __ cmp(Narrow, r5, r2); 4307 __ ite(le); 4308 } 4309 void Generate_33(TestAssembler* assembler) { 4310 __ mov(le, Narrow, r0, 0U); 4311 __ mov(gt, Narrow, r0, 1U); 4312 __ b(Narrow, &l_22e0); 4313 // -------------- 4314 __ bind(&l_22c8); 4315 __ ldr(Narrow, r3, MemOperand(r4, 4)); 4316 __ subs(Narrow, r2, r2, r3); 4317 __ ldr(Narrow, r3, MemOperand(sp)); 4318 __ cmp(Narrow, r2, r3); 4319 __ ite(le); 4320 __ and_(le, r2, lr, r2); 4321 __ and_(gt, r2, lr, r3); 4322 __ cmp(Narrow, r2, r8); 4323 __ b(ge, Narrow, &l_22b0); 4324 // -------------- 4325 __ bind(&l_22de); 4326 __ movs(Narrow, r0, 1U); 4327 // -------------- 4328 __ bind(&l_22e0); 4329 __ add(Narrow, sp, sp, 12U); 4330 __ pop(RegisterList(0x8ff0)); 4331 // -------------- 4332 __ bind(&l_22e6); 4333 __ ldr(Narrow, r6, MemOperand(r3, 12)); 4334 __ ldr(Narrow, r1, MemOperand(r7, 4)); 4335 __ cmp(Narrow, r6, r1); 4336 __ b(gt, &l_213c); 4337 __ ldr(Narrow, r6, MemOperand(r3, 16)); 4338 __ ldr(Narrow, r1, MemOperand(r7, 8)); 4339 __ cmp(Narrow, r6, r1); 4340 __ b(lt, &l_213c); 4341 __ ldr(Narrow, r6, MemOperand(r3, 8)); 4342 __ ldr(Narrow, r1, MemOperand(r7, 12)); 4343 __ cmp(Narrow, r6, r1); 4344 __ b(gt, &l_213c); 4345 // -------------- 4346 __ bind(&l_2304); 4347 __ movs(Narrow, r0, 0U); 4348 __ add(Narrow, sp, sp, 12U); 4349 __ pop(RegisterList(0x8ff0)); 4350 // -------------- 4351 __ bind(&l_230c); 4352 __ ldr(Narrow, r3, MemOperand(r4)); 4353 __ mov(Narrow, r0, r4); 4354 __ ldr(Narrow, r3, MemOperand(r3, 36)); 4355 __ blx(r3); 4356 __ b(Narrow, &l_21a6); 4357 // -------------- 4358 __ bind(&l_2316); 4359 __ ldr(Narrow, r0, MemOperand(r3, 88)); 4360 __ ldr(Narrow, r7, MemOperand(r4, 4)); 4361 __ ldr(Narrow, r6, MemOperand(r0, 4)); 4362 __ cmp(Narrow, r6, r7); 4363 __ b(ne, Narrow, &l_2256); 4364 __ ldr(Narrow, r7, MemOperand(r3, 100)); 4365 __ cmp(Narrow, r7, sl); 4366 __ b(ne, Narrow, &l_2256); 4367 __ ldr(Narrow, r7, MemOperand(r3, 92)); 4368 __ cmp(Narrow, r8, r7); 4369 __ b(eq, Narrow, &l_2284); 4370 __ ite(gt); 4371 __ mov(gt, Narrow, r0, 1U); 4372 __ mov(le, Narrow, r0, 0U); 4373 __ b(Narrow, &l_225c); 4374 // -------------- 4375 __ bind(&l_2334); 4376 __ mvn(r2, 2147483648U); 4377 __ b(Narrow, &l_2220); 4378 // -------------- 4379 __ bind(&l_233a); 4380 __ ldr(Narrow, r3, MemOperand(r4, 4)); 4381 __ cmp(Narrow, ip, r3); 4382 __ b(ne, &l_21f6); 4383 __ cmp(Narrow, r7, sl); 4384 __ b(ne, &l_21f6); 4385 __ ldr(r3, MemOperand(r1, -20)); 4386 __ cmp(Narrow, r8, r3); 4387 __ b(eq, Narrow, &l_2334); 4388 __ ite(gt); 4389 __ mov(gt, Narrow, r3, 1U); 4390 __ mov(le, Narrow, r3, 0U); 4391 __ b(Narrow, &l_21fc); 4392 __ push(RegisterList(0x43f0)); 4393 __ mov(Narrow, r5, r0); 4394 __ mov(Narrow, r6, r1); 4395 __ ldr(Narrow, r0, MemOperand(r0, 4)); 4396 __ sub(Narrow, sp, sp, 12U); 4397 __ ldr(Narrow, r1, MemOperand(r5, 8)); 4398 __ cmp(Narrow, r0, r1); 4399 __ b(eq, Narrow, &l_2394); 4400 __ cbz(r0, &l_2374); 4401 __ ldr(r1, MemOperand(r0, -4)); 4402 __ str(Narrow, r1, MemOperand(r0)); 4403 __ ldr(Narrow, r0, MemOperand(r5, 4)); 4404 // -------------- 4405 __ bind(&l_2374); 4406 __ subs(Narrow, r4, r0, 4U); 4407 __ adds(Narrow, r1, r0, 4U); 4408 __ subs(Narrow, r4, r4, r6); 4409 __ str(Narrow, r1, MemOperand(r5, 4)); 4410 __ lsrs(Narrow, r3, r4, 2U); 4411 __ ldr(Narrow, r5, MemOperand(r2)); 4412 __ b(eq, Narrow, &l_238c); 4413 __ subs(Narrow, r0, r0, r4); 4414 __ mov(Narrow, r2, r4); 4415 __ mov(Narrow, r1, r6); 4416 // -------------- 4417 __ bind(&l_2388); 4418 __ bl(&l_2388); 4419 // -------------- 4420 __ bind(&l_238c); 4421 __ str(Narrow, r5, MemOperand(r6)); 4422 // -------------- 4423 __ bind(&l_238e); 4424 __ add(Narrow, sp, sp, 12U); 4425 __ pop(RegisterList(0x83f0)); 4426 // -------------- 4427 __ bind(&l_2394); 4428 __ ldr(Narrow, r1, MemOperand(r5)); 4429 __ subs(Narrow, r3, r0, r1); 4430 __ asrs(Narrow, r3, r3, 2U); 4431 __ b(eq, Narrow, &l_23ee); 4432 __ lsls(Narrow, r0, r3, 1U); 4433 __ cmp(Narrow, r3, r0); 4434 __ b(ls, Narrow, &l_240a); 4435 // -------------- 4436 __ bind(&l_23a2); 4437 __ subs(Narrow, r7, r6, r1); 4438 __ mvn(r4, 3U); 4439 // -------------- 4440 __ bind(&l_23a8); 4441 __ mov(Narrow, r0, r4); 4442 } 4443 void Generate_34(TestAssembler* assembler) { 4444 __ str(Narrow, r2, MemOperand(sp, 4)); 4445 // -------------- 4446 __ bind(&l_23ac); 4447 __ bl(&l_23ac); 4448 __ ldr(Narrow, r2, MemOperand(sp, 4)); 4449 __ mov(Narrow, r9, r0); 4450 // -------------- 4451 __ bind(&l_23b4); 4452 __ cmn(r9, r7); 4453 __ itt(ne); 4454 __ ldr(ne, Narrow, r3, MemOperand(r2)); 4455 __ str(ne, r3, MemOperand(r9, r7)); 4456 __ ldr(Narrow, r1, MemOperand(r5)); 4457 __ subs(Narrow, r7, r6, r1); 4458 __ lsrs(Narrow, r3, r7, 2U); 4459 __ b(ne, Narrow, &l_2400); 4460 // -------------- 4461 __ bind(&l_23c8); 4462 __ ldr(Narrow, r3, MemOperand(r5, 4)); 4463 __ adds(r7, 4U); 4464 __ add(Narrow, r7, r7, r9); 4465 __ rsb(r8, r6, r3); 4466 __ lsrs(r3, r8, 2U); 4467 __ b(ne, Narrow, &l_23f4); 4468 // -------------- 4469 __ bind(&l_23d8); 4470 __ ldr(Narrow, r0, MemOperand(r5)); 4471 __ add(Narrow, r7, r7, r8); 4472 __ cbz(r0, &l_23e2); 4473 // -------------- 4474 __ bind(&l_23de); 4475 __ bl(&l_23de); 4476 // -------------- 4477 __ bind(&l_23e2); 4478 __ add(Narrow, r4, r4, r9); 4479 __ str(r9, MemOperand(r5)); 4480 __ str(Narrow, r4, MemOperand(r5, 8)); 4481 __ str(Narrow, r7, MemOperand(r5, 4)); 4482 __ b(Narrow, &l_238e); 4483 // -------------- 4484 __ bind(&l_23ee); 4485 __ subs(Narrow, r7, r6, r1); 4486 __ movs(Narrow, r4, 4U); 4487 __ b(Narrow, &l_23a8); 4488 // -------------- 4489 __ bind(&l_23f4); 4490 __ mov(Narrow, r1, r6); 4491 __ mov(Narrow, r0, r7); 4492 __ mov(Narrow, r2, r8); 4493 // -------------- 4494 __ bind(&l_23fa); 4495 __ bl(&l_23fa); 4496 __ b(Narrow, &l_23d8); 4497 // -------------- 4498 __ bind(&l_2400); 4499 __ mov(Narrow, r0, r9); 4500 __ mov(Narrow, r2, r7); 4501 // -------------- 4502 __ bind(&l_2404); 4503 __ bl(&l_2404); 4504 __ b(Narrow, &l_23c8); 4505 // -------------- 4506 __ bind(&l_240a); 4507 __ cmp(r0, 1073741824U); 4508 __ b(cs, Narrow, &l_23a2); 4509 __ lsls(Narrow, r4, r3, 3U); 4510 __ subs(Narrow, r7, r6, r1); 4511 __ mov(Narrow, r9, r0); 4512 __ cmp(Narrow, r0, 0U); 4513 __ b(eq, Narrow, &l_23b4); 4514 __ b(Narrow, &l_23a8); 4515 __ ldr(Narrow, r3, MemOperand(r1)); 4516 __ push(Narrow, RegisterList(r4, r5, r6, lr)); 4517 __ sub(Narrow, sp, sp, 8U); 4518 __ mov(Narrow, r6, r0); 4519 __ mov(Narrow, r5, r1); 4520 __ mov(Narrow, r0, r3); 4521 __ ldr(Narrow, r2, MemOperand(r3)); 4522 __ str(Narrow, r3, MemOperand(sp, 4)); 4523 __ ldr(Narrow, r3, MemOperand(r2, 12)); 4524 __ blx(r3); 4525 __ cbnz(r0, &l_2474); 4526 // -------------- 4527 __ bind(&l_2432); 4528 __ ldr(Narrow, r0, MemOperand(sp, 4)); 4529 __ ldr(Narrow, r3, MemOperand(r0)); 4530 __ ldr(Narrow, r3, MemOperand(r3, 8)); 4531 __ blx(r3); 4532 __ cbz(r0, &l_2446); 4533 __ ldr(Narrow, r0, MemOperand(sp, 4)); 4534 __ cbz(r0, &l_2446); 4535 __ ldr(Narrow, r3, MemOperand(r0)); 4536 __ ldr(Narrow, r3, MemOperand(r3, 4)); 4537 __ blx(r3); 4538 // -------------- 4539 __ bind(&l_2446); 4540 __ ldr(Narrow, r4, MemOperand(r6, 4)); 4541 __ add(r1, r5, 24U); 4542 __ cmp(Narrow, r1, r4); 4543 __ b(eq, Narrow, &l_246a); 4544 __ subs(Narrow, r2, r4, r1); 4545 __ mov(r3, 43691U); 4546 __ asrs(Narrow, r0, r2, 3U); 4547 __ movt(r3, 43690U); 4548 __ mul(r3, r3, r0); 4549 __ cmp(Narrow, r3, 0U); 4550 __ b(le, Narrow, &l_246a); 4551 __ mov(Narrow, r0, r5); 4552 // -------------- 4553 __ bind(&l_2466); 4554 __ bl(&l_2466); 4555 // -------------- 4556 __ bind(&l_246a); 4557 __ subs(Narrow, r4, r4, 24U); 4558 __ mov(Narrow, r0, r5); 4559 __ str(Narrow, r4, MemOperand(r6, 4)); 4560 __ add(Narrow, sp, sp, 8U); 4561 __ pop(Narrow, RegisterList(r4, r5, r6, pc)); 4562 // -------------- 4563 __ bind(&l_2474); 4564 __ ldr(Narrow, r1, MemOperand(r6, 16)); 4565 __ ldr(Narrow, r3, MemOperand(r6, 20)); 4566 __ cmp(Narrow, r1, r3); 4567 __ b(eq, Narrow, &l_248a); 4568 __ cbz(r1, &l_2484); 4569 __ ldr(Narrow, r3, MemOperand(sp, 4)); 4570 __ str(Narrow, r3, MemOperand(r1)); 4571 __ ldr(Narrow, r1, MemOperand(r6, 16)); 4572 // -------------- 4573 __ bind(&l_2484); 4574 __ adds(r1, 4U); 4575 __ str(Narrow, r1, MemOperand(r6, 16)); 4576 __ b(Narrow, &l_2432); 4577 // -------------- 4578 __ bind(&l_248a); 4579 __ add(r0, r6, 12U); 4580 __ add(Narrow, r2, sp, 4U); 4581 // -------------- 4582 __ bind(&l_2490); 4583 __ bl(&l_2490); 4584 } 4585 void Generate_35(TestAssembler* assembler) { 4586 __ b(Narrow, &l_2432); 4587 __ nop(Narrow); 4588 __ push(RegisterList(0x4ff8)); 4589 __ mov(Narrow, r5, r0); 4590 __ mov(Narrow, r6, r1); 4591 __ ldr(Narrow, r0, MemOperand(r0)); 4592 __ mov(Narrow, r8, r2); 4593 __ mov(Narrow, fp, r3); 4594 __ ldr(Narrow, r1, MemOperand(r5, 4)); 4595 __ cmp(Narrow, r0, r1); 4596 __ b(eq, Narrow, &l_24ca); 4597 __ ldr(Narrow, r3, MemOperand(r0)); 4598 __ cmp(Narrow, r2, r3); 4599 __ it(ne); 4600 __ add(ne, r4, r0, 24U); 4601 __ b(ne, Narrow, &l_24c4); 4602 __ b(Narrow, &l_25ce); 4603 // -------------- 4604 __ bind(&l_24ba); 4605 __ ldr(r2, MemOperand(r4, 24, PostIndex)); 4606 __ cmp(Narrow, r8, r2); 4607 __ b(eq, &l_25ce); 4608 // -------------- 4609 __ bind(&l_24c4); 4610 __ cmp(Narrow, r4, r1); 4611 __ mov(Narrow, r0, r4); 4612 __ b(ne, Narrow, &l_24ba); 4613 // -------------- 4614 __ bind(&l_24ca); 4615 __ ldr(r3, MemOperand(r8)); 4616 __ mov(Narrow, r0, r8); 4617 __ mov(sl, 0U); 4618 __ ldr(Narrow, r3, MemOperand(r3, 40)); 4619 __ blx(r3); 4620 __ ldr(r3, MemOperand(r8)); 4621 __ mov(Narrow, r7, r0); 4622 __ mov(Narrow, r0, r8); 4623 __ ldr(Narrow, r3, MemOperand(r3, 44)); 4624 __ blx(r3); 4625 __ mov(Narrow, r9, r0); 4626 // -------------- 4627 __ bind(&l_24e6); 4628 __ subs(Narrow, r4, r7, 1U); 4629 __ ldr(Narrow, r2, MemOperand(r6)); 4630 __ add(r3, r4, fp); 4631 __ mov(Narrow, r0, r6); 4632 __ bic(r4, r3, r4); 4633 __ rsb(r1, fp, r4); 4634 __ ldr(Narrow, r3, MemOperand(r2, 48)); 4635 __ blx(r3); 4636 __ cmp(Narrow, r9, r4); 4637 __ b(le, Narrow, &l_2510); 4638 // -------------- 4639 __ bind(&l_2500); 4640 __ ldr(Narrow, r3, MemOperand(r6)); 4641 __ add(Narrow, r4, r4, r7); 4642 __ mov(Narrow, r0, r6); 4643 __ mov(Narrow, r1, r7); 4644 __ ldr(Narrow, r3, MemOperand(r3, 48)); 4645 __ blx(r3); 4646 __ cmp(Narrow, r9, r4); 4647 __ b(gt, Narrow, &l_2500); 4648 // -------------- 4649 __ bind(&l_2510); 4650 __ ldr(Narrow, r2, MemOperand(r6)); 4651 __ movw(r3, 0U); 4652 __ movt(r3, 0U); 4653 __ mov(Narrow, r0, r6); 4654 __ ldr(Narrow, r2, MemOperand(r2)); 4655 __ cmp(Narrow, r2, r3); 4656 __ b(ne, Narrow, &l_25f4); 4657 // -------------- 4658 __ bind(&l_2522); 4659 __ bl(&l_2522); 4660 __ mov(Narrow, r1, r0); 4661 // -------------- 4662 __ bind(&l_2528); 4663 __ ldr(r3, MemOperand(r8)); 4664 __ mov(Narrow, r0, r8); 4665 __ str(r4, MemOperand(r8, 20)); 4666 __ ldr(Narrow, r3, MemOperand(r3, 20)); 4667 __ blx(r3); 4668 __ movs(Narrow, r3, 1U); 4669 __ strb(r3, MemOperand(r8, 16)); 4670 __ cmp(sl, 0U); 4671 __ b(eq, Narrow, &l_25c8); 4672 __ ldr(Narrow, r7, MemOperand(r5)); 4673 __ ldr(Narrow, r0, MemOperand(r5, 4)); 4674 __ cmp(Narrow, r7, r0); 4675 __ b(eq, Narrow, &l_25fa); 4676 __ ldr(Narrow, r3, MemOperand(r7)); 4677 __ ldr(r6, MemOperand(sl)); 4678 __ cmp(Narrow, r3, r6); 4679 __ it(ne); 4680 __ add(ne, r3, r7, 24U); 4681 __ b(ne, Narrow, &l_2564); 4682 __ b(Narrow, &l_25d8); 4683 // -------------- 4684 __ bind(&l_255c); 4685 __ ldr(r2, MemOperand(r3, 24, PostIndex)); 4686 __ cmp(Narrow, r2, r6); 4687 __ b(eq, Narrow, &l_25da); 4688 // -------------- 4689 __ bind(&l_2564); 4690 __ cmp(Narrow, r3, r0); 4691 __ mov(Narrow, r1, r3); 4692 __ b(ne, Narrow, &l_255c); 4693 // -------------- 4694 __ bind(&l_256a); 4695 __ subs(Narrow, r2, r3, r7); 4696 __ mov(r0, 43691U); 4697 __ asrs(Narrow, r2, r2, 3U); 4698 __ movt(r0, 43690U); 4699 __ ldr(Narrow, r1, MemOperand(r5, 28)); 4700 __ mvn(r6, 2147483648U); 4701 __ mul(r2, r0, r2); 4702 __ ldr(ip, MemOperand(r5, 24)); 4703 __ add(lr, r1, 4294967295U); 4704 __ add(r0, ip, Operand(lr, LSL, 1)); 4705 __ cmp(Narrow, r2, 0U); 4706 __ str(Narrow, r0, MemOperand(r5, 40)); 4707 __ b(le, Narrow, &l_25be); 4708 } 4709 void Generate_36(TestAssembler* assembler) { 4710 // -------------- 4711 __ bind(&l_2592); 4712 __ ldr(r1, MemOperand(r3, -24)); 4713 __ subs(Narrow, r3, r3, 24U); 4714 __ ldr(Narrow, r2, MemOperand(r3, 12)); 4715 __ ldr(r8, MemOperand(r3, 8)); 4716 __ ldr(Narrow, r1, MemOperand(r1, 4)); 4717 __ subs(r2, 1U); 4718 __ mvn(r9, r2); 4719 __ add(Narrow, r2, r2, r1); 4720 __ subs(Narrow, r1, r6, r1); 4721 __ cmp(Narrow, r1, r8); 4722 __ ite(le); 4723 __ and_(le, r6, r9, r1); 4724 __ and_(gt, r6, r9, r8); 4725 __ cmp(Narrow, r3, r7); 4726 __ add(Narrow, r0, r0, r2); 4727 __ str(Narrow, r0, MemOperand(r5, 40)); 4728 __ b(ne, Narrow, &l_2592); 4729 // -------------- 4730 __ bind(&l_25be); 4731 __ rsb(r1, ip, r6); 4732 __ bic(r1, r1, lr); 4733 __ str(Narrow, r1, MemOperand(r5, 36)); 4734 // -------------- 4735 __ bind(&l_25c8); 4736 __ mov(Narrow, r0, r4); 4737 __ pop(RegisterList(0x8ff8)); 4738 // -------------- 4739 __ bind(&l_25ce); 4740 __ ldr(Narrow, r7, MemOperand(r0, 12)); 4741 __ mov(Narrow, sl, r0); 4742 __ ldr(r9, MemOperand(r0, 4)); 4743 __ b(Narrow, &l_24e6); 4744 // -------------- 4745 __ bind(&l_25d8); 4746 __ mov(Narrow, r1, r7); 4747 // -------------- 4748 __ bind(&l_25da); 4749 __ mov(Narrow, r0, r5); 4750 // -------------- 4751 __ bind(&l_25dc); 4752 __ bl(&l_25dc); 4753 __ ldr(Narrow, r7, MemOperand(r5)); 4754 __ movs(Narrow, r2, 0U); 4755 __ ldr(Narrow, r3, MemOperand(r5, 4)); 4756 __ str(Narrow, r2, MemOperand(r5, 40)); 4757 __ cmp(Narrow, r7, r3); 4758 __ b(ne, Narrow, &l_256a); 4759 // -------------- 4760 __ bind(&l_25ec); 4761 __ mvn(r3, 2147483648U); 4762 __ str(Narrow, r3, MemOperand(r5, 36)); 4763 __ b(Narrow, &l_25c8); 4764 // -------------- 4765 __ bind(&l_25f4); 4766 __ blx(r2); 4767 __ mov(Narrow, r1, r0); 4768 __ b(Narrow, &l_2528); 4769 // -------------- 4770 __ bind(&l_25fa); 4771 __ movs(Narrow, r3, 0U); 4772 __ str(Narrow, r3, MemOperand(r5, 40)); 4773 __ b(Narrow, &l_25ec); 4774 __ push(RegisterList(0x4ff0)); 4775 __ mov(Narrow, r8, r0); 4776 __ ldr(Narrow, r4, MemOperand(r0, 4)); 4777 __ sub(Narrow, sp, sp, 36U); 4778 __ mov(Narrow, r5, r1); 4779 __ mov(Narrow, r6, r2); 4780 __ ldr(Narrow, r3, MemOperand(r0, 8)); 4781 __ cmp(Narrow, r4, r3); 4782 __ b(eq, Narrow, &l_2694); 4783 __ mvn(ip, 23U); 4784 __ cbz(r4, &l_2630); 4785 __ sub(ip, r4, 24U); 4786 __ mov(Narrow, r7, r4); 4787 __ mov(Narrow, lr, ip); 4788 __ ldm(lr, WRITE_BACK, RegisterList(r0, r1, r2, r3)); 4789 __ stm(Narrow, r7, WRITE_BACK, RegisterList(r0, r1, r2, r3)); 4790 __ ldm(lr, NO_WRITE_BACK, RegisterList(r0, r1)); 4791 __ stm(r7, NO_WRITE_BACK, RegisterList(r0, r1)); 4792 // -------------- 4793 __ bind(&l_2630); 4794 __ rsb(lr, r5, ip); 4795 __ mov(r9, 43691U); 4796 __ asr(lr, lr, 3U); 4797 __ ldm(Narrow, r6, WRITE_BACK, RegisterList(r0, r1, r2, r3)); 4798 __ movt(r9, 43690U); 4799 __ mul(lr, r9, lr); 4800 __ add(Narrow, r7, sp, 8U); 4801 __ stm(Narrow, r7, WRITE_BACK, RegisterList(r0, r1, r2, r3)); 4802 __ ldm(r6, NO_WRITE_BACK, RegisterList(r0, r1)); 4803 __ add(r3, r4, 24U); 4804 __ cmp(lr, 0U); 4805 __ str(r3, MemOperand(r8, 4)); 4806 __ stm(r7, NO_WRITE_BACK, RegisterList(r0, r1)); 4807 __ b(le, Narrow, &l_2680); 4808 // -------------- 4809 __ bind(&l_2660); 4810 __ sub(r7, ip, 24U); 4811 __ sub(r6, r4, 24U); 4812 __ ldm(Narrow, r7, WRITE_BACK, RegisterList(r0, r1, r2, r3)); 4813 __ mov(Narrow, r4, r6); 4814 __ subs(lr, lr, 1U); 4815 __ sub(ip, ip, 24U); 4816 __ stm(Narrow, r6, WRITE_BACK, RegisterList(r0, r1, r2, r3)); 4817 __ ldm(r7, NO_WRITE_BACK, RegisterList(r0, r1)); 4818 __ stm(r6, NO_WRITE_BACK, RegisterList(r0, r1)); 4819 __ b(ne, Narrow, &l_2660); 4820 // -------------- 4821 __ bind(&l_2680); 4822 __ add(Narrow, r4, sp, 8U); 4823 __ ldm(Narrow, r4, WRITE_BACK, RegisterList(r0, r1, r2, r3)); 4824 __ stm(Narrow, r5, WRITE_BACK, RegisterList(r0, r1, r2, r3)); 4825 __ ldm(r4, NO_WRITE_BACK, RegisterList(r0, r1)); 4826 __ stm(r5, NO_WRITE_BACK, RegisterList(r0, r1)); 4827 // -------------- 4828 __ bind(&l_268e); 4829 __ add(Narrow, sp, sp, 36U); 4830 __ pop(RegisterList(0x8ff0)); 4831 // -------------- 4832 __ bind(&l_2694); 4833 __ ldr(Narrow, r1, MemOperand(r0)); 4834 __ mov(r3, 43691U); 4835 __ movt(r3, 43690U); 4836 __ subs(Narrow, r2, r4, r1); 4837 __ asrs(Narrow, r2, r2, 3U); 4838 __ mul(r3, r3, r2); 4839 __ cmp(Narrow, r3, 0U); 4840 } 4841 void Generate_37(TestAssembler* assembler) { 4842 __ b(ne, Narrow, &l_2794); 4843 __ subs(Narrow, r7, r5, r1); 4844 __ movs(Narrow, r3, 24U); 4845 __ str(Narrow, r3, MemOperand(sp, 4)); 4846 // -------------- 4847 __ bind(&l_26b0); 4848 __ ldr(Narrow, r0, MemOperand(sp, 4)); 4849 // -------------- 4850 __ bind(&l_26b2); 4851 __ bl(&l_26b2); 4852 __ ldr(r4, MemOperand(r8, 4)); 4853 __ mov(Narrow, sl, r0); 4854 __ ldr(fp, MemOperand(r8)); 4855 __ add(r9, r0, 24U); 4856 // -------------- 4857 __ bind(&l_26c4); 4858 __ adds(r7, sl, r7); 4859 __ itttt(ne); 4860 __ ldm(ne, Narrow, r6, WRITE_BACK, RegisterList(r0, r1, r2, r3)); 4861 __ stm(ne, Narrow, r7, WRITE_BACK, RegisterList(r0, r1, r2, r3)); 4862 __ ldm(ne, r6, NO_WRITE_BACK, RegisterList(r0, r1)); 4863 __ stm(ne, r7, NO_WRITE_BACK, RegisterList(r0, r1)); 4864 __ cmp(Narrow, r5, fp); 4865 __ b(eq, Narrow, &l_272a); 4866 __ mov(Narrow, r3, r4); 4867 __ mov(Narrow, ip, fp); 4868 __ mov(Narrow, r4, sl); 4869 __ mov(Narrow, lr, r3); 4870 // -------------- 4871 __ bind(&l_26e2); 4872 __ mov(Narrow, r7, ip); 4873 __ mov(Narrow, r6, r4); 4874 __ add(ip, ip, 24U); 4875 __ cbz(r4, &l_26f8); 4876 __ ldm(Narrow, r7, WRITE_BACK, RegisterList(r0, r1, r2, r3)); 4877 __ stm(Narrow, r6, WRITE_BACK, RegisterList(r0, r1, r2, r3)); 4878 __ ldm(r7, NO_WRITE_BACK, RegisterList(r0, r1)); 4879 __ stm(r6, NO_WRITE_BACK, RegisterList(r0, r1)); 4880 // -------------- 4881 __ bind(&l_26f8); 4882 __ cmp(Narrow, r5, ip); 4883 __ add(r4, r4, 24U); 4884 __ b(ne, Narrow, &l_26e2); 4885 __ add(r2, fp, 24U); 4886 __ mov(r3, 43691U); 4887 __ subs(Narrow, r2, r5, r2); 4888 __ movt(r3, 2730U); 4889 __ lsrs(Narrow, r2, r2, 3U); 4890 __ mov(Narrow, r4, lr); 4891 __ mul(r3, r3, r2); 4892 __ bic(r3, r3, 0xe0000000); 4893 __ adds(r3, 1U); 4894 __ lsl(r9, r3, 5U); 4895 __ sub(r9, r9, Operand(r3, LSL, 3)); 4896 __ add(r9, r9, 24U); 4897 __ add(Narrow, r9, r9, sl); 4898 // -------------- 4899 __ bind(&l_272a); 4900 __ cmp(Narrow, r5, r4); 4901 __ b(eq, Narrow, &l_2776); 4902 __ mov(Narrow, ip, r4); 4903 __ mov(Narrow, lr, r5); 4904 __ mov(Narrow, r4, r9); 4905 // -------------- 4906 __ bind(&l_2734); 4907 __ mov(Narrow, r7, lr); 4908 __ mov(Narrow, r6, r4); 4909 __ add(lr, lr, 24U); 4910 __ cbz(r4, &l_274a); 4911 __ ldm(Narrow, r7, WRITE_BACK, RegisterList(r0, r1, r2, r3)); 4912 __ stm(Narrow, r6, WRITE_BACK, RegisterList(r0, r1, r2, r3)); 4913 __ ldm(r7, NO_WRITE_BACK, RegisterList(r0, r1)); 4914 __ stm(r6, NO_WRITE_BACK, RegisterList(r0, r1)); 4915 // -------------- 4916 __ bind(&l_274a); 4917 __ cmp(Narrow, lr, ip); 4918 __ add(r4, r4, 24U); 4919 __ b(ne, Narrow, &l_2734); 4920 __ add(r3, r5, 24U); 4921 __ mov(r2, 43691U); 4922 __ rsb(r3, r3, lr); 4923 __ movt(r2, 2730U); 4924 __ lsrs(Narrow, r3, r3, 3U); 4925 __ mul(r3, r2, r3); 4926 __ bic(r3, r3, 0xe0000000); 4927 __ adds(r3, 1U); 4928 __ lsls(Narrow, r2, r3, 5U); 4929 __ sub(r3, r2, Operand(r3, LSL, 3)); 4930 __ add(Narrow, r9, r9, r3); 4931 // -------------- 4932 __ bind(&l_2776); 4933 __ cmp(fp, 0U); 4934 __ b(eq, Narrow, &l_2782); 4935 __ mov(Narrow, r0, fp); 4936 // -------------- 4937 __ bind(&l_277e); 4938 __ bl(&l_277e); 4939 // -------------- 4940 __ bind(&l_2782); 4941 __ ldr(Narrow, r3, MemOperand(sp, 4)); 4942 __ str(sl, MemOperand(r8)); 4943 __ str(r9, MemOperand(r8, 4)); 4944 __ add(Narrow, r3, r3, sl); 4945 __ str(r3, MemOperand(r8, 8)); 4946 __ b(Narrow, &l_268e); 4947 // -------------- 4948 __ bind(&l_2794); 4949 __ lsls(Narrow, r2, r3, 1U); 4950 __ cmp(Narrow, r3, r2); 4951 __ b(ls, Narrow, &l_27a4); 4952 // -------------- 4953 __ bind(&l_279a); 4954 __ mvn(r3, 15U); 4955 __ subs(Narrow, r7, r5, r1); 4956 __ str(Narrow, r3, MemOperand(sp, 4)); 4957 __ b(Narrow, &l_26b0); 4958 // -------------- 4959 __ bind(&l_27a4); 4960 __ mov(r0, 43690U); 4961 __ movt(r0, 2730U); 4962 __ cmp(Narrow, r2, r0); 4963 __ b(hi, Narrow, &l_279a); 4964 __ lsls(Narrow, r0, r3, 6U); 4965 __ subs(Narrow, r7, r5, r1); 4966 __ mov(Narrow, fp, r1); 4967 __ sub(r3, r0, Operand(r3, LSL, 4)); 4968 __ mov(Narrow, sl, r2); 4969 __ mov(r9, 24U); 4970 } 4971 void Generate_38(TestAssembler* assembler) { 4972 __ str(Narrow, r3, MemOperand(sp, 4)); 4973 __ cmp(Narrow, r2, 0U); 4974 __ b(eq, &l_26c4); 4975 __ b(Narrow, &l_26b0); 4976 __ nop(Narrow); 4977 __ push(Narrow, RegisterList(0x40f8)); 4978 __ mov(Narrow, r2, r1); 4979 __ ldm(r0, NO_WRITE_BACK, RegisterList(r3, r5)); 4980 __ mov(Narrow, r7, r0); 4981 __ cmp(Narrow, r3, r5); 4982 __ b(eq, Narrow, &l_27f0); 4983 __ ldr(Narrow, r1, MemOperand(r1, 8)); 4984 // -------------- 4985 __ bind(&l_27dc); 4986 __ ldr(Narrow, r4, MemOperand(r3, 8)); 4987 __ cmp(Narrow, r4, r1); 4988 __ ite(lt); 4989 __ mov(lt, Narrow, r4, 1U); 4990 __ mov(ge, Narrow, r4, 0U); 4991 __ b(eq, Narrow, &l_280e); 4992 // -------------- 4993 __ bind(&l_27e8); 4994 __ cbz(r4, &l_283c); 4995 __ adds(Narrow, r3, r3, 24U); 4996 __ cmp(Narrow, r3, r5); 4997 __ b(ne, Narrow, &l_27dc); 4998 // -------------- 4999 __ bind(&l_27f0); 5000 __ ldr(Narrow, r3, MemOperand(r7, 8)); 5001 __ cmp(Narrow, r5, r3); 5002 __ b(eq, Narrow, &l_2846); 5003 __ cbz(r5, &l_2808); 5004 __ mov(Narrow, r6, r2); 5005 __ mov(Narrow, r4, r5); 5006 __ ldm(Narrow, r6, WRITE_BACK, RegisterList(r0, r1, r2, r3)); 5007 __ stm(Narrow, r4, WRITE_BACK, RegisterList(r0, r1, r2, r3)); 5008 __ ldm(r6, NO_WRITE_BACK, RegisterList(r0, r1)); 5009 __ stm(r4, NO_WRITE_BACK, RegisterList(r0, r1)); 5010 // -------------- 5011 __ bind(&l_2808); 5012 __ adds(Narrow, r5, r5, 24U); 5013 __ str(Narrow, r5, MemOperand(r7, 4)); 5014 __ pop(Narrow, RegisterList(0x80f8)); 5015 // -------------- 5016 __ bind(&l_280e); 5017 __ ldr(Narrow, r0, MemOperand(r3)); 5018 __ ldr(Narrow, r4, MemOperand(r2)); 5019 __ ldr(Narrow, r6, MemOperand(r0, 4)); 5020 __ ldr(Narrow, r4, MemOperand(r4, 4)); 5021 __ cmp(Narrow, r6, r4); 5022 __ ite(lt); 5023 __ mov(lt, Narrow, r4, 1U); 5024 __ mov(ge, Narrow, r4, 0U); 5025 __ b(ne, Narrow, &l_27e8); 5026 __ ldr(Narrow, r4, MemOperand(r3, 12)); 5027 __ ldr(Narrow, r0, MemOperand(r2, 12)); 5028 __ cmp(Narrow, r4, r0); 5029 __ ite(lt); 5030 __ mov(lt, Narrow, r4, 1U); 5031 __ mov(ge, Narrow, r4, 0U); 5032 __ b(ne, Narrow, &l_27e8); 5033 __ ldr(Narrow, r4, MemOperand(r3, 4)); 5034 __ ldr(Narrow, r0, MemOperand(r2, 4)); 5035 __ cmp(Narrow, r4, r0); 5036 __ ite(lt); 5037 __ mov(lt, Narrow, r4, 1U); 5038 __ mov(ge, Narrow, r4, 0U); 5039 __ b(ne, Narrow, &l_27e8); 5040 // -------------- 5041 __ bind(&l_283c); 5042 __ mov(Narrow, r0, r7); 5043 __ mov(Narrow, r1, r3); 5044 // -------------- 5045 __ bind(&l_2840); 5046 __ bl(&l_2840); 5047 __ pop(Narrow, RegisterList(0x80f8)); 5048 // -------------- 5049 __ bind(&l_2846); 5050 __ mov(Narrow, r0, r7); 5051 __ mov(Narrow, r1, r5); 5052 // -------------- 5053 __ bind(&l_284a); 5054 __ bl(&l_284a); 5055 __ pop(Narrow, RegisterList(0x80f8)); 5056 __ push(RegisterList(0x41f0)); 5057 __ mov(Narrow, r5, r0); 5058 __ ldr(Narrow, r4, MemOperand(r0)); 5059 __ sub(Narrow, sp, sp, 24U); 5060 __ mov(Narrow, r7, r1); 5061 __ ldr(Narrow, r0, MemOperand(r0, 4)); 5062 __ cmp(Narrow, r4, r0); 5063 __ b(ne, Narrow, &l_286c); 5064 __ b(Narrow, &l_2982); 5065 // -------------- 5066 __ bind(&l_2864); 5067 __ adds(Narrow, r4, r4, 24U); 5068 __ cmp(Narrow, r4, r0); 5069 __ b(eq, &l_2982); 5070 // -------------- 5071 __ bind(&l_286c); 5072 __ ldr(Narrow, r3, MemOperand(r4)); 5073 __ cmp(Narrow, r2, r3); 5074 __ b(ne, Narrow, &l_2864); 5075 __ ldr(Narrow, r2, MemOperand(r7, 16)); 5076 __ mov(Narrow, r0, r3); 5077 __ ldr(Narrow, r1, MemOperand(r3)); 5078 __ ldr(Narrow, r3, MemOperand(r4, 8)); 5079 __ ldr(Narrow, r6, MemOperand(r7, 12)); 5080 __ cmp(Narrow, r2, r3); 5081 __ it(ge); 5082 __ mov(ge, Narrow, r2, r3); 5083 __ ldr(Narrow, r3, MemOperand(r4, 4)); 5084 __ str(Narrow, r2, MemOperand(r4, 8)); 5085 __ cmp(Narrow, r3, r6); 5086 __ it(lt); 5087 __ mov(lt, Narrow, r3, r6); 5088 __ str(Narrow, r3, MemOperand(r4, 4)); 5089 __ ldr(Narrow, r3, MemOperand(r1, 32)); 5090 __ blx(r3); 5091 __ cbz(r0, &l_28a2); 5092 __ ldr(Narrow, r0, MemOperand(r4)); 5093 __ ldr(Narrow, r6, MemOperand(r4, 8)); 5094 } 5095 void Generate_39(TestAssembler* assembler) { 5096 __ ldr(Narrow, r3, MemOperand(r0)); 5097 __ ldr(Narrow, r3, MemOperand(r3, 36)); 5098 __ blx(r3); 5099 __ subs(Narrow, r0, r6, r0); 5100 __ str(Narrow, r0, MemOperand(r4, 16)); 5101 // -------------- 5102 __ bind(&l_28a2); 5103 __ ldr(lr, MemOperand(r5)); 5104 __ mov(ip, 43691U); 5105 __ ldr(Narrow, r6, MemOperand(r5, 4)); 5106 __ movt(ip, 43690U); 5107 __ ldr(Narrow, r1, MemOperand(r7, 8)); 5108 __ ldr(Narrow, r2, MemOperand(r4, 12)); 5109 __ rsb(r3, lr, r6); 5110 __ asrs(Narrow, r3, r3, 3U); 5111 __ cmp(Narrow, r2, r1); 5112 __ mul(r3, ip, r3); 5113 __ it(lt); 5114 __ mov(lt, Narrow, r2, r1); 5115 __ str(Narrow, r2, MemOperand(r4, 12)); 5116 __ cmp(Narrow, r3, 1U); 5117 __ b(eq, Narrow, &l_2910); 5118 __ mov(Narrow, lr, r4); 5119 __ mov(Narrow, r7, sp); 5120 __ ldm(lr, WRITE_BACK, RegisterList(r0, r1, r2, r3)); 5121 __ add(r8, r4, 24U); 5122 __ cmp(Narrow, r6, r8); 5123 __ stm(Narrow, r7, WRITE_BACK, RegisterList(r0, r1, r2, r3)); 5124 __ ldm(lr, NO_WRITE_BACK, RegisterList(r0, r1)); 5125 __ stm(r7, NO_WRITE_BACK, RegisterList(r0, r1)); 5126 __ b(eq, Narrow, &l_28fc); 5127 __ rsb(r2, r8, r6); 5128 __ asrs(Narrow, r3, r2, 3U); 5129 __ mul(ip, ip, r3); 5130 __ cmp(ip, 0U); 5131 __ b(le, Narrow, &l_28fc); 5132 __ mov(Narrow, r0, r4); 5133 __ mov(Narrow, r1, r8); 5134 // -------------- 5135 __ bind(&l_28f8); 5136 __ bl(&l_28f8); 5137 // -------------- 5138 __ bind(&l_28fc); 5139 __ sub(r2, r6, 24U); 5140 __ mov(Narrow, r1, sp); 5141 __ str(Narrow, r2, MemOperand(r5, 4)); 5142 __ mov(Narrow, r0, r5); 5143 // -------------- 5144 __ bind(&l_2906); 5145 __ bl(&l_2906); 5146 __ ldr(lr, MemOperand(r5)); 5147 __ ldr(Narrow, r6, MemOperand(r5, 4)); 5148 // -------------- 5149 __ bind(&l_2910); 5150 __ movs(Narrow, r3, 0U); 5151 __ cmp(Narrow, r6, lr); 5152 __ str(Narrow, r3, MemOperand(r5, 40)); 5153 __ itt(eq); 5154 __ mvn(eq, r3, 2147483648U); 5155 __ str(eq, Narrow, r3, MemOperand(r5, 36)); 5156 __ b(eq, Narrow, &l_297c); 5157 __ rsb(r3, lr, r6); 5158 __ mov(r2, 43691U); 5159 __ asrs(Narrow, r3, r3, 3U); 5160 __ movt(r2, 43690U); 5161 __ ldr(Narrow, r1, MemOperand(r5, 28)); 5162 __ ldr(r8, MemOperand(r5, 24)); 5163 __ mul(r3, r2, r3); 5164 __ add(ip, r1, 4294967295U); 5165 __ add(r0, r8, Operand(ip, LSL, 1)); 5166 __ cmp(Narrow, r3, 0U); 5167 __ str(Narrow, r0, MemOperand(r5, 40)); 5168 __ b(le, Narrow, &l_2a00); 5169 __ mov(Narrow, r2, r6); 5170 __ mvn(r1, 2147483648U); 5171 // -------------- 5172 __ bind(&l_294c); 5173 __ ldr(r4, MemOperand(r2, -24)); 5174 __ subs(Narrow, r2, r2, 24U); 5175 __ ldr(Narrow, r3, MemOperand(r2, 12)); 5176 __ ldr(Narrow, r7, MemOperand(r2, 8)); 5177 __ ldr(Narrow, r4, MemOperand(r4, 4)); 5178 __ subs(r3, 1U); 5179 __ mvns(Narrow, r6, r3); 5180 __ subs(Narrow, r1, r1, r4); 5181 __ add(Narrow, r3, r3, r4); 5182 __ cmp(Narrow, r1, r7); 5183 __ ite(le); 5184 __ and_(le, Narrow, r1, r1, r6); 5185 __ and_(gt, r1, r6, r7); 5186 __ cmp(Narrow, r2, lr); 5187 __ add(Narrow, r0, r0, r3); 5188 __ str(Narrow, r0, MemOperand(r5, 40)); 5189 __ b(ne, Narrow, &l_294c); 5190 // -------------- 5191 __ bind(&l_2972); 5192 __ rsb(r1, r8, r1); 5193 __ bic(r1, r1, ip); 5194 __ str(Narrow, r1, MemOperand(r5, 36)); 5195 // -------------- 5196 __ bind(&l_297c); 5197 __ add(Narrow, sp, sp, 24U); 5198 __ pop(RegisterList(0x81f0)); 5199 // -------------- 5200 __ bind(&l_2982); 5201 __ ldr(Narrow, r0, MemOperand(r2, 12)); 5202 __ movs(Narrow, r3, 0U); 5203 __ ldr(Narrow, r6, MemOperand(r2, 8)); 5204 __ mvn(r1, 2147483648U); 5205 __ ldr(Narrow, r4, MemOperand(r2)); 5206 __ str(Narrow, r0, MemOperand(sp, 20)); 5207 __ mov(Narrow, r0, r2); 5208 __ str(Narrow, r2, MemOperand(sp)); 5209 __ str(Narrow, r6, MemOperand(sp, 12)); 5210 __ ldr(Narrow, r2, MemOperand(r4, 32)); 5211 __ str(Narrow, r3, MemOperand(sp, 4)); 5212 __ str(Narrow, r3, MemOperand(sp, 16)); 5213 __ str(Narrow, r1, MemOperand(sp, 8)); 5214 } 5215 void Generate_40(TestAssembler* assembler) { 5216 __ blx(r2); 5217 __ cbnz(r0, &l_29f0); 5218 // -------------- 5219 __ bind(&l_29a2); 5220 __ ldr(Narrow, r2, MemOperand(r7, 16)); 5221 __ ldr(Narrow, r6, MemOperand(sp, 8)); 5222 __ ldr(Narrow, r1, MemOperand(sp)); 5223 __ ldr(Narrow, r4, MemOperand(sp, 4)); 5224 __ ldr(Narrow, r3, MemOperand(r7, 12)); 5225 __ cmp(Narrow, r2, r6); 5226 __ mov(Narrow, r0, r1); 5227 __ ldr(Narrow, r1, MemOperand(r1)); 5228 __ it(ge); 5229 __ mov(ge, Narrow, r2, r6); 5230 __ cmp(Narrow, r3, r4); 5231 __ str(Narrow, r2, MemOperand(sp, 8)); 5232 __ it(lt); 5233 __ mov(lt, Narrow, r3, r4); 5234 __ ldr(Narrow, r2, MemOperand(r1, 32)); 5235 __ str(Narrow, r3, MemOperand(sp, 4)); 5236 __ blx(r2); 5237 __ cbz(r0, &l_29d4); 5238 __ ldr(Narrow, r0, MemOperand(sp)); 5239 __ ldr(Narrow, r4, MemOperand(sp, 8)); 5240 __ ldr(Narrow, r3, MemOperand(r0)); 5241 __ ldr(Narrow, r3, MemOperand(r3, 36)); 5242 __ blx(r3); 5243 __ subs(Narrow, r0, r4, r0); 5244 __ str(Narrow, r0, MemOperand(sp, 16)); 5245 // -------------- 5246 __ bind(&l_29d4); 5247 __ ldr(Narrow, r3, MemOperand(r7, 8)); 5248 __ mov(Narrow, r0, r5); 5249 __ ldr(Narrow, r2, MemOperand(sp, 12)); 5250 __ mov(Narrow, r1, sp); 5251 __ cmp(Narrow, r3, r2); 5252 __ it(lt); 5253 __ mov(lt, Narrow, r3, r2); 5254 __ str(Narrow, r3, MemOperand(sp, 12)); 5255 // -------------- 5256 __ bind(&l_29e4); 5257 __ bl(&l_29e4); 5258 __ ldr(lr, MemOperand(r5)); 5259 __ ldr(Narrow, r6, MemOperand(r5, 4)); 5260 __ b(Narrow, &l_2910); 5261 // -------------- 5262 __ bind(&l_29f0); 5263 __ ldr(Narrow, r0, MemOperand(sp)); 5264 __ ldr(Narrow, r4, MemOperand(sp, 8)); 5265 __ ldr(Narrow, r3, MemOperand(r0)); 5266 __ ldr(Narrow, r3, MemOperand(r3, 36)); 5267 __ blx(r3); 5268 __ subs(Narrow, r0, r4, r0); 5269 __ str(Narrow, r0, MemOperand(sp, 16)); 5270 __ b(Narrow, &l_29a2); 5271 // -------------- 5272 __ bind(&l_2a00); 5273 __ mvn(r1, 2147483648U); 5274 __ b(Narrow, &l_2972); 5275 __ nop(Narrow); 5276 __ cmp(Narrow, r0, r1); 5277 __ b(eq, Narrow, &l_2b02); 5278 __ push(RegisterList(0x4ff0)); 5279 __ add(r6, r0, 24U); 5280 __ cmp(Narrow, r6, r1); 5281 __ sub(Narrow, sp, sp, 44U); 5282 __ b(eq, Narrow, &l_2afc); 5283 __ mov(r3, 43691U); 5284 __ str(Narrow, r1, MemOperand(sp, 8)); 5285 __ movt(r3, 43690U); 5286 __ mov(Narrow, r9, r0); 5287 __ str(Narrow, r3, MemOperand(sp, 12)); 5288 __ add(r8, r0, 48U); 5289 __ str(Narrow, r2, MemOperand(sp, 4)); 5290 __ b(Narrow, &l_2a86); 5291 // -------------- 5292 __ bind(&l_2a30); 5293 __ ldr(Narrow, r7, MemOperand(sp, 12)); 5294 __ rsb(lr, r9, r6); 5295 __ sub(r5, r8, 24U); 5296 __ asr(ip, lr, 3U); 5297 __ ldm(Narrow, r5, WRITE_BACK, RegisterList(r0, r1, r2, r3)); 5298 __ add(Narrow, r4, sp, 16U); 5299 __ mul(ip, r7, ip); 5300 __ stm(Narrow, r4, WRITE_BACK, RegisterList(r0, r1, r2, r3)); 5301 __ ldm(r5, NO_WRITE_BACK, RegisterList(r0, r1)); 5302 __ cmp(ip, 0U); 5303 __ stm(r4, NO_WRITE_BACK, RegisterList(r0, r1)); 5304 __ b(le, Narrow, &l_2a66); 5305 __ rsb(r0, lr, 24U); 5306 __ rsb(r1, lr, r6); 5307 __ add(Narrow, r0, r0, r6); 5308 __ mov(Narrow, r2, lr); 5309 // -------------- 5310 __ bind(&l_2a62); 5311 __ bl(&l_2a62); 5312 // -------------- 5313 __ bind(&l_2a66); 5314 __ add(Narrow, r5, sp, 16U); 5315 __ mov(Narrow, r4, r9); 5316 __ ldm(Narrow, r5, WRITE_BACK, RegisterList(r0, r1, r2, r3)); 5317 __ mov(Narrow, lr, r8); 5318 __ add(sl, r8, 24U); 5319 __ adds(Narrow, r6, r6, 24U); 5320 __ mov(Narrow, r8, sl); 5321 __ stm(Narrow, r4, WRITE_BACK, RegisterList(r0, r1, r2, r3)); 5322 __ ldr(Narrow, r3, MemOperand(sp, 8)); 5323 __ ldm(r5, NO_WRITE_BACK, RegisterList(r0, r1)); 5324 __ cmp(Narrow, lr, r3); 5325 __ stm(r4, NO_WRITE_BACK, RegisterList(r0, r1)); 5326 __ b(eq, Narrow, &l_2afc); 5327 // -------------- 5328 __ bind(&l_2a86); 5329 __ mov(Narrow, r0, r6); 5330 __ mov(Narrow, r1, r9); 5331 __ ldr(Narrow, r3, MemOperand(sp, 4)); 5332 __ blx(r3); 5333 __ cmp(Narrow, r0, 0U); 5334 } 5335 void Generate_41(TestAssembler* assembler) { 5336 __ b(ne, Narrow, &l_2a30); 5337 __ sub(lr, r8, 24U); 5338 __ add(sl, r8, 24U); 5339 __ ldm(lr, WRITE_BACK, RegisterList(r0, r1, r2, r3)); 5340 __ add(Narrow, r4, sp, 16U); 5341 __ sub(fp, r8, 48U); 5342 __ sub(r5, r8, 24U); 5343 __ pld(MemOperand(sl)); 5344 __ ldr(Narrow, r7, MemOperand(sp, 4)); 5345 __ stm(Narrow, r4, WRITE_BACK, RegisterList(r0, r1, r2, r3)); 5346 __ ldm(lr, NO_WRITE_BACK, RegisterList(r0, r1)); 5347 __ stm(r4, NO_WRITE_BACK, RegisterList(r0, r1)); 5348 __ b(Narrow, &l_2ad2); 5349 // -------------- 5350 __ bind(&l_2aba); 5351 __ add(r5, fp, 24U); 5352 __ add(r4, fp, 48U); 5353 __ mov(Narrow, lr, r5); 5354 __ ldm(lr, WRITE_BACK, RegisterList(r0, r1, r2, r3)); 5355 __ stm(Narrow, r4, WRITE_BACK, RegisterList(r0, r1, r2, r3)); 5356 __ ldm(lr, NO_WRITE_BACK, RegisterList(r0, r1)); 5357 __ stm(r4, NO_WRITE_BACK, RegisterList(r0, r1)); 5358 // -------------- 5359 __ bind(&l_2ad2); 5360 __ mov(Narrow, r1, fp); 5361 __ add(Narrow, r0, sp, 16U); 5362 __ blx(r7); 5363 __ sub(fp, fp, 24U); 5364 __ cmp(Narrow, r0, 0U); 5365 __ b(ne, Narrow, &l_2aba); 5366 __ add(Narrow, r4, sp, 16U); 5367 __ mov(Narrow, lr, r8); 5368 __ ldm(Narrow, r4, WRITE_BACK, RegisterList(r0, r1, r2, r3)); 5369 __ adds(Narrow, r6, r6, 24U); 5370 __ mov(Narrow, r8, sl); 5371 __ str(Narrow, r7, MemOperand(sp, 4)); 5372 __ stm(Narrow, r5, WRITE_BACK, RegisterList(r0, r1, r2, r3)); 5373 __ ldr(Narrow, r3, MemOperand(sp, 8)); 5374 __ ldm(r4, NO_WRITE_BACK, RegisterList(r0, r1)); 5375 __ cmp(Narrow, lr, r3); 5376 __ stm(r5, NO_WRITE_BACK, RegisterList(r0, r1)); 5377 __ b(ne, Narrow, &l_2a86); 5378 // -------------- 5379 __ bind(&l_2afc); 5380 __ add(Narrow, sp, sp, 44U); 5381 __ pop(RegisterList(0x8ff0)); 5382 // -------------- 5383 __ bind(&l_2b02); 5384 __ bx(lr); 5385 __ sub(Narrow, sp, sp, 8U); 5386 __ push(RegisterList(0x4ff0)); 5387 __ add(r8, r2, 4294967295U); 5388 __ add(r8, r8, Operand(r8, LSR, 31)); 5389 __ sub(Narrow, sp, sp, 36U); 5390 __ mov(Narrow, fp, r0); 5391 __ asr(r8, r8, 1U); 5392 __ stm(sp, NO_WRITE_BACK, RegisterList(r1, r2)); 5393 __ str(Narrow, r3, MemOperand(sp, 76)); 5394 __ cmp(Narrow, r1, r8); 5395 __ ldr(r9, MemOperand(sp, 100)); 5396 __ b(ge, &l_2c2e); 5397 __ mov(Narrow, r7, r1); 5398 __ b(Narrow, &l_2b4e); 5399 // -------------- 5400 __ bind(&l_2b2e); 5401 __ mov(Narrow, r6, sl); 5402 // -------------- 5403 __ bind(&l_2b30); 5404 __ lsls(Narrow, r5, r7, 5U); 5405 __ mov(Narrow, lr, r4); 5406 __ ldm(lr, WRITE_BACK, RegisterList(r0, r1, r2, r3)); 5407 __ cmp(Narrow, r6, r8); 5408 __ sub(r5, r5, Operand(r7, LSL, 3)); 5409 __ mov(Narrow, r7, r6); 5410 __ add(Narrow, r5, r5, fp); 5411 __ stm(Narrow, r5, WRITE_BACK, RegisterList(r0, r1, r2, r3)); 5412 __ ldm(lr, NO_WRITE_BACK, RegisterList(r0, r1)); 5413 __ stm(r5, NO_WRITE_BACK, RegisterList(r0, r1)); 5414 __ b(ge, Narrow, &l_2b76); 5415 // -------------- 5416 __ bind(&l_2b4e); 5417 __ adds(Narrow, r5, r7, 1U); 5418 __ lsls(Narrow, r6, r5, 1U); 5419 __ lsls(Narrow, r2, r5, 6U); 5420 __ add(sl, r6, 4294967295U); 5421 __ sub(r5, r2, Operand(r5, LSL, 4)); 5422 __ lsl(r4, sl, 5U); 5423 __ add(Narrow, r5, r5, fp); 5424 __ sub(r4, r4, Operand(sl, LSL, 3)); 5425 __ mov(Narrow, r0, r5); 5426 __ add(Narrow, r4, r4, fp); 5427 __ mov(Narrow, r1, r4); 5428 __ blx(r9); 5429 __ cmp(Narrow, r0, 0U); 5430 __ b(ne, Narrow, &l_2b2e); 5431 __ mov(Narrow, r4, r5); 5432 __ b(Narrow, &l_2b30); 5433 // -------------- 5434 __ bind(&l_2b76); 5435 __ ldr(Narrow, r3, MemOperand(sp, 4)); 5436 __ lsls(Narrow, r2, r3, 31U); 5437 __ b(mi, Narrow, &l_2b8a); 5438 // -------------- 5439 __ bind(&l_2b7c); 5440 __ sub(sl, r3, 2U); 5441 __ add(sl, sl, Operand(sl, LSR, 31)); 5442 __ cmp(r6, Operand(sl, ASR, 1)); 5443 __ b(eq, Narrow, &l_2bbc); 5444 // -------------- 5445 __ bind(&l_2b8a); 5446 __ add(lr, sp, 76U); 5447 __ add(Narrow, r5, sp, 8U); 5448 __ ldm(lr, WRITE_BACK, RegisterList(r0, r1, r2, r3)); 5449 __ mov(Narrow, r7, r5); 5450 __ stm(Narrow, r7, WRITE_BACK, RegisterList(r0, r1, r2, r3)); 5451 __ ldr(Narrow, r3, MemOperand(sp)); 5452 __ ldm(lr, NO_WRITE_BACK, RegisterList(r0, r1)); 5453 __ cmp(Narrow, r6, r3); 5454 __ stm(r7, NO_WRITE_BACK, RegisterList(r0, r1)); 5455 __ b(gt, Narrow, &l_2bda); 5456 } 5457 void Generate_42(TestAssembler* assembler) { 5458 // -------------- 5459 __ bind(&l_2ba6); 5460 __ ldm(Narrow, r5, WRITE_BACK, RegisterList(r0, r1, r2, r3)); 5461 __ stm(Narrow, r4, WRITE_BACK, RegisterList(r0, r1, r2, r3)); 5462 __ ldm(r5, NO_WRITE_BACK, RegisterList(r0, r1)); 5463 __ stm(r4, NO_WRITE_BACK, RegisterList(r0, r1)); 5464 __ add(Narrow, sp, sp, 36U); 5465 __ pop(RegisterList(0x4ff0)); 5466 __ add(Narrow, sp, sp, 8U); 5467 __ bx(lr); 5468 // -------------- 5469 __ bind(&l_2bbc); 5470 __ lsls(Narrow, r6, r6, 1U); 5471 __ mov(Narrow, r7, r4); 5472 __ adds(r6, 1U); 5473 __ lsls(Narrow, r5, r6, 5U); 5474 __ sub(r5, r5, Operand(r6, LSL, 3)); 5475 __ add(Narrow, r5, r5, fp); 5476 __ mov(Narrow, r4, r5); 5477 __ ldm(Narrow, r5, WRITE_BACK, RegisterList(r0, r1, r2, r3)); 5478 __ stm(Narrow, r7, WRITE_BACK, RegisterList(r0, r1, r2, r3)); 5479 __ ldm(r5, NO_WRITE_BACK, RegisterList(r0, r1)); 5480 __ stm(r7, NO_WRITE_BACK, RegisterList(r0, r1)); 5481 __ b(Narrow, &l_2b8a); 5482 // -------------- 5483 __ bind(&l_2bda); 5484 __ subs(Narrow, r7, r6, 1U); 5485 __ add(r7, r7, Operand(r7, LSR, 31)); 5486 __ asrs(Narrow, r7, r7, 1U); 5487 // -------------- 5488 __ bind(&l_2be2); 5489 __ lsls(Narrow, r4, r7, 5U); 5490 __ mov(Narrow, r1, r5); 5491 __ sub(r4, r4, Operand(r7, LSL, 3)); 5492 __ add(Narrow, r4, r4, fp); 5493 __ mov(Narrow, r0, r4); 5494 __ blx(r9); 5495 __ cbnz(r0, &l_2bfc); 5496 __ lsls(Narrow, r4, r6, 5U); 5497 __ sub(r4, r4, Operand(r6, LSL, 3)); 5498 __ add(Narrow, r4, r4, fp); 5499 __ b(Narrow, &l_2ba6); 5500 // -------------- 5501 __ bind(&l_2bfc); 5502 __ lsl(sl, r6, 5U); 5503 __ mov(Narrow, lr, r4); 5504 __ ldm(lr, WRITE_BACK, RegisterList(r0, r1, r2, r3)); 5505 __ add(r8, r7, 4294967295U); 5506 __ sub(r6, sl, Operand(r6, LSL, 3)); 5507 __ add(r8, r8, Operand(r8, LSR, 31)); 5508 __ add(Narrow, r6, r6, fp); 5509 __ asr(r8, r8, 1U); 5510 __ stm(Narrow, r6, WRITE_BACK, RegisterList(r0, r1, r2, r3)); 5511 __ ldr(Narrow, r3, MemOperand(sp)); 5512 __ ldm(lr, NO_WRITE_BACK, RegisterList(r0, r1)); 5513 __ cmp(Narrow, r3, r7); 5514 __ stm(r6, NO_WRITE_BACK, RegisterList(r0, r1)); 5515 __ b(ge, Narrow, &l_2ba6); 5516 __ mov(Narrow, r6, r7); 5517 __ mov(Narrow, r7, r8); 5518 __ b(Narrow, &l_2be2); 5519 // -------------- 5520 __ bind(&l_2c2e); 5521 __ mov(Narrow, r3, r2); 5522 __ lsls(Narrow, r3, r3, 31U); 5523 __ b(mi, Narrow, &l_2c44); 5524 __ ldr(Narrow, r3, MemOperand(sp)); 5525 __ mov(Narrow, r6, r3); 5526 __ lsls(Narrow, r4, r3, 5U); 5527 __ sub(r4, r4, Operand(r3, LSL, 3)); 5528 __ ldr(Narrow, r3, MemOperand(sp, 4)); 5529 __ add(Narrow, r4, r4, r0); 5530 __ b(Narrow, &l_2b7c); 5531 // -------------- 5532 __ bind(&l_2c44); 5533 __ ldr(Narrow, r4, MemOperand(sp)); 5534 __ add(Narrow, r7, sp, 76U); 5535 __ ldm(Narrow, r7, WRITE_BACK, RegisterList(r0, r1, r2, r3)); 5536 __ add(Narrow, r5, sp, 8U); 5537 __ mov(Narrow, r6, r5); 5538 __ lsl(lr, r4, 5U); 5539 __ stm(Narrow, r6, WRITE_BACK, RegisterList(r0, r1, r2, r3)); 5540 __ ldm(r7, NO_WRITE_BACK, RegisterList(r0, r1)); 5541 __ sub(r4, lr, Operand(r4, LSL, 3)); 5542 __ add(Narrow, r4, r4, fp); 5543 __ stm(r6, NO_WRITE_BACK, RegisterList(r0, r1)); 5544 __ b(Narrow, &l_2ba6); 5545 __ push(RegisterList(0x4ff0)); 5546 __ sub(Narrow, sp, sp, 68U); 5547 __ str(Narrow, r1, MemOperand(sp, 28)); 5548 __ subs(Narrow, r1, r1, r0); 5549 __ cmp(Narrow, r1, 47U); 5550 __ mov(Narrow, r8, r0); 5551 __ str(Narrow, r1, MemOperand(sp, 32)); 5552 __ mov(Narrow, sl, r2); 5553 __ mov(Narrow, r9, r3); 5554 __ b(le, Narrow, &l_2cf0); 5555 __ asr(fp, r1, 3U); 5556 __ mov(r3, 43691U); 5557 __ movt(r3, 43690U); 5558 __ str(sl, MemOperand(sp, 36)); 5559 __ mul(r3, r3, fp); 5560 __ sub(ip, r3, 2U); 5561 __ asr(fp, ip, 1U); 5562 __ lsl(r7, fp, 5U); 5563 __ mov(Narrow, sl, fp); 5564 __ sub(r7, r7, Operand(fp, LSL, 3)); 5565 __ mov(Narrow, fp, r3); 5566 __ subs(Narrow, r7, r7, 168U); 5567 __ add(Narrow, r7, r7, r0); 5568 __ b(Narrow, &l_2cac); 5569 // -------------- 5570 __ bind(&l_2ca8); 5571 __ add(sl, sl, 4294967295U); 5572 // -------------- 5573 __ bind(&l_2cac); 5574 __ add(r5, r7, 168U); 5575 __ add(Narrow, r4, sp, 40U); 5576 } 5577 void Generate_43(TestAssembler* assembler) { 5578 __ ldm(Narrow, r5, WRITE_BACK, RegisterList(r0, r1, r2, r3)); 5579 __ add(lr, sp, 44U); 5580 __ mov(Narrow, r6, sp); 5581 __ pld(MemOperand(r7)); 5582 __ subs(Narrow, r7, r7, 24U); 5583 __ stm(Narrow, r4, WRITE_BACK, RegisterList(r0, r1, r2, r3)); 5584 __ ldm(r5, NO_WRITE_BACK, RegisterList(r0, r1)); 5585 __ str(r9, MemOperand(sp, 20)); 5586 __ stm(r4, NO_WRITE_BACK, RegisterList(r0, r1)); 5587 __ ldm(lr, WRITE_BACK, RegisterList(r0, r1, r2, r3)); 5588 __ ldr(r4, MemOperand(lr)); 5589 __ stm(Narrow, r6, WRITE_BACK, RegisterList(r0, r1, r2, r3)); 5590 __ mov(Narrow, r0, r8); 5591 __ ldr(Narrow, r3, MemOperand(sp, 40)); 5592 __ mov(Narrow, r1, sl); 5593 __ mov(Narrow, r2, fp); 5594 __ str(Narrow, r4, MemOperand(r6)); 5595 // -------------- 5596 __ bind(&l_2ce2); 5597 __ bl(&l_2ce2); 5598 __ cmp(sl, 0U); 5599 __ b(ne, Narrow, &l_2ca8); 5600 __ ldr(sl, MemOperand(sp, 36)); 5601 // -------------- 5602 __ bind(&l_2cf0); 5603 __ ldr(Narrow, r4, MemOperand(sp, 28)); 5604 __ cmp(Narrow, r4, sl); 5605 __ b(cs, Narrow, &l_2d7a); 5606 __ ldr(Narrow, r3, MemOperand(sp, 32)); 5607 __ mov(r2, 43691U); 5608 __ movt(r2, 43690U); 5609 __ adds(Narrow, r4, r4, 96U); 5610 __ asrs(Narrow, r3, r3, 3U); 5611 __ mul(r3, r2, r3); 5612 __ str(Narrow, r3, MemOperand(sp, 28)); 5613 __ b(Narrow, &l_2d16); 5614 // -------------- 5615 __ bind(&l_2d0c); 5616 __ sub(r3, r4, 72U); 5617 __ adds(Narrow, r4, r4, 24U); 5618 __ cmp(Narrow, sl, r3); 5619 __ b(ls, Narrow, &l_2d7a); 5620 // -------------- 5621 __ bind(&l_2d16); 5622 __ sub(r5, r4, 96U); 5623 __ mov(Narrow, r1, r8); 5624 __ mov(Narrow, r0, r5); 5625 __ blx(r9); 5626 __ cmp(Narrow, r0, 0U); 5627 __ b(eq, Narrow, &l_2d0c); 5628 __ mov(Narrow, r6, r5); 5629 __ add(lr, sp, 40U); 5630 __ ldm(Narrow, r6, WRITE_BACK, RegisterList(r0, r1, r2, r3)); 5631 __ mov(Narrow, r7, r8); 5632 __ add(fp, sp, 44U); 5633 __ mov(Narrow, ip, sp); 5634 __ pld(MemOperand(r4)); 5635 __ stm(lr, WRITE_BACK, RegisterList(r0, r1, r2, r3)); 5636 __ ldm(r6, NO_WRITE_BACK, RegisterList(r0, r1)); 5637 __ stm(lr, NO_WRITE_BACK, RegisterList(r0, r1)); 5638 __ ldm(Narrow, r7, WRITE_BACK, RegisterList(r0, r1, r2, r3)); 5639 __ stm(Narrow, r5, WRITE_BACK, RegisterList(r0, r1, r2, r3)); 5640 __ ldm(r7, NO_WRITE_BACK, RegisterList(r0, r1)); 5641 __ stm(r6, NO_WRITE_BACK, RegisterList(r0, r1)); 5642 __ ldm(fp, WRITE_BACK, RegisterList(r0, r1, r2, r3)); 5643 __ str(r9, MemOperand(sp, 20)); 5644 __ stm(ip, WRITE_BACK, RegisterList(r0, r1, r2, r3)); 5645 __ mov(Narrow, r0, r8); 5646 __ ldr(r5, MemOperand(fp)); 5647 __ movs(Narrow, r1, 0U); 5648 __ ldr(Narrow, r3, MemOperand(sp, 40)); 5649 __ ldr(Narrow, r2, MemOperand(sp, 28)); 5650 __ str(r5, MemOperand(ip)); 5651 // -------------- 5652 __ bind(&l_2d6c); 5653 __ bl(&l_2d6c); 5654 __ sub(r3, r4, 72U); 5655 __ adds(Narrow, r4, r4, 24U); 5656 __ cmp(Narrow, sl, r3); 5657 __ b(hi, Narrow, &l_2d16); 5658 // -------------- 5659 __ bind(&l_2d7a); 5660 __ add(Narrow, sp, sp, 68U); 5661 __ pop(RegisterList(0x8ff0)); 5662 __ push(RegisterList(0x4ff0)); 5663 __ mov(Narrow, r6, r0); 5664 __ sub(Narrow, sp, sp, 76U); 5665 __ mov(Narrow, r4, r2); 5666 __ str(Narrow, r2, MemOperand(sp, 36)); 5667 __ subs(Narrow, r2, r1, r6); 5668 __ cmp(r2, 408U); 5669 __ str(Narrow, r1, MemOperand(sp, 32)); 5670 __ b(lt, &l_2fa4); 5671 __ mov(Narrow, r7, r3); 5672 __ cmp(Narrow, r4, 0U); 5673 __ b(eq, &l_2f20); 5674 __ mov(Narrow, r3, r1); 5675 __ mov(r2, 43691U); 5676 __ add(r1, r6, 24U); 5677 __ movt(r2, 43690U); 5678 __ mov(Narrow, r0, r1); 5679 __ str(Narrow, r2, MemOperand(sp, 44)); 5680 __ add(Narrow, r2, sp, 48U); 5681 __ str(Narrow, r1, MemOperand(sp, 40)); 5682 __ str(Narrow, r2, MemOperand(sp, 28)); 5683 // -------------- 5684 __ bind(&l_2db8); 5685 __ ldr(Narrow, r2, MemOperand(sp, 36)); 5686 __ subs(Narrow, r3, r3, r6); 5687 __ asrs(Narrow, r3, r3, 3U); 5688 __ subs(r2, 1U); 5689 __ str(Narrow, r2, MemOperand(sp, 36)); 5690 __ ldr(Narrow, r2, MemOperand(sp, 32)); 5691 __ sub(r5, r2, 24U); 5692 } 5693 void Generate_44(TestAssembler* assembler) { 5694 __ ldr(Narrow, r2, MemOperand(sp, 44)); 5695 __ mul(r3, r2, r3); 5696 __ add(r3, r3, Operand(r3, LSR, 31)); 5697 __ asrs(Narrow, r3, r3, 1U); 5698 __ lsls(Narrow, r4, r3, 5U); 5699 __ sub(r3, r4, Operand(r3, LSL, 3)); 5700 __ adds(Narrow, r4, r6, r3); 5701 __ mov(Narrow, r1, r4); 5702 __ blx(r7); 5703 __ cmp(Narrow, r0, 0U); 5704 __ b(eq, Narrow, &l_2ebe); 5705 __ mov(Narrow, r0, r4); 5706 __ mov(Narrow, r1, r5); 5707 __ blx(r7); 5708 __ cmp(Narrow, r0, 0U); 5709 __ b(ne, Narrow, &l_2ed0); 5710 __ ldr(Narrow, r0, MemOperand(sp, 40)); 5711 __ mov(Narrow, r1, r5); 5712 __ blx(r7); 5713 __ cmp(Narrow, r0, 0U); 5714 __ b(eq, &l_2f0a); 5715 // -------------- 5716 __ bind(&l_2dfa); 5717 __ mov(Narrow, ip, r6); 5718 __ ldr(r8, MemOperand(sp, 28)); 5719 __ ldm(ip, WRITE_BACK, RegisterList(r0, r1, r2, r3)); 5720 __ mov(Narrow, r4, r5); 5721 __ mov(Narrow, r9, r6); 5722 __ mov(Narrow, lr, r8); 5723 __ stm(lr, WRITE_BACK, RegisterList(r0, r1, r2, r3)); 5724 __ ldm(ip, NO_WRITE_BACK, RegisterList(r0, r1)); 5725 __ stm(lr, NO_WRITE_BACK, RegisterList(r0, r1)); 5726 __ ldm(Narrow, r4, WRITE_BACK, RegisterList(r0, r1, r2, r3)); 5727 __ stm(r9, WRITE_BACK, RegisterList(r0, r1, r2, r3)); 5728 __ ldm(r4, NO_WRITE_BACK, RegisterList(r0, r1)); 5729 __ stm(ip, NO_WRITE_BACK, RegisterList(r0, r1)); 5730 __ ldm(r8, WRITE_BACK, RegisterList(r0, r1, r2, r3)); 5731 __ stm(Narrow, r5, WRITE_BACK, RegisterList(r0, r1, r2, r3)); 5732 __ ldm(lr, NO_WRITE_BACK, RegisterList(r0, r1)); 5733 __ stm(r4, NO_WRITE_BACK, RegisterList(r0, r1)); 5734 // -------------- 5735 __ bind(&l_2e32); 5736 __ ldr(r8, MemOperand(sp, 32)); 5737 __ ldr(Narrow, r5, MemOperand(sp, 40)); 5738 // -------------- 5739 __ bind(&l_2e38); 5740 __ mov(Narrow, r0, r5); 5741 __ mov(Narrow, r1, r6); 5742 __ mov(Narrow, r4, r5); 5743 __ adds(Narrow, r5, r5, 24U); 5744 __ blx(r7); 5745 __ cmp(Narrow, r0, 0U); 5746 __ b(ne, Narrow, &l_2e38); 5747 __ sub(r5, r8, 24U); 5748 // -------------- 5749 __ bind(&l_2e4a); 5750 __ mov(Narrow, r1, r5); 5751 __ mov(Narrow, r0, r6); 5752 __ mov(Narrow, r8, r5); 5753 __ subs(Narrow, r5, r5, 24U); 5754 __ blx(r7); 5755 __ cmp(Narrow, r0, 0U); 5756 __ b(ne, Narrow, &l_2e4a); 5757 __ cmp(Narrow, r8, r4); 5758 __ b(ls, Narrow, &l_2e9c); 5759 __ mov(Narrow, r9, r4); 5760 __ ldr(fp, MemOperand(sp, 28)); 5761 __ ldm(r9, WRITE_BACK, RegisterList(r0, r1, r2, r3)); 5762 __ mov(Narrow, lr, r8); 5763 __ add(r5, r4, 24U); 5764 __ mov(Narrow, sl, r8); 5765 __ mov(Narrow, ip, fp); 5766 __ stm(ip, WRITE_BACK, RegisterList(r0, r1, r2, r3)); 5767 __ ldm(r9, NO_WRITE_BACK, RegisterList(r0, r1)); 5768 __ stm(ip, NO_WRITE_BACK, RegisterList(r0, r1)); 5769 __ ldm(lr, WRITE_BACK, RegisterList(r0, r1, r2, r3)); 5770 __ stm(Narrow, r4, WRITE_BACK, RegisterList(r0, r1, r2, r3)); 5771 __ ldm(lr, NO_WRITE_BACK, RegisterList(r0, r1)); 5772 __ stm(r9, NO_WRITE_BACK, RegisterList(r0, r1)); 5773 __ ldm(fp, WRITE_BACK, RegisterList(r0, r1, r2, r3)); 5774 __ stm(sl, WRITE_BACK, RegisterList(r0, r1, r2, r3)); 5775 __ ldm(ip, NO_WRITE_BACK, RegisterList(r0, r1)); 5776 __ stm(lr, NO_WRITE_BACK, RegisterList(r0, r1)); 5777 __ b(Narrow, &l_2e38); 5778 // -------------- 5779 __ bind(&l_2e9c); 5780 __ ldr(Narrow, r2, MemOperand(sp, 36)); 5781 __ mov(Narrow, r3, r7); 5782 __ ldr(Narrow, r1, MemOperand(sp, 32)); 5783 __ mov(Narrow, r0, r4); 5784 // -------------- 5785 __ bind(&l_2ea4); 5786 __ bl(&l_2ea4); 5787 __ subs(Narrow, r2, r4, r6); 5788 __ mov(Narrow, r3, r4); 5789 __ cmp(r2, 408U); 5790 __ b(lt, Narrow, &l_2fa4); 5791 __ ldr(Narrow, r2, MemOperand(sp, 36)); 5792 __ cmp(Narrow, r2, 0U); 5793 __ b(eq, Narrow, &l_2f26); 5794 __ str(Narrow, r3, MemOperand(sp, 32)); 5795 __ ldr(Narrow, r0, MemOperand(sp, 40)); 5796 __ b(Narrow, &l_2db8); 5797 // -------------- 5798 __ bind(&l_2ebe); 5799 __ ldr(Narrow, r0, MemOperand(sp, 40)); 5800 __ mov(Narrow, r1, r5); 5801 __ blx(r7); 5802 __ cbnz(r0, &l_2f0a); 5803 __ mov(Narrow, r0, r4); 5804 __ mov(Narrow, r1, r5); 5805 __ blx(r7); 5806 __ cmp(Narrow, r0, 0U); 5807 __ b(ne, Narrow, &l_2dfa); 5808 } 5809 void Generate_45(TestAssembler* assembler) { 5810 // -------------- 5811 __ bind(&l_2ed0); 5812 __ mov(Narrow, lr, r6); 5813 __ ldr(r8, MemOperand(sp, 28)); 5814 __ ldm(lr, WRITE_BACK, RegisterList(r0, r1, r2, r3)); 5815 __ mov(Narrow, r9, r6); 5816 __ mov(Narrow, ip, r4); 5817 __ mov(Narrow, r5, r8); 5818 // -------------- 5819 __ bind(&l_2ee0); 5820 __ stm(Narrow, r5, WRITE_BACK, RegisterList(r0, r1, r2, r3)); 5821 __ ldm(lr, NO_WRITE_BACK, RegisterList(r0, r1)); 5822 __ stm(r5, NO_WRITE_BACK, RegisterList(r0, r1)); 5823 __ ldm(Narrow, r4, WRITE_BACK, RegisterList(r0, r1, r2, r3)); 5824 __ stm(r9, WRITE_BACK, RegisterList(r0, r1, r2, r3)); 5825 __ ldm(r4, NO_WRITE_BACK, RegisterList(r0, r1)); 5826 __ stm(lr, NO_WRITE_BACK, RegisterList(r0, r1)); 5827 __ ldm(r8, WRITE_BACK, RegisterList(r0, r1, r2, r3)); 5828 __ stm(ip, WRITE_BACK, RegisterList(r0, r1, r2, r3)); 5829 __ ldm(r5, NO_WRITE_BACK, RegisterList(r0, r1)); 5830 __ stm(r4, NO_WRITE_BACK, RegisterList(r0, r1)); 5831 __ b(Narrow, &l_2e32); 5832 // -------------- 5833 __ bind(&l_2f0a); 5834 __ ldr(r8, MemOperand(sp, 28)); 5835 __ mov(Narrow, lr, r6); 5836 __ ldr(ip, MemOperand(sp, 40)); 5837 __ mov(Narrow, r9, r6); 5838 __ ldm(lr, WRITE_BACK, RegisterList(r0, r1, r2, r3)); 5839 __ mov(Narrow, r5, r8); 5840 __ mov(Narrow, r4, ip); 5841 __ b(Narrow, &l_2ee0); 5842 // -------------- 5843 __ bind(&l_2f20); 5844 __ mov(Narrow, r4, r1); 5845 __ add(Narrow, r3, sp, 48U); 5846 __ str(Narrow, r3, MemOperand(sp, 28)); 5847 // -------------- 5848 __ bind(&l_2f26); 5849 __ mov(fp, 43691U); 5850 __ mov(Narrow, r0, r6); 5851 __ mov(Narrow, r1, r4); 5852 __ mov(Narrow, r2, r4); 5853 __ mov(Narrow, r3, r7); 5854 __ sub(r8, r4, 144U); 5855 __ movt(fp, 43690U); 5856 // -------------- 5857 __ bind(&l_2f3a); 5858 __ bl(&l_2f3a); 5859 // -------------- 5860 __ bind(&l_2f3e); 5861 __ add(r4, r8, 120U); 5862 __ ldr(r9, MemOperand(sp, 28)); 5863 __ ldm(Narrow, r4, WRITE_BACK, RegisterList(r0, r1, r2, r3)); 5864 __ mov(Narrow, r5, r6); 5865 __ add(sl, r8, 120U); 5866 __ add(ip, sp, 52U); 5867 __ pld(MemOperand(r8)); 5868 __ mov(Narrow, lr, sp); 5869 __ sub(r8, r8, 24U); 5870 __ stm(r9, WRITE_BACK, RegisterList(r0, r1, r2, r3)); 5871 __ ldm(r4, NO_WRITE_BACK, RegisterList(r0, r1)); 5872 __ stm(r9, NO_WRITE_BACK, RegisterList(r0, r1)); 5873 __ rsb(r9, r6, sl); 5874 __ ldm(Narrow, r5, WRITE_BACK, RegisterList(r0, r1, r2, r3)); 5875 __ stm(sl, WRITE_BACK, RegisterList(r0, r1, r2, r3)); 5876 __ asr(sl, r9, 3U); 5877 __ ldm(r5, NO_WRITE_BACK, RegisterList(r0, r1)); 5878 __ stm(r4, NO_WRITE_BACK, RegisterList(r0, r1)); 5879 __ ldm(ip, WRITE_BACK, RegisterList(r0, r1, r2, r3)); 5880 __ str(Narrow, r7, MemOperand(sp, 20)); 5881 __ stm(lr, WRITE_BACK, RegisterList(r0, r1, r2, r3)); 5882 __ mul(r2, fp, sl); 5883 __ ldr(r4, MemOperand(ip)); 5884 __ mov(Narrow, r0, r6); 5885 __ movs(Narrow, r1, 0U); 5886 __ ldr(Narrow, r3, MemOperand(sp, 48)); 5887 __ str(r4, MemOperand(lr)); 5888 // -------------- 5889 __ bind(&l_2f9a); 5890 __ bl(&l_2f9a); 5891 __ cmp(r9, 47U); 5892 __ b(gt, Narrow, &l_2f3e); 5893 // -------------- 5894 __ bind(&l_2fa4); 5895 __ add(Narrow, sp, sp, 76U); 5896 __ pop(RegisterList(0x8ff0)); 5897 __ nop(Narrow); 5898 __ push(RegisterList(0x47f0)); 5899 __ movs(Narrow, r4, 0U); 5900 __ ldm(r0, NO_WRITE_BACK, RegisterList(r5, sl)); 5901 __ sub(Narrow, sp, sp, 24U); 5902 __ str(Narrow, r4, MemOperand(r0, 40)); 5903 __ cmp(Narrow, r5, sl); 5904 __ itt(eq); 5905 __ mvn(eq, r3, 2147483648U); 5906 __ str(eq, Narrow, r3, MemOperand(r0, 36)); 5907 __ b(eq, Narrow, &l_302a); 5908 __ mov(Narrow, r7, r0); 5909 __ mov(Narrow, r2, sl); 5910 __ mov(Narrow, r0, r5); 5911 __ cbz(r1, &l_3030); 5912 // -------------- 5913 __ bind(&l_2fce); 5914 __ subs(Narrow, r3, r2, r0); 5915 __ mov(r5, 43691U); 5916 __ asrs(Narrow, r3, r3, 3U); 5917 __ ldr(Narrow, r1, MemOperand(r7, 28)); 5918 __ ldr(r8, MemOperand(r7, 24)); 5919 __ movt(r5, 43690U); 5920 __ mul(r3, r5, r3); 5921 __ add(ip, r1, 4294967295U); 5922 __ add(r1, r8, Operand(ip, LSL, 1)); 5923 __ cmp(Narrow, r3, 0U); 5924 __ add(Narrow, r4, r4, r1); 5925 __ mvn(r1, 2147483648U); 5926 __ str(Narrow, r4, MemOperand(r7, 40)); 5927 __ b(le, Narrow, &l_3020); 5928 // -------------- 5929 __ bind(&l_2ff8); 5930 __ ldr(r5, MemOperand(r2, -24)); 5931 __ subs(Narrow, r2, r2, 24U); 5932 } 5933 void Generate_46(TestAssembler* assembler) { 5934 __ ldr(Narrow, r3, MemOperand(r2, 12)); 5935 __ ldr(lr, MemOperand(r2, 8)); 5936 __ ldr(Narrow, r5, MemOperand(r5, 4)); 5937 __ subs(r3, 1U); 5938 __ mvns(Narrow, r6, r3); 5939 __ subs(Narrow, r1, r1, r5); 5940 __ add(Narrow, r3, r3, r5); 5941 __ cmp(Narrow, r1, lr); 5942 __ ite(le); 5943 __ and_(le, Narrow, r1, r1, r6); 5944 __ and_(gt, r1, r6, lr); 5945 __ cmp(Narrow, r2, r0); 5946 __ add(Narrow, r4, r4, r3); 5947 __ str(Narrow, r4, MemOperand(r7, 40)); 5948 __ b(ne, Narrow, &l_2ff8); 5949 // -------------- 5950 __ bind(&l_3020); 5951 __ rsb(r1, r8, r1); 5952 __ bic(r1, r1, ip); 5953 __ str(Narrow, r1, MemOperand(r7, 36)); 5954 // -------------- 5955 __ bind(&l_302a); 5956 __ add(Narrow, sp, sp, 24U); 5957 __ pop(RegisterList(0x87f0)); 5958 // -------------- 5959 __ bind(&l_3030); 5960 __ rsb(r4, r5, sl); 5961 __ mov(r2, 43691U); 5962 __ asrs(Narrow, r1, r4, 3U); 5963 __ movt(r2, 43690U); 5964 __ movw(r3, 0U); 5965 __ mul(r2, r2, r1); 5966 __ movt(r3, 0U); 5967 __ mov(Narrow, r0, r5); 5968 __ mov(Narrow, r1, sl); 5969 __ clz(r2, r2); 5970 __ rsb(r2, r2, 31U); 5971 __ lsls(Narrow, r2, r2, 1U); 5972 // -------------- 5973 __ bind(&l_3058); 5974 __ bl(&l_3058); 5975 __ cmp(r4, 408U); 5976 __ b(lt, Narrow, &l_30e2); 5977 __ add(r4, r5, 384U); 5978 __ movw(r2, 0U); 5979 __ mov(Narrow, r1, r4); 5980 __ movt(r2, 0U); 5981 __ mov(Narrow, r0, r5); 5982 // -------------- 5983 __ bind(&l_3072); 5984 __ bl(&l_3072); 5985 __ cmp(Narrow, sl, r4); 5986 __ it(ne); 5987 __ add(ne, r9, r5, 504U); 5988 __ b(eq, Narrow, &l_30f2); 5989 // -------------- 5990 __ bind(&l_3080); 5991 __ sub(r5, r9, 120U); 5992 __ mov(Narrow, r4, sp); 5993 __ ldm(Narrow, r5, WRITE_BACK, RegisterList(r0, r1, r2, r3)); 5994 __ sub(r6, r9, 144U); 5995 __ sub(r8, r9, 120U); 5996 __ pld(MemOperand(r9)); 5997 __ stm(Narrow, r4, WRITE_BACK, RegisterList(r0, r1, r2, r3)); 5998 __ ldm(r5, NO_WRITE_BACK, RegisterList(r0, r1)); 5999 __ stm(r4, NO_WRITE_BACK, RegisterList(r0, r1)); 6000 __ b(Narrow, &l_30b6); 6001 // -------------- 6002 __ bind(&l_30a0); 6003 __ add(r8, r6, 24U); 6004 __ add(r4, r6, 48U); 6005 __ mov(Narrow, r5, r8); 6006 __ ldm(Narrow, r5, WRITE_BACK, RegisterList(r0, r1, r2, r3)); 6007 __ stm(Narrow, r4, WRITE_BACK, RegisterList(r0, r1, r2, r3)); 6008 __ ldm(r5, NO_WRITE_BACK, RegisterList(r0, r1)); 6009 __ stm(r4, NO_WRITE_BACK, RegisterList(r0, r1)); 6010 // -------------- 6011 __ bind(&l_30b6); 6012 __ mov(Narrow, r1, r6); 6013 __ mov(Narrow, r0, sp); 6014 // -------------- 6015 __ bind(&l_30ba); 6016 __ bl(&l_30ba); 6017 __ subs(Narrow, r6, r6, 24U); 6018 __ cmp(Narrow, r0, 0U); 6019 __ b(ne, Narrow, &l_30a0); 6020 __ mov(Narrow, r4, sp); 6021 __ sub(r5, r9, 96U); 6022 __ ldm(Narrow, r4, WRITE_BACK, RegisterList(r0, r1, r2, r3)); 6023 __ cmp(Narrow, sl, r5); 6024 __ add(r9, r9, 24U); 6025 __ stm(r8, WRITE_BACK, RegisterList(r0, r1, r2, r3)); 6026 __ ldm(r4, NO_WRITE_BACK, RegisterList(r0, r1)); 6027 __ stm(r8, NO_WRITE_BACK, RegisterList(r0, r1)); 6028 __ b(ne, Narrow, &l_3080); 6029 __ b(Narrow, &l_30f2); 6030 // -------------- 6031 __ bind(&l_30e2); 6032 __ movw(r2, 0U); 6033 __ mov(Narrow, r0, r5); 6034 __ mov(Narrow, r1, sl); 6035 __ movt(r2, 0U); 6036 // -------------- 6037 __ bind(&l_30ee); 6038 __ bl(&l_30ee); 6039 // -------------- 6040 __ bind(&l_30f2); 6041 __ ldr(Narrow, r4, MemOperand(r7, 40)); 6042 __ ldm(r7, NO_WRITE_BACK, RegisterList(r0, r2)); 6043 __ b(Narrow, &l_2fce); 6044 __ nop(Narrow); 6045 __ push(RegisterList(0x4ff0)); 6046 __ mov(Narrow, r9, r2); 6047 __ ldrb(Narrow, r2, MemOperand(r2, 16)); 6048 __ sub(Narrow, sp, sp, 92U); 6049 __ mov(Narrow, r8, r0); 6050 __ mov(sl, 0U); 6051 __ str(Narrow, r1, MemOperand(sp, 16)); 6052 __ cmp(Narrow, r2, 0U); 6053 __ b(ne, &l_3384); 6054 __ clz(sl, r3); 6055 __ lsr(sl, sl, 5U); 6056 __ add(Narrow, r3, sp, 36U); 6057 __ str(Narrow, r3, MemOperand(sp)); 6058 } 6059 void Generate_47(TestAssembler* assembler) { 6060 __ mov(Narrow, r2, sl); 6061 __ mov(Narrow, r3, r9); 6062 // -------------- 6063 __ bind(&l_3124); 6064 __ bl(&l_3124); 6065 __ cmp(Narrow, r0, 0U); 6066 __ b(eq, &l_3410); 6067 __ ldr(r3, MemOperand(r8, 4)); 6068 __ ldr(r1, MemOperand(r8, 12)); 6069 __ ldr(Narrow, r4, MemOperand(sp, 36)); 6070 __ subs(Narrow, r1, r1, r3); 6071 __ ldr(Narrow, r3, MemOperand(sp, 16)); 6072 __ ldr(Narrow, r5, MemOperand(r4)); 6073 __ cmp(Narrow, r3, 14U); 6074 __ ldr(r3, MemOperand(r8, 28)); 6075 __ b(eq, &l_33e0); 6076 __ cmp(Narrow, r3, 1U); 6077 __ ittte(eq); 6078 __ add(eq, Narrow, r2, r5, 4U); 6079 __ add(eq, Narrow, r6, r1, 4U); 6080 __ mov(eq, Narrow, r3, 4U); 6081 __ mov(ne, Narrow, r2, r5); 6082 __ itt(ne); 6083 __ mov(ne, Narrow, r6, r1); 6084 __ mov(ne, Narrow, r3, 8U); 6085 // -------------- 6086 __ bind(&l_315a); 6087 __ ldr(Narrow, r0, MemOperand(r4, 16)); 6088 __ add(Narrow, r3, r3, r6); 6089 __ cbz(r0, &l_3164); 6090 __ bic(r3, r3, 0x3); 6091 // -------------- 6092 __ bind(&l_3164); 6093 __ add(r0, r8, 96U); 6094 __ ldr(Narrow, r7, MemOperand(r4, 4)); 6095 __ str(Narrow, r0, MemOperand(sp, 24)); 6096 __ ldr(Narrow, r0, MemOperand(r4, 8)); 6097 __ ldr(fp, MemOperand(r4, 12)); 6098 __ add(ip, r3, r7); 6099 __ str(r9, MemOperand(sp)); 6100 __ add(lr, r3, r0); 6101 __ ldr(Narrow, r0, MemOperand(sp, 24)); 6102 __ add(Narrow, r3, sp, 60U); 6103 __ str(ip, MemOperand(sp, 72)); 6104 __ str(lr, MemOperand(sp, 76)); 6105 __ str(fp, MemOperand(sp, 68)); 6106 __ str(Narrow, r6, MemOperand(sp, 60)); 6107 __ str(Narrow, r5, MemOperand(sp, 64)); 6108 // -------------- 6109 __ bind(&l_3192); 6110 __ bl(&l_3192); 6111 __ cmp(Narrow, r0, 0U); 6112 __ b(ne, Narrow, &l_3242); 6113 __ add(r3, r8, 44U); 6114 __ str(Narrow, r3, MemOperand(sp, 8)); 6115 // -------------- 6116 __ bind(&l_31a0); 6117 __ ldr(Narrow, r2, MemOperand(sp, 8)); 6118 __ movw(r3, 0U); 6119 __ movt(r3, 0U); 6120 __ str(Narrow, r3, MemOperand(sp, 20)); 6121 __ str(Narrow, r2, MemOperand(sp, 28)); 6122 // -------------- 6123 __ bind(&l_31ae); 6124 __ ldr(Narrow, r4, &l_3444); 6125 __ movs(Narrow, r3, 0U); 6126 __ str(Narrow, r2, MemOperand(sp, 80)); 6127 __ str(Narrow, r3, MemOperand(sp, 64)); 6128 __ str(Narrow, r4, MemOperand(sp, 60)); 6129 __ strb(r3, MemOperand(sp, 77)); 6130 __ str(Narrow, r3, MemOperand(sp, 84)); 6131 // -------------- 6132 __ bind(&l_31be); 6133 __ ldr(r3, MemOperand(r8, 44)); 6134 __ ldr(Narrow, r2, MemOperand(sp, 20)); 6135 __ ldr(Narrow, r0, MemOperand(sp, 28)); 6136 __ ldr(Narrow, r3, MemOperand(r3)); 6137 __ cmp(Narrow, r3, r2); 6138 __ b(ne, &l_33ee); 6139 // -------------- 6140 __ bind(&l_31ce); 6141 __ bl(&l_31ce); 6142 // -------------- 6143 __ bind(&l_31d2); 6144 __ str(Narrow, r0, MemOperand(sp, 64)); 6145 __ ldr(Narrow, r1, MemOperand(r0, 20)); 6146 __ ldr(Narrow, r3, MemOperand(r0, 4)); 6147 __ ldr(Narrow, r2, MemOperand(r0, 12)); 6148 __ add(Narrow, r3, r3, r1); 6149 __ subs(Narrow, r3, r3, r2); 6150 __ cmp(Narrow, r3, 31U); 6151 __ b(hi, Narrow, &l_31ec); 6152 __ lsls(Narrow, r1, r1, 1U); 6153 __ adds(r0, 4U); 6154 __ adds(Narrow, r1, r1, 32U); 6155 // -------------- 6156 __ bind(&l_31e8); 6157 __ bl(&l_31e8); 6158 // -------------- 6159 __ bind(&l_31ec); 6160 __ movs(Narrow, r3, 1U); 6161 __ strb(r3, MemOperand(sp, 77)); 6162 // -------------- 6163 __ bind(&l_31f2); 6164 __ ldr(Narrow, r6, &l_3448); 6165 __ mov(Narrow, r2, sl); 6166 __ ldr(Narrow, r1, MemOperand(sp, 16)); 6167 __ mov(Narrow, r0, r8); 6168 __ mov(Narrow, r3, r9); 6169 __ str(Narrow, r6, MemOperand(sp, 60)); 6170 // -------------- 6171 __ bind(&l_31fe); 6172 __ bl(&l_31fe); 6173 __ ldrb(r3, MemOperand(r9, 16)); 6174 __ cbnz(r3, &l_3230); 6175 __ ldr(r3, MemOperand(r9, 144)); 6176 __ cmp(Narrow, r3, 0U); 6177 __ b(eq, &l_33fa); 6178 __ ldr(Narrow, r5, MemOperand(r3, 4)); 6179 __ subs(Narrow, r5, r5, 24U); 6180 // -------------- 6181 __ bind(&l_3216); 6182 __ ldm(Narrow, r5, WRITE_BACK, RegisterList(r0, r1, r2, r3)); 6183 __ add(Narrow, r7, sp, 36U); 6184 __ stm(Narrow, r7, WRITE_BACK, RegisterList(r0, r1, r2, r3)); 6185 __ mov(Narrow, r2, r9); 6186 __ ldm(r5, NO_WRITE_BACK, RegisterList(r0, r1)); 6187 __ stm(r7, NO_WRITE_BACK, RegisterList(r0, r1)); 6188 } 6189 void Generate_48(TestAssembler* assembler) { 6190 __ add(r0, r8, 96U); 6191 __ add(Narrow, r1, sp, 36U); 6192 // -------------- 6193 __ bind(&l_322c); 6194 __ bl(&l_322c); 6195 // -------------- 6196 __ bind(&l_3230); 6197 __ ldrb(r3, MemOperand(sp, 77)); 6198 __ str(Narrow, r4, MemOperand(sp, 60)); 6199 __ cmp(Narrow, r3, 0U); 6200 __ b(ne, &l_3366); 6201 // -------------- 6202 __ bind(&l_323c); 6203 __ add(Narrow, sp, sp, 92U); 6204 __ pop(RegisterList(0x8ff0)); 6205 // -------------- 6206 __ bind(&l_3242); 6207 __ add(r3, r8, 44U); 6208 __ ldr(r2, MemOperand(r8, 96)); 6209 __ mov(Narrow, r5, r3); 6210 __ str(Narrow, r3, MemOperand(sp, 8)); 6211 __ str(Narrow, r3, MemOperand(sp, 28)); 6212 __ ldr(r3, MemOperand(r8, 100)); 6213 __ ldr(Narrow, r4, MemOperand(r4)); 6214 __ ldr(r0, MemOperand(r8, 12)); 6215 __ ldr(r1, MemOperand(r8, 4)); 6216 __ cmp(Narrow, r2, r3); 6217 __ str(Narrow, r4, MemOperand(sp, 12)); 6218 __ sub(r4, r0, r1); 6219 __ b(eq, Narrow, &l_31a0); 6220 __ ldr(r3, MemOperand(r8, 44)); 6221 __ mov(Narrow, r0, r5); 6222 __ ldr(Narrow, r3, MemOperand(r3, 36)); 6223 __ blx(r3); 6224 __ ldr(r7, MemOperand(r8, 96)); 6225 __ ldr(r2, MemOperand(r8, 100)); 6226 __ ldr(r1, MemOperand(r8, 120)); 6227 __ cmp(Narrow, r7, r2); 6228 __ add(Narrow, r1, r1, r4); 6229 __ b(eq, Narrow, &l_32a0); 6230 __ ldr(Narrow, r3, MemOperand(r7)); 6231 __ cmp(Narrow, r9, r3); 6232 __ it(ne); 6233 __ add(ne, r3, r7, 24U); 6234 __ b(ne, Narrow, &l_329a); 6235 __ b(Narrow, &l_340c); 6236 // -------------- 6237 __ bind(&l_3292); 6238 __ ldr(r0, MemOperand(r3, 24, PostIndex)); 6239 __ cmp(Narrow, r9, r0); 6240 __ b(eq, Narrow, &l_32a4); 6241 // -------------- 6242 __ bind(&l_329a); 6243 __ cmp(Narrow, r3, r2); 6244 __ mov(Narrow, fp, r3); 6245 __ b(ne, Narrow, &l_3292); 6246 // -------------- 6247 __ bind(&l_32a0); 6248 __ mov(fp, 0U); 6249 // -------------- 6250 __ bind(&l_32a4); 6251 __ movw(r3, 0U); 6252 __ movt(r3, 0U); 6253 __ str(Narrow, r3, MemOperand(sp, 20)); 6254 // -------------- 6255 __ bind(&l_32ae); 6256 __ cmp(Narrow, r7, r2); 6257 __ b(eq, Narrow, &l_3350); 6258 // -------------- 6259 __ bind(&l_32b2); 6260 __ ldr(Narrow, r3, MemOperand(sp, 12)); 6261 __ ldr(r6, MemOperand(r9, 8)); 6262 __ ldr(r4, MemOperand(r8, 136)); 6263 __ adds(Narrow, r5, r3, r1); 6264 __ ldr(Narrow, r3, MemOperand(sp, 68)); 6265 __ ldr(Narrow, r0, MemOperand(r7, 8)); 6266 __ add(Narrow, r4, r4, r5); 6267 __ cmp(Narrow, r3, r6); 6268 __ it(lt); 6269 __ mov(lt, Narrow, r3, r6); 6270 __ cmp(fp, 0U); 6271 __ b(eq, Narrow, &l_32da); 6272 __ ldr(r6, MemOperand(fp, 12)); 6273 __ cmp(Narrow, r3, r6); 6274 __ it(lt); 6275 __ mov(lt, Narrow, r3, r6); 6276 // -------------- 6277 __ bind(&l_32da); 6278 __ ldr(r5, MemOperand(r9, 4)); 6279 __ add(Narrow, r5, r5, r3); 6280 __ subs(r5, 1U); 6281 __ add(Narrow, r4, r4, r5); 6282 __ cmp(Narrow, r0, r4); 6283 __ b(gt, Narrow, &l_33c8); 6284 // -------------- 6285 __ bind(&l_32e8); 6286 __ ldr(Narrow, r4, MemOperand(r7, 12)); 6287 __ ldr(Narrow, r6, MemOperand(sp, 8)); 6288 __ ldr(r3, MemOperand(r8, 44)); 6289 __ subs(r4, 1U); 6290 __ ldr(Narrow, r5, MemOperand(r7)); 6291 __ adds(Narrow, r2, r1, r4); 6292 __ mov(Narrow, r0, r6); 6293 __ bic(r4, r2, r4); 6294 __ ldr(Narrow, r3, MemOperand(r3, 44)); 6295 __ subs(Narrow, r1, r4, r1); 6296 __ blx(r3); 6297 __ ldr(r3, MemOperand(r8, 44)); 6298 __ ldr(Narrow, r2, MemOperand(sp, 20)); 6299 __ ldr(Narrow, r3, MemOperand(r3)); 6300 __ cmp(Narrow, r3, r2); 6301 __ b(ne, Narrow, &l_33f2); 6302 __ mov(Narrow, r0, r6); 6303 // -------------- 6304 __ bind(&l_3310); 6305 __ bl(&l_3310); 6306 __ mov(Narrow, r1, r0); 6307 // -------------- 6308 __ bind(&l_3316); 6309 __ ldr(Narrow, r3, MemOperand(r5)); 6310 __ mov(Narrow, r0, r5); 6311 __ str(Narrow, r4, MemOperand(r5, 20)); 6312 __ ldr(Narrow, r3, MemOperand(r3, 20)); 6313 __ blx(r3); 6314 __ ldr(Narrow, r3, MemOperand(r5)); 6315 __ mov(Narrow, r0, r5); 6316 __ ldr(Narrow, r1, MemOperand(sp, 8)); 6317 __ ldr(Narrow, r3, MemOperand(r3, 16)); 6318 } 6319 void Generate_49(TestAssembler* assembler) { 6320 __ blx(r3); 6321 __ ldr(Narrow, r3, MemOperand(r5)); 6322 __ mov(Narrow, r0, r5); 6323 __ ldr(Narrow, r6, MemOperand(r5, 4)); 6324 __ ldr(Narrow, r3, MemOperand(r3, 24)); 6325 __ blx(r3); 6326 __ cmp(Narrow, r0, 0U); 6327 __ b(eq, Narrow, &l_33d2); 6328 __ movs(Narrow, r3, 1U); 6329 __ mov(Narrow, r1, r7); 6330 __ strb(Narrow, r3, MemOperand(r5, 16)); 6331 __ ldr(Narrow, r0, MemOperand(sp, 24)); 6332 // -------------- 6333 __ bind(&l_3340); 6334 __ bl(&l_3340); 6335 __ mov(Narrow, r7, r0); 6336 // -------------- 6337 __ bind(&l_3346); 6338 __ ldr(r2, MemOperand(r8, 100)); 6339 __ adds(Narrow, r1, r4, r6); 6340 __ cmp(Narrow, r7, r2); 6341 __ b(ne, Narrow, &l_32b2); 6342 // -------------- 6343 __ bind(&l_3350); 6344 __ ldr(Narrow, r0, MemOperand(sp, 24)); 6345 __ movs(Narrow, r1, 0U); 6346 // -------------- 6347 __ bind(&l_3354); 6348 __ bl(&l_3354); 6349 __ ldr(r3, MemOperand(r8, 44)); 6350 __ ldr(Narrow, r0, MemOperand(sp, 8)); 6351 __ ldr(Narrow, r3, MemOperand(r3, 40)); 6352 __ blx(r3); 6353 __ ldr(Narrow, r2, MemOperand(sp, 8)); 6354 __ b(Narrow, &l_31ae); 6355 // -------------- 6356 __ bind(&l_3366); 6357 __ ldr(Narrow, r0, MemOperand(sp, 80)); 6358 __ cmp(Narrow, r0, 0U); 6359 __ b(eq, &l_323c); 6360 __ ldr(Narrow, r3, MemOperand(sp, 84)); 6361 __ movs(Narrow, r2, 0U); 6362 __ strb(r2, MemOperand(sp, 77)); 6363 __ cmp(Narrow, r3, 1U); 6364 __ b(ne, &l_323c); 6365 __ ldr(Narrow, r3, MemOperand(r0)); 6366 __ ldr(Narrow, r3, MemOperand(r3, 28)); 6367 __ blx(r3); 6368 __ b(Narrow, &l_323c); 6369 // -------------- 6370 __ bind(&l_3384); 6371 __ ldr(Narrow, r4, &l_3444); 6372 __ adds(r3, r0, 44U); 6373 __ str(sl, MemOperand(sp, 64)); 6374 __ strb(sl, MemOperand(sp, 77)); 6375 __ str(Narrow, r4, MemOperand(sp, 60)); 6376 __ str(Narrow, r3, MemOperand(sp, 28)); 6377 __ b(eq, &l_31f2); 6378 __ ldr(Narrow, r6, MemOperand(sp, 28)); 6379 __ movs(Narrow, r2, 1U); 6380 __ ldr(r3, MemOperand(r8, 44)); 6381 __ movs(Narrow, r1, 32U); 6382 __ str(Narrow, r2, MemOperand(sp, 84)); 6383 __ movw(r2, 0U); 6384 __ str(Narrow, r6, MemOperand(sp, 80)); 6385 __ mov(Narrow, r0, r6); 6386 __ ldr(Narrow, r3, MemOperand(r3, 32)); 6387 __ mov(Narrow, r5, r2); 6388 __ blx(r3); 6389 __ ldr(r3, MemOperand(r8, 44)); 6390 __ mov(Narrow, r2, r5); 6391 __ movt(r2, 0U); 6392 __ mov(Narrow, r0, r6); 6393 __ str(Narrow, r2, MemOperand(sp, 20)); 6394 __ ldr(Narrow, r3, MemOperand(r3, 24)); 6395 __ blx(r3); 6396 __ b(Narrow, &l_31be); 6397 // -------------- 6398 __ bind(&l_33c8); 6399 __ ldr(Narrow, r3, MemOperand(r7, 16)); 6400 __ cmp(Narrow, r1, r3); 6401 __ b(ge, Narrow, &l_32e8); 6402 __ adds(Narrow, r7, r7, 24U); 6403 __ b(Narrow, &l_32ae); 6404 // -------------- 6405 __ bind(&l_33d2); 6406 __ ldr(Narrow, r0, MemOperand(r7)); 6407 __ mov(Narrow, r1, r7); 6408 __ adds(Narrow, r7, r7, 24U); 6409 __ ldr(Narrow, r3, MemOperand(r0)); 6410 __ ldr(Narrow, r3, MemOperand(r3, 28)); 6411 __ blx(r3); 6412 __ b(Narrow, &l_3346); 6413 // -------------- 6414 __ bind(&l_33e0); 6415 __ cmp(Narrow, r3, 1U); 6416 __ mov(Narrow, r2, r5); 6417 __ mov(Narrow, r6, r1); 6418 __ ite(eq); 6419 __ mov(eq, Narrow, r3, 4U); 6420 __ mov(ne, Narrow, r3, 8U); 6421 __ b(Narrow, &l_315a); 6422 // -------------- 6423 __ bind(&l_33ee); 6424 __ blx(r3); 6425 __ b(Narrow, &l_31d2); 6426 // -------------- 6427 __ bind(&l_33f2); 6428 __ ldr(Narrow, r0, MemOperand(sp, 8)); 6429 __ blx(r3); 6430 __ mov(Narrow, r1, r0); 6431 __ b(Narrow, &l_3316); 6432 // -------------- 6433 __ bind(&l_33fa); 6434 __ ldr(r5, MemOperand(r9, 44)); 6435 __ subs(r5, 1U); 6436 __ lsls(Narrow, r3, r5, 5U); 6437 __ sub(r5, r3, Operand(r5, LSL, 3)); 6438 __ add(Narrow, r5, r5, r9); 6439 __ adds(Narrow, r5, r5, 48U); 6440 __ b(Narrow, &l_3216); 6441 // -------------- 6442 __ bind(&l_340c); 6443 __ mov(Narrow, fp, r7); 6444 __ b(Narrow, &l_32a4); 6445 // -------------- 6446 __ bind(&l_3410); 6447 __ movw(r0, 0U); 6448 } 6449 void Generate_50(TestAssembler* assembler) { 6450 __ movw(r1, 0U); 6451 __ movw(r2, 0U); 6452 __ movt(r1, 0U); 6453 __ movt(r2, 0U); 6454 __ mov(r3, 1306U); 6455 __ movt(r0, 0U); 6456 // -------------- 6457 __ bind(&l_342c); 6458 __ bl(&l_342c); 6459 // -------------- 6460 __ bind(&l_3430); 6461 __ bl(&l_3430); 6462 __ add(Narrow, r0, sp, 88U); 6463 __ str(r6, MemOperand(r0, -28, PreIndex)); 6464 // -------------- 6465 __ bind(&l_343a); 6466 __ bl(&l_343a); 6467 // -------------- 6468 __ bind(&l_343e); 6469 __ bl(&l_343e); 6470 __ nop(Narrow); 6471 // -------------- 6472 __ bind(&l_3444); 6473 __ Emit32(0x00000008); 6474 // -------------- 6475 __ bind(&l_3448); 6476 __ Emit32(0x00000008); 6477 __ push(RegisterList(0x41f0)); 6478 __ mov(Narrow, r4, r0); 6479 __ ldr(Narrow, r3, MemOperand(r0, 12)); 6480 __ sub(Narrow, sp, sp, 8U); 6481 __ mov(Narrow, r6, r1); 6482 __ mov(Narrow, r0, r1); 6483 __ ldr(Narrow, r5, MemOperand(r4, 4)); 6484 __ subs(Narrow, r5, r3, r5); 6485 __ mov(Narrow, r1, r5); 6486 // -------------- 6487 __ bind(&l_3460); 6488 __ bl(&l_3460); 6489 __ cbnz(r0, &l_3484); 6490 // -------------- 6491 __ bind(&l_3466); 6492 __ add(r8, r4, 96U); 6493 __ add(r7, r4, 44U); 6494 // -------------- 6495 __ bind(&l_346e); 6496 __ ldr(Narrow, r5, MemOperand(r4, 12)); 6497 __ mov(Narrow, r0, r8); 6498 __ ldr(Narrow, r3, MemOperand(r4, 4)); 6499 __ mov(Narrow, r1, r7); 6500 __ mov(Narrow, r2, r6); 6501 __ subs(Narrow, r3, r5, r3); 6502 __ add(Narrow, sp, sp, 8U); 6503 __ pop(RegisterList(0x41f0)); 6504 // -------------- 6505 __ bind(&l_3480); 6506 __ b(Wide, &l_3480); 6507 // -------------- 6508 __ bind(&l_3484); 6509 __ ldr(r3, MemOperand(r4, 132)); 6510 __ cmp(Narrow, r5, r3); 6511 __ b(eq, Narrow, &l_3492); 6512 __ adds(Narrow, r2, r5, 2U); 6513 __ cmp(Narrow, r3, r2); 6514 __ b(ge, Narrow, &l_3466); 6515 // -------------- 6516 __ bind(&l_3492); 6517 __ add(r8, r4, 96U); 6518 __ add(r7, r4, 44U); 6519 __ movs(Narrow, r3, 0U); 6520 __ mov(Narrow, r2, r5); 6521 __ str(Narrow, r3, MemOperand(sp)); 6522 __ mov(Narrow, r0, r8); 6523 __ mov(Narrow, r1, r7); 6524 __ movs(Narrow, r3, 2U); 6525 // -------------- 6526 __ bind(&l_34a6); 6527 __ bl(&l_34a6); 6528 __ b(Narrow, &l_346e); 6529 __ ldrb(r3, MemOperand(r0, 32)); 6530 __ push(RegisterList(0x43f0)); 6531 __ mov(Narrow, r4, r0); 6532 __ sub(Narrow, sp, sp, 12U); 6533 __ cbz(r3, &l_34f8); 6534 __ mov(Narrow, r6, r0); 6535 __ movw(r3, 0U); 6536 __ ldr(r5, MemOperand(r6, 8, PostIndex)); 6537 __ movt(r3, 0U); 6538 __ ldr(Narrow, r2, MemOperand(r5)); 6539 __ ldr(Narrow, r2, MemOperand(r2, 8)); 6540 __ cmp(Narrow, r2, r3); 6541 __ b(ne, Narrow, &l_3518); 6542 __ ldr(Narrow, r7, MemOperand(r5, 12)); 6543 __ mov(Narrow, r0, r6); 6544 __ ldr(Narrow, r3, MemOperand(r5, 4)); 6545 __ subs(Narrow, r7, r7, r3); 6546 __ mov(Narrow, r1, r7); 6547 // -------------- 6548 __ bind(&l_34da); 6549 __ bl(&l_34da); 6550 __ add(r9, r5, 96U); 6551 __ add(r8, r5, 44U); 6552 __ cbnz(r0, &l_3520); 6553 // -------------- 6554 __ bind(&l_34e8); 6555 __ ldr(Narrow, r7, MemOperand(r5, 12)); 6556 __ mov(Narrow, r0, r9); 6557 __ ldr(Narrow, r3, MemOperand(r5, 4)); 6558 __ mov(Narrow, r1, r8); 6559 __ mov(Narrow, r2, r6); 6560 __ subs(Narrow, r3, r7, r3); 6561 // -------------- 6562 __ bind(&l_34f4); 6563 __ bl(&l_34f4); 6564 // -------------- 6565 __ bind(&l_34f8); 6566 __ ldr(r5, MemOperand(r4, 152)); 6567 __ ldr(Narrow, r3, &l_3558); 6568 __ str(Narrow, r3, MemOperand(r4, 8)); 6569 __ cbz(r5, &l_3510); 6570 __ ldr(Narrow, r0, MemOperand(r5)); 6571 __ cbz(r0, &l_350a); 6572 // -------------- 6573 __ bind(&l_3506); 6574 __ bl(&l_3506); 6575 // -------------- 6576 __ bind(&l_350a); 6577 __ mov(Narrow, r0, r5); 6578 // -------------- 6579 __ bind(&l_350c); 6580 __ bl(&l_350c); 6581 // -------------- 6582 __ bind(&l_3510); 6583 __ mov(Narrow, r0, r4); 6584 __ add(Narrow, sp, sp, 12U); 6585 __ pop(RegisterList(0x83f0)); 6586 // -------------- 6587 __ bind(&l_3518); 6588 __ mov(Narrow, r0, r5); 6589 __ mov(Narrow, r1, r6); 6590 __ blx(r2); 6591 __ b(Narrow, &l_34f8); 6592 // -------------- 6593 __ bind(&l_3520); 6594 __ ldr(r3, MemOperand(r5, 132)); 6595 __ add(r9, r5, 96U); 6596 } 6597 void Generate_51(TestAssembler* assembler) { 6598 __ add(r8, r5, 44U); 6599 __ cmp(Narrow, r7, r3); 6600 __ b(eq, Narrow, &l_3536); 6601 __ adds(Narrow, r2, r7, 2U); 6602 __ cmp(Narrow, r3, r2); 6603 __ b(ge, Narrow, &l_34e8); 6604 // -------------- 6605 __ bind(&l_3536); 6606 __ movs(Narrow, r3, 0U); 6607 __ mov(Narrow, r2, r7); 6608 __ str(Narrow, r3, MemOperand(sp)); 6609 __ mov(Narrow, r1, r8); 6610 __ mov(Narrow, r0, r9); 6611 __ movs(Narrow, r3, 2U); 6612 // -------------- 6613 __ bind(&l_3542); 6614 __ bl(&l_3542); 6615 __ b(Narrow, &l_34e8); 6616 __ ldr(Narrow, r3, &l_3558); 6617 __ add(r0, r4, 36U); 6618 __ str(Narrow, r3, MemOperand(r4, 8)); 6619 // -------------- 6620 __ bind(&l_3550); 6621 __ bl(&l_3550); 6622 // -------------- 6623 __ bind(&l_3554); 6624 __ bl(&l_3554); 6625 // -------------- 6626 __ bind(&l_3558); 6627 __ Emit32(0x00000008); 6628 __ push(RegisterList(0x4ff0)); 6629 __ adds(r7, r0, 44U); 6630 __ ldr(Narrow, r6, &l_3740); 6631 __ sub(Narrow, sp, sp, 212U); 6632 __ mov(Narrow, r5, r1); 6633 __ mov(r1, 0U); 6634 __ mov(Narrow, r4, r0); 6635 __ mov(Narrow, sl, r2); 6636 __ mov(Narrow, fp, r3); 6637 __ mov(Narrow, r8, r5); 6638 __ str(Narrow, r6, MemOperand(sp, 12)); 6639 __ str(Narrow, r1, MemOperand(sp, 16)); 6640 __ strb(r1, MemOperand(sp, 29)); 6641 __ b(eq, Narrow, &l_35d0); 6642 __ ldr(Narrow, r3, MemOperand(r0, 44)); 6643 __ movs(Narrow, r2, 1U); 6644 __ str(Narrow, r2, MemOperand(sp, 36)); 6645 __ mov(Narrow, r0, r7); 6646 __ movs(Narrow, r1, 32U); 6647 __ str(Narrow, r7, MemOperand(sp, 32)); 6648 __ ldr(Narrow, r3, MemOperand(r3, 32)); 6649 __ blx(r3); 6650 __ ldr(Narrow, r3, MemOperand(r4, 44)); 6651 __ mov(Narrow, r0, r7); 6652 __ ldr(Narrow, r3, MemOperand(r3, 24)); 6653 __ blx(r3); 6654 __ ldr(Narrow, r2, MemOperand(r4, 44)); 6655 __ movw(r3, 0U); 6656 __ movt(r3, 0U); 6657 __ mov(Narrow, r0, r7); 6658 __ ldr(Narrow, r2, MemOperand(r2)); 6659 __ cmp(Narrow, r2, r3); 6660 __ b(ne, &l_3718); 6661 // -------------- 6662 __ bind(&l_35ac); 6663 __ bl(&l_35ac); 6664 // -------------- 6665 __ bind(&l_35b0); 6666 __ str(Narrow, r0, MemOperand(sp, 16)); 6667 __ ldr(Narrow, r1, MemOperand(r0, 20)); 6668 __ ldr(Narrow, r3, MemOperand(r0, 4)); 6669 __ ldr(Narrow, r2, MemOperand(r0, 12)); 6670 __ add(Narrow, r3, r3, r1); 6671 __ subs(Narrow, r3, r3, r2); 6672 __ cmp(Narrow, r3, 31U); 6673 __ b(hi, Narrow, &l_35ca); 6674 __ lsls(Narrow, r1, r1, 1U); 6675 __ adds(r0, 4U); 6676 __ adds(Narrow, r1, r1, 32U); 6677 // -------------- 6678 __ bind(&l_35c6); 6679 __ bl(&l_35c6); 6680 // -------------- 6681 __ bind(&l_35ca); 6682 __ movs(Narrow, r3, 1U); 6683 __ strb(r3, MemOperand(sp, 29)); 6684 // -------------- 6685 __ bind(&l_35d0); 6686 __ ldr(r9, &l_374c); 6687 __ cmp(Narrow, r5, 14U); 6688 __ ldr(Narrow, r1, &l_3744); 6689 __ mov(r3, 0U); 6690 __ mov(r2, 1U); 6691 __ mov(r0, 4U); 6692 __ str(Narrow, r4, MemOperand(sp, 40)); 6693 __ str(Narrow, r5, MemOperand(sp, 44)); 6694 __ str(r9, MemOperand(sp, 12)); 6695 __ str(Narrow, r0, MemOperand(sp, 52)); 6696 __ str(Narrow, r2, MemOperand(sp, 56)); 6697 __ str(Narrow, r2, MemOperand(sp, 60)); 6698 __ strb(r2, MemOperand(sp, 88)); 6699 __ str(Narrow, r2, MemOperand(sp, 104)); 6700 __ str(Narrow, r2, MemOperand(sp, 128)); 6701 __ str(Narrow, r2, MemOperand(sp, 152)); 6702 __ str(Narrow, r2, MemOperand(sp, 176)); 6703 __ strb(r3, MemOperand(sp, 64)); 6704 __ str(Narrow, r3, MemOperand(sp, 68)); 6705 __ strb(r3, MemOperand(sp, 72)); 6706 __ strb(r3, MemOperand(sp, 76)); 6707 __ str(Narrow, r3, MemOperand(sp, 92)); 6708 __ str(Narrow, r3, MemOperand(sp, 96)); 6709 __ str(Narrow, r3, MemOperand(sp, 100)); 6710 __ str(Narrow, r3, MemOperand(sp, 108)); 6711 __ str(Narrow, r3, MemOperand(sp, 112)); 6712 __ str(Narrow, r3, MemOperand(sp, 116)); 6713 __ str(Narrow, r3, MemOperand(sp, 120)); 6714 __ str(Narrow, r3, MemOperand(sp, 124)); 6715 __ str(Narrow, r3, MemOperand(sp, 132)); 6716 __ str(Narrow, r3, MemOperand(sp, 136)); 6717 __ str(Narrow, r3, MemOperand(sp, 140)); 6718 } 6719 void Generate_52(TestAssembler* assembler) { 6720 __ str(Narrow, r3, MemOperand(sp, 144)); 6721 __ str(Narrow, r3, MemOperand(sp, 148)); 6722 __ str(Narrow, r3, MemOperand(sp, 156)); 6723 __ str(Narrow, r3, MemOperand(sp, 160)); 6724 __ str(Narrow, r3, MemOperand(sp, 164)); 6725 __ str(Narrow, r3, MemOperand(sp, 168)); 6726 __ str(Narrow, r3, MemOperand(sp, 172)); 6727 __ str(Narrow, r3, MemOperand(sp, 180)); 6728 __ str(Narrow, r3, MemOperand(sp, 184)); 6729 __ str(Narrow, r3, MemOperand(sp, 188)); 6730 __ str(Narrow, r3, MemOperand(sp, 192)); 6731 __ strb(r3, MemOperand(sp, 200)); 6732 __ str(Narrow, r1, MemOperand(sp, 48)); 6733 __ b(eq, Narrow, &l_3646); 6734 __ ldr(Narrow, r2, MemOperand(r4, 28)); 6735 __ cmp(Narrow, r2, 1U); 6736 __ b(eq, Narrow, &l_36d6); 6737 // -------------- 6738 __ bind(&l_3646); 6739 __ ldr(Narrow, r3, MemOperand(sp, 248)); 6740 __ mov(Narrow, r0, r4); 6741 __ mov(Narrow, r1, r8); 6742 __ mov(Narrow, r2, sl); 6743 __ str(Narrow, r3, MemOperand(sp)); 6744 __ mov(Narrow, r3, fp); 6745 // -------------- 6746 __ bind(&l_3652); 6747 __ bl(&l_3652); 6748 __ ldrb(r3, MemOperand(sp, 72)); 6749 __ cbz(r3, &l_3698); 6750 __ ldr(Narrow, r4, MemOperand(sp, 40)); 6751 __ movw(r3, 0U); 6752 __ movt(r3, 0U); 6753 __ ldr(Narrow, r2, MemOperand(r4)); 6754 __ ldr(Narrow, r2, MemOperand(r2, 8)); 6755 __ cmp(Narrow, r2, r3); 6756 __ b(ne, Narrow, &l_36e8); 6757 __ ldr(Narrow, r5, MemOperand(r4, 12)); 6758 __ add(Narrow, r0, sp, 48U); 6759 __ ldr(Narrow, r3, MemOperand(r4, 4)); 6760 __ subs(Narrow, r5, r5, r3); 6761 __ mov(Narrow, r1, r5); 6762 // -------------- 6763 __ bind(&l_3678); 6764 __ bl(&l_3678); 6765 __ add(r8, r4, 96U); 6766 __ add(r7, r4, 44U); 6767 __ cmp(Narrow, r0, 0U); 6768 __ b(ne, Narrow, &l_36f0); 6769 // -------------- 6770 __ bind(&l_3688); 6771 __ ldr(Narrow, r5, MemOperand(r4, 12)); 6772 __ mov(Narrow, r0, r8); 6773 __ ldr(Narrow, r3, MemOperand(r4, 4)); 6774 __ mov(Narrow, r1, r7); 6775 __ add(Narrow, r2, sp, 48U); 6776 __ subs(Narrow, r3, r5, r3); 6777 // -------------- 6778 __ bind(&l_3694); 6779 __ bl(&l_3694); 6780 // -------------- 6781 __ bind(&l_3698); 6782 __ ldr(Narrow, r4, MemOperand(sp, 192)); 6783 __ ldr(Narrow, r3, &l_3748); 6784 __ str(Narrow, r3, MemOperand(sp, 48)); 6785 __ cbz(r4, &l_36ae); 6786 __ ldr(Narrow, r0, MemOperand(r4)); 6787 __ cbz(r0, &l_36a8); 6788 // -------------- 6789 __ bind(&l_36a4); 6790 __ bl(&l_36a4); 6791 // -------------- 6792 __ bind(&l_36a8); 6793 __ mov(Narrow, r0, r4); 6794 // -------------- 6795 __ bind(&l_36aa); 6796 __ bl(&l_36aa); 6797 // -------------- 6798 __ bind(&l_36ae); 6799 __ ldrb(r3, MemOperand(sp, 29)); 6800 __ str(Narrow, r6, MemOperand(sp, 12)); 6801 __ cbnz(r3, &l_36bc); 6802 // -------------- 6803 __ bind(&l_36b6); 6804 __ add(Narrow, sp, sp, 212U); 6805 __ pop(RegisterList(0x8ff0)); 6806 // -------------- 6807 __ bind(&l_36bc); 6808 __ ldr(Narrow, r0, MemOperand(sp, 32)); 6809 __ cmp(Narrow, r0, 0U); 6810 __ b(eq, Narrow, &l_36b6); 6811 __ ldr(Narrow, r3, MemOperand(sp, 36)); 6812 __ movs(Narrow, r2, 0U); 6813 __ strb(r2, MemOperand(sp, 29)); 6814 __ cmp(Narrow, r3, 1U); 6815 __ b(ne, Narrow, &l_36b6); 6816 __ ldr(Narrow, r3, MemOperand(r0)); 6817 __ ldr(Narrow, r3, MemOperand(r3, 28)); 6818 __ blx(r3); 6819 __ b(Narrow, &l_36b6); 6820 // -------------- 6821 __ bind(&l_36d6); 6822 __ eor(r1, r5, 0x1); 6823 __ mov(Narrow, r0, r4); 6824 __ add(Narrow, r3, sp, 48U); 6825 // -------------- 6826 __ bind(&l_36de); 6827 __ bl(&l_36de); 6828 __ mov(r8, 14U); 6829 __ b(Narrow, &l_3646); 6830 // -------------- 6831 __ bind(&l_36e8); 6832 __ mov(Narrow, r0, r4); 6833 __ add(Narrow, r1, sp, 48U); 6834 __ blx(r2); 6835 __ b(Narrow, &l_3698); 6836 // -------------- 6837 __ bind(&l_36f0); 6838 __ ldr(r3, MemOperand(r4, 132)); 6839 __ add(r8, r4, 96U); 6840 __ add(r7, r4, 44U); 6841 __ cmp(Narrow, r5, r3); 6842 __ b(eq, Narrow, &l_3706); 6843 __ adds(Narrow, r2, r5, 2U); 6844 __ cmp(Narrow, r3, r2); 6845 __ b(ge, Narrow, &l_3688); 6846 // -------------- 6847 __ bind(&l_3706); 6848 __ movs(Narrow, r3, 0U); 6849 __ mov(Narrow, r2, r5); 6850 __ str(Narrow, r3, MemOperand(sp)); 6851 __ mov(Narrow, r1, r7); 6852 __ mov(Narrow, r0, r8); 6853 __ movs(Narrow, r3, 2U); 6854 } 6855 void Generate_53(TestAssembler* assembler) { 6856 // -------------- 6857 __ bind(&l_3712); 6858 __ bl(&l_3712); 6859 __ b(Narrow, &l_3688); 6860 // -------------- 6861 __ bind(&l_3718); 6862 __ blx(r2); 6863 __ b(Narrow, &l_35b0); 6864 __ add(Narrow, r0, sp, 40U); 6865 // -------------- 6866 __ bind(&l_371e); 6867 __ bl(&l_371e); 6868 // -------------- 6869 __ bind(&l_3722); 6870 __ add(Narrow, r0, sp, 208U); 6871 __ str(r9, MemOperand(r0, -196, PreIndex)); 6872 // -------------- 6873 __ bind(&l_3728); 6874 __ bl(&l_3728); 6875 // -------------- 6876 __ bind(&l_372c); 6877 __ bl(&l_372c); 6878 // -------------- 6879 __ bind(&l_3730); 6880 __ ldr(Narrow, r3, &l_3748); 6881 __ add(Narrow, r0, sp, 76U); 6882 __ str(Narrow, r3, MemOperand(sp, 48)); 6883 // -------------- 6884 __ bind(&l_3736); 6885 __ bl(&l_3736); 6886 __ b(Narrow, &l_3722); 6887 __ b(Narrow, &l_3730); 6888 __ nop(Narrow); 6889 // -------------- 6890 __ bind(&l_3740); 6891 __ Emit32(0x00000008); 6892 // -------------- 6893 __ bind(&l_3744); 6894 __ Emit32(0x00000008); 6895 // -------------- 6896 __ bind(&l_3748); 6897 __ Emit32(0x00000008); 6898 // -------------- 6899 __ bind(&l_374c); 6900 __ Emit32(0x00000008); 6901 __ push(RegisterList(0x4ff0)); 6902 __ adds(r7, r0, 44U); 6903 __ ldr(Narrow, r6, &l_3938); 6904 __ sub(Narrow, sp, sp, 212U); 6905 __ mov(Narrow, r5, r1); 6906 __ mov(r1, 0U); 6907 __ mov(Narrow, r4, r0); 6908 __ mov(Narrow, sl, r2); 6909 __ mov(Narrow, fp, r3); 6910 __ mov(Narrow, r8, r5); 6911 __ str(Narrow, r6, MemOperand(sp, 12)); 6912 __ str(Narrow, r1, MemOperand(sp, 16)); 6913 __ strb(r1, MemOperand(sp, 29)); 6914 __ b(eq, Narrow, &l_37c4); 6915 __ ldr(Narrow, r3, MemOperand(r0, 44)); 6916 __ movs(Narrow, r2, 1U); 6917 __ str(Narrow, r2, MemOperand(sp, 36)); 6918 __ mov(Narrow, r0, r7); 6919 __ movs(Narrow, r1, 32U); 6920 __ str(Narrow, r7, MemOperand(sp, 32)); 6921 __ ldr(Narrow, r3, MemOperand(r3, 32)); 6922 __ blx(r3); 6923 __ ldr(Narrow, r3, MemOperand(r4, 44)); 6924 __ mov(Narrow, r0, r7); 6925 __ ldr(Narrow, r3, MemOperand(r3, 24)); 6926 __ blx(r3); 6927 __ ldr(Narrow, r2, MemOperand(r4, 44)); 6928 __ movw(r3, 0U); 6929 __ movt(r3, 0U); 6930 __ mov(Narrow, r0, r7); 6931 __ ldr(Narrow, r2, MemOperand(r2)); 6932 __ cmp(Narrow, r2, r3); 6933 __ b(ne, &l_3910); 6934 // -------------- 6935 __ bind(&l_37a0); 6936 __ bl(&l_37a0); 6937 // -------------- 6938 __ bind(&l_37a4); 6939 __ str(Narrow, r0, MemOperand(sp, 16)); 6940 __ ldr(Narrow, r1, MemOperand(r0, 20)); 6941 __ ldr(Narrow, r3, MemOperand(r0, 4)); 6942 __ ldr(Narrow, r2, MemOperand(r0, 12)); 6943 __ add(Narrow, r3, r3, r1); 6944 __ subs(Narrow, r3, r3, r2); 6945 __ cmp(Narrow, r3, 31U); 6946 __ b(hi, Narrow, &l_37be); 6947 __ lsls(Narrow, r1, r1, 1U); 6948 __ adds(r0, 4U); 6949 __ adds(Narrow, r1, r1, 32U); 6950 // -------------- 6951 __ bind(&l_37ba); 6952 __ bl(&l_37ba); 6953 // -------------- 6954 __ bind(&l_37be); 6955 __ movs(Narrow, r3, 1U); 6956 __ strb(r3, MemOperand(sp, 29)); 6957 // -------------- 6958 __ bind(&l_37c4); 6959 __ ldr(r9, &l_3944); 6960 __ cmp(Narrow, r5, 14U); 6961 __ ldr(Narrow, r1, &l_393c); 6962 __ mov(r3, 0U); 6963 __ mov(r2, 1U); 6964 __ mov(r0, 4U); 6965 __ str(Narrow, r4, MemOperand(sp, 40)); 6966 __ str(Narrow, r5, MemOperand(sp, 44)); 6967 __ str(r9, MemOperand(sp, 12)); 6968 __ str(Narrow, r0, MemOperand(sp, 52)); 6969 __ str(Narrow, r2, MemOperand(sp, 56)); 6970 __ str(Narrow, r2, MemOperand(sp, 60)); 6971 __ strb(r2, MemOperand(sp, 88)); 6972 __ str(Narrow, r2, MemOperand(sp, 104)); 6973 __ str(Narrow, r2, MemOperand(sp, 128)); 6974 __ str(Narrow, r2, MemOperand(sp, 152)); 6975 __ str(Narrow, r2, MemOperand(sp, 176)); 6976 __ strb(r3, MemOperand(sp, 64)); 6977 __ str(Narrow, r3, MemOperand(sp, 68)); 6978 __ strb(r3, MemOperand(sp, 72)); 6979 __ strb(r3, MemOperand(sp, 76)); 6980 __ str(Narrow, r3, MemOperand(sp, 92)); 6981 __ str(Narrow, r3, MemOperand(sp, 96)); 6982 __ str(Narrow, r3, MemOperand(sp, 100)); 6983 __ str(Narrow, r3, MemOperand(sp, 108)); 6984 __ str(Narrow, r3, MemOperand(sp, 112)); 6985 __ str(Narrow, r3, MemOperand(sp, 116)); 6986 __ str(Narrow, r3, MemOperand(sp, 120)); 6987 __ str(Narrow, r3, MemOperand(sp, 124)); 6988 __ str(Narrow, r3, MemOperand(sp, 132)); 6989 __ str(Narrow, r3, MemOperand(sp, 136)); 6990 } 6991 void Generate_54(TestAssembler* assembler) { 6992 __ str(Narrow, r3, MemOperand(sp, 140)); 6993 __ str(Narrow, r3, MemOperand(sp, 144)); 6994 __ str(Narrow, r3, MemOperand(sp, 148)); 6995 __ str(Narrow, r3, MemOperand(sp, 156)); 6996 __ str(Narrow, r3, MemOperand(sp, 160)); 6997 __ str(Narrow, r3, MemOperand(sp, 164)); 6998 __ str(Narrow, r3, MemOperand(sp, 168)); 6999 __ str(Narrow, r3, MemOperand(sp, 172)); 7000 __ str(Narrow, r3, MemOperand(sp, 180)); 7001 __ str(Narrow, r3, MemOperand(sp, 184)); 7002 __ str(Narrow, r3, MemOperand(sp, 188)); 7003 __ str(Narrow, r3, MemOperand(sp, 192)); 7004 __ strb(r3, MemOperand(sp, 200)); 7005 __ str(Narrow, r1, MemOperand(sp, 48)); 7006 __ b(eq, Narrow, &l_383a); 7007 __ ldr(Narrow, r2, MemOperand(r4, 28)); 7008 __ cmp(Narrow, r2, 1U); 7009 __ b(eq, Narrow, &l_38ce); 7010 // -------------- 7011 __ bind(&l_383a); 7012 __ ldr(Narrow, r3, MemOperand(sp, 248)); 7013 __ mov(Narrow, r0, r4); 7014 __ mov(Narrow, r1, r8); 7015 __ mov(Narrow, r2, sl); 7016 __ str(Narrow, r3, MemOperand(sp)); 7017 __ ldr(Narrow, r3, MemOperand(sp, 252)); 7018 __ str(Narrow, r3, MemOperand(sp, 4)); 7019 __ mov(Narrow, r3, fp); 7020 // -------------- 7021 __ bind(&l_384a); 7022 __ bl(&l_384a); 7023 __ ldrb(r3, MemOperand(sp, 72)); 7024 __ cbz(r3, &l_3890); 7025 __ ldr(Narrow, r4, MemOperand(sp, 40)); 7026 __ movw(r3, 0U); 7027 __ movt(r3, 0U); 7028 __ ldr(Narrow, r2, MemOperand(r4)); 7029 __ ldr(Narrow, r2, MemOperand(r2, 8)); 7030 __ cmp(Narrow, r2, r3); 7031 __ b(ne, Narrow, &l_38e0); 7032 __ ldr(Narrow, r5, MemOperand(r4, 12)); 7033 __ add(Narrow, r0, sp, 48U); 7034 __ ldr(Narrow, r3, MemOperand(r4, 4)); 7035 __ subs(Narrow, r5, r5, r3); 7036 __ mov(Narrow, r1, r5); 7037 // -------------- 7038 __ bind(&l_3870); 7039 __ bl(&l_3870); 7040 __ add(r8, r4, 96U); 7041 __ add(r7, r4, 44U); 7042 __ cmp(Narrow, r0, 0U); 7043 __ b(ne, Narrow, &l_38e8); 7044 // -------------- 7045 __ bind(&l_3880); 7046 __ ldr(Narrow, r5, MemOperand(r4, 12)); 7047 __ mov(Narrow, r0, r8); 7048 __ ldr(Narrow, r3, MemOperand(r4, 4)); 7049 __ mov(Narrow, r1, r7); 7050 __ add(Narrow, r2, sp, 48U); 7051 __ subs(Narrow, r3, r5, r3); 7052 // -------------- 7053 __ bind(&l_388c); 7054 __ bl(&l_388c); 7055 // -------------- 7056 __ bind(&l_3890); 7057 __ ldr(Narrow, r4, MemOperand(sp, 192)); 7058 __ ldr(Narrow, r3, &l_3940); 7059 __ str(Narrow, r3, MemOperand(sp, 48)); 7060 __ cbz(r4, &l_38a6); 7061 __ ldr(Narrow, r0, MemOperand(r4)); 7062 __ cbz(r0, &l_38a0); 7063 // -------------- 7064 __ bind(&l_389c); 7065 __ bl(&l_389c); 7066 // -------------- 7067 __ bind(&l_38a0); 7068 __ mov(Narrow, r0, r4); 7069 // -------------- 7070 __ bind(&l_38a2); 7071 __ bl(&l_38a2); 7072 // -------------- 7073 __ bind(&l_38a6); 7074 __ ldrb(r3, MemOperand(sp, 29)); 7075 __ str(Narrow, r6, MemOperand(sp, 12)); 7076 __ cbnz(r3, &l_38b4); 7077 // -------------- 7078 __ bind(&l_38ae); 7079 __ add(Narrow, sp, sp, 212U); 7080 __ pop(RegisterList(0x8ff0)); 7081 // -------------- 7082 __ bind(&l_38b4); 7083 __ ldr(Narrow, r0, MemOperand(sp, 32)); 7084 __ cmp(Narrow, r0, 0U); 7085 __ b(eq, Narrow, &l_38ae); 7086 __ ldr(Narrow, r3, MemOperand(sp, 36)); 7087 __ movs(Narrow, r2, 0U); 7088 __ strb(r2, MemOperand(sp, 29)); 7089 __ cmp(Narrow, r3, 1U); 7090 __ b(ne, Narrow, &l_38ae); 7091 __ ldr(Narrow, r3, MemOperand(r0)); 7092 __ ldr(Narrow, r3, MemOperand(r3, 28)); 7093 __ blx(r3); 7094 __ b(Narrow, &l_38ae); 7095 // -------------- 7096 __ bind(&l_38ce); 7097 __ eor(r1, r5, 0x1); 7098 __ mov(Narrow, r0, r4); 7099 __ add(Narrow, r3, sp, 48U); 7100 // -------------- 7101 __ bind(&l_38d6); 7102 __ bl(&l_38d6); 7103 __ mov(r8, 14U); 7104 __ b(Narrow, &l_383a); 7105 // -------------- 7106 __ bind(&l_38e0); 7107 __ mov(Narrow, r0, r4); 7108 __ add(Narrow, r1, sp, 48U); 7109 __ blx(r2); 7110 __ b(Narrow, &l_3890); 7111 // -------------- 7112 __ bind(&l_38e8); 7113 __ ldr(r3, MemOperand(r4, 132)); 7114 __ add(r8, r4, 96U); 7115 __ add(r7, r4, 44U); 7116 __ cmp(Narrow, r5, r3); 7117 __ b(eq, Narrow, &l_38fe); 7118 __ adds(Narrow, r2, r5, 2U); 7119 __ cmp(Narrow, r3, r2); 7120 __ b(ge, Narrow, &l_3880); 7121 // -------------- 7122 __ bind(&l_38fe); 7123 __ movs(Narrow, r3, 0U); 7124 __ mov(Narrow, r2, r5); 7125 __ str(Narrow, r3, MemOperand(sp)); 7126 } 7127 void Generate_55(TestAssembler* assembler) { 7128 __ mov(Narrow, r1, r7); 7129 __ mov(Narrow, r0, r8); 7130 __ movs(Narrow, r3, 2U); 7131 // -------------- 7132 __ bind(&l_390a); 7133 __ bl(&l_390a); 7134 __ b(Narrow, &l_3880); 7135 // -------------- 7136 __ bind(&l_3910); 7137 __ blx(r2); 7138 __ b(Narrow, &l_37a4); 7139 __ add(Narrow, r0, sp, 40U); 7140 // -------------- 7141 __ bind(&l_3916); 7142 __ bl(&l_3916); 7143 // -------------- 7144 __ bind(&l_391a); 7145 __ add(Narrow, r0, sp, 208U); 7146 __ str(r9, MemOperand(r0, -196, PreIndex)); 7147 // -------------- 7148 __ bind(&l_3920); 7149 __ bl(&l_3920); 7150 // -------------- 7151 __ bind(&l_3924); 7152 __ bl(&l_3924); 7153 // -------------- 7154 __ bind(&l_3928); 7155 __ ldr(Narrow, r3, &l_3940); 7156 __ add(Narrow, r0, sp, 76U); 7157 __ str(Narrow, r3, MemOperand(sp, 48)); 7158 // -------------- 7159 __ bind(&l_392e); 7160 __ bl(&l_392e); 7161 __ b(Narrow, &l_391a); 7162 __ b(Narrow, &l_3928); 7163 __ nop(Narrow); 7164 // -------------- 7165 __ bind(&l_3938); 7166 __ Emit32(0x00000008); 7167 // -------------- 7168 __ bind(&l_393c); 7169 __ Emit32(0x00000008); 7170 // -------------- 7171 __ bind(&l_3940); 7172 __ Emit32(0x00000008); 7173 // -------------- 7174 __ bind(&l_3944); 7175 __ Emit32(0x00000008); 7176 __ push(RegisterList(0x4ff0)); 7177 __ adds(r7, r0, 44U); 7178 __ ldr(Narrow, r6, &l_3b30); 7179 __ sub(Narrow, sp, sp, 212U); 7180 __ mov(Narrow, r5, r1); 7181 __ mov(r1, 0U); 7182 __ mov(Narrow, r4, r0); 7183 __ mov(Narrow, sl, r2); 7184 __ mov(Narrow, fp, r3); 7185 __ mov(Narrow, r8, r5); 7186 __ str(Narrow, r6, MemOperand(sp, 12)); 7187 __ str(Narrow, r1, MemOperand(sp, 16)); 7188 __ strb(r1, MemOperand(sp, 29)); 7189 __ b(eq, Narrow, &l_39bc); 7190 __ ldr(Narrow, r3, MemOperand(r0, 44)); 7191 __ movs(Narrow, r2, 1U); 7192 __ str(Narrow, r2, MemOperand(sp, 36)); 7193 __ mov(Narrow, r0, r7); 7194 __ movs(Narrow, r1, 32U); 7195 __ str(Narrow, r7, MemOperand(sp, 32)); 7196 __ ldr(Narrow, r3, MemOperand(r3, 32)); 7197 __ blx(r3); 7198 __ ldr(Narrow, r3, MemOperand(r4, 44)); 7199 __ mov(Narrow, r0, r7); 7200 __ ldr(Narrow, r3, MemOperand(r3, 24)); 7201 __ blx(r3); 7202 __ ldr(Narrow, r2, MemOperand(r4, 44)); 7203 __ movw(r3, 0U); 7204 __ movt(r3, 0U); 7205 __ mov(Narrow, r0, r7); 7206 __ ldr(Narrow, r2, MemOperand(r2)); 7207 __ cmp(Narrow, r2, r3); 7208 __ b(ne, &l_3b08); 7209 // -------------- 7210 __ bind(&l_3998); 7211 __ bl(&l_3998); 7212 // -------------- 7213 __ bind(&l_399c); 7214 __ str(Narrow, r0, MemOperand(sp, 16)); 7215 __ ldr(Narrow, r1, MemOperand(r0, 20)); 7216 __ ldr(Narrow, r3, MemOperand(r0, 4)); 7217 __ ldr(Narrow, r2, MemOperand(r0, 12)); 7218 __ add(Narrow, r3, r3, r1); 7219 __ subs(Narrow, r3, r3, r2); 7220 __ cmp(Narrow, r3, 31U); 7221 __ b(hi, Narrow, &l_39b6); 7222 __ lsls(Narrow, r1, r1, 1U); 7223 __ adds(r0, 4U); 7224 __ adds(Narrow, r1, r1, 32U); 7225 // -------------- 7226 __ bind(&l_39b2); 7227 __ bl(&l_39b2); 7228 // -------------- 7229 __ bind(&l_39b6); 7230 __ movs(Narrow, r3, 1U); 7231 __ strb(r3, MemOperand(sp, 29)); 7232 // -------------- 7233 __ bind(&l_39bc); 7234 __ ldr(r9, &l_3b3c); 7235 __ cmp(Narrow, r5, 14U); 7236 __ ldr(Narrow, r1, &l_3b34); 7237 __ mov(r3, 0U); 7238 __ mov(r2, 1U); 7239 __ mov(r0, 4U); 7240 __ str(Narrow, r4, MemOperand(sp, 40)); 7241 __ str(Narrow, r5, MemOperand(sp, 44)); 7242 __ str(r9, MemOperand(sp, 12)); 7243 __ str(Narrow, r0, MemOperand(sp, 52)); 7244 __ str(Narrow, r2, MemOperand(sp, 56)); 7245 __ str(Narrow, r2, MemOperand(sp, 60)); 7246 __ strb(r2, MemOperand(sp, 88)); 7247 __ str(Narrow, r2, MemOperand(sp, 104)); 7248 __ str(Narrow, r2, MemOperand(sp, 128)); 7249 __ str(Narrow, r2, MemOperand(sp, 152)); 7250 __ str(Narrow, r2, MemOperand(sp, 176)); 7251 __ strb(r3, MemOperand(sp, 64)); 7252 __ str(Narrow, r3, MemOperand(sp, 68)); 7253 __ strb(r3, MemOperand(sp, 72)); 7254 __ strb(r3, MemOperand(sp, 76)); 7255 __ str(Narrow, r3, MemOperand(sp, 92)); 7256 __ str(Narrow, r3, MemOperand(sp, 96)); 7257 __ str(Narrow, r3, MemOperand(sp, 100)); 7258 __ str(Narrow, r3, MemOperand(sp, 108)); 7259 __ str(Narrow, r3, MemOperand(sp, 112)); 7260 __ str(Narrow, r3, MemOperand(sp, 116)); 7261 __ str(Narrow, r3, MemOperand(sp, 120)); 7262 } 7263 void Generate_56(TestAssembler* assembler) { 7264 __ str(Narrow, r3, MemOperand(sp, 124)); 7265 __ str(Narrow, r3, MemOperand(sp, 132)); 7266 __ str(Narrow, r3, MemOperand(sp, 136)); 7267 __ str(Narrow, r3, MemOperand(sp, 140)); 7268 __ str(Narrow, r3, MemOperand(sp, 144)); 7269 __ str(Narrow, r3, MemOperand(sp, 148)); 7270 __ str(Narrow, r3, MemOperand(sp, 156)); 7271 __ str(Narrow, r3, MemOperand(sp, 160)); 7272 __ str(Narrow, r3, MemOperand(sp, 164)); 7273 __ str(Narrow, r3, MemOperand(sp, 168)); 7274 __ str(Narrow, r3, MemOperand(sp, 172)); 7275 __ str(Narrow, r3, MemOperand(sp, 180)); 7276 __ str(Narrow, r3, MemOperand(sp, 184)); 7277 __ str(Narrow, r3, MemOperand(sp, 188)); 7278 __ str(Narrow, r3, MemOperand(sp, 192)); 7279 __ strb(r3, MemOperand(sp, 200)); 7280 __ str(Narrow, r1, MemOperand(sp, 48)); 7281 __ b(eq, Narrow, &l_3a32); 7282 __ ldr(Narrow, r2, MemOperand(r4, 28)); 7283 __ cmp(Narrow, r2, 1U); 7284 __ b(eq, Narrow, &l_3ac6); 7285 // -------------- 7286 __ bind(&l_3a32); 7287 __ ldr(Narrow, r3, MemOperand(sp, 248)); 7288 __ mov(Narrow, r0, r4); 7289 __ mov(Narrow, r1, r8); 7290 __ mov(Narrow, r2, sl); 7291 __ str(Narrow, r3, MemOperand(sp)); 7292 __ ldr(Narrow, r3, MemOperand(sp, 252)); 7293 __ str(Narrow, r3, MemOperand(sp, 4)); 7294 __ mov(Narrow, r3, fp); 7295 // -------------- 7296 __ bind(&l_3a42); 7297 __ bl(&l_3a42); 7298 __ ldrb(r3, MemOperand(sp, 72)); 7299 __ cbz(r3, &l_3a88); 7300 __ ldr(Narrow, r4, MemOperand(sp, 40)); 7301 __ movw(r3, 0U); 7302 __ movt(r3, 0U); 7303 __ ldr(Narrow, r2, MemOperand(r4)); 7304 __ ldr(Narrow, r2, MemOperand(r2, 8)); 7305 __ cmp(Narrow, r2, r3); 7306 __ b(ne, Narrow, &l_3ad8); 7307 __ ldr(Narrow, r5, MemOperand(r4, 12)); 7308 __ add(Narrow, r0, sp, 48U); 7309 __ ldr(Narrow, r3, MemOperand(r4, 4)); 7310 __ subs(Narrow, r5, r5, r3); 7311 __ mov(Narrow, r1, r5); 7312 // -------------- 7313 __ bind(&l_3a68); 7314 __ bl(&l_3a68); 7315 __ add(r8, r4, 96U); 7316 __ add(r7, r4, 44U); 7317 __ cmp(Narrow, r0, 0U); 7318 __ b(ne, Narrow, &l_3ae0); 7319 // -------------- 7320 __ bind(&l_3a78); 7321 __ ldr(Narrow, r5, MemOperand(r4, 12)); 7322 __ mov(Narrow, r0, r8); 7323 __ ldr(Narrow, r3, MemOperand(r4, 4)); 7324 __ mov(Narrow, r1, r7); 7325 __ add(Narrow, r2, sp, 48U); 7326 __ subs(Narrow, r3, r5, r3); 7327 // -------------- 7328 __ bind(&l_3a84); 7329 __ bl(&l_3a84); 7330 // -------------- 7331 __ bind(&l_3a88); 7332 __ ldr(Narrow, r4, MemOperand(sp, 192)); 7333 __ ldr(Narrow, r3, &l_3b38); 7334 __ str(Narrow, r3, MemOperand(sp, 48)); 7335 __ cbz(r4, &l_3a9e); 7336 __ ldr(Narrow, r0, MemOperand(r4)); 7337 __ cbz(r0, &l_3a98); 7338 // -------------- 7339 __ bind(&l_3a94); 7340 __ bl(&l_3a94); 7341 // -------------- 7342 __ bind(&l_3a98); 7343 __ mov(Narrow, r0, r4); 7344 // -------------- 7345 __ bind(&l_3a9a); 7346 __ bl(&l_3a9a); 7347 // -------------- 7348 __ bind(&l_3a9e); 7349 __ ldrb(r3, MemOperand(sp, 29)); 7350 __ str(Narrow, r6, MemOperand(sp, 12)); 7351 __ cbnz(r3, &l_3aac); 7352 // -------------- 7353 __ bind(&l_3aa6); 7354 __ add(Narrow, sp, sp, 212U); 7355 __ pop(RegisterList(0x8ff0)); 7356 // -------------- 7357 __ bind(&l_3aac); 7358 __ ldr(Narrow, r0, MemOperand(sp, 32)); 7359 __ cmp(Narrow, r0, 0U); 7360 __ b(eq, Narrow, &l_3aa6); 7361 __ ldr(Narrow, r3, MemOperand(sp, 36)); 7362 __ movs(Narrow, r2, 0U); 7363 __ strb(r2, MemOperand(sp, 29)); 7364 __ cmp(Narrow, r3, 1U); 7365 __ b(ne, Narrow, &l_3aa6); 7366 __ ldr(Narrow, r3, MemOperand(r0)); 7367 __ ldr(Narrow, r3, MemOperand(r3, 28)); 7368 __ blx(r3); 7369 __ b(Narrow, &l_3aa6); 7370 // -------------- 7371 __ bind(&l_3ac6); 7372 __ eor(r1, r5, 0x1); 7373 __ mov(Narrow, r0, r4); 7374 __ add(Narrow, r3, sp, 48U); 7375 // -------------- 7376 __ bind(&l_3ace); 7377 __ bl(&l_3ace); 7378 __ mov(r8, 14U); 7379 __ b(Narrow, &l_3a32); 7380 // -------------- 7381 __ bind(&l_3ad8); 7382 __ mov(Narrow, r0, r4); 7383 __ add(Narrow, r1, sp, 48U); 7384 __ blx(r2); 7385 __ b(Narrow, &l_3a88); 7386 // -------------- 7387 __ bind(&l_3ae0); 7388 __ ldr(r3, MemOperand(r4, 132)); 7389 __ add(r8, r4, 96U); 7390 __ add(r7, r4, 44U); 7391 __ cmp(Narrow, r5, r3); 7392 __ b(eq, Narrow, &l_3af6); 7393 __ adds(Narrow, r2, r5, 2U); 7394 __ cmp(Narrow, r3, r2); 7395 __ b(ge, Narrow, &l_3a78); 7396 } 7397 void Generate_57(TestAssembler* assembler) { 7398 // -------------- 7399 __ bind(&l_3af6); 7400 __ movs(Narrow, r3, 0U); 7401 __ mov(Narrow, r2, r5); 7402 __ str(Narrow, r3, MemOperand(sp)); 7403 __ mov(Narrow, r1, r7); 7404 __ mov(Narrow, r0, r8); 7405 __ movs(Narrow, r3, 2U); 7406 // -------------- 7407 __ bind(&l_3b02); 7408 __ bl(&l_3b02); 7409 __ b(Narrow, &l_3a78); 7410 // -------------- 7411 __ bind(&l_3b08); 7412 __ blx(r2); 7413 __ b(Narrow, &l_399c); 7414 __ add(Narrow, r0, sp, 40U); 7415 // -------------- 7416 __ bind(&l_3b0e); 7417 __ bl(&l_3b0e); 7418 // -------------- 7419 __ bind(&l_3b12); 7420 __ add(Narrow, r0, sp, 208U); 7421 __ str(r9, MemOperand(r0, -196, PreIndex)); 7422 // -------------- 7423 __ bind(&l_3b18); 7424 __ bl(&l_3b18); 7425 // -------------- 7426 __ bind(&l_3b1c); 7427 __ bl(&l_3b1c); 7428 // -------------- 7429 __ bind(&l_3b20); 7430 __ ldr(Narrow, r3, &l_3b38); 7431 __ add(Narrow, r0, sp, 76U); 7432 __ str(Narrow, r3, MemOperand(sp, 48)); 7433 // -------------- 7434 __ bind(&l_3b26); 7435 __ bl(&l_3b26); 7436 __ b(Narrow, &l_3b12); 7437 __ b(Narrow, &l_3b20); 7438 __ nop(Narrow); 7439 // -------------- 7440 __ bind(&l_3b30); 7441 __ Emit32(0x00000008); 7442 // -------------- 7443 __ bind(&l_3b34); 7444 __ Emit32(0x00000008); 7445 // -------------- 7446 __ bind(&l_3b38); 7447 __ Emit32(0x00000008); 7448 // -------------- 7449 __ bind(&l_3b3c); 7450 __ Emit32(0x00000008); 7451 __ movw(r3, 0U); 7452 __ push(RegisterList(0x47f0)); 7453 __ movt(r3, 0U); 7454 __ mov(Narrow, r6, r0); 7455 __ adds(r4, r6, 44U); 7456 __ sub(Narrow, sp, sp, 232U); 7457 __ ldr(Narrow, r0, MemOperand(r3)); 7458 __ mov(r2, 800U); 7459 __ ldr(Narrow, r7, &l_3d1c); 7460 __ mov(r3, 0U); 7461 __ mov(Narrow, r8, r1); 7462 __ vstr(s0, MemOperand(sp, 8)); 7463 __ str(Narrow, r0, MemOperand(sp, 24)); 7464 __ str(Narrow, r7, MemOperand(sp, 36)); 7465 __ str(Narrow, r2, MemOperand(sp, 16)); 7466 __ str(Narrow, r3, MemOperand(sp, 40)); 7467 __ strb(r3, MemOperand(sp, 53)); 7468 __ b(eq, Narrow, &l_3bc4); 7469 __ ldr(Narrow, r3, MemOperand(r6, 44)); 7470 __ movs(Narrow, r2, 1U); 7471 __ str(Narrow, r2, MemOperand(sp, 60)); 7472 __ mov(Narrow, r0, r4); 7473 __ movs(Narrow, r1, 32U); 7474 __ str(Narrow, r4, MemOperand(sp, 56)); 7475 __ ldr(Narrow, r3, MemOperand(r3, 32)); 7476 __ blx(r3); 7477 __ ldr(Narrow, r3, MemOperand(r6, 44)); 7478 __ mov(Narrow, r0, r4); 7479 __ ldr(Narrow, r3, MemOperand(r3, 24)); 7480 __ blx(r3); 7481 __ ldr(Narrow, r2, MemOperand(r6, 44)); 7482 __ movw(r3, 0U); 7483 __ movt(r3, 0U); 7484 __ mov(Narrow, r0, r4); 7485 __ ldr(Narrow, r2, MemOperand(r2)); 7486 __ cmp(Narrow, r2, r3); 7487 __ b(ne, &l_3cf8); 7488 // -------------- 7489 __ bind(&l_3ba0); 7490 __ bl(&l_3ba0); 7491 // -------------- 7492 __ bind(&l_3ba4); 7493 __ str(Narrow, r0, MemOperand(sp, 40)); 7494 __ ldr(Narrow, r1, MemOperand(r0, 20)); 7495 __ ldr(Narrow, r2, MemOperand(r0, 4)); 7496 __ ldr(Narrow, r3, MemOperand(r0, 12)); 7497 __ add(Narrow, r2, r2, r1); 7498 __ subs(Narrow, r2, r2, r3); 7499 __ cmp(Narrow, r2, 31U); 7500 __ b(hi, Narrow, &l_3bbe); 7501 __ lsls(Narrow, r1, r1, 1U); 7502 __ adds(r0, 4U); 7503 __ adds(Narrow, r1, r1, 32U); 7504 // -------------- 7505 __ bind(&l_3bba); 7506 __ bl(&l_3bba); 7507 // -------------- 7508 __ bind(&l_3bbe); 7509 __ movs(Narrow, r3, 1U); 7510 __ strb(r3, MemOperand(sp, 53)); 7511 // -------------- 7512 __ bind(&l_3bc4); 7513 __ ldr(r9, &l_3d24); 7514 __ movs(Narrow, r4, 0U); 7515 __ ldr(lr, &l_3d28); 7516 __ movs(Narrow, r5, 1U); 7517 __ movs(Narrow, r2, 14U); 7518 __ mov(sl, 4U); 7519 __ add(ip, sp, 8U); 7520 __ str(Narrow, r2, MemOperand(sp, 68)); 7521 __ str(Narrow, r6, MemOperand(sp, 64)); 7522 __ mov(Narrow, r1, r2); 7523 __ str(r9, MemOperand(sp, 36)); 7524 __ mov(Narrow, r0, r6); 7525 __ str(sl, MemOperand(sp, 76)); 7526 __ mov(Narrow, r3, r8); 7527 __ str(Narrow, r5, MemOperand(sp, 80)); 7528 __ mov(r2, 800U); 7529 __ str(Narrow, r5, MemOperand(sp, 84)); 7530 __ strb(r5, MemOperand(sp, 112)); 7531 __ str(Narrow, r5, MemOperand(sp, 128)); 7532 __ str(Narrow, r5, MemOperand(sp, 152)); 7533 __ str(Narrow, r5, MemOperand(sp, 176)); 7534 } 7535 void Generate_58(TestAssembler* assembler) { 7536 __ str(Narrow, r5, MemOperand(sp, 200)); 7537 __ strb(r4, MemOperand(sp, 88)); 7538 __ str(Narrow, r4, MemOperand(sp, 92)); 7539 __ strb(r4, MemOperand(sp, 96)); 7540 __ strb(r4, MemOperand(sp, 100)); 7541 __ str(Narrow, r4, MemOperand(sp, 116)); 7542 __ str(Narrow, r4, MemOperand(sp, 120)); 7543 __ str(Narrow, r4, MemOperand(sp, 124)); 7544 __ str(Narrow, r4, MemOperand(sp, 132)); 7545 __ str(Narrow, r4, MemOperand(sp, 136)); 7546 __ str(Narrow, r4, MemOperand(sp, 140)); 7547 __ str(Narrow, r4, MemOperand(sp, 144)); 7548 __ str(Narrow, r4, MemOperand(sp, 148)); 7549 __ str(Narrow, r4, MemOperand(sp, 156)); 7550 __ str(Narrow, r4, MemOperand(sp, 160)); 7551 __ str(Narrow, r4, MemOperand(sp, 164)); 7552 __ str(Narrow, r4, MemOperand(sp, 168)); 7553 __ str(Narrow, r4, MemOperand(sp, 172)); 7554 __ str(Narrow, r4, MemOperand(sp, 180)); 7555 __ str(Narrow, r4, MemOperand(sp, 184)); 7556 __ str(Narrow, r4, MemOperand(sp, 188)); 7557 __ str(Narrow, r4, MemOperand(sp, 192)); 7558 __ str(Narrow, r4, MemOperand(sp, 196)); 7559 __ str(Narrow, r4, MemOperand(sp, 204)); 7560 __ str(ip, MemOperand(sp)); 7561 __ str(Narrow, r4, MemOperand(sp, 208)); 7562 __ str(Narrow, r4, MemOperand(sp, 212)); 7563 __ str(Narrow, r4, MemOperand(sp, 216)); 7564 __ strb(r4, MemOperand(sp, 224)); 7565 __ str(lr, MemOperand(sp, 72)); 7566 // -------------- 7567 __ bind(&l_3c46); 7568 __ bl(&l_3c46); 7569 __ ldrb(r3, MemOperand(sp, 96)); 7570 __ cbz(r3, &l_3c8a); 7571 __ ldr(Narrow, r4, MemOperand(sp, 64)); 7572 __ movw(r3, 0U); 7573 __ movt(r3, 0U); 7574 __ ldr(Narrow, r2, MemOperand(r4)); 7575 __ ldr(Narrow, r2, MemOperand(r2, 8)); 7576 __ cmp(Narrow, r2, r3); 7577 __ b(ne, Narrow, &l_3cc8); 7578 __ ldr(Narrow, r5, MemOperand(r4, 12)); 7579 __ add(Narrow, r0, sp, 72U); 7580 __ ldr(Narrow, r3, MemOperand(r4, 4)); 7581 __ subs(Narrow, r5, r5, r3); 7582 __ mov(Narrow, r1, r5); 7583 // -------------- 7584 __ bind(&l_3c6c); 7585 __ bl(&l_3c6c); 7586 __ add(r8, r4, 96U); 7587 __ add(r6, r4, 44U); 7588 __ cbnz(r0, &l_3cd0); 7589 // -------------- 7590 __ bind(&l_3c7a); 7591 __ ldr(Narrow, r5, MemOperand(r4, 12)); 7592 __ mov(Narrow, r0, r8); 7593 __ ldr(Narrow, r3, MemOperand(r4, 4)); 7594 __ mov(Narrow, r1, r6); 7595 __ add(Narrow, r2, sp, 72U); 7596 __ subs(Narrow, r3, r5, r3); 7597 // -------------- 7598 __ bind(&l_3c86); 7599 __ bl(&l_3c86); 7600 // -------------- 7601 __ bind(&l_3c8a); 7602 __ ldr(Narrow, r4, MemOperand(sp, 216)); 7603 __ ldr(Narrow, r3, &l_3d20); 7604 __ str(Narrow, r3, MemOperand(sp, 72)); 7605 __ cbz(r4, &l_3ca0); 7606 __ ldr(Narrow, r0, MemOperand(r4)); 7607 __ cbz(r0, &l_3c9a); 7608 // -------------- 7609 __ bind(&l_3c96); 7610 __ bl(&l_3c96); 7611 // -------------- 7612 __ bind(&l_3c9a); 7613 __ mov(Narrow, r0, r4); 7614 // -------------- 7615 __ bind(&l_3c9c); 7616 __ bl(&l_3c9c); 7617 // -------------- 7618 __ bind(&l_3ca0); 7619 __ ldrb(r3, MemOperand(sp, 53)); 7620 __ str(Narrow, r7, MemOperand(sp, 36)); 7621 __ cbnz(r3, &l_3cae); 7622 // -------------- 7623 __ bind(&l_3ca8); 7624 __ add(Narrow, sp, sp, 232U); 7625 __ pop(RegisterList(0x87f0)); 7626 // -------------- 7627 __ bind(&l_3cae); 7628 __ ldr(Narrow, r0, MemOperand(sp, 56)); 7629 __ cmp(Narrow, r0, 0U); 7630 __ b(eq, Narrow, &l_3ca8); 7631 __ ldr(Narrow, r3, MemOperand(sp, 60)); 7632 __ movs(Narrow, r2, 0U); 7633 __ strb(r2, MemOperand(sp, 53)); 7634 __ cmp(Narrow, r3, 1U); 7635 __ b(ne, Narrow, &l_3ca8); 7636 __ ldr(Narrow, r3, MemOperand(r0)); 7637 __ ldr(Narrow, r3, MemOperand(r3, 28)); 7638 __ blx(r3); 7639 __ b(Narrow, &l_3ca8); 7640 // -------------- 7641 __ bind(&l_3cc8); 7642 __ mov(Narrow, r0, r4); 7643 __ add(Narrow, r1, sp, 72U); 7644 __ blx(r2); 7645 __ b(Narrow, &l_3c8a); 7646 // -------------- 7647 __ bind(&l_3cd0); 7648 __ ldr(r3, MemOperand(r4, 132)); 7649 __ add(r8, r4, 96U); 7650 __ add(r6, r4, 44U); 7651 __ cmp(Narrow, r5, r3); 7652 __ b(eq, Narrow, &l_3ce6); 7653 __ adds(Narrow, r2, r5, 2U); 7654 __ cmp(Narrow, r3, r2); 7655 __ b(ge, Narrow, &l_3c7a); 7656 // -------------- 7657 __ bind(&l_3ce6); 7658 __ movs(Narrow, r3, 0U); 7659 __ mov(Narrow, r2, r5); 7660 __ str(Narrow, r3, MemOperand(sp)); 7661 __ mov(Narrow, r1, r6); 7662 __ mov(Narrow, r0, r8); 7663 __ movs(Narrow, r3, 2U); 7664 } 7665 void Generate_59(TestAssembler* assembler) { 7666 // -------------- 7667 __ bind(&l_3cf2); 7668 __ bl(&l_3cf2); 7669 __ b(Narrow, &l_3c7a); 7670 // -------------- 7671 __ bind(&l_3cf8); 7672 __ blx(r2); 7673 __ b(Narrow, &l_3ba4); 7674 __ ldr(Narrow, r3, &l_3d20); 7675 __ add(Narrow, r0, sp, 100U); 7676 __ str(Narrow, r3, MemOperand(sp, 72)); 7677 // -------------- 7678 __ bind(&l_3d02); 7679 __ bl(&l_3d02); 7680 // -------------- 7681 __ bind(&l_3d06); 7682 __ add(Narrow, r0, sp, 232U); 7683 __ str(r9, MemOperand(r0, -196, PreIndex)); 7684 // -------------- 7685 __ bind(&l_3d0c); 7686 __ bl(&l_3d0c); 7687 // -------------- 7688 __ bind(&l_3d10); 7689 __ bl(&l_3d10); 7690 __ add(Narrow, r0, sp, 64U); 7691 // -------------- 7692 __ bind(&l_3d16); 7693 __ bl(&l_3d16); 7694 __ b(Narrow, &l_3d06); 7695 // -------------- 7696 __ bind(&l_3d1c); 7697 __ Emit32(0x00000008); 7698 // -------------- 7699 __ bind(&l_3d20); 7700 __ Emit32(0x00000008); 7701 // -------------- 7702 __ bind(&l_3d24); 7703 __ Emit32(0x00000008); 7704 // -------------- 7705 __ bind(&l_3d28); 7706 __ Emit32(0x00000008); 7707 __ push(RegisterList(0x47f0)); 7708 __ adds(r9, r0, 44U); 7709 __ ldr(Narrow, r6, &l_3f14); 7710 __ sub(Narrow, sp, sp, 208U); 7711 __ mov(Narrow, r5, r1); 7712 __ mov(r1, 0U); 7713 __ mov(Narrow, r4, r0); 7714 __ mov(Narrow, sl, r2); 7715 __ mov(Narrow, r7, r3); 7716 __ mov(Narrow, r8, r5); 7717 __ str(Narrow, r6, MemOperand(sp, 12)); 7718 __ str(Narrow, r1, MemOperand(sp, 16)); 7719 __ strb(r1, MemOperand(sp, 29)); 7720 __ b(eq, Narrow, &l_3da2); 7721 __ ldr(Narrow, r3, MemOperand(r0, 44)); 7722 __ movs(Narrow, r2, 1U); 7723 __ str(Narrow, r2, MemOperand(sp, 36)); 7724 __ mov(Narrow, r0, r9); 7725 __ movs(Narrow, r1, 32U); 7726 __ str(r9, MemOperand(sp, 32)); 7727 __ ldr(Narrow, r3, MemOperand(r3, 32)); 7728 __ blx(r3); 7729 __ ldr(Narrow, r3, MemOperand(r4, 44)); 7730 __ mov(Narrow, r0, r9); 7731 __ ldr(Narrow, r3, MemOperand(r3, 24)); 7732 __ blx(r3); 7733 __ ldr(Narrow, r2, MemOperand(r4, 44)); 7734 __ movw(r3, 0U); 7735 __ movt(r3, 0U); 7736 __ mov(Narrow, r0, r9); 7737 __ ldr(Narrow, r2, MemOperand(r2)); 7738 __ cmp(Narrow, r2, r3); 7739 __ b(ne, &l_3eec); 7740 // -------------- 7741 __ bind(&l_3d7e); 7742 __ bl(&l_3d7e); 7743 // -------------- 7744 __ bind(&l_3d82); 7745 __ str(Narrow, r0, MemOperand(sp, 16)); 7746 __ ldr(Narrow, r1, MemOperand(r0, 20)); 7747 __ ldr(Narrow, r3, MemOperand(r0, 4)); 7748 __ ldr(Narrow, r2, MemOperand(r0, 12)); 7749 __ add(Narrow, r3, r3, r1); 7750 __ subs(Narrow, r3, r3, r2); 7751 __ cmp(Narrow, r3, 31U); 7752 __ b(hi, Narrow, &l_3d9c); 7753 __ lsls(Narrow, r1, r1, 1U); 7754 __ adds(r0, 4U); 7755 __ adds(Narrow, r1, r1, 32U); 7756 // -------------- 7757 __ bind(&l_3d98); 7758 __ bl(&l_3d98); 7759 // -------------- 7760 __ bind(&l_3d9c); 7761 __ movs(Narrow, r3, 1U); 7762 __ strb(r3, MemOperand(sp, 29)); 7763 // -------------- 7764 __ bind(&l_3da2); 7765 __ ldr(r9, &l_3f20); 7766 __ cmp(Narrow, r5, 14U); 7767 __ ldr(Narrow, r1, &l_3f18); 7768 __ mov(r3, 0U); 7769 __ mov(r2, 1U); 7770 __ mov(r0, 4U); 7771 __ str(Narrow, r4, MemOperand(sp, 40)); 7772 __ str(Narrow, r5, MemOperand(sp, 44)); 7773 __ str(r9, MemOperand(sp, 12)); 7774 __ str(Narrow, r0, MemOperand(sp, 52)); 7775 __ str(Narrow, r2, MemOperand(sp, 56)); 7776 __ str(Narrow, r2, MemOperand(sp, 60)); 7777 __ strb(r2, MemOperand(sp, 88)); 7778 __ str(Narrow, r2, MemOperand(sp, 104)); 7779 __ str(Narrow, r2, MemOperand(sp, 128)); 7780 __ str(Narrow, r2, MemOperand(sp, 152)); 7781 __ str(Narrow, r2, MemOperand(sp, 176)); 7782 __ strb(r3, MemOperand(sp, 64)); 7783 __ str(Narrow, r3, MemOperand(sp, 68)); 7784 __ strb(r3, MemOperand(sp, 72)); 7785 __ strb(r3, MemOperand(sp, 76)); 7786 __ str(Narrow, r3, MemOperand(sp, 92)); 7787 __ str(Narrow, r3, MemOperand(sp, 96)); 7788 __ str(Narrow, r3, MemOperand(sp, 100)); 7789 __ str(Narrow, r3, MemOperand(sp, 108)); 7790 __ str(Narrow, r3, MemOperand(sp, 112)); 7791 __ str(Narrow, r3, MemOperand(sp, 116)); 7792 __ str(Narrow, r3, MemOperand(sp, 120)); 7793 __ str(Narrow, r3, MemOperand(sp, 124)); 7794 __ str(Narrow, r3, MemOperand(sp, 132)); 7795 __ str(Narrow, r3, MemOperand(sp, 136)); 7796 __ str(Narrow, r3, MemOperand(sp, 140)); 7797 __ str(Narrow, r3, MemOperand(sp, 144)); 7798 } 7799 void Generate_60(TestAssembler* assembler) { 7800 __ str(Narrow, r3, MemOperand(sp, 148)); 7801 __ str(Narrow, r3, MemOperand(sp, 156)); 7802 __ str(Narrow, r3, MemOperand(sp, 160)); 7803 __ str(Narrow, r3, MemOperand(sp, 164)); 7804 __ str(Narrow, r3, MemOperand(sp, 168)); 7805 __ str(Narrow, r3, MemOperand(sp, 172)); 7806 __ str(Narrow, r3, MemOperand(sp, 180)); 7807 __ str(Narrow, r3, MemOperand(sp, 184)); 7808 __ str(Narrow, r3, MemOperand(sp, 188)); 7809 __ str(Narrow, r3, MemOperand(sp, 192)); 7810 __ strb(r3, MemOperand(sp, 200)); 7811 __ str(Narrow, r1, MemOperand(sp, 48)); 7812 __ b(eq, Narrow, &l_3e18); 7813 __ ldr(Narrow, r2, MemOperand(r4, 28)); 7814 __ cmp(Narrow, r2, 1U); 7815 __ b(eq, Narrow, &l_3eaa); 7816 // -------------- 7817 __ bind(&l_3e18); 7818 __ ldr(Narrow, r3, MemOperand(sp, 240)); 7819 __ mov(Narrow, r0, r4); 7820 __ str(Narrow, r7, MemOperand(sp)); 7821 __ mov(Narrow, r1, r8); 7822 __ movs(Narrow, r2, 0U); 7823 __ str(Narrow, r3, MemOperand(sp, 4)); 7824 __ mov(Narrow, r3, sl); 7825 // -------------- 7826 __ bind(&l_3e26); 7827 __ bl(&l_3e26); 7828 __ ldrb(r3, MemOperand(sp, 72)); 7829 __ cbz(r3, &l_3e6c); 7830 __ ldr(Narrow, r4, MemOperand(sp, 40)); 7831 __ movw(r3, 0U); 7832 __ movt(r3, 0U); 7833 __ ldr(Narrow, r2, MemOperand(r4)); 7834 __ ldr(Narrow, r2, MemOperand(r2, 8)); 7835 __ cmp(Narrow, r2, r3); 7836 __ b(ne, Narrow, &l_3ebc); 7837 __ ldr(Narrow, r5, MemOperand(r4, 12)); 7838 __ add(Narrow, r0, sp, 48U); 7839 __ ldr(Narrow, r3, MemOperand(r4, 4)); 7840 __ subs(Narrow, r5, r5, r3); 7841 __ mov(Narrow, r1, r5); 7842 // -------------- 7843 __ bind(&l_3e4c); 7844 __ bl(&l_3e4c); 7845 __ add(r8, r4, 96U); 7846 __ add(r7, r4, 44U); 7847 __ cmp(Narrow, r0, 0U); 7848 __ b(ne, Narrow, &l_3ec4); 7849 // -------------- 7850 __ bind(&l_3e5c); 7851 __ ldr(Narrow, r5, MemOperand(r4, 12)); 7852 __ mov(Narrow, r0, r8); 7853 __ ldr(Narrow, r3, MemOperand(r4, 4)); 7854 __ mov(Narrow, r1, r7); 7855 __ add(Narrow, r2, sp, 48U); 7856 __ subs(Narrow, r3, r5, r3); 7857 // -------------- 7858 __ bind(&l_3e68); 7859 __ bl(&l_3e68); 7860 // -------------- 7861 __ bind(&l_3e6c); 7862 __ ldr(Narrow, r4, MemOperand(sp, 192)); 7863 __ ldr(Narrow, r3, &l_3f1c); 7864 __ str(Narrow, r3, MemOperand(sp, 48)); 7865 __ cbz(r4, &l_3e82); 7866 __ ldr(Narrow, r0, MemOperand(r4)); 7867 __ cbz(r0, &l_3e7c); 7868 // -------------- 7869 __ bind(&l_3e78); 7870 __ bl(&l_3e78); 7871 // -------------- 7872 __ bind(&l_3e7c); 7873 __ mov(Narrow, r0, r4); 7874 // -------------- 7875 __ bind(&l_3e7e); 7876 __ bl(&l_3e7e); 7877 // -------------- 7878 __ bind(&l_3e82); 7879 __ ldrb(r3, MemOperand(sp, 29)); 7880 __ str(Narrow, r6, MemOperand(sp, 12)); 7881 __ cbnz(r3, &l_3e90); 7882 // -------------- 7883 __ bind(&l_3e8a); 7884 __ add(Narrow, sp, sp, 208U); 7885 __ pop(RegisterList(0x87f0)); 7886 // -------------- 7887 __ bind(&l_3e90); 7888 __ ldr(Narrow, r0, MemOperand(sp, 32)); 7889 __ cmp(Narrow, r0, 0U); 7890 __ b(eq, Narrow, &l_3e8a); 7891 __ ldr(Narrow, r3, MemOperand(sp, 36)); 7892 __ movs(Narrow, r2, 0U); 7893 __ strb(r2, MemOperand(sp, 29)); 7894 __ cmp(Narrow, r3, 1U); 7895 __ b(ne, Narrow, &l_3e8a); 7896 __ ldr(Narrow, r3, MemOperand(r0)); 7897 __ ldr(Narrow, r3, MemOperand(r3, 28)); 7898 __ blx(r3); 7899 __ b(Narrow, &l_3e8a); 7900 // -------------- 7901 __ bind(&l_3eaa); 7902 __ eor(r1, r5, 0x1); 7903 __ mov(Narrow, r0, r4); 7904 __ add(Narrow, r3, sp, 48U); 7905 // -------------- 7906 __ bind(&l_3eb2); 7907 __ bl(&l_3eb2); 7908 __ mov(r8, 14U); 7909 __ b(Narrow, &l_3e18); 7910 // -------------- 7911 __ bind(&l_3ebc); 7912 __ mov(Narrow, r0, r4); 7913 __ add(Narrow, r1, sp, 48U); 7914 __ blx(r2); 7915 __ b(Narrow, &l_3e6c); 7916 // -------------- 7917 __ bind(&l_3ec4); 7918 __ ldr(r3, MemOperand(r4, 132)); 7919 __ add(r8, r4, 96U); 7920 __ add(r7, r4, 44U); 7921 __ cmp(Narrow, r5, r3); 7922 __ b(eq, Narrow, &l_3eda); 7923 __ adds(Narrow, r2, r5, 2U); 7924 __ cmp(Narrow, r3, r2); 7925 __ b(ge, Narrow, &l_3e5c); 7926 // -------------- 7927 __ bind(&l_3eda); 7928 __ movs(Narrow, r3, 0U); 7929 __ mov(Narrow, r2, r5); 7930 __ str(Narrow, r3, MemOperand(sp)); 7931 __ mov(Narrow, r1, r7); 7932 __ mov(Narrow, r0, r8); 7933 __ movs(Narrow, r3, 2U); 7934 } 7935 void Generate_61(TestAssembler* assembler) { 7936 // -------------- 7937 __ bind(&l_3ee6); 7938 __ bl(&l_3ee6); 7939 __ b(Narrow, &l_3e5c); 7940 // -------------- 7941 __ bind(&l_3eec); 7942 __ blx(r2); 7943 __ b(Narrow, &l_3d82); 7944 __ add(Narrow, r0, sp, 40U); 7945 // -------------- 7946 __ bind(&l_3ef2); 7947 __ bl(&l_3ef2); 7948 // -------------- 7949 __ bind(&l_3ef6); 7950 __ add(Narrow, r0, sp, 208U); 7951 __ str(r9, MemOperand(r0, -196, PreIndex)); 7952 // -------------- 7953 __ bind(&l_3efc); 7954 __ bl(&l_3efc); 7955 // -------------- 7956 __ bind(&l_3f00); 7957 __ bl(&l_3f00); 7958 // -------------- 7959 __ bind(&l_3f04); 7960 __ ldr(Narrow, r3, &l_3f1c); 7961 __ add(Narrow, r0, sp, 76U); 7962 __ str(Narrow, r3, MemOperand(sp, 48)); 7963 // -------------- 7964 __ bind(&l_3f0a); 7965 __ bl(&l_3f0a); 7966 __ b(Narrow, &l_3ef6); 7967 __ b(Narrow, &l_3f04); 7968 __ nop(Narrow); 7969 // -------------- 7970 __ bind(&l_3f14); 7971 __ Emit32(0x00000008); 7972 // -------------- 7973 __ bind(&l_3f18); 7974 __ Emit32(0x00000008); 7975 // -------------- 7976 __ bind(&l_3f1c); 7977 __ Emit32(0x00000008); 7978 // -------------- 7979 __ bind(&l_3f20); 7980 __ Emit32(0x00000008); 7981 __ push(RegisterList(0x4ff0)); 7982 __ adds(r4, r0, 44U); 7983 __ ldr(r8, &l_41ec); 7984 __ sub(Narrow, sp, sp, 212U); 7985 __ mov(Narrow, r7, r1); 7986 __ mov(r1, 0U); 7987 __ mov(Narrow, r5, r0); 7988 __ mov(Narrow, r9, r2); 7989 __ mov(Narrow, r6, r3); 7990 __ mov(Narrow, sl, r7); 7991 __ str(r8, MemOperand(sp, 12)); 7992 __ str(Narrow, r1, MemOperand(sp, 16)); 7993 __ strb(r1, MemOperand(sp, 29)); 7994 __ b(eq, Narrow, &l_3f9c); 7995 __ ldr(Narrow, r3, MemOperand(r0, 44)); 7996 __ movs(Narrow, r2, 1U); 7997 __ str(Narrow, r2, MemOperand(sp, 36)); 7998 __ mov(Narrow, r0, r4); 7999 __ movs(Narrow, r1, 32U); 8000 __ str(Narrow, r4, MemOperand(sp, 32)); 8001 __ ldr(Narrow, r3, MemOperand(r3, 32)); 8002 __ blx(r3); 8003 __ ldr(Narrow, r3, MemOperand(r5, 44)); 8004 __ mov(Narrow, r0, r4); 8005 __ ldr(Narrow, r3, MemOperand(r3, 24)); 8006 __ blx(r3); 8007 __ ldr(Narrow, r2, MemOperand(r5, 44)); 8008 __ movw(r3, 0U); 8009 __ movt(r3, 0U); 8010 __ mov(Narrow, r0, r4); 8011 __ ldr(Narrow, r2, MemOperand(r2)); 8012 __ cmp(Narrow, r2, r3); 8013 __ b(ne, &l_4160); 8014 // -------------- 8015 __ bind(&l_3f78); 8016 __ bl(&l_3f78); 8017 // -------------- 8018 __ bind(&l_3f7c); 8019 __ str(Narrow, r0, MemOperand(sp, 16)); 8020 __ ldr(Narrow, r1, MemOperand(r0, 20)); 8021 __ ldr(Narrow, r3, MemOperand(r0, 4)); 8022 __ ldr(Narrow, r2, MemOperand(r0, 12)); 8023 __ add(Narrow, r3, r3, r1); 8024 __ subs(Narrow, r3, r3, r2); 8025 __ cmp(Narrow, r3, 31U); 8026 __ b(hi, Narrow, &l_3f96); 8027 __ lsls(Narrow, r1, r1, 1U); 8028 __ adds(r0, 4U); 8029 __ adds(Narrow, r1, r1, 32U); 8030 // -------------- 8031 __ bind(&l_3f92); 8032 __ bl(&l_3f92); 8033 // -------------- 8034 __ bind(&l_3f96); 8035 __ movs(Narrow, r4, 1U); 8036 __ strb(r4, MemOperand(sp, 29)); 8037 // -------------- 8038 __ bind(&l_3f9c); 8039 __ ldr(Narrow, r2, MemOperand(r6, 4)); 8040 __ ldr(fp, &l_41f0); 8041 __ ubfx(r3, r2, 5U, 4U); 8042 __ str(fp, MemOperand(sp, 12)); 8043 __ cbz(r3, &l_4000); 8044 __ ldr(Narrow, r1, MemOperand(r6, 8)); 8045 __ ldr(Narrow, r0, MemOperand(r6, 16)); 8046 __ cmp(Narrow, r1, 4U); 8047 __ b(eq, &l_4118); 8048 __ tst(r0, 0x1e0); 8049 __ b(ne, &l_4126); 8050 __ ldr(Narrow, r3, MemOperand(r6, 12)); 8051 __ and_(r0, r9, 0x1f); 8052 __ cbnz(r3, &l_3fd0); 8053 __ and_(lr, r2, 0x1f); 8054 __ cmp(Narrow, r0, lr); 8055 __ b(eq, &l_4146); 8056 // -------------- 8057 __ bind(&l_3fd0); 8058 __ ldr(Narrow, r3, MemOperand(r6, 12)); 8059 __ cbnz(r3, &l_3fe6); 8060 __ cmp(Narrow, r0, 15U); 8061 __ b(eq, &l_4142); 8062 __ and_(r3, r2, 0x1f); 8063 __ cmp(Narrow, r3, 15U); 8064 __ it(ne); 8065 __ mov(ne, Narrow, r1, 1U); 8066 __ b(ne, Narrow, &l_400c); 8067 // -------------- 8068 __ bind(&l_3fe6); 8069 __ cmp(Narrow, r0, 7U); 8070 __ b(hi, &l_4142); 8071 __ and_(r2, r2, 0x1f); 8072 __ cmp(Narrow, r2, 7U); 8073 __ b(hi, &l_4142); 8074 } 8075 void Generate_62(TestAssembler* assembler) { 8076 __ cmp(Narrow, r1, 2U); 8077 __ ite(hi); 8078 __ mov(hi, Narrow, r1, 0U); 8079 __ mov(ls, Narrow, r1, 1U); 8080 __ b(Narrow, &l_400c); 8081 // -------------- 8082 __ bind(&l_4000); 8083 __ and_(r2, r9, 0x1f); 8084 __ cmp(Narrow, r2, 7U); 8085 __ b(ls, &l_410c); 8086 // -------------- 8087 __ bind(&l_400a); 8088 __ mov(Narrow, r1, r3); 8089 // -------------- 8090 __ bind(&l_400c); 8091 __ ldr(Narrow, r2, &l_41e4); 8092 __ cmp(Narrow, r7, 14U); 8093 __ mov(r4, 0U); 8094 __ mov(r3, 1U); 8095 __ mov(r0, 4U); 8096 __ str(Narrow, r5, MemOperand(sp, 40)); 8097 __ str(Narrow, r7, MemOperand(sp, 44)); 8098 __ str(Narrow, r0, MemOperand(sp, 52)); 8099 __ str(Narrow, r3, MemOperand(sp, 56)); 8100 __ str(Narrow, r3, MemOperand(sp, 60)); 8101 __ strb(r3, MemOperand(sp, 88)); 8102 __ str(Narrow, r3, MemOperand(sp, 104)); 8103 __ str(Narrow, r3, MemOperand(sp, 128)); 8104 __ str(Narrow, r3, MemOperand(sp, 152)); 8105 __ str(Narrow, r3, MemOperand(sp, 176)); 8106 __ strb(r4, MemOperand(sp, 64)); 8107 __ str(Narrow, r4, MemOperand(sp, 68)); 8108 __ strb(r4, MemOperand(sp, 72)); 8109 __ strb(r4, MemOperand(sp, 76)); 8110 __ str(Narrow, r4, MemOperand(sp, 92)); 8111 __ str(Narrow, r4, MemOperand(sp, 96)); 8112 __ str(Narrow, r4, MemOperand(sp, 100)); 8113 __ str(Narrow, r4, MemOperand(sp, 108)); 8114 __ str(Narrow, r4, MemOperand(sp, 112)); 8115 __ str(Narrow, r4, MemOperand(sp, 116)); 8116 __ str(Narrow, r4, MemOperand(sp, 120)); 8117 __ str(Narrow, r4, MemOperand(sp, 124)); 8118 __ str(Narrow, r4, MemOperand(sp, 132)); 8119 __ str(Narrow, r4, MemOperand(sp, 136)); 8120 __ str(Narrow, r4, MemOperand(sp, 140)); 8121 __ str(Narrow, r4, MemOperand(sp, 144)); 8122 __ str(Narrow, r4, MemOperand(sp, 148)); 8123 __ str(Narrow, r4, MemOperand(sp, 156)); 8124 __ str(Narrow, r4, MemOperand(sp, 160)); 8125 __ str(Narrow, r4, MemOperand(sp, 164)); 8126 __ str(Narrow, r4, MemOperand(sp, 168)); 8127 __ str(Narrow, r4, MemOperand(sp, 172)); 8128 __ str(Narrow, r4, MemOperand(sp, 180)); 8129 __ str(Narrow, r4, MemOperand(sp, 184)); 8130 __ str(Narrow, r4, MemOperand(sp, 188)); 8131 __ str(Narrow, r4, MemOperand(sp, 192)); 8132 __ strb(r1, MemOperand(sp, 200)); 8133 __ str(Narrow, r2, MemOperand(sp, 48)); 8134 __ b(eq, Narrow, &l_407a); 8135 __ ldr(Narrow, r2, MemOperand(r5, 28)); 8136 __ cmp(Narrow, r2, r3); 8137 __ b(eq, Narrow, &l_4164); 8138 // -------------- 8139 __ bind(&l_407a); 8140 __ str(Narrow, r6, MemOperand(sp)); 8141 __ mov(Narrow, r0, r5); 8142 __ mov(Narrow, r1, sl); 8143 __ mov(Narrow, r3, r9); 8144 __ movs(Narrow, r2, 0U); 8145 // -------------- 8146 __ bind(&l_4084); 8147 __ bl(&l_4084); 8148 __ ldrb(r3, MemOperand(sp, 72)); 8149 __ cbz(r3, &l_40cc); 8150 __ ldr(Narrow, r4, MemOperand(sp, 40)); 8151 __ movw(r3, 0U); 8152 __ movt(r3, 0U); 8153 __ ldr(Narrow, r2, MemOperand(r4)); 8154 __ ldr(Narrow, r2, MemOperand(r2, 8)); 8155 __ cmp(Narrow, r2, r3); 8156 __ b(ne, &l_41ac); 8157 __ ldr(Narrow, r5, MemOperand(r4, 12)); 8158 __ add(Narrow, r0, sp, 48U); 8159 __ ldr(Narrow, r3, MemOperand(r4, 4)); 8160 __ subs(Narrow, r5, r5, r3); 8161 __ mov(Narrow, r1, r5); 8162 // -------------- 8163 __ bind(&l_40ac); 8164 __ bl(&l_40ac); 8165 __ add(r7, r4, 96U); 8166 __ add(r6, r4, 44U); 8167 __ cmp(Narrow, r0, 0U); 8168 __ b(ne, Narrow, &l_4184); 8169 // -------------- 8170 __ bind(&l_40bc); 8171 __ ldr(Narrow, r5, MemOperand(r4, 12)); 8172 __ mov(Narrow, r0, r7); 8173 __ ldr(Narrow, r3, MemOperand(r4, 4)); 8174 __ mov(Narrow, r1, r6); 8175 __ add(Narrow, r2, sp, 48U); 8176 __ subs(Narrow, r3, r5, r3); 8177 // -------------- 8178 __ bind(&l_40c8); 8179 __ bl(&l_40c8); 8180 // -------------- 8181 __ bind(&l_40cc); 8182 __ ldr(Narrow, r4, MemOperand(sp, 192)); 8183 __ ldr(Narrow, r3, &l_41e8); 8184 __ str(Narrow, r3, MemOperand(sp, 48)); 8185 __ cbz(r4, &l_40e2); 8186 __ ldr(Narrow, r0, MemOperand(r4)); 8187 __ cbz(r0, &l_40dc); 8188 // -------------- 8189 __ bind(&l_40d8); 8190 __ bl(&l_40d8); 8191 // -------------- 8192 __ bind(&l_40dc); 8193 __ mov(Narrow, r0, r4); 8194 // -------------- 8195 __ bind(&l_40de); 8196 __ bl(&l_40de); 8197 // -------------- 8198 __ bind(&l_40e2); 8199 __ ldrb(r3, MemOperand(sp, 29)); 8200 __ str(r8, MemOperand(sp, 12)); 8201 __ cbnz(r3, &l_40f2); 8202 } 8203 void Generate_63(TestAssembler* assembler) { 8204 // -------------- 8205 __ bind(&l_40ec); 8206 __ add(Narrow, sp, sp, 212U); 8207 __ pop(RegisterList(0x8ff0)); 8208 // -------------- 8209 __ bind(&l_40f2); 8210 __ ldr(Narrow, r0, MemOperand(sp, 32)); 8211 __ cmp(Narrow, r0, 0U); 8212 __ b(eq, Narrow, &l_40ec); 8213 __ ldr(Narrow, r3, MemOperand(sp, 36)); 8214 __ movs(Narrow, r2, 0U); 8215 __ strb(r2, MemOperand(sp, 29)); 8216 __ cmp(Narrow, r3, 1U); 8217 __ b(ne, Narrow, &l_40ec); 8218 // -------------- 8219 __ bind(&l_4104); 8220 __ ldr(Narrow, r3, MemOperand(r0)); 8221 __ ldr(Narrow, r3, MemOperand(r3, 28)); 8222 __ blx(r3); 8223 __ b(Narrow, &l_40ec); 8224 // -------------- 8225 __ bind(&l_410c); 8226 __ ldr(Narrow, r3, MemOperand(r6)); 8227 __ cmp(Narrow, r3, 255U); 8228 __ ite(hi); 8229 __ mov(hi, Narrow, r1, 0U); 8230 __ mov(ls, Narrow, r1, 1U); 8231 __ b(Narrow, &l_400c); 8232 // -------------- 8233 __ bind(&l_4118); 8234 __ tst(r0, 0x1e0); 8235 __ it(eq); 8236 __ and_(eq, r0, r9, 0x1f); 8237 __ b(eq, &l_3fe6); 8238 // -------------- 8239 __ bind(&l_4126); 8240 __ and_(r3, r2, 0x1f); 8241 __ and_(r2, r9, 0x1f); 8242 __ cmp(Narrow, r2, 7U); 8243 __ it(ls); 8244 __ cmp(ls, Narrow, r2, r3); 8245 __ ite(eq); 8246 __ mov(eq, Narrow, r3, 1U); 8247 __ mov(ne, Narrow, r3, 0U); 8248 __ b(ne, &l_400a); 8249 __ cmp(Narrow, r1, 3U); 8250 __ b(ls, Narrow, &l_41b4); 8251 // -------------- 8252 __ bind(&l_4142); 8253 __ movs(Narrow, r1, 0U); 8254 __ b(Narrow, &l_400c); 8255 // -------------- 8256 __ bind(&l_4146); 8257 __ str(r8, MemOperand(sp, 12)); 8258 __ cmp(Narrow, r4, 0U); 8259 __ b(eq, Narrow, &l_40ec); 8260 __ ldr(Narrow, r0, MemOperand(sp, 32)); 8261 __ cmp(Narrow, r0, 0U); 8262 __ b(eq, Narrow, &l_40ec); 8263 __ ldr(Narrow, r2, MemOperand(sp, 36)); 8264 __ strb(r3, MemOperand(sp, 29)); 8265 __ cmp(Narrow, r2, 1U); 8266 __ b(ne, Narrow, &l_40ec); 8267 __ b(Narrow, &l_4104); 8268 // -------------- 8269 __ bind(&l_4160); 8270 __ blx(r2); 8271 __ b(Narrow, &l_3f7c); 8272 // -------------- 8273 __ bind(&l_4164); 8274 __ cbz(r1, &l_4172); 8275 __ mov(Narrow, r1, r7); 8276 __ mov(Narrow, r0, r5); 8277 __ movs(Narrow, r2, 8U); 8278 // -------------- 8279 __ bind(&l_416c); 8280 __ bl(&l_416c); 8281 __ b(Narrow, &l_407a); 8282 // -------------- 8283 __ bind(&l_4172); 8284 __ eor(r1, r7, 0x1); 8285 __ mov(Narrow, r0, r5); 8286 __ add(Narrow, r3, sp, 48U); 8287 // -------------- 8288 __ bind(&l_417a); 8289 __ bl(&l_417a); 8290 __ mov(sl, 14U); 8291 __ b(Narrow, &l_407a); 8292 // -------------- 8293 __ bind(&l_4184); 8294 __ ldr(r3, MemOperand(r4, 132)); 8295 __ add(r7, r4, 96U); 8296 __ add(r6, r4, 44U); 8297 __ cmp(Narrow, r5, r3); 8298 __ b(eq, Narrow, &l_419a); 8299 __ adds(Narrow, r2, r5, 2U); 8300 __ cmp(Narrow, r3, r2); 8301 __ b(ge, Narrow, &l_40bc); 8302 // -------------- 8303 __ bind(&l_419a); 8304 __ movs(Narrow, r3, 0U); 8305 __ mov(Narrow, r2, r5); 8306 __ str(Narrow, r3, MemOperand(sp)); 8307 __ mov(Narrow, r1, r6); 8308 __ mov(Narrow, r0, r7); 8309 __ movs(Narrow, r3, 2U); 8310 // -------------- 8311 __ bind(&l_41a6); 8312 __ bl(&l_41a6); 8313 __ b(Narrow, &l_40bc); 8314 // -------------- 8315 __ bind(&l_41ac); 8316 __ mov(Narrow, r0, r4); 8317 __ add(Narrow, r1, sp, 48U); 8318 __ blx(r2); 8319 __ b(Narrow, &l_40cc); 8320 // -------------- 8321 __ bind(&l_41b4); 8322 __ and_(r3, r0, 0x1f); 8323 __ cmp(Narrow, r3, 7U); 8324 __ ite(hi); 8325 __ mov(hi, Narrow, r1, 0U); 8326 __ mov(ls, Narrow, r1, 1U); 8327 __ b(Narrow, &l_400c); 8328 __ add(Narrow, r0, sp, 40U); 8329 // -------------- 8330 __ bind(&l_41c4); 8331 __ bl(&l_41c4); 8332 // -------------- 8333 __ bind(&l_41c8); 8334 __ add(Narrow, r0, sp, 208U); 8335 __ str(fp, MemOperand(r0, -196, PreIndex)); 8336 // -------------- 8337 __ bind(&l_41ce); 8338 __ bl(&l_41ce); 8339 // -------------- 8340 __ bind(&l_41d2); 8341 __ bl(&l_41d2); 8342 // -------------- 8343 __ bind(&l_41d6); 8344 __ ldr(Narrow, r3, &l_41e8); 8345 __ add(Narrow, r0, sp, 76U); 8346 __ str(Narrow, r3, MemOperand(sp, 48)); 8347 // -------------- 8348 __ bind(&l_41dc); 8349 __ bl(&l_41dc); 8350 __ b(Narrow, &l_41c8); 8351 __ b(Narrow, &l_41d6); 8352 } 8353 void Generate_64(TestAssembler* assembler) { 8354 // -------------- 8355 __ bind(&l_41e4); 8356 __ Emit32(0x00000008); 8357 // -------------- 8358 __ bind(&l_41e8); 8359 __ Emit32(0x00000008); 8360 // -------------- 8361 __ bind(&l_41ec); 8362 __ Emit32(0x00000008); 8363 // -------------- 8364 __ bind(&l_41f0); 8365 __ Emit32(0x00000008); 8366 __ push(RegisterList(0x4ff0)); 8367 __ adds(r4, r0, 44U); 8368 __ ldr(r8, &l_4528); 8369 __ sub(Narrow, sp, sp, 212U); 8370 __ mov(Narrow, fp, r1); 8371 __ mov(r1, 0U); 8372 __ mov(Narrow, r5, r0); 8373 __ mov(Narrow, r9, r2); 8374 __ mov(Narrow, r7, r3); 8375 __ mov(Narrow, sl, fp); 8376 __ str(r8, MemOperand(sp, 12)); 8377 __ str(Narrow, r1, MemOperand(sp, 16)); 8378 __ strb(r1, MemOperand(sp, 29)); 8379 __ ldr(Narrow, r6, MemOperand(sp, 248)); 8380 __ b(eq, Narrow, &l_426e); 8381 __ ldr(Narrow, r3, MemOperand(r0, 44)); 8382 __ movs(Narrow, r2, 1U); 8383 __ str(Narrow, r2, MemOperand(sp, 36)); 8384 __ mov(Narrow, r0, r4); 8385 __ movs(Narrow, r1, 32U); 8386 __ str(Narrow, r4, MemOperand(sp, 32)); 8387 __ ldr(Narrow, r3, MemOperand(r3, 32)); 8388 __ blx(r3); 8389 __ ldr(Narrow, r3, MemOperand(r5, 44)); 8390 __ mov(Narrow, r0, r4); 8391 __ ldr(Narrow, r3, MemOperand(r3, 24)); 8392 __ blx(r3); 8393 __ ldr(Narrow, r2, MemOperand(r5, 44)); 8394 __ movw(r3, 0U); 8395 __ movt(r3, 0U); 8396 __ mov(Narrow, r0, r4); 8397 __ ldr(Narrow, r2, MemOperand(r2)); 8398 __ cmp(Narrow, r2, r3); 8399 __ b(ne, &l_445e); 8400 // -------------- 8401 __ bind(&l_424a); 8402 __ bl(&l_424a); 8403 // -------------- 8404 __ bind(&l_424e); 8405 __ str(Narrow, r0, MemOperand(sp, 16)); 8406 __ ldr(Narrow, r1, MemOperand(r0, 20)); 8407 __ ldr(Narrow, r3, MemOperand(r0, 4)); 8408 __ ldr(Narrow, r2, MemOperand(r0, 12)); 8409 __ add(Narrow, r3, r3, r1); 8410 __ subs(Narrow, r3, r3, r2); 8411 __ cmp(Narrow, r3, 31U); 8412 __ b(hi, Narrow, &l_4268); 8413 __ lsls(Narrow, r1, r1, 1U); 8414 __ adds(r0, 4U); 8415 __ adds(Narrow, r1, r1, 32U); 8416 // -------------- 8417 __ bind(&l_4264); 8418 __ bl(&l_4264); 8419 // -------------- 8420 __ bind(&l_4268); 8421 __ movs(Narrow, r4, 1U); 8422 __ strb(r4, MemOperand(sp, 29)); 8423 // -------------- 8424 __ bind(&l_426e); 8425 __ ldr(Narrow, r3, &l_451c); 8426 __ cmp(fp, 14U); 8427 __ str(Narrow, r3, MemOperand(sp, 12)); 8428 __ b(eq, Narrow, &l_42a0); 8429 // -------------- 8430 __ bind(&l_4278); 8431 __ ldr(Narrow, r3, MemOperand(r6, 4)); 8432 __ tst(r3, 0x1e0); 8433 __ b(ne, Narrow, &l_42b6); 8434 __ ldr(Narrow, r1, MemOperand(r6)); 8435 // -------------- 8436 __ bind(&l_4282); 8437 __ cmp(Narrow, r1, 7U); 8438 __ b(hi, &l_443e); 8439 __ and_(r3, r7, 0x1f); 8440 __ cmp(Narrow, r3, 7U); 8441 __ b(hi, &l_43fc); 8442 __ and_(r3, r9, 0x1f); 8443 __ cmp(Narrow, r3, 7U); 8444 __ b(hi, &l_4404); 8445 // -------------- 8446 __ bind(&l_429c); 8447 __ movs(Narrow, r1, 1U); 8448 __ b(Narrow, &l_4312); 8449 // -------------- 8450 __ bind(&l_42a0); 8451 __ and_(r3, r9, 0x1f); 8452 __ and_(r2, r7, 0x1f); 8453 __ cmp(Narrow, r3, r2); 8454 __ b(ne, Narrow, &l_4278); 8455 __ ldr(Narrow, r3, MemOperand(r6, 4)); 8456 __ tst(r3, 0x1e0); 8457 __ b(eq, &l_44d4); 8458 // -------------- 8459 __ bind(&l_42b6); 8460 __ ldr(Narrow, r2, MemOperand(r6, 8)); 8461 __ cmp(Narrow, r2, 4U); 8462 __ b(eq, Narrow, &l_4310); 8463 __ ldr(Narrow, r2, MemOperand(r6, 16)); 8464 __ tst(r2, 0x1e0); 8465 __ b(ne, Narrow, &l_42e0); 8466 __ ldr(Narrow, r2, MemOperand(r6, 12)); 8467 __ cbnz(r2, &l_42e0); 8468 __ and_(r2, r9, 0x1f); 8469 __ cmp(Narrow, r2, 7U); 8470 __ b(hi, Narrow, &l_42e0); 8471 __ and_(r2, r7, 0x1f); 8472 __ cmp(Narrow, r2, 7U); 8473 __ b(hi, Narrow, &l_42e0); 8474 __ and_(r2, r3, 0x1f); 8475 __ cmp(Narrow, r2, 7U); 8476 __ b(ls, Narrow, &l_429c); 8477 // -------------- 8478 __ bind(&l_42e0); 8479 __ ldr(Narrow, r2, MemOperand(r6, 16)); 8480 __ tst(r2, 0x1e0); 8481 __ b(ne, Narrow, &l_4304); 8482 __ ldr(Narrow, r2, MemOperand(r6, 12)); 8483 __ cbnz(r2, &l_4304); 8484 } 8485 void Generate_65(TestAssembler* assembler) { 8486 __ and_(r1, r9, 0x1f); 8487 __ cmp(Narrow, r1, 15U); 8488 __ b(eq, Narrow, &l_4304); 8489 __ and_(r2, r7, 0x1f); 8490 __ cmp(Narrow, r1, r2); 8491 __ b(ne, Narrow, &l_4304); 8492 __ and_(r2, r3, 0x1d); 8493 __ cmp(Narrow, r2, 13U); 8494 __ b(ne, Narrow, &l_429c); 8495 // -------------- 8496 __ bind(&l_4304); 8497 __ ldr(Narrow, r1, MemOperand(r6, 16)); 8498 __ ubfx(r2, r1, 5U, 4U); 8499 __ cmp(Narrow, r2, 0U); 8500 __ b(eq, &l_444c); 8501 // -------------- 8502 __ bind(&l_4310); 8503 __ movs(Narrow, r1, 0U); 8504 // -------------- 8505 __ bind(&l_4312); 8506 __ ldr(Narrow, r2, &l_4520); 8507 __ cmp(fp, 14U); 8508 __ mov(r4, 0U); 8509 __ mov(r3, 1U); 8510 __ mov(r0, 4U); 8511 __ str(Narrow, r5, MemOperand(sp, 40)); 8512 __ str(fp, MemOperand(sp, 44)); 8513 __ str(Narrow, r0, MemOperand(sp, 52)); 8514 __ str(Narrow, r3, MemOperand(sp, 56)); 8515 __ str(Narrow, r3, MemOperand(sp, 60)); 8516 __ strb(r3, MemOperand(sp, 88)); 8517 __ str(Narrow, r3, MemOperand(sp, 104)); 8518 __ str(Narrow, r3, MemOperand(sp, 128)); 8519 __ str(Narrow, r3, MemOperand(sp, 152)); 8520 __ str(Narrow, r3, MemOperand(sp, 176)); 8521 __ strb(r4, MemOperand(sp, 64)); 8522 __ str(Narrow, r4, MemOperand(sp, 68)); 8523 __ strb(r4, MemOperand(sp, 72)); 8524 __ strb(r4, MemOperand(sp, 76)); 8525 __ str(Narrow, r4, MemOperand(sp, 92)); 8526 __ str(Narrow, r4, MemOperand(sp, 96)); 8527 __ str(Narrow, r4, MemOperand(sp, 100)); 8528 __ str(Narrow, r4, MemOperand(sp, 108)); 8529 __ str(Narrow, r4, MemOperand(sp, 112)); 8530 __ str(Narrow, r4, MemOperand(sp, 116)); 8531 __ str(Narrow, r4, MemOperand(sp, 120)); 8532 __ str(Narrow, r4, MemOperand(sp, 124)); 8533 __ str(Narrow, r4, MemOperand(sp, 132)); 8534 __ str(Narrow, r4, MemOperand(sp, 136)); 8535 __ str(Narrow, r4, MemOperand(sp, 140)); 8536 __ str(Narrow, r4, MemOperand(sp, 144)); 8537 __ str(Narrow, r4, MemOperand(sp, 148)); 8538 __ str(Narrow, r4, MemOperand(sp, 156)); 8539 __ str(Narrow, r4, MemOperand(sp, 160)); 8540 __ str(Narrow, r4, MemOperand(sp, 164)); 8541 __ str(Narrow, r4, MemOperand(sp, 168)); 8542 __ str(Narrow, r4, MemOperand(sp, 172)); 8543 __ str(Narrow, r4, MemOperand(sp, 180)); 8544 __ str(Narrow, r4, MemOperand(sp, 184)); 8545 __ str(Narrow, r4, MemOperand(sp, 188)); 8546 __ str(Narrow, r4, MemOperand(sp, 192)); 8547 __ strb(r1, MemOperand(sp, 200)); 8548 __ str(Narrow, r2, MemOperand(sp, 48)); 8549 __ b(eq, Narrow, &l_4384); 8550 __ ldr(Narrow, r2, MemOperand(r5, 28)); 8551 __ cmp(Narrow, r2, r3); 8552 __ b(eq, Narrow, &l_4462); 8553 // -------------- 8554 __ bind(&l_4384); 8555 __ str(Narrow, r7, MemOperand(sp)); 8556 __ mov(Narrow, r0, r5); 8557 __ str(Narrow, r6, MemOperand(sp, 4)); 8558 __ mov(Narrow, r1, sl); 8559 __ mov(Narrow, r3, r9); 8560 __ movs(Narrow, r2, 0U); 8561 // -------------- 8562 __ bind(&l_4390); 8563 __ bl(&l_4390); 8564 __ ldrb(r3, MemOperand(sp, 72)); 8565 __ cbz(r3, &l_43d6); 8566 __ ldr(Narrow, r4, MemOperand(sp, 40)); 8567 __ movw(r3, 0U); 8568 __ movt(r3, 0U); 8569 __ ldr(Narrow, r2, MemOperand(r4)); 8570 __ ldr(Narrow, r2, MemOperand(r2, 8)); 8571 __ cmp(Narrow, r2, r3); 8572 __ b(ne, Narrow, &l_44aa); 8573 __ ldr(Narrow, r5, MemOperand(r4, 12)); 8574 __ add(Narrow, r0, sp, 48U); 8575 __ ldr(Narrow, r3, MemOperand(r4, 4)); 8576 __ subs(Narrow, r5, r5, r3); 8577 __ mov(Narrow, r1, r5); 8578 // -------------- 8579 __ bind(&l_43b6); 8580 __ bl(&l_43b6); 8581 __ add(r7, r4, 96U); 8582 __ add(r6, r4, 44U); 8583 __ cmp(Narrow, r0, 0U); 8584 __ b(ne, Narrow, &l_4482); 8585 // -------------- 8586 __ bind(&l_43c6); 8587 __ ldr(Narrow, r5, MemOperand(r4, 12)); 8588 __ mov(Narrow, r0, r7); 8589 __ ldr(Narrow, r3, MemOperand(r4, 4)); 8590 __ mov(Narrow, r1, r6); 8591 __ add(Narrow, r2, sp, 48U); 8592 __ subs(Narrow, r3, r5, r3); 8593 // -------------- 8594 __ bind(&l_43d2); 8595 __ bl(&l_43d2); 8596 // -------------- 8597 __ bind(&l_43d6); 8598 __ ldr(Narrow, r4, MemOperand(sp, 192)); 8599 __ ldr(Narrow, r3, &l_4524); 8600 __ str(Narrow, r3, MemOperand(sp, 48)); 8601 __ cbz(r4, &l_43ec); 8602 __ ldr(Narrow, r0, MemOperand(r4)); 8603 __ cbz(r0, &l_43e6); 8604 } 8605 void Generate_66(TestAssembler* assembler) { 8606 // -------------- 8607 __ bind(&l_43e2); 8608 __ bl(&l_43e2); 8609 // -------------- 8610 __ bind(&l_43e6); 8611 __ mov(Narrow, r0, r4); 8612 // -------------- 8613 __ bind(&l_43e8); 8614 __ bl(&l_43e8); 8615 // -------------- 8616 __ bind(&l_43ec); 8617 __ ldrb(r3, MemOperand(sp, 29)); 8618 __ str(r8, MemOperand(sp, 12)); 8619 __ cbnz(r3, &l_4424); 8620 // -------------- 8621 __ bind(&l_43f6); 8622 __ add(Narrow, sp, sp, 212U); 8623 __ pop(RegisterList(0x8ff0)); 8624 // -------------- 8625 __ bind(&l_43fc); 8626 __ and_(r3, r9, 0x1f); 8627 __ cmp(Narrow, r3, 7U); 8628 __ b(ls, Narrow, &l_4454); 8629 // -------------- 8630 __ bind(&l_4404); 8631 __ ands(r1, r1, 0x3); 8632 __ b(ne, Narrow, &l_4310); 8633 __ and_(r3, r9, 0x1f); 8634 __ cmp(Narrow, r3, 7U); 8635 __ b(hi, &l_4312); 8636 __ and_(r1, r7, 0x1f); 8637 __ sub(r1, r1, 13U); 8638 __ clz(r1, r1); 8639 __ lsrs(Narrow, r1, r1, 5U); 8640 __ b(Narrow, &l_4312); 8641 // -------------- 8642 __ bind(&l_4424); 8643 __ ldr(Narrow, r0, MemOperand(sp, 32)); 8644 __ cmp(Narrow, r0, 0U); 8645 __ b(eq, Narrow, &l_43f6); 8646 __ ldr(Narrow, r3, MemOperand(sp, 36)); 8647 __ movs(Narrow, r2, 0U); 8648 __ strb(r2, MemOperand(sp, 29)); 8649 __ cmp(Narrow, r3, 1U); 8650 __ b(ne, Narrow, &l_43f6); 8651 // -------------- 8652 __ bind(&l_4436); 8653 __ ldr(Narrow, r3, MemOperand(r0)); 8654 __ ldr(Narrow, r3, MemOperand(r3, 28)); 8655 __ blx(r3); 8656 __ b(Narrow, &l_43f6); 8657 // -------------- 8658 __ bind(&l_443e); 8659 __ cmp(Narrow, r1, 255U); 8660 __ b(ls, Narrow, &l_43fc); 8661 __ cmp(r1, 1020U); 8662 __ b(hi, &l_4310); 8663 __ b(Narrow, &l_4404); 8664 // -------------- 8665 __ bind(&l_444c); 8666 __ ldr(Narrow, r1, MemOperand(r6, 12)); 8667 __ cbz(r1, &l_44b2); 8668 __ mov(Narrow, r1, r2); 8669 __ b(Narrow, &l_4312); 8670 // -------------- 8671 __ bind(&l_4454); 8672 __ and_(r2, r7, 0x1f); 8673 __ cmp(Narrow, r3, r2); 8674 __ b(ne, Narrow, &l_4404); 8675 __ b(Narrow, &l_429c); 8676 // -------------- 8677 __ bind(&l_445e); 8678 __ blx(r2); 8679 __ b(Narrow, &l_424e); 8680 // -------------- 8681 __ bind(&l_4462); 8682 __ cbz(r1, &l_4470); 8683 __ mov(Narrow, r1, fp); 8684 __ mov(Narrow, r0, r5); 8685 __ movs(Narrow, r2, 8U); 8686 // -------------- 8687 __ bind(&l_446a); 8688 __ bl(&l_446a); 8689 __ b(Narrow, &l_4384); 8690 // -------------- 8691 __ bind(&l_4470); 8692 __ eor(r1, fp, 0x1); 8693 __ mov(Narrow, r0, r5); 8694 __ add(Narrow, r3, sp, 48U); 8695 // -------------- 8696 __ bind(&l_4478); 8697 __ bl(&l_4478); 8698 __ mov(sl, 14U); 8699 __ b(Narrow, &l_4384); 8700 // -------------- 8701 __ bind(&l_4482); 8702 __ ldr(r3, MemOperand(r4, 132)); 8703 __ add(r7, r4, 96U); 8704 __ add(r6, r4, 44U); 8705 __ cmp(Narrow, r5, r3); 8706 __ b(eq, Narrow, &l_4498); 8707 __ adds(Narrow, r2, r5, 2U); 8708 __ cmp(Narrow, r3, r2); 8709 __ b(ge, Narrow, &l_43c6); 8710 // -------------- 8711 __ bind(&l_4498); 8712 __ movs(Narrow, r3, 0U); 8713 __ mov(Narrow, r2, r5); 8714 __ str(Narrow, r3, MemOperand(sp)); 8715 __ mov(Narrow, r1, r6); 8716 __ mov(Narrow, r0, r7); 8717 __ movs(Narrow, r3, 2U); 8718 // -------------- 8719 __ bind(&l_44a4); 8720 __ bl(&l_44a4); 8721 __ b(Narrow, &l_43c6); 8722 // -------------- 8723 __ bind(&l_44aa); 8724 __ mov(Narrow, r0, r4); 8725 __ add(Narrow, r1, sp, 48U); 8726 __ blx(r2); 8727 __ b(Narrow, &l_43d6); 8728 // -------------- 8729 __ bind(&l_44b2); 8730 __ and_(r0, r9, 0x1f); 8731 __ cmp(Narrow, r0, 15U); 8732 __ b(eq, &l_4312); 8733 __ and_(r2, r7, 0x1f); 8734 __ cmp(Narrow, r2, 13U); 8735 __ b(ne, &l_4312); 8736 __ and_(r3, r3, 0x1f); 8737 __ subs(Narrow, r1, r0, r3); 8738 __ clz(r1, r1); 8739 __ lsrs(Narrow, r1, r1, 5U); 8740 __ b(Narrow, &l_4312); 8741 // -------------- 8742 __ bind(&l_44d4); 8743 __ ldr(Narrow, r1, MemOperand(r6)); 8744 __ cmp(Narrow, r1, 0U); 8745 __ b(ne, &l_4282); 8746 __ str(r8, MemOperand(sp, 12)); 8747 __ cmp(Narrow, r4, 0U); 8748 __ b(eq, Narrow, &l_43f6); 8749 __ ldr(Narrow, r0, MemOperand(sp, 32)); 8750 __ cmp(Narrow, r0, 0U); 8751 __ b(eq, Narrow, &l_43f6); 8752 } 8753 void Generate_67(TestAssembler* assembler) { 8754 __ ldr(Narrow, r3, MemOperand(sp, 36)); 8755 __ strb(r1, MemOperand(sp, 29)); 8756 __ cmp(Narrow, r3, 1U); 8757 __ b(ne, Narrow, &l_43f6); 8758 __ b(Narrow, &l_4436); 8759 // -------------- 8760 __ bind(&l_44f6); 8761 __ ldr(Narrow, r3, &l_4524); 8762 __ add(Narrow, r0, sp, 76U); 8763 __ str(Narrow, r3, MemOperand(sp, 48)); 8764 // -------------- 8765 __ bind(&l_44fc); 8766 __ bl(&l_44fc); 8767 // -------------- 8768 __ bind(&l_4500); 8769 __ ldr(Narrow, r3, &l_451c); 8770 __ add(Narrow, r0, sp, 208U); 8771 __ str(r3, MemOperand(r0, -196, PreIndex)); 8772 // -------------- 8773 __ bind(&l_4508); 8774 __ bl(&l_4508); 8775 // -------------- 8776 __ bind(&l_450c); 8777 __ bl(&l_450c); 8778 __ add(Narrow, r0, sp, 40U); 8779 // -------------- 8780 __ bind(&l_4512); 8781 __ bl(&l_4512); 8782 __ b(Narrow, &l_4500); 8783 __ b(Narrow, &l_44f6); 8784 __ nop(Narrow); 8785 // -------------- 8786 __ bind(&l_451c); 8787 __ Emit32(0x00000008); 8788 // -------------- 8789 __ bind(&l_4520); 8790 __ Emit32(0x00000008); 8791 // -------------- 8792 __ bind(&l_4524); 8793 __ Emit32(0x00000008); 8794 // -------------- 8795 __ bind(&l_4528); 8796 __ Emit32(0x00000008); 8797 __ push(Narrow, RegisterList(r4, r5, r6, lr)); 8798 __ mov(Narrow, r6, r0); 8799 __ ldr(Narrow, r4, MemOperand(r0, 108)); 8800 __ ldr(Narrow, r5, MemOperand(r0, 112)); 8801 __ ldr(Narrow, r3, &l_4594); 8802 __ cmp(Narrow, r4, r5); 8803 __ add(r2, r3, 504U); 8804 __ str(Narrow, r3, MemOperand(r0)); 8805 __ str(Narrow, r2, MemOperand(r0, 44)); 8806 __ b(eq, Narrow, &l_4554); 8807 // -------------- 8808 __ bind(&l_4542); 8809 __ ldr(r0, MemOperand(r4, 4, PostIndex)); 8810 __ cbz(r0, &l_454e); 8811 __ ldr(Narrow, r3, MemOperand(r0)); 8812 __ ldr(Narrow, r3, MemOperand(r3, 4)); 8813 __ blx(r3); 8814 // -------------- 8815 __ bind(&l_454e); 8816 __ cmp(Narrow, r5, r4); 8817 __ b(ne, Narrow, &l_4542); 8818 __ ldr(Narrow, r5, MemOperand(r6, 108)); 8819 // -------------- 8820 __ bind(&l_4554); 8821 __ cbz(r5, &l_455c); 8822 __ mov(Narrow, r0, r5); 8823 // -------------- 8824 __ bind(&l_4558); 8825 __ bl(&l_4558); 8826 // -------------- 8827 __ bind(&l_455c); 8828 __ ldr(Narrow, r0, MemOperand(r6, 96)); 8829 __ cbz(r0, &l_4564); 8830 // -------------- 8831 __ bind(&l_4560); 8832 __ bl(&l_4560); 8833 // -------------- 8834 __ bind(&l_4564); 8835 __ ldr(Narrow, r3, &l_4598); 8836 __ mov(Narrow, r0, r6); 8837 __ str(r3, MemOperand(r0, 4, PostIndex)); 8838 // -------------- 8839 __ bind(&l_456c); 8840 __ bl(&l_456c); 8841 __ mov(Narrow, r0, r6); 8842 __ pop(Narrow, RegisterList(r4, r5, r6, pc)); 8843 __ ldr(Narrow, r0, MemOperand(r6, 108)); 8844 __ cbz(r0, &l_457c); 8845 // -------------- 8846 __ bind(&l_4578); 8847 __ bl(&l_4578); 8848 // -------------- 8849 __ bind(&l_457c); 8850 __ ldr(Narrow, r0, MemOperand(r6, 96)); 8851 __ cbz(r0, &l_4584); 8852 // -------------- 8853 __ bind(&l_4580); 8854 __ bl(&l_4580); 8855 // -------------- 8856 __ bind(&l_4584); 8857 __ ldr(Narrow, r3, &l_4598); 8858 __ mov(Narrow, r0, r6); 8859 __ str(r3, MemOperand(r0, 4, PostIndex)); 8860 // -------------- 8861 __ bind(&l_458c); 8862 __ bl(&l_458c); 8863 // -------------- 8864 __ bind(&l_4590); 8865 __ bl(&l_4590); 8866 // -------------- 8867 __ bind(&l_4594); 8868 __ Emit32(0x00000008); 8869 // -------------- 8870 __ bind(&l_4598); 8871 __ Emit32(0x00000008); 8872 __ sub(r0, r0, 44U); 8873 // -------------- 8874 __ bind(&l_45a0); 8875 __ b(Wide, &l_45a0); 8876 __ ldr(Narrow, r3, &l_4724); 8877 __ mov(r1, 4096U); 8878 __ push(Narrow, RegisterList(0x40f0)); 8879 __ sub(Narrow, sp, sp, 316U); 8880 __ add(Narrow, r0, sp, 12U); 8881 __ ldr(Narrow, r4, &l_4728); 8882 __ str(Narrow, r3, MemOperand(sp, 8)); 8883 // -------------- 8884 __ bind(&l_45b4); 8885 __ bl(&l_45b4); 8886 __ movw(r3, 0U); 8887 __ movs(Narrow, r0, 14U); 8888 __ movt(r3, 0U); 8889 __ str(Narrow, r0, MemOperand(sp, 40)); 8890 __ ldr(Narrow, r1, MemOperand(r3, 112)); 8891 __ add(r5, r4, 504U); 8892 __ movs(Narrow, r3, 0U); 8893 __ movs(Narrow, r2, 1U); 8894 __ str(Narrow, r4, MemOperand(sp, 8)); 8895 __ ubfx(r0, r1, 5U, 4U); 8896 __ str(Narrow, r5, MemOperand(sp, 52)); 8897 __ strb(r3, MemOperand(sp, 32)); 8898 __ str(Narrow, r3, MemOperand(sp, 36)); 8899 __ strh(r3, MemOperand(sp, 44)); 8900 __ strb(r3, MemOperand(sp, 47)); 8901 __ strb(r3, MemOperand(sp, 48)); 8902 __ strb(r2, MemOperand(sp, 46)); 8903 __ cbz(r0, &l_45f6); 8904 __ and_(r1, r1, 0x1f); 8905 __ lsl(r0, r2, r1); 8906 // -------------- 8907 __ bind(&l_45f6); 8908 __ ldr(Narrow, r5, &l_472c); 8909 __ movs(Narrow, r3, 0U); 8910 __ movs(Narrow, r2, 1U); 8911 __ movs(Narrow, r4, 4U); 8912 } 8913 void Generate_68(TestAssembler* assembler) { 8914 __ movs(Narrow, r6, 0U); 8915 __ movs(Narrow, r7, 0U); 8916 __ mvn(lr, 2147483648U); 8917 __ add(Narrow, r1, sp, 312U); 8918 __ str(Narrow, r0, MemOperand(sp, 56)); 8919 __ add(Narrow, r0, sp, 8U); 8920 __ strd(r6, r7, MemOperand(sp, 64)); 8921 __ str(Narrow, r3, MemOperand(sp, 72)); 8922 __ str(Narrow, r3, MemOperand(sp, 76)); 8923 __ str(Narrow, r3, MemOperand(sp, 104)); 8924 __ str(Narrow, r3, MemOperand(sp, 108)); 8925 __ str(Narrow, r3, MemOperand(sp, 112)); 8926 __ str(Narrow, r3, MemOperand(sp, 116)); 8927 __ str(Narrow, r3, MemOperand(sp, 120)); 8928 __ str(Narrow, r3, MemOperand(sp, 124)); 8929 __ str(Narrow, r3, MemOperand(sp, 144)); 8930 __ str(Narrow, r3, MemOperand(sp, 148)); 8931 __ strb(r3, MemOperand(sp, 152)); 8932 __ str(Narrow, r3, MemOperand(sp, 156)); 8933 __ strb(r3, MemOperand(sp, 176)); 8934 __ str(Narrow, r3, MemOperand(sp, 180)); 8935 __ strb(r3, MemOperand(sp, 184)); 8936 __ strb(r3, MemOperand(sp, 188)); 8937 __ str(Narrow, r3, MemOperand(sp, 204)); 8938 __ str(Narrow, r3, MemOperand(sp, 208)); 8939 __ str(Narrow, r3, MemOperand(sp, 212)); 8940 __ str(Narrow, r3, MemOperand(sp, 220)); 8941 __ str(Narrow, r3, MemOperand(sp, 224)); 8942 __ str(Narrow, r3, MemOperand(sp, 228)); 8943 __ str(Narrow, r4, MemOperand(sp, 128)); 8944 __ str(Narrow, r4, MemOperand(sp, 132)); 8945 __ str(Narrow, r4, MemOperand(sp, 136)); 8946 __ str(Narrow, r4, MemOperand(sp, 164)); 8947 __ str(lr, MemOperand(sp, 140)); 8948 __ str(Narrow, r2, MemOperand(sp, 168)); 8949 __ str(Narrow, r2, MemOperand(sp, 172)); 8950 __ strb(r2, MemOperand(sp, 200)); 8951 __ str(Narrow, r2, MemOperand(sp, 216)); 8952 __ str(Narrow, r3, MemOperand(sp, 232)); 8953 __ str(r5, MemOperand(r1, -152, PreIndex)); 8954 __ str(Narrow, r3, MemOperand(sp, 236)); 8955 __ str(Narrow, r2, MemOperand(sp, 240)); 8956 __ str(Narrow, r3, MemOperand(sp, 244)); 8957 __ str(Narrow, r3, MemOperand(sp, 248)); 8958 __ str(Narrow, r3, MemOperand(sp, 252)); 8959 __ str(Narrow, r3, MemOperand(sp, 256)); 8960 __ str(Narrow, r3, MemOperand(sp, 260)); 8961 __ str(Narrow, r2, MemOperand(sp, 264)); 8962 __ str(Narrow, r3, MemOperand(sp, 268)); 8963 __ str(Narrow, r3, MemOperand(sp, 272)); 8964 __ str(Narrow, r3, MemOperand(sp, 276)); 8965 __ str(Narrow, r3, MemOperand(sp, 280)); 8966 __ str(Narrow, r3, MemOperand(sp, 284)); 8967 __ str(Narrow, r2, MemOperand(sp, 288)); 8968 __ str(Narrow, r3, MemOperand(sp, 292)); 8969 __ str(Narrow, r3, MemOperand(sp, 296)); 8970 __ str(Narrow, r3, MemOperand(sp, 300)); 8971 __ str(Narrow, r3, MemOperand(sp, 304)); 8972 // -------------- 8973 __ bind(&l_4684); 8974 __ bl(&l_4684); 8975 __ add(Narrow, r0, sp, 8U); 8976 // -------------- 8977 __ bind(&l_468a); 8978 __ bl(&l_468a); 8979 __ ldr(Narrow, r4, MemOperand(sp, 20)); 8980 __ movs(Narrow, r3, 1U); 8981 __ ldr(Narrow, r2, MemOperand(sp, 12)); 8982 __ add(Narrow, r0, sp, 104U); 8983 __ str(Narrow, r3, MemOperand(sp)); 8984 __ add(Narrow, r1, sp, 52U); 8985 __ movs(Narrow, r3, 0U); 8986 __ subs(Narrow, r2, r4, r2); 8987 // -------------- 8988 __ bind(&l_469e); 8989 __ bl(&l_469e); 8990 __ ldr(Narrow, r6, MemOperand(sp, 12)); 8991 __ movs(Narrow, r5, 0U); 8992 __ ldr(Narrow, r4, MemOperand(sp, 20)); 8993 __ mov(r3, 4294967295U); 8994 __ str(Narrow, r5, MemOperand(sp, 4)); 8995 __ mov(Narrow, r0, r5); 8996 __ str(Narrow, r3, MemOperand(sp)); 8997 __ movs(Narrow, r2, 7U); 8998 __ subs(Narrow, r4, r4, r6); 8999 __ movs(Narrow, r3, 33U); 9000 __ mov(Narrow, r1, r4); 9001 __ strb(r5, MemOperand(sp, 24)); 9002 // -------------- 9003 __ bind(&l_46be); 9004 __ bl(&l_46be); 9005 __ mov(Narrow, r2, r4); 9006 __ mov(Narrow, r5, r0); 9007 __ mov(Narrow, r1, r6); 9008 // -------------- 9009 __ bind(&l_46c8); 9010 __ bl(&l_46c8); 9011 __ mov(Narrow, r0, r5); 9012 __ adds(Narrow, r1, r5, r4); 9013 // -------------- 9014 __ bind(&l_46d0); 9015 __ bl(&l_46d0); 9016 __ ldr(Narrow, r2, MemOperand(sp, 36)); 9017 __ mov(r0, 1000U); 9018 __ ldr(Narrow, r3, MemOperand(sp, 180)); 9019 __ cmp(Narrow, r2, 1U); 9020 __ it(eq); 9021 __ add(eq, r3, 1U); 9022 __ add(Narrow, r3, r3, r5); 9023 __ blx(r3); 9024 __ mov(Narrow, r1, r4); 9025 __ mov(Narrow, r0, r5); 9026 } 9027 void Generate_69(TestAssembler* assembler) { 9028 // -------------- 9029 __ bind(&l_46ea); 9030 __ bl(&l_46ea); 9031 __ ldr(Narrow, r3, &l_4730); 9032 __ add(Narrow, r0, sp, 188U); 9033 __ str(Narrow, r3, MemOperand(sp, 160)); 9034 // -------------- 9035 __ bind(&l_46f4); 9036 __ bl(&l_46f4); 9037 __ add(Narrow, r0, sp, 8U); 9038 // -------------- 9039 __ bind(&l_46fa); 9040 __ bl(&l_46fa); 9041 __ movs(Narrow, r0, 0U); 9042 __ add(Narrow, sp, sp, 316U); 9043 __ pop(Narrow, RegisterList(0x80f0)); 9044 // -------------- 9045 __ bind(&l_4704); 9046 __ ldr(Narrow, r3, &l_4730); 9047 __ add(Narrow, r0, sp, 188U); 9048 __ str(Narrow, r3, MemOperand(sp, 160)); 9049 // -------------- 9050 __ bind(&l_470a); 9051 __ bl(&l_470a); 9052 __ add(Narrow, r0, sp, 8U); 9053 // -------------- 9054 __ bind(&l_4710); 9055 __ bl(&l_4710); 9056 // -------------- 9057 __ bind(&l_4714); 9058 __ bl(&l_4714); 9059 __ mov(Narrow, r0, r5); 9060 __ mov(Narrow, r1, r4); 9061 // -------------- 9062 __ bind(&l_471c); 9063 __ bl(&l_471c); 9064 __ b(Narrow, &l_4704); 9065 __ nop(Narrow); 9066 // -------------- 9067 __ bind(&l_4724); 9068 __ Emit32(0x00000008); 9069 // -------------- 9070 __ bind(&l_4728); 9071 __ Emit32(0x00000008); 9072 // -------------- 9073 __ bind(&l_472c); 9074 __ Emit32(0x00000008); 9075 // -------------- 9076 __ bind(&l_4730); 9077 __ Emit32(0x00000008); 9078 __ movw(r3, 0U); 9079 __ push(RegisterList(0x4ff0)); 9080 __ movt(r3, 0U); 9081 __ mov(r9, 16416U); 9082 __ mov(sl, 16417U); 9083 __ mov(r2, 16419U); 9084 __ str(r9, MemOperand(r3, 92)); 9085 __ mov(r9, 16420U); 9086 __ str(sl, MemOperand(r3, 88)); 9087 __ mov(sl, 16421U); 9088 __ str(r9, MemOperand(r3, 24)); 9089 __ mov(r9, 16424U); 9090 __ str(Narrow, r2, MemOperand(r3, 76)); 9091 __ mov(fp, 16418U); 9092 __ str(sl, MemOperand(r3, 28)); 9093 __ mov(r2, 16423U); 9094 __ str(r9, MemOperand(r3, 124)); 9095 __ mov(sl, 16425U); 9096 __ mov(r9, 16448U); 9097 __ str(fp, MemOperand(r3, 36)); 9098 __ str(Narrow, r2, MemOperand(r3, 120)); 9099 __ mov(fp, 16422U); 9100 __ str(sl, MemOperand(r3, 128)); 9101 __ mov(r2, 16427U); 9102 __ str(r9, MemOperand(r3, 60)); 9103 __ mov(sl, 16449U); 9104 __ mov(r9, 16452U); 9105 __ movs(Narrow, r1, 136U); 9106 __ sub(Narrow, sp, sp, 12U); 9107 __ str(fp, MemOperand(r3, 32)); 9108 __ str(r2, MemOperand(r3, 136)); 9109 __ movt(r1, 1U); 9110 __ str(sl, MemOperand(r3, 64)); 9111 __ mov(fp, 16426U); 9112 __ str(r9, MemOperand(r3, 164)); 9113 __ mov(r2, 16451U); 9114 __ mov(sl, 16453U); 9115 __ mov(r9, 16456U); 9116 __ str(Narrow, r1, MemOperand(sp, 4)); 9117 __ movs(Narrow, r1, 15U); 9118 __ str(fp, MemOperand(r3, 132)); 9119 __ mov(fp, 16450U); 9120 __ str(Narrow, r2, MemOperand(r3, 72)); 9121 __ mov(r2, 16455U); 9122 __ str(sl, MemOperand(r3, 168)); 9123 __ mov(sl, 16457U); 9124 __ str(r9, MemOperand(r3, 180)); 9125 __ mov(r9, 16429U); 9126 __ str(fp, MemOperand(r3, 68)); 9127 __ mov(fp, 16454U); 9128 __ str(r2, MemOperand(r3, 176)); 9129 __ mov(r2, 16428U); 9130 __ str(sl, MemOperand(r3, 184)); 9131 __ mov(sl, 16431U); 9132 __ str(Narrow, r1, MemOperand(r3, 116)); 9133 __ mov(r1, 16430U); 9134 __ str(r9, MemOperand(r3, 140)); 9135 __ mov(r8, 128U); 9136 __ str(r9, MemOperand(r3, 56)); 9137 __ mov(r9, 16384U); 9138 __ str(fp, MemOperand(r3, 172)); 9139 __ mov(ip, 129U); 9140 __ str(Narrow, r2, MemOperand(r3, 112)); 9141 __ mov(lr, 130U); 9142 __ str(r2, MemOperand(r3, 152)); 9143 __ movs(Narrow, r7, 131U); 9144 __ str(r1, MemOperand(r3, 144)); 9145 __ movs(Narrow, r6, 132U); 9146 __ str(Narrow, r1, MemOperand(r3, 108)); 9147 __ movs(Narrow, r1, 0U); 9148 __ str(sl, MemOperand(r3, 148)); 9149 __ movs(Narrow, r5, 133U); 9150 __ str(sl, MemOperand(r3, 156)); 9151 __ mov(sl, 16458U); 9152 } 9153 void Generate_70(TestAssembler* assembler) { 9154 __ str(r9, MemOperand(r3, 40)); 9155 __ movs(Narrow, r4, 134U); 9156 __ str(r9, MemOperand(r3, 272)); 9157 __ mov(r9, 16459U); 9158 __ str(r9, MemOperand(r3, 192)); 9159 __ mov(r9, 16460U); 9160 __ str(r9, MemOperand(r3, 196)); 9161 __ mov(r9, 16461U); 9162 __ str(r9, MemOperand(r3, 200)); 9163 __ mov(r9, 16462U); 9164 __ str(r9, MemOperand(r3, 204)); 9165 __ mov(r9, 16463U); 9166 __ str(r9, MemOperand(r3, 52)); 9167 __ mov(r9, 16464U); 9168 __ str(r9, MemOperand(r3, 208)); 9169 __ mov(r9, 16465U); 9170 __ str(r9, MemOperand(r3, 212)); 9171 __ mov(r9, 16466U); 9172 __ str(r9, MemOperand(r3, 216)); 9173 __ mov(r9, 16467U); 9174 __ str(r9, MemOperand(r3, 220)); 9175 __ mov(r9, 16468U); 9176 __ str(r9, MemOperand(r3, 224)); 9177 __ mov(r9, 16469U); 9178 __ str(r9, MemOperand(r3, 228)); 9179 __ mov(r9, 16470U); 9180 __ str(r9, MemOperand(r3, 232)); 9181 __ mov(r9, 16471U); 9182 __ str(r9, MemOperand(r3, 236)); 9183 __ mov(r9, 16472U); 9184 __ str(r9, MemOperand(r3, 240)); 9185 __ mov(r9, 16473U); 9186 __ str(r9, MemOperand(r3, 244)); 9187 __ mov(r9, 16474U); 9188 __ str(r9, MemOperand(r3, 248)); 9189 __ mov(r9, 16475U); 9190 __ str(r9, MemOperand(r3, 252)); 9191 __ mov(r9, 16476U); 9192 __ str(r9, MemOperand(r3, 256)); 9193 __ mov(r9, 16477U); 9194 __ str(r9, MemOperand(r3, 260)); 9195 __ mov(r9, 16478U); 9196 __ str(r9, MemOperand(r3, 264)); 9197 __ mov(r9, 16479U); 9198 __ str(r9, MemOperand(r3, 268)); 9199 __ mov(r9, 32864U); 9200 __ str(r9, MemOperand(r3, 276)); 9201 __ mov(r9, 32865U); 9202 __ str(r9, MemOperand(r3, 280)); 9203 __ mov(r9, 32866U); 9204 __ str(r9, MemOperand(r3, 284)); 9205 __ mov(r9, 32867U); 9206 __ str(r9, MemOperand(r3, 288)); 9207 __ mov(r9, 32868U); 9208 __ str(r9, MemOperand(r3, 84)); 9209 __ mov(r9, 32869U); 9210 __ str(r9, MemOperand(r3, 292)); 9211 __ mov(r9, 32870U); 9212 __ str(r9, MemOperand(r3, 44)); 9213 __ mov(r9, 32871U); 9214 __ str(r9, MemOperand(r3, 48)); 9215 __ mov(r9, 32872U); 9216 __ str(r9, MemOperand(r3, 296)); 9217 __ mov(r9, 32873U); 9218 __ str(r1, MemOperand(r3, 160)); 9219 __ movs(Narrow, r0, 135U); 9220 __ str(sl, MemOperand(r3, 188)); 9221 __ mov(fp, 137U); 9222 __ str(r9, MemOperand(r3, 300)); 9223 __ mov(r9, 32874U); 9224 __ str(r9, MemOperand(r3, 304)); 9225 __ mov(r9, 32875U); 9226 __ str(r9, MemOperand(r3, 308)); 9227 __ mov(r9, 32876U); 9228 __ str(r9, MemOperand(r3, 312)); 9229 __ mov(r9, 32877U); 9230 __ str(r9, MemOperand(r3, 316)); 9231 __ mov(r9, 32878U); 9232 __ str(r9, MemOperand(r3, 320)); 9233 __ mov(r9, 32879U); 9234 __ str(r9, MemOperand(r3, 324)); 9235 __ mov(r9, 32880U); 9236 __ str(r9, MemOperand(r3, 328)); 9237 __ mov(r9, 32881U); 9238 __ str(r9, MemOperand(r3, 332)); 9239 __ mov(r9, 32882U); 9240 __ str(r9, MemOperand(r3, 336)); 9241 __ mov(r9, 32883U); 9242 __ str(r9, MemOperand(r3, 340)); 9243 __ mov(r9, 32884U); 9244 __ str(r9, MemOperand(r3, 344)); 9245 __ mov(r9, 32885U); 9246 __ str(r9, MemOperand(r3, 348)); 9247 __ mov(r9, 32886U); 9248 __ str(r9, MemOperand(r3, 352)); 9249 __ mov(r9, 32887U); 9250 __ str(r9, MemOperand(r3, 356)); 9251 __ mov(r9, 32888U); 9252 __ str(r9, MemOperand(r3, 360)); 9253 __ mov(r9, 32889U); 9254 } 9255 void Generate_71(TestAssembler* assembler) { 9256 __ str(r9, MemOperand(r3, 364)); 9257 __ mov(r9, 32890U); 9258 __ str(r9, MemOperand(r3, 368)); 9259 __ mov(r9, 32891U); 9260 __ str(r9, MemOperand(r3, 372)); 9261 __ mov(r9, 32892U); 9262 __ str(r9, MemOperand(r3, 376)); 9263 __ mov(r9, 32893U); 9264 __ ldr(Narrow, r1, MemOperand(sp, 4)); 9265 __ movs(Narrow, r2, 138U); 9266 __ str(r9, MemOperand(r3, 380)); 9267 __ mov(r9, 32894U); 9268 __ str(r9, MemOperand(r3, 384)); 9269 __ mov(r9, 32895U); 9270 __ str(r9, MemOperand(r3, 388)); 9271 __ movt(r8, 1U); 9272 __ movt(ip, 1U); 9273 __ movt(lr, 1U); 9274 __ movt(r7, 1U); 9275 __ movt(r6, 1U); 9276 __ movt(r5, 1U); 9277 __ movt(r4, 1U); 9278 __ movt(r0, 1U); 9279 __ movt(fp, 1U); 9280 __ movt(r2, 1U); 9281 __ mov(r9, 32768U); 9282 __ str(r9, MemOperand(r3)); 9283 __ mov(sl, 139U); 9284 __ str(r8, MemOperand(r3, 4)); 9285 __ mov(r9, 140U); 9286 __ str(ip, MemOperand(r3, 8)); 9287 __ mov(ip, 141U); 9288 __ str(lr, MemOperand(r3, 80)); 9289 __ movt(sl, 1U); 9290 __ str(r7, MemOperand(r3, 392)); 9291 __ movs(Narrow, r7, 142U); 9292 __ str(r6, MemOperand(r3, 396)); 9293 __ movs(Narrow, r6, 143U); 9294 __ str(r5, MemOperand(r3, 400)); 9295 __ movt(r9, 1U); 9296 __ str(r4, MemOperand(r3, 404)); 9297 __ movt(ip, 1U); 9298 __ str(r0, MemOperand(r3, 408)); 9299 __ movt(r7, 1U); 9300 __ str(Narrow, r1, MemOperand(r3, 96)); 9301 __ movt(r6, 1U); 9302 __ str(fp, MemOperand(r3, 100)); 9303 __ mov(r5, 65536U); 9304 __ str(Narrow, r2, MemOperand(r3, 104)); 9305 __ movs(Narrow, r2, 0U); 9306 __ movs(Narrow, r4, 1U); 9307 __ str(r2, MemOperand(r3, 424)); 9308 __ movs(Narrow, r2, 15U); 9309 __ movs(Narrow, r0, 2U); 9310 __ movs(Narrow, r1, 3U); 9311 __ mov(lr, 4U); 9312 __ str(sl, MemOperand(r3, 412)); 9313 __ mov(r8, 6U); 9314 __ str(r9, MemOperand(r3, 416)); 9315 __ mov(sl, 8U); 9316 __ mov(r9, 7U); 9317 __ str(r2, MemOperand(r3, 484)); 9318 __ mov(fp, 9U); 9319 __ str(ip, MemOperand(r3, 12)); 9320 __ str(Narrow, r7, MemOperand(r3, 16)); 9321 __ mov(ip, 10U); 9322 __ movs(Narrow, r7, 11U); 9323 __ str(Narrow, r6, MemOperand(r3, 20)); 9324 __ str(r5, MemOperand(r3, 420)); 9325 __ movs(Narrow, r6, 12U); 9326 __ movs(Narrow, r5, 13U); 9327 __ str(r4, MemOperand(r3, 428)); 9328 __ movs(Narrow, r2, 5U); 9329 __ movs(Narrow, r4, 14U); 9330 __ str(r0, MemOperand(r3, 432)); 9331 __ str(r1, MemOperand(r3, 436)); 9332 __ str(lr, MemOperand(r3, 440)); 9333 __ str(r2, MemOperand(r3, 444)); 9334 __ str(r8, MemOperand(r3, 448)); 9335 __ str(r9, MemOperand(r3, 452)); 9336 __ str(sl, MemOperand(r3, 456)); 9337 __ str(fp, MemOperand(r3, 460)); 9338 __ str(ip, MemOperand(r3, 464)); 9339 __ str(r7, MemOperand(r3, 468)); 9340 __ str(r6, MemOperand(r3, 472)); 9341 __ str(r5, MemOperand(r3, 476)); 9342 __ str(r4, MemOperand(r3, 480)); 9343 __ add(Narrow, sp, sp, 12U); 9344 __ pop(RegisterList(0x8ff0)); 9345 __ nop(Narrow); 9346 // -------------- 9347 __ bind(&l_4b0c); 9348 __ push(Narrow, RegisterList(r4, r5, r6, lr)); 9349 __ mov(Narrow, r6, r0); 9350 __ ldr(Narrow, r4, MemOperand(r0, 108)); 9351 __ ldr(Narrow, r5, MemOperand(r0, 112)); 9352 __ ldr(Narrow, r3, &l_4b7c); 9353 __ cmp(Narrow, r4, r5); 9354 __ add(r2, r3, 504U); 9355 __ str(Narrow, r3, MemOperand(r0)); 9356 __ str(Narrow, r2, MemOperand(r0, 44)); 9357 __ b(eq, Narrow, &l_4b34); 9358 } 9359 void Generate_72(TestAssembler* assembler) { 9360 // -------------- 9361 __ bind(&l_4b22); 9362 __ ldr(r0, MemOperand(r4, 4, PostIndex)); 9363 __ cbz(r0, &l_4b2e); 9364 __ ldr(Narrow, r3, MemOperand(r0)); 9365 __ ldr(Narrow, r3, MemOperand(r3, 4)); 9366 __ blx(r3); 9367 // -------------- 9368 __ bind(&l_4b2e); 9369 __ cmp(Narrow, r5, r4); 9370 __ b(ne, Narrow, &l_4b22); 9371 __ ldr(Narrow, r5, MemOperand(r6, 108)); 9372 // -------------- 9373 __ bind(&l_4b34); 9374 __ cbz(r5, &l_4b3c); 9375 __ mov(Narrow, r0, r5); 9376 // -------------- 9377 __ bind(&l_4b38); 9378 __ bl(&l_4b38); 9379 // -------------- 9380 __ bind(&l_4b3c); 9381 __ ldr(Narrow, r0, MemOperand(r6, 96)); 9382 __ cbz(r0, &l_4b44); 9383 // -------------- 9384 __ bind(&l_4b40); 9385 __ bl(&l_4b40); 9386 // -------------- 9387 __ bind(&l_4b44); 9388 __ ldr(Narrow, r3, &l_4b80); 9389 __ mov(Narrow, r0, r6); 9390 __ str(r3, MemOperand(r0, 4, PostIndex)); 9391 // -------------- 9392 __ bind(&l_4b4c); 9393 __ bl(&l_4b4c); 9394 __ mov(Narrow, r0, r6); 9395 // -------------- 9396 __ bind(&l_4b52); 9397 __ bl(&l_4b52); 9398 __ mov(Narrow, r0, r6); 9399 __ pop(Narrow, RegisterList(r4, r5, r6, pc)); 9400 __ ldr(Narrow, r0, MemOperand(r6, 108)); 9401 __ cbz(r0, &l_4b62); 9402 // -------------- 9403 __ bind(&l_4b5e); 9404 __ bl(&l_4b5e); 9405 // -------------- 9406 __ bind(&l_4b62); 9407 __ ldr(Narrow, r0, MemOperand(r6, 96)); 9408 __ cbz(r0, &l_4b6a); 9409 // -------------- 9410 __ bind(&l_4b66); 9411 __ bl(&l_4b66); 9412 // -------------- 9413 __ bind(&l_4b6a); 9414 __ ldr(Narrow, r3, &l_4b80); 9415 __ mov(Narrow, r0, r6); 9416 __ str(r3, MemOperand(r0, 4, PostIndex)); 9417 // -------------- 9418 __ bind(&l_4b72); 9419 __ bl(&l_4b72); 9420 // -------------- 9421 __ bind(&l_4b76); 9422 __ bl(&l_4b76); 9423 __ nop(Narrow); 9424 // -------------- 9425 __ bind(&l_4b7c); 9426 __ Emit32(0x00000008); 9427 // -------------- 9428 __ bind(&l_4b80); 9429 __ Emit32(0x00000008); 9430 __ sub(r0, r0, 44U); 9431 __ b(Narrow, &l_4b0c); 9432 __ nop(Narrow); 9433 } 9434 9435 public: 9436 explicit Generator(TestAssembler* assembler) { 9437 Generate_1(assembler); 9438 Generate_2(assembler); 9439 Generate_3(assembler); 9440 Generate_4(assembler); 9441 Generate_5(assembler); 9442 Generate_6(assembler); 9443 Generate_7(assembler); 9444 Generate_8(assembler); 9445 Generate_9(assembler); 9446 Generate_10(assembler); 9447 Generate_11(assembler); 9448 Generate_12(assembler); 9449 Generate_13(assembler); 9450 Generate_14(assembler); 9451 Generate_15(assembler); 9452 Generate_16(assembler); 9453 Generate_17(assembler); 9454 Generate_18(assembler); 9455 Generate_19(assembler); 9456 Generate_20(assembler); 9457 Generate_21(assembler); 9458 Generate_22(assembler); 9459 Generate_23(assembler); 9460 Generate_24(assembler); 9461 Generate_25(assembler); 9462 Generate_26(assembler); 9463 Generate_27(assembler); 9464 Generate_28(assembler); 9465 Generate_29(assembler); 9466 Generate_30(assembler); 9467 Generate_31(assembler); 9468 Generate_32(assembler); 9469 Generate_33(assembler); 9470 Generate_34(assembler); 9471 Generate_35(assembler); 9472 Generate_36(assembler); 9473 Generate_37(assembler); 9474 Generate_38(assembler); 9475 Generate_39(assembler); 9476 Generate_40(assembler); 9477 Generate_41(assembler); 9478 Generate_42(assembler); 9479 Generate_43(assembler); 9480 Generate_44(assembler); 9481 Generate_45(assembler); 9482 Generate_46(assembler); 9483 Generate_47(assembler); 9484 Generate_48(assembler); 9485 Generate_49(assembler); 9486 Generate_50(assembler); 9487 Generate_51(assembler); 9488 Generate_52(assembler); 9489 Generate_53(assembler); 9490 Generate_54(assembler); 9491 Generate_55(assembler); 9492 Generate_56(assembler); 9493 Generate_57(assembler); 9494 Generate_58(assembler); 9495 Generate_59(assembler); 9496 Generate_60(assembler); 9497 Generate_61(assembler); 9498 Generate_62(assembler); 9499 Generate_63(assembler); 9500 Generate_64(assembler); 9501 Generate_65(assembler); 9502 Generate_66(assembler); 9503 Generate_67(assembler); 9504 Generate_68(assembler); 9505 Generate_69(assembler); 9506 Generate_70(assembler); 9507 Generate_71(assembler); 9508 Generate_72(assembler); 9509 } 9510}; 9511 9512#ifdef __arm__ 9513const int kMaxPerfCpus = 10; 9514#endif 9515 9516class PerfScope { 9517 public: 9518 explicit PerfScope(int64_t* counter); 9519 ~PerfScope(); 9520 9521 private: 9522#ifdef __arm__ 9523 int fd_[kMaxPerfCpus]; 9524#endif 9525 int64_t* counter_; 9526}; 9527 9528 9529PerfScope::PerfScope(int64_t* counter) : counter_(counter) { 9530 *counter_ = -1; 9531#ifdef __arm__ 9532 perf_event_attr attr; 9533 memset(&attr, 0, sizeof(attr)); 9534 attr.size = sizeof(attr); 9535 attr.type = PERF_TYPE_HARDWARE; 9536 attr.config = PERF_COUNT_HW_CPU_CYCLES; 9537 attr.exclude_kernel = 1; 9538 bool ok = false; 9539 for (int cpu = 0; cpu < kMaxPerfCpus; cpu++) { 9540 fd_[cpu] = 9541 static_cast<int>(syscall(__NR_perf_event_open, &attr, 0, cpu, -1, 0)); 9542 if (fd_[cpu] >= 0) { 9543 if (ioctl(fd_[cpu], PERF_EVENT_IOC_ENABLE, 0) == 0) ok = true; 9544 } 9545 } 9546 if (!ok) printf("Can't set perf counter.\n"); 9547#endif 9548} 9549 9550 9551PerfScope::~PerfScope() { 9552 *counter_ = 0; 9553#ifdef __arm__ 9554 for (int cpu = 0; cpu < 6; cpu++) { 9555 int64_t tmp; 9556 if (fd_[cpu] >= 0) { 9557 size_t size = read(fd_[cpu], &tmp, sizeof(tmp)); 9558 if (size != sizeof(tmp)) { 9559 printf("Could not read counter for cpu %d.\n", cpu); 9560 } else if (tmp > *counter_) { 9561 *counter_ = tmp; 9562 } 9563 close(fd_[cpu]); 9564 } 9565 } 9566#endif 9567} 9568 9569 9570void Benchmark() { 9571 TestAssembler assembler; 9572 { 9573 int64_t cycles = 0; 9574 timeval start; 9575 timeval end; 9576 { 9577 PerfScope scope(&cycles); 9578 gettimeofday(&start, NULL); 9579 Generator generator(&assembler); 9580 assembler.FinalizeCode(); 9581 gettimeofday(&end, NULL); 9582 } 9583 9584 double delta = (end.tv_sec - start.tv_sec) + 9585 static_cast<double>(end.tv_usec - start.tv_usec) / 1000000; 9586 printf("T32 assembler: time: %gs, cycles: %" PRId64 "\n", delta, cycles); 9587 } 9588 { 9589 PrintDisassembler disassembler(std::cerr); 9590 int64_t cycles = 0; 9591 timeval start; 9592 timeval end; 9593 { 9594 PerfScope scope(&cycles); 9595 gettimeofday(&start, NULL); 9596 disassembler.DisassembleT32Buffer(assembler.GetBuffer() 9597 ->GetStartAddress<uint16_t*>(), 9598 assembler.GetCursorOffset()); 9599 gettimeofday(&end, NULL); 9600 } 9601 9602 double delta = (end.tv_sec - start.tv_sec) + 9603 static_cast<double>(end.tv_usec - start.tv_usec) / 1000000; 9604 printf("T32 disassembler: time: %gs, cycles: %" PRId64 "\n", delta, cycles); 9605 } 9606} 9607 9608 9609int main(int argc, char* argv[]) { 9610 if (argc > 2) { 9611 printf("Usage: %s [iteration count]\n", argv[0]); 9612 exit(1); 9613 } 9614#ifdef VIXL_INCLUDE_TARGET_T32 9615 int count = 1; 9616 if (argc == 2) count = atoi(argv[1]); 9617 while (count > 0) { 9618 Benchmark(); 9619 count--; 9620 } 9621#else 9622 printf("Speed test only available for T32.\n"); 9623 exit(0); // Even if the test is not done, it must not fail. 9624#endif 9625 9626 return 0; 9627} 9628