1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1.2 +++ b/os/kernelhwsrv/kerneltest/e32test/mmu/t_btb.cia Fri Jun 15 03:10:57 2012 +0200
1.3 @@ -0,0 +1,1135 @@
1.4 +// Copyright (c) 1995-2009 Nokia Corporation and/or its subsidiary(-ies).
1.5 +// All rights reserved.
1.6 +// This component and the accompanying materials are made available
1.7 +// under the terms of the License "Eclipse Public License v1.0"
1.8 +// which accompanies this distribution, and is available
1.9 +// at the URL "http://www.eclipse.org/legal/epl-v10.html".
1.10 +//
1.11 +// Initial Contributors:
1.12 +// Nokia Corporation - initial contribution.
1.13 +//
1.14 +// Contributors:
1.15 +//
1.16 +// Description:
1.17 +// e32test\mmu\t_imb.cia
1.18 +//
1.19 +//
1.20 +
1.21 +#include <e32test.h>
1.22 +#include <u32std.h>
1.23 +
1.24 +#ifdef __CPU_ARM
1.25 +
1.26 +__NAKED__ TInt BranchTest1()
1.27 + {
1.28 + asm(" movs r0, #0 "); // return status KErrNone
1.29 + asm(" mov r3, #1 "); // this is process 1
1.30 + asm(" mov r1, lr "); // save return address
1.31 + asm(" mov r2, #0xff00 "); // iterations
1.32 + asm("loop1: ");
1.33 + asm(" cmp r1, r1 "); // reset cond flags
1.34 + asm(" moveq lr, pc ");
1.35 + asm(" beq poison1 "); // start test!
1.36 + asm(" cmp r3, #1 ");
1.37 + asm(" moveq lr, pc ");
1.38 + asm(" beq poison1 ");
1.39 + asm(" cmp r3, #1 ");
1.40 + asm(" moveq lr, pc ");
1.41 + asm(" beq poison1 ");
1.42 + asm(" cmp r3, #1 ");
1.43 + asm(" moveq lr, pc ");
1.44 + asm(" beq poison1 ");
1.45 + asm(" cmp r3, #1 ");
1.46 + asm(" moveq lr, pc ");
1.47 + asm(" beq poison1 ");
1.48 + asm(" cmp r3, #1 ");
1.49 + asm(" moveq lr, pc ");
1.50 + asm(" beq poison1 ");
1.51 + asm(" cmp r3, #1 ");
1.52 + asm(" moveq lr, pc ");
1.53 + asm(" beq poison1 ");
1.54 + asm(" cmp r3, #1 ");
1.55 + asm(" moveq lr, pc ");
1.56 + asm(" beq poison1 ");
1.57 + asm(" cmp r3, #1 ");
1.58 + asm(" moveq lr, pc ");
1.59 + asm(" beq poison1 ");
1.60 + asm(" cmp r3, #1 ");
1.61 + asm(" moveq lr, pc ");
1.62 + asm(" beq poison1 ");
1.63 + asm(" cmp r3, #1 ");
1.64 + asm(" moveq lr, pc ");
1.65 + asm(" beq poison1 ");
1.66 + asm(" cmp r3, #1 ");
1.67 + asm(" moveq lr, pc ");
1.68 + asm(" beq poison1 ");
1.69 + asm(" cmp r3, #1 ");
1.70 + asm(" moveq lr, pc ");
1.71 + asm(" beq poison1 ");
1.72 + asm(" cmp r3, #1 ");
1.73 + asm(" moveq lr, pc ");
1.74 + asm(" beq poison1 ");
1.75 + asm(" cmp r3, #1 ");
1.76 + asm(" moveq lr, pc ");
1.77 + asm(" beq poison1 ");
1.78 + asm(" cmp r3, #1 ");
1.79 + asm(" moveq lr, pc ");
1.80 + asm(" beq poison1 ");
1.81 + asm(" cmp r3, #1 ");
1.82 + asm(" moveq lr, pc ");
1.83 + asm(" beq poison1 ");
1.84 + asm(" cmp r3, #1 ");
1.85 + asm(" moveq lr, pc ");
1.86 + asm(" beq poison1 ");
1.87 + asm(" cmp r3, #1 ");
1.88 + asm(" moveq lr, pc ");
1.89 + asm(" beq poison1 ");
1.90 + asm(" cmp r3, #1 ");
1.91 + asm(" moveq lr, pc ");
1.92 + asm(" beq poison1 ");
1.93 + asm(" cmp r3, #1 ");
1.94 + asm(" moveq lr, pc ");
1.95 + asm(" beq poison1 ");
1.96 + asm(" cmp r3, #1 ");
1.97 + asm(" moveq lr, pc ");
1.98 + asm(" beq poison1 ");
1.99 + asm(" cmp r3, #1 ");
1.100 + asm(" moveq lr, pc ");
1.101 + asm(" beq poison1 ");
1.102 + asm(" cmp r3, #1 ");
1.103 + asm(" moveq lr, pc ");
1.104 + asm(" beq poison1 ");
1.105 + asm(" cmp r3, #1 ");
1.106 + asm(" moveq lr, pc ");
1.107 + asm(" beq poison1 ");
1.108 + asm(" cmp r3, #1 ");
1.109 + asm(" moveq lr, pc ");
1.110 + asm(" beq poison1 ");
1.111 + asm(" cmp r3, #1 ");
1.112 + asm(" moveq lr, pc ");
1.113 + asm(" beq poison1 ");
1.114 + asm(" cmp r3, #1 ");
1.115 + asm(" moveq lr, pc ");
1.116 + asm(" beq poison1 ");
1.117 + asm(" cmp r3, #1 ");
1.118 + asm(" moveq lr, pc ");
1.119 + asm(" beq poison1 ");
1.120 + asm(" cmp r3, #1 ");
1.121 + asm(" moveq lr, pc ");
1.122 + asm(" beq poison1 ");
1.123 + asm(" cmp r3, #1 ");
1.124 + asm(" moveq lr, pc ");
1.125 + asm(" beq poison1 ");
1.126 + asm(" cmp r3, #1 ");
1.127 + asm(" moveq lr, pc ");
1.128 + asm(" beq poison1 ");
1.129 + asm(" cmp r3, #1 ");
1.130 + asm(" moveq lr, pc ");
1.131 + asm(" beq poison1 ");
1.132 + asm(" cmp r3, #1 ");
1.133 + asm(" moveq lr, pc ");
1.134 + asm(" beq poison1 ");
1.135 + asm(" cmp r3, #1 ");
1.136 + asm(" moveq lr, pc ");
1.137 + asm(" beq poison1 ");
1.138 + asm(" cmp r3, #1 ");
1.139 + asm(" moveq lr, pc ");
1.140 + asm(" beq poison1 ");
1.141 + asm(" cmp r3, #1 ");
1.142 + asm(" moveq lr, pc ");
1.143 + asm(" beq poison1 ");
1.144 + asm(" cmp r3, #1 ");
1.145 + asm(" moveq lr, pc ");
1.146 + asm(" beq poison1 ");
1.147 + asm(" cmp r3, #1 ");
1.148 + asm(" moveq lr, pc ");
1.149 + asm(" beq poison1 ");
1.150 + asm(" cmp r3, #1 ");
1.151 + asm(" moveq lr, pc ");
1.152 + asm(" beq poison1 ");
1.153 + asm(" cmp r3, #1 ");
1.154 + asm(" moveq lr, pc ");
1.155 + asm(" beq poison1 ");
1.156 + asm(" cmp r3, #1 ");
1.157 + asm(" moveq lr, pc ");
1.158 + asm(" beq poison1 ");
1.159 + asm(" cmp r3, #1 ");
1.160 + asm(" moveq lr, pc ");
1.161 + asm(" beq poison1 ");
1.162 + asm(" cmp r3, #1 ");
1.163 + asm(" moveq lr, pc ");
1.164 + asm(" beq poison1 ");
1.165 + asm(" cmp r3, #1 ");
1.166 + asm(" moveq lr, pc ");
1.167 + asm(" beq poison1 ");
1.168 + asm(" cmp r3, #1 ");
1.169 + asm(" moveq lr, pc ");
1.170 + asm(" beq poison1 ");
1.171 + asm(" cmp r3, #1 ");
1.172 + asm(" moveq lr, pc ");
1.173 + asm(" beq poison1 ");
1.174 + asm(" cmp r3, #1 ");
1.175 + asm(" moveq lr, pc ");
1.176 + asm(" beq poison1 ");
1.177 + asm(" cmp r3, #1 ");
1.178 + asm(" moveq lr, pc ");
1.179 + asm(" beq poison1 ");
1.180 + asm(" cmp r3, #1 ");
1.181 + asm(" moveq lr, pc ");
1.182 + asm(" beq poison1 ");
1.183 + asm(" cmp r3, #1 ");
1.184 + asm(" moveq lr, pc ");
1.185 + asm(" beq poison1 ");
1.186 + asm(" cmp r3, #1 ");
1.187 + asm(" moveq lr, pc ");
1.188 + asm(" beq poison1 ");
1.189 + asm(" cmp r3, #1 ");
1.190 + asm(" moveq lr, pc ");
1.191 + asm(" beq poison1 ");
1.192 + asm(" cmp r3, #1 ");
1.193 + asm(" moveq lr, pc ");
1.194 + asm(" beq poison1 ");
1.195 + asm(" cmp r3, #1 ");
1.196 + asm(" moveq lr, pc ");
1.197 + asm(" beq poison1 ");
1.198 + asm(" cmp r3, #1 ");
1.199 + asm(" moveq lr, pc ");
1.200 + asm(" beq poison1 ");
1.201 + asm(" cmp r3, #1 ");
1.202 + asm(" moveq lr, pc ");
1.203 + asm(" beq poison1 ");
1.204 + asm(" cmp r3, #1 ");
1.205 + asm(" moveq lr, pc ");
1.206 + asm(" beq poison1 ");
1.207 + asm(" cmp r3, #1 ");
1.208 + asm(" moveq lr, pc ");
1.209 + asm(" beq poison1 ");
1.210 + asm(" cmp r3, #1 ");
1.211 + asm(" moveq lr, pc ");
1.212 + asm(" beq poison1 ");
1.213 + asm(" cmp r3, #1 ");
1.214 + asm(" moveq lr, pc ");
1.215 + asm(" beq poison1 ");
1.216 + asm(" cmp r3, #1 ");
1.217 + asm(" moveq lr, pc ");
1.218 + asm(" beq poison1 ");
1.219 + asm(" cmp r3, #1 ");
1.220 + asm(" moveq lr, pc ");
1.221 + asm(" beq poison1 ");
1.222 + asm(" cmp r3, #1 ");
1.223 + asm(" moveq lr, pc ");
1.224 + asm(" beq poison1 ");
1.225 + asm(" cmp r3, #1 ");
1.226 + asm(" moveq lr, pc ");
1.227 + asm(" beq poison1 ");
1.228 + asm(" cmp r3, #1 ");
1.229 + asm(" moveq lr, pc ");
1.230 + asm(" beq poison1 ");
1.231 + asm(" cmp r3, #1 ");
1.232 + asm(" moveq lr, pc ");
1.233 + asm(" beq poison1 ");
1.234 + asm(" cmp r3, #1 ");
1.235 + asm(" moveq lr, pc ");
1.236 + asm(" beq poison1 ");
1.237 + asm(" cmp r3, #1 ");
1.238 + asm(" moveq lr, pc ");
1.239 + asm(" beq poison1 ");
1.240 + asm(" cmp r3, #1 ");
1.241 + asm(" moveq lr, pc ");
1.242 + asm(" beq poison1 ");
1.243 + asm(" cmp r3, #1 ");
1.244 + asm(" moveq lr, pc ");
1.245 + asm(" beq poison1 ");
1.246 + asm(" cmp r3, #1 ");
1.247 + asm(" moveq lr, pc ");
1.248 + asm(" beq poison1 ");
1.249 + asm(" cmp r3, #1 ");
1.250 + asm(" moveq lr, pc ");
1.251 + asm(" beq poison1 ");
1.252 + asm(" cmp r3, #1 ");
1.253 + asm(" moveq lr, pc ");
1.254 + asm(" beq poison1 ");
1.255 + asm(" cmp r3, #1 ");
1.256 + asm(" moveq lr, pc ");
1.257 + asm(" beq poison1 ");
1.258 + asm(" cmp r3, #1 ");
1.259 + asm(" moveq lr, pc ");
1.260 + asm(" beq poison1 ");
1.261 + asm(" cmp r3, #1 ");
1.262 + asm(" moveq lr, pc ");
1.263 + asm(" beq poison1 ");
1.264 + asm(" cmp r3, #1 ");
1.265 + asm(" moveq lr, pc ");
1.266 + asm(" beq poison1 ");
1.267 + asm(" cmp r3, #1 ");
1.268 + asm(" moveq lr, pc ");
1.269 + asm(" beq poison1 ");
1.270 + asm(" cmp r3, #1 ");
1.271 + asm(" moveq lr, pc ");
1.272 + asm(" beq poison1 ");
1.273 + asm(" cmp r3, #1 ");
1.274 + asm(" moveq lr, pc ");
1.275 + asm(" beq poison1 ");
1.276 + asm(" cmp r3, #1 ");
1.277 + asm(" moveq lr, pc ");
1.278 + asm(" beq poison1 ");
1.279 + asm(" cmp r3, #1 ");
1.280 + asm(" moveq lr, pc ");
1.281 + asm(" beq poison1 ");
1.282 + asm(" cmp r3, #1 ");
1.283 + asm(" moveq lr, pc ");
1.284 + asm(" beq poison1 ");
1.285 + asm(" cmp r3, #1 ");
1.286 + asm(" moveq lr, pc ");
1.287 + asm(" beq poison1 ");
1.288 + asm(" cmp r3, #1 ");
1.289 + asm(" moveq lr, pc ");
1.290 + asm(" beq poison1 ");
1.291 + asm(" cmp r3, #1 ");
1.292 + asm(" moveq lr, pc ");
1.293 + asm(" beq poison1 ");
1.294 + asm(" cmp r3, #1 ");
1.295 + asm(" moveq lr, pc ");
1.296 + asm(" beq poison1 ");
1.297 + asm(" cmp r3, #1 ");
1.298 + asm(" moveq lr, pc ");
1.299 + asm(" beq poison1 ");
1.300 + asm(" cmp r3, #1 ");
1.301 + asm(" moveq lr, pc ");
1.302 + asm(" beq poison1 ");
1.303 + asm(" cmp r3, #1 ");
1.304 + asm(" moveq lr, pc ");
1.305 + asm(" beq poison1 ");
1.306 + asm(" cmp r3, #1 ");
1.307 + asm(" moveq lr, pc ");
1.308 + asm(" beq poison1 ");
1.309 + asm(" cmp r3, #1 ");
1.310 + asm(" moveq lr, pc ");
1.311 + asm(" beq poison1 ");
1.312 + asm(" cmp r3, #1 ");
1.313 + asm(" moveq lr, pc ");
1.314 + asm(" beq poison1 ");
1.315 + asm(" cmp r3, #1 ");
1.316 + asm(" moveq lr, pc ");
1.317 + asm(" beq poison1 ");
1.318 + asm(" cmp r3, #1 ");
1.319 + asm(" moveq lr, pc ");
1.320 + asm(" beq poison1 ");
1.321 + asm(" cmp r3, #1 ");
1.322 + asm(" moveq lr, pc ");
1.323 + asm(" beq poison1 ");
1.324 + asm(" cmp r3, #1 ");
1.325 + asm(" moveq lr, pc ");
1.326 + asm(" beq poison1 ");
1.327 + asm(" cmp r3, #1 ");
1.328 + asm(" moveq lr, pc ");
1.329 + asm(" beq poison1 ");
1.330 + asm(" cmp r3, #1 ");
1.331 + asm(" moveq lr, pc ");
1.332 + asm(" beq poison1 ");
1.333 + asm(" cmp r3, #1 ");
1.334 + asm(" moveq lr, pc ");
1.335 + asm(" beq poison1 ");
1.336 + asm(" cmp r3, #1 ");
1.337 + asm(" moveq lr, pc ");
1.338 + asm(" beq poison1 ");
1.339 + asm(" cmp r3, #1 ");
1.340 + asm(" moveq lr, pc ");
1.341 + asm(" beq poison1 ");
1.342 + asm(" cmp r3, #1 ");
1.343 + asm(" moveq lr, pc ");
1.344 + asm(" beq poison1 ");
1.345 + asm(" cmp r3, #1 ");
1.346 + asm(" moveq lr, pc ");
1.347 + asm(" beq poison1 ");
1.348 + asm(" cmp r3, #1 ");
1.349 + asm(" moveq lr, pc ");
1.350 + asm(" beq poison1 ");
1.351 + asm(" cmp r3, #1 ");
1.352 + asm(" moveq lr, pc ");
1.353 + asm(" beq poison1 ");
1.354 + asm(" cmp r3, #1 ");
1.355 + asm(" moveq lr, pc ");
1.356 + asm(" beq poison1 ");
1.357 + asm(" cmp r3, #1 ");
1.358 + asm(" moveq lr, pc ");
1.359 + asm(" beq poison1 ");
1.360 + asm(" cmp r3, #1 ");
1.361 + asm(" moveq lr, pc ");
1.362 + asm(" beq poison1 ");
1.363 + asm(" cmp r3, #1 ");
1.364 + asm(" moveq lr, pc ");
1.365 + asm(" beq poison1 ");
1.366 + asm(" cmp r3, #1 ");
1.367 + asm(" moveq lr, pc ");
1.368 + asm(" beq poison1 ");
1.369 + asm(" cmp r3, #1 ");
1.370 + asm(" moveq lr, pc ");
1.371 + asm(" beq poison1 ");
1.372 + asm(" cmp r3, #1 ");
1.373 + asm(" moveq lr, pc ");
1.374 + asm(" beq poison1 ");
1.375 + asm(" cmp r3, #1 ");
1.376 + asm(" moveq lr, pc ");
1.377 + asm(" beq poison1 ");
1.378 + asm(" cmp r3, #1 ");
1.379 + asm(" moveq lr, pc ");
1.380 + asm(" beq poison1 ");
1.381 + asm(" cmp r3, #1 ");
1.382 + asm(" moveq lr, pc ");
1.383 + asm(" beq poison1 ");
1.384 + asm(" cmp r3, #1 ");
1.385 + asm(" moveq lr, pc ");
1.386 + asm(" beq poison1 ");
1.387 + asm(" cmp r3, #1 ");
1.388 + asm(" moveq lr, pc ");
1.389 + asm(" beq poison1 ");
1.390 + asm(" cmp r3, #1 ");
1.391 + asm(" moveq lr, pc ");
1.392 + asm(" beq poison1 ");
1.393 + asm(" cmp r3, #1 ");
1.394 + asm(" moveq lr, pc ");
1.395 + asm(" beq poison1 ");
1.396 + asm(" cmp r3, #1 ");
1.397 + asm(" moveq lr, pc ");
1.398 + asm(" beq poison1 ");
1.399 + asm(" cmp r3, #1 ");
1.400 + asm(" moveq lr, pc ");
1.401 + asm(" beq poison1 ");
1.402 + asm(" cmp r3, #1 ");
1.403 + asm(" moveq lr, pc ");
1.404 + asm(" beq poison1 ");
1.405 + asm(" cmp r3, #1 ");
1.406 + asm(" moveq lr, pc ");
1.407 + asm(" beq poison1 ");
1.408 + asm(" cmp r3, #1 ");
1.409 + asm(" moveq lr, pc ");
1.410 + asm(" beq poison1 ");
1.411 + asm(" teq r3, #1 "); // did we fall through?
1.412 + asm(" movne r0, #-1 "); // yes we did!
1.413 + __JUMP(ne,r1); // return
1.414 + asm(" subs r2, r2, #1 "); // no, decrement the counter and go again
1.415 + asm(" bne loop1 "); // if there are iters left and we didn't fall through
1.416 +
1.417 + __JUMP(,r1); // the end!
1.418 + asm("poison1: ");
1.419 + asm(" mov r3, #1 "); // we're ok
1.420 + __JUMP(,lr);
1.421 + asm("poison2: ");
1.422 + asm(" mov r3, #2 "); // woops!
1.423 + __JUMP(,lr);
1.424 + }
1.425 +
1.426 +__NAKED__ void BranchTest1End()
1.427 +{
1.428 + __JUMP(,lr);
1.429 +}
1.430 +
1.431 +__NAKED__ TInt BranchTest2()
1.432 + {
1.433 + asm(" movs r0, #0 "); // return status KErrNone
1.434 + asm(" mov r3, #2 "); // this is process 2
1.435 + asm(" mov r1, lr"); // save return address
1.436 + asm(" mov r2, #0xff00"); // iterations
1.437 + asm("loop2: ");
1.438 + asm(" cmp r1, r1 "); // reset flags
1.439 + asm(" moveq lr, pc ");
1.440 + asm(" beq poison3 "); // start test!
1.441 + asm(" cmp r3, #2 ");
1.442 + asm(" moveq lr, pc ");
1.443 + asm(" beq poison3 ");
1.444 + asm(" cmp r3, #2 ");
1.445 + asm(" moveq lr, pc ");
1.446 + asm(" beq poison3 ");
1.447 + asm(" cmp r3, #2 ");
1.448 + asm(" moveq lr, pc ");
1.449 + asm(" beq poison3 ");
1.450 + asm(" cmp r3, #2 ");
1.451 + asm(" moveq lr, pc ");
1.452 + asm(" beq poison3 ");
1.453 + asm(" cmp r3, #2 ");
1.454 + asm(" moveq lr, pc ");
1.455 + asm(" beq poison3 ");
1.456 + asm(" cmp r3, #2 ");
1.457 + asm(" moveq lr, pc ");
1.458 + asm(" beq poison3 ");
1.459 + asm(" cmp r3, #2 ");
1.460 + asm(" moveq lr, pc ");
1.461 + asm(" beq poison3 ");
1.462 + asm(" cmp r3, #2 ");
1.463 + asm(" moveq lr, pc ");
1.464 + asm(" beq poison3 ");
1.465 + asm(" cmp r3, #2 ");
1.466 + asm(" moveq lr, pc ");
1.467 + asm(" beq poison3 ");
1.468 + asm(" cmp r3, #2 ");
1.469 + asm(" moveq lr, pc ");
1.470 + asm(" beq poison3 ");
1.471 + asm(" cmp r3, #2 ");
1.472 + asm(" moveq lr, pc ");
1.473 + asm(" beq poison3 ");
1.474 + asm(" cmp r3, #2 ");
1.475 + asm(" moveq lr, pc ");
1.476 + asm(" beq poison3 ");
1.477 + asm(" cmp r3, #2 ");
1.478 + asm(" moveq lr, pc ");
1.479 + asm(" beq poison3 ");
1.480 + asm(" cmp r3, #2 ");
1.481 + asm(" moveq lr, pc ");
1.482 + asm(" beq poison3 ");
1.483 + asm(" cmp r3, #2 ");
1.484 + asm(" moveq lr, pc ");
1.485 + asm(" beq poison3 ");
1.486 + asm(" cmp r3, #2 ");
1.487 + asm(" moveq lr, pc ");
1.488 + asm(" beq poison3 ");
1.489 + asm(" cmp r3, #2 ");
1.490 + asm(" moveq lr, pc ");
1.491 + asm(" beq poison3 ");
1.492 + asm(" cmp r3, #2 ");
1.493 + asm(" moveq lr, pc ");
1.494 + asm(" beq poison3 ");
1.495 + asm(" cmp r3, #2 ");
1.496 + asm(" moveq lr, pc ");
1.497 + asm(" beq poison3 ");
1.498 + asm(" cmp r3, #2 ");
1.499 + asm(" moveq lr, pc ");
1.500 + asm(" beq poison3 ");
1.501 + asm(" cmp r3, #2 ");
1.502 + asm(" moveq lr, pc ");
1.503 + asm(" beq poison3 ");
1.504 + asm(" cmp r3, #2 ");
1.505 + asm(" moveq lr, pc ");
1.506 + asm(" beq poison3 ");
1.507 + asm(" cmp r3, #2 ");
1.508 + asm(" moveq lr, pc ");
1.509 + asm(" beq poison3 ");
1.510 + asm(" cmp r3, #2 ");
1.511 + asm(" moveq lr, pc ");
1.512 + asm(" beq poison3 ");
1.513 + asm(" cmp r3, #2 ");
1.514 + asm(" moveq lr, pc ");
1.515 + asm(" beq poison3 ");
1.516 + asm(" cmp r3, #2 ");
1.517 + asm(" moveq lr, pc ");
1.518 + asm(" beq poison3 ");
1.519 + asm(" cmp r3, #2 ");
1.520 + asm(" moveq lr, pc ");
1.521 + asm(" beq poison3 ");
1.522 + asm(" cmp r3, #2 ");
1.523 + asm(" moveq lr, pc ");
1.524 + asm(" beq poison3 ");
1.525 + asm(" cmp r3, #2 ");
1.526 + asm(" moveq lr, pc ");
1.527 + asm(" beq poison3 ");
1.528 + asm(" cmp r3, #2 ");
1.529 + asm(" moveq lr, pc ");
1.530 + asm(" beq poison3 ");
1.531 + asm(" cmp r3, #2 ");
1.532 + asm(" moveq lr, pc ");
1.533 + asm(" beq poison3 ");
1.534 + asm(" cmp r3, #2 ");
1.535 + asm(" moveq lr, pc ");
1.536 + asm(" beq poison3 ");
1.537 + asm(" cmp r3, #2 ");
1.538 + asm(" moveq lr, pc ");
1.539 + asm(" beq poison3 ");
1.540 + asm(" cmp r3, #2 ");
1.541 + asm(" moveq lr, pc ");
1.542 + asm(" beq poison3 ");
1.543 + asm(" cmp r3, #2 ");
1.544 + asm(" moveq lr, pc ");
1.545 + asm(" beq poison3 ");
1.546 + asm(" cmp r3, #2 ");
1.547 + asm(" moveq lr, pc ");
1.548 + asm(" beq poison3 ");
1.549 + asm(" cmp r3, #2 ");
1.550 + asm(" moveq lr, pc ");
1.551 + asm(" beq poison3 ");
1.552 + asm(" cmp r3, #2 ");
1.553 + asm(" moveq lr, pc ");
1.554 + asm(" beq poison3 ");
1.555 + asm(" cmp r3, #2 ");
1.556 + asm(" moveq lr, pc ");
1.557 + asm(" beq poison3 ");
1.558 + asm(" cmp r3, #2 ");
1.559 + asm(" moveq lr, pc ");
1.560 + asm(" beq poison3 ");
1.561 + asm(" cmp r3, #2 ");
1.562 + asm(" moveq lr, pc ");
1.563 + asm(" beq poison3 ");
1.564 + asm(" cmp r3, #2 ");
1.565 + asm(" moveq lr, pc ");
1.566 + asm(" beq poison3 ");
1.567 + asm(" cmp r3, #2 ");
1.568 + asm(" moveq lr, pc ");
1.569 + asm(" beq poison3 ");
1.570 + asm(" cmp r3, #2 ");
1.571 + asm(" moveq lr, pc ");
1.572 + asm(" beq poison3 ");
1.573 + asm(" cmp r3, #2 ");
1.574 + asm(" moveq lr, pc ");
1.575 + asm(" beq poison3 ");
1.576 + asm(" cmp r3, #2 ");
1.577 + asm(" moveq lr, pc ");
1.578 + asm(" beq poison3 ");
1.579 + asm(" cmp r3, #2 ");
1.580 + asm(" moveq lr, pc ");
1.581 + asm(" beq poison3 ");
1.582 + asm(" cmp r3, #2 ");
1.583 + asm(" moveq lr, pc ");
1.584 + asm(" beq poison3 ");
1.585 + asm(" cmp r3, #2 ");
1.586 + asm(" moveq lr, pc ");
1.587 + asm(" beq poison3 ");
1.588 + asm(" cmp r3, #2 ");
1.589 + asm(" moveq lr, pc ");
1.590 + asm(" beq poison3 ");
1.591 + asm(" cmp r3, #2 ");
1.592 + asm(" moveq lr, pc ");
1.593 + asm(" beq poison3 ");
1.594 + asm(" cmp r3, #2 ");
1.595 + asm(" moveq lr, pc ");
1.596 + asm(" beq poison3 ");
1.597 + asm(" cmp r3, #2 ");
1.598 + asm(" moveq lr, pc ");
1.599 + asm(" beq poison3 ");
1.600 + asm(" cmp r3, #2 ");
1.601 + asm(" moveq lr, pc ");
1.602 + asm(" beq poison3 ");
1.603 + asm(" cmp r3, #2 ");
1.604 + asm(" moveq lr, pc ");
1.605 + asm(" beq poison3 ");
1.606 + asm(" cmp r3, #2 ");
1.607 + asm(" moveq lr, pc ");
1.608 + asm(" beq poison3 ");
1.609 + asm(" cmp r3, #2 ");
1.610 + asm(" moveq lr, pc ");
1.611 + asm(" beq poison3 ");
1.612 + asm(" cmp r3, #2 ");
1.613 + asm(" moveq lr, pc ");
1.614 + asm(" beq poison3 ");
1.615 + asm(" cmp r3, #2 ");
1.616 + asm(" moveq lr, pc ");
1.617 + asm(" beq poison3 ");
1.618 + asm(" cmp r3, #2 ");
1.619 + asm(" moveq lr, pc ");
1.620 + asm(" beq poison3 ");
1.621 + asm(" cmp r3, #2 ");
1.622 + asm(" moveq lr, pc ");
1.623 + asm(" beq poison3 ");
1.624 + asm(" cmp r3, #2 ");
1.625 + asm(" moveq lr, pc ");
1.626 + asm(" beq poison3 ");
1.627 + asm(" cmp r3, #2 ");
1.628 + asm(" moveq lr, pc ");
1.629 + asm(" beq poison3 ");
1.630 + asm(" cmp r3, #2 ");
1.631 + asm(" moveq lr, pc ");
1.632 + asm(" beq poison3 ");
1.633 + asm(" cmp r3, #2 ");
1.634 + asm(" moveq lr, pc ");
1.635 + asm(" beq poison3 ");
1.636 + asm(" cmp r3, #2 ");
1.637 + asm(" moveq lr, pc ");
1.638 + asm(" beq poison3 ");
1.639 + asm(" cmp r3, #2 ");
1.640 + asm(" moveq lr, pc ");
1.641 + asm(" beq poison3 ");
1.642 + asm(" cmp r3, #2 ");
1.643 + asm(" moveq lr, pc ");
1.644 + asm(" beq poison3 ");
1.645 + asm(" cmp r3, #2 ");
1.646 + asm(" moveq lr, pc ");
1.647 + asm(" beq poison3 ");
1.648 + asm(" cmp r3, #2 ");
1.649 + asm(" moveq lr, pc ");
1.650 + asm(" beq poison3 ");
1.651 + asm(" cmp r3, #2 ");
1.652 + asm(" moveq lr, pc ");
1.653 + asm(" beq poison3 ");
1.654 + asm(" cmp r3, #2 ");
1.655 + asm(" moveq lr, pc ");
1.656 + asm(" beq poison3 ");
1.657 + asm(" cmp r3, #2 ");
1.658 + asm(" moveq lr, pc ");
1.659 + asm(" beq poison3 ");
1.660 + asm(" cmp r3, #2 ");
1.661 + asm(" moveq lr, pc ");
1.662 + asm(" beq poison3 ");
1.663 + asm(" cmp r3, #2 ");
1.664 + asm(" moveq lr, pc ");
1.665 + asm(" beq poison3 ");
1.666 + asm(" cmp r3, #2 ");
1.667 + asm(" moveq lr, pc ");
1.668 + asm(" beq poison3 ");
1.669 + asm(" cmp r3, #2 ");
1.670 + asm(" moveq lr, pc ");
1.671 + asm(" beq poison3 ");
1.672 + asm(" cmp r3, #2 ");
1.673 + asm(" moveq lr, pc ");
1.674 + asm(" beq poison3 ");
1.675 + asm(" cmp r3, #2 ");
1.676 + asm(" moveq lr, pc ");
1.677 + asm(" beq poison3 ");
1.678 + asm(" cmp r3, #2 ");
1.679 + asm(" moveq lr, pc ");
1.680 + asm(" beq poison3 ");
1.681 + asm(" cmp r3, #2 ");
1.682 + asm(" moveq lr, pc ");
1.683 + asm(" beq poison3 ");
1.684 + asm(" cmp r3, #2 ");
1.685 + asm(" moveq lr, pc ");
1.686 + asm(" beq poison3 ");
1.687 + asm(" cmp r3, #2 ");
1.688 + asm(" moveq lr, pc ");
1.689 + asm(" beq poison3 ");
1.690 + asm(" cmp r3, #2 ");
1.691 + asm(" moveq lr, pc ");
1.692 + asm(" beq poison3 ");
1.693 + asm(" cmp r3, #2 ");
1.694 + asm(" moveq lr, pc ");
1.695 + asm(" beq poison3 ");
1.696 + asm(" cmp r3, #2 ");
1.697 + asm(" moveq lr, pc ");
1.698 + asm(" beq poison3 ");
1.699 + asm(" cmp r3, #2 ");
1.700 + asm(" moveq lr, pc ");
1.701 + asm(" beq poison3 ");
1.702 + asm(" cmp r3, #2 ");
1.703 + asm(" moveq lr, pc ");
1.704 + asm(" beq poison3 ");
1.705 + asm(" cmp r3, #2 ");
1.706 + asm(" moveq lr, pc ");
1.707 + asm(" beq poison3 ");
1.708 + asm(" cmp r3, #2 ");
1.709 + asm(" moveq lr, pc ");
1.710 + asm(" beq poison3 ");
1.711 + asm(" cmp r3, #2 ");
1.712 + asm(" moveq lr, pc ");
1.713 + asm(" beq poison3 ");
1.714 + asm(" cmp r3, #2 ");
1.715 + asm(" moveq lr, pc ");
1.716 + asm(" beq poison3 ");
1.717 + asm(" cmp r3, #2 ");
1.718 + asm(" moveq lr, pc ");
1.719 + asm(" beq poison3 ");
1.720 + asm(" cmp r3, #2 ");
1.721 + asm(" moveq lr, pc ");
1.722 + asm(" beq poison3 ");
1.723 + asm(" cmp r3, #2 ");
1.724 + asm(" moveq lr, pc ");
1.725 + asm(" beq poison3 ");
1.726 + asm(" cmp r3, #2 ");
1.727 + asm(" moveq lr, pc ");
1.728 + asm(" beq poison3 ");
1.729 + asm(" cmp r3, #2 ");
1.730 + asm(" moveq lr, pc ");
1.731 + asm(" beq poison3 ");
1.732 + asm(" cmp r3, #2 ");
1.733 + asm(" moveq lr, pc ");
1.734 + asm(" beq poison3 ");
1.735 + asm(" cmp r3, #2 ");
1.736 + asm(" moveq lr, pc ");
1.737 + asm(" beq poison3 ");
1.738 + asm(" cmp r3, #2 ");
1.739 + asm(" moveq lr, pc ");
1.740 + asm(" beq poison3 ");
1.741 + asm(" cmp r3, #2 ");
1.742 + asm(" moveq lr, pc ");
1.743 + asm(" beq poison3 ");
1.744 + asm(" cmp r3, #2 ");
1.745 + asm(" moveq lr, pc ");
1.746 + asm(" beq poison3 ");
1.747 + asm(" cmp r3, #2 ");
1.748 + asm(" moveq lr, pc ");
1.749 + asm(" beq poison3 ");
1.750 + asm(" cmp r3, #2 ");
1.751 + asm(" moveq lr, pc ");
1.752 + asm(" beq poison3 ");
1.753 + asm(" cmp r3, #2 ");
1.754 + asm(" moveq lr, pc ");
1.755 + asm(" beq poison3 ");
1.756 + asm(" cmp r3, #2 ");
1.757 + asm(" moveq lr, pc ");
1.758 + asm(" beq poison3 ");
1.759 + asm(" cmp r3, #2 ");
1.760 + asm(" moveq lr, pc ");
1.761 + asm(" beq poison3 ");
1.762 + asm(" cmp r3, #2 ");
1.763 + asm(" moveq lr, pc ");
1.764 + asm(" beq poison3 ");
1.765 + asm(" cmp r3, #2 ");
1.766 + asm(" moveq lr, pc ");
1.767 + asm(" beq poison3 ");
1.768 + asm(" cmp r3, #2 ");
1.769 + asm(" moveq lr, pc ");
1.770 + asm(" beq poison3 ");
1.771 + asm(" cmp r3, #2 ");
1.772 + asm(" moveq lr, pc ");
1.773 + asm(" beq poison3 ");
1.774 + asm(" cmp r3, #2 ");
1.775 + asm(" moveq lr, pc ");
1.776 + asm(" beq poison3 ");
1.777 + asm(" cmp r3, #2 ");
1.778 + asm(" moveq lr, pc ");
1.779 + asm(" beq poison3 ");
1.780 + asm(" cmp r3, #2 ");
1.781 + asm(" moveq lr, pc ");
1.782 + asm(" beq poison3 ");
1.783 + asm(" cmp r3, #2 ");
1.784 + asm(" moveq lr, pc ");
1.785 + asm(" beq poison3 ");
1.786 + asm(" cmp r3, #2 ");
1.787 + asm(" moveq lr, pc ");
1.788 + asm(" beq poison3 ");
1.789 + asm(" cmp r3, #2 ");
1.790 + asm(" moveq lr, pc ");
1.791 + asm(" beq poison3 ");
1.792 + asm(" cmp r3, #2 ");
1.793 + asm(" moveq lr, pc ");
1.794 + asm(" beq poison3 ");
1.795 + asm(" cmp r3, #2 ");
1.796 + asm(" moveq lr, pc ");
1.797 + asm(" beq poison3 ");
1.798 + asm(" cmp r3, #2 ");
1.799 + asm(" moveq lr, pc ");
1.800 + asm(" beq poison3 ");
1.801 + asm(" cmp r3, #2 ");
1.802 + asm(" moveq lr, pc ");
1.803 + asm(" beq poison3 ");
1.804 + asm(" cmp r3, #2 ");
1.805 + asm(" moveq lr, pc ");
1.806 + asm(" beq poison3 ");
1.807 + asm(" cmp r3, #2 ");
1.808 + asm(" moveq lr, pc ");
1.809 + asm(" beq poison3 ");
1.810 + asm(" cmp r3, #2 ");
1.811 + asm(" moveq lr, pc ");
1.812 + asm(" beq poison3 ");
1.813 + asm(" cmp r3, #2 ");
1.814 + asm(" moveq lr, pc ");
1.815 + asm(" beq poison3 ");
1.816 + asm(" teq r3, #2 "); // did we fall through?
1.817 + asm(" movne r0, #-1 "); // yes we did!
1.818 + __JUMP(ne,r1); // return
1.819 + asm(" subs r2, r2, #1 "); // no, decrement the counter and go again
1.820 + asm(" bne loop2 "); // if there are iters left and we didn't fall through
1.821 + __JUMP(,r1); // the end!
1.822 + asm("poison4: ");
1.823 + asm(" mov r3, #1 "); // woops!
1.824 + __JUMP(,lr);
1.825 + asm("poison3: ");
1.826 + asm(" mov r3, #2 "); // we're ok
1.827 + __JUMP(,lr);
1.828 + }
1.829 +
1.830 +__NAKED__ void BranchTest2End()
1.831 +{
1.832 + __JUMP(,lr);
1.833 +}
1.834 +
1.835 +
1.836 +__NAKED__ TInt BranchTest3()
1.837 + {
1.838 + asm(" b entrage "); // skip the subroutine
1.839 + asm("nontoxic1: ");
1.840 + asm(" mov r3, #3 "); // we're ok
1.841 + __JUMP(,lr);
1.842 + asm("entrage: ");
1.843 + asm(" movs r0, #0"); // return status KErrNone
1.844 + asm(" mov r3, #3"); // this is test 3
1.845 + asm(" mov r1, lr"); // save return address
1.846 + asm(" mov r2, #0xff00"); // iterations
1.847 + asm("loop3: ");
1.848 + asm(" cmp r1, r1 "); // reset flags
1.849 + asm(" bleq nontoxic1 "); // start test!
1.850 + asm(" cmp r3, #3 ");
1.851 + asm(" bleq nontoxic1 ");
1.852 + asm(" cmp r3, #3 ");
1.853 + asm(" bleq nontoxic1 ");
1.854 + asm(" cmp r3, #3 ");
1.855 + asm(" bleq nontoxic1 ");
1.856 + asm(" cmp r3, #3 ");
1.857 + asm(" bleq nontoxic1 ");
1.858 + asm(" cmp r3, #3 ");
1.859 + asm(" bleq nontoxic1 ");
1.860 + asm(" cmp r3, #3 ");
1.861 + asm(" bleq nontoxic1 ");
1.862 + asm(" cmp r3, #3 ");
1.863 + asm(" bleq nontoxic1 ");
1.864 + asm(" cmp r3, #3 ");
1.865 + asm(" bleq nontoxic1 ");
1.866 + asm(" cmp r3, #3 ");
1.867 + asm(" bleq nontoxic1 ");
1.868 + asm(" cmp r3, #3 ");
1.869 + asm(" bleq nontoxic1 ");
1.870 + asm(" cmp r3, #3 ");
1.871 + asm(" bleq nontoxic1 ");
1.872 + asm(" cmp r3, #3 ");
1.873 + asm(" bleq nontoxic1 ");
1.874 + asm(" cmp r3, #3 ");
1.875 + asm(" bleq nontoxic1 ");
1.876 + asm(" cmp r3, #3 ");
1.877 + asm(" bleq nontoxic1 ");
1.878 + asm(" cmp r3, #3 ");
1.879 + asm(" bleq nontoxic1 ");
1.880 + asm(" cmp r3, #3 ");
1.881 + asm(" bleq nontoxic1 ");
1.882 + asm(" cmp r3, #3 ");
1.883 + asm(" bleq nontoxic1 ");
1.884 + asm(" cmp r3, #3 ");
1.885 + asm(" bleq nontoxic1 ");
1.886 + asm(" cmp r3, #3 ");
1.887 + asm(" bleq nontoxic1 ");
1.888 + asm(" cmp r3, #3 ");
1.889 + asm(" bleq nontoxic1 ");
1.890 + asm(" cmp r3, #3 ");
1.891 + asm(" bleq nontoxic1 ");
1.892 + asm(" cmp r3, #3 ");
1.893 + asm(" bleq nontoxic1 ");
1.894 + asm(" cmp r3, #3 ");
1.895 + asm(" bleq nontoxic1 ");
1.896 + asm(" cmp r3, #3 ");
1.897 + asm(" bleq nontoxic1 ");
1.898 + asm(" cmp r3, #3 ");
1.899 + asm(" bleq nontoxic1 ");
1.900 + asm(" cmp r3, #3 ");
1.901 + asm(" bleq nontoxic1 ");
1.902 + asm(" cmp r3, #3 ");
1.903 + asm(" bleq nontoxic1 ");
1.904 + asm(" cmp r3, #3 ");
1.905 + asm(" bleq nontoxic1 ");
1.906 + asm(" cmp r3, #3 ");
1.907 + asm(" bleq nontoxic1 ");
1.908 + asm(" cmp r3, #3 ");
1.909 + asm(" bleq nontoxic1 ");
1.910 + asm(" cmp r3, #3 ");
1.911 + asm(" bleq nontoxic1 ");
1.912 + asm(" cmp r3, #3 ");
1.913 + asm(" bleq nontoxic1 ");
1.914 + asm(" cmp r3, #3 ");
1.915 + asm(" bleq nontoxic1 ");
1.916 + asm(" cmp r3, #3 ");
1.917 + asm(" bleq nontoxic1 ");
1.918 + asm(" cmp r3, #3 ");
1.919 + asm(" bleq nontoxic1 ");
1.920 + asm(" cmp r3, #3 ");
1.921 + asm(" bleq nontoxic1 ");
1.922 + asm(" cmp r3, #3 ");
1.923 + asm(" bleq nontoxic1 ");
1.924 + asm(" cmp r3, #3 ");
1.925 + asm(" bleq nontoxic1 ");
1.926 + asm(" cmp r3, #3 ");
1.927 + asm(" bleq nontoxic1 ");
1.928 + asm(" cmp r3, #3 ");
1.929 + asm(" bleq nontoxic1 ");
1.930 + asm(" cmp r3, #3 ");
1.931 + asm(" bleq nontoxic1 ");
1.932 + asm(" cmp r3, #3 ");
1.933 + asm(" bleq nontoxic1 ");
1.934 + asm(" cmp r3, #3 ");
1.935 + asm(" bleq nontoxic1 ");
1.936 + asm(" cmp r3, #3 ");
1.937 + asm(" bleq nontoxic1 ");
1.938 + asm(" cmp r3, #3 ");
1.939 + asm(" bleq nontoxic1 ");
1.940 + asm(" cmp r3, #3 ");
1.941 + asm(" bleq nontoxic1 ");
1.942 + asm(" cmp r3, #3 ");
1.943 + asm(" bleq nontoxic1 ");
1.944 + asm(" cmp r3, #3 ");
1.945 + asm(" bleq nontoxic1 ");
1.946 + asm(" cmp r3, #3 ");
1.947 + asm(" bleq nontoxic1 ");
1.948 + asm(" cmp r3, #3 ");
1.949 + asm(" bleq nontoxic1 ");
1.950 + asm(" cmp r3, #3 ");
1.951 + asm(" bleq nontoxic1 ");
1.952 + asm(" cmp r3, #3 ");
1.953 + asm(" bleq nontoxic1 ");
1.954 + asm(" cmp r3, #3 ");
1.955 + asm(" bleq nontoxic1 ");
1.956 + asm(" cmp r3, #3 ");
1.957 + asm(" bleq nontoxic1 ");
1.958 + asm(" cmp r3, #3 ");
1.959 + asm(" bleq nontoxic1 ");
1.960 + asm(" cmp r3, #3 ");
1.961 + asm(" bleq nontoxic1 ");
1.962 + asm(" cmp r3, #3 ");
1.963 + asm(" bleq nontoxic1 ");
1.964 + asm(" cmp r3, #3 ");
1.965 + asm(" bleq nontoxic1 ");
1.966 + asm(" cmp r3, #3 ");
1.967 + asm(" bleq nontoxic1 ");
1.968 + asm(" cmp r3, #3 ");
1.969 + asm(" bleq nontoxic1 ");
1.970 + asm(" cmp r3, #3 ");
1.971 + asm(" bleq nontoxic1 ");
1.972 + asm(" cmp r3, #3 ");
1.973 + asm(" bleq nontoxic1 ");
1.974 + asm(" cmp r3, #3 ");
1.975 + asm(" bleq nontoxic1 ");
1.976 + asm(" cmp r3, #3 ");
1.977 + asm(" bleq nontoxic1 ");
1.978 + asm(" cmp r3, #3 ");
1.979 + asm(" bleq nontoxic1 ");
1.980 + asm(" cmp r3, #3 ");
1.981 + asm(" bleq nontoxic1 ");
1.982 + asm(" cmp r3, #3 ");
1.983 + asm(" bleq nontoxic1 ");
1.984 + asm(" cmp r3, #3 ");
1.985 + asm(" bleq nontoxic1 ");
1.986 + asm(" cmp r3, #3 ");
1.987 + asm(" bleq nontoxic1 ");
1.988 + asm(" cmp r3, #3 ");
1.989 + asm(" bleq nontoxic1 ");
1.990 + asm(" cmp r3, #3 ");
1.991 + asm(" bleq nontoxic1 ");
1.992 + asm(" cmp r3, #3 ");
1.993 + asm(" bleq nontoxic1 ");
1.994 + asm(" cmp r3, #3 ");
1.995 + asm(" bleq nontoxic1 ");
1.996 + asm(" cmp r3, #3 ");
1.997 + asm(" bleq nontoxic1 ");
1.998 + asm(" cmp r3, #3 ");
1.999 + asm(" bleq nontoxic1 ");
1.1000 + asm(" cmp r3, #3 ");
1.1001 + asm(" bleq nontoxic1 ");
1.1002 + asm(" cmp r3, #3 ");
1.1003 + asm(" bleq nontoxic1 ");
1.1004 + asm(" cmp r3, #3 ");
1.1005 + asm(" bleq nontoxic1 ");
1.1006 + asm(" cmp r3, #3 ");
1.1007 + asm(" bleq nontoxic1 ");
1.1008 + asm(" cmp r3, #3 ");
1.1009 + asm(" bleq nontoxic1 ");
1.1010 + asm(" cmp r3, #3 ");
1.1011 + asm(" bleq nontoxic1 ");
1.1012 + asm(" cmp r3, #3 ");
1.1013 + asm(" bleq nontoxic1 ");
1.1014 + asm(" cmp r3, #3 ");
1.1015 + asm(" bleq nontoxic1 ");
1.1016 + asm(" cmp r3, #3 ");
1.1017 + asm(" bleq nontoxic1 ");
1.1018 + asm(" cmp r3, #3 ");
1.1019 + asm(" bleq nontoxic1 ");
1.1020 + asm(" cmp r3, #3 ");
1.1021 + asm(" bleq nontoxic1 ");
1.1022 + asm(" cmp r3, #3 ");
1.1023 + asm(" bleq nontoxic1 ");
1.1024 + asm(" cmp r3, #3 ");
1.1025 + asm(" bleq nontoxic1 ");
1.1026 + asm(" cmp r3, #3 ");
1.1027 + asm(" bleq nontoxic1 ");
1.1028 + asm(" cmp r3, #3 ");
1.1029 + asm(" bleq nontoxic1 ");
1.1030 + asm(" cmp r3, #3 ");
1.1031 + asm(" bleq nontoxic1 ");
1.1032 + asm(" cmp r3, #3 ");
1.1033 + asm(" bleq nontoxic1 ");
1.1034 + asm(" cmp r3, #3 ");
1.1035 + asm(" bleq nontoxic1 ");
1.1036 + asm(" cmp r3, #3 ");
1.1037 + asm(" bleq nontoxic1 ");
1.1038 + asm(" cmp r3, #3 ");
1.1039 + asm(" bleq nontoxic1 ");
1.1040 + asm(" cmp r3, #3 ");
1.1041 + asm(" bleq nontoxic1 ");
1.1042 + asm(" cmp r3, #3 ");
1.1043 + asm(" bleq nontoxic1 ");
1.1044 + asm(" cmp r3, #3 ");
1.1045 + asm(" bleq nontoxic1 ");
1.1046 + asm(" cmp r3, #3 ");
1.1047 + asm(" bleq nontoxic1 ");
1.1048 + asm(" cmp r3, #3 ");
1.1049 + asm(" bleq nontoxic1 ");
1.1050 + asm(" cmp r3, #3 ");
1.1051 + asm(" bleq nontoxic1 ");
1.1052 + asm(" cmp r3, #3 ");
1.1053 + asm(" bleq nontoxic1 ");
1.1054 + asm(" cmp r3, #3 ");
1.1055 + asm(" bleq nontoxic1 ");
1.1056 + asm(" cmp r3, #3 ");
1.1057 + asm(" bleq nontoxic1 ");
1.1058 + asm(" cmp r3, #3 ");
1.1059 + asm(" bleq nontoxic1 ");
1.1060 + asm(" cmp r3, #3 ");
1.1061 + asm(" bleq nontoxic1 ");
1.1062 + asm(" cmp r3, #3 ");
1.1063 + asm(" bleq nontoxic1 ");
1.1064 + asm(" cmp r3, #3 ");
1.1065 + asm(" bleq nontoxic1 ");
1.1066 + asm(" cmp r3, #3 ");
1.1067 + asm(" bleq nontoxic1 ");
1.1068 + asm(" cmp r3, #3 ");
1.1069 + asm(" bleq nontoxic1 ");
1.1070 + asm(" cmp r3, #3 ");
1.1071 + asm(" bleq nontoxic1 ");
1.1072 + asm(" cmp r3, #3 ");
1.1073 + asm(" bleq nontoxic1 ");
1.1074 + asm(" cmp r3, #3 ");
1.1075 + asm(" bleq nontoxic1 ");
1.1076 + asm(" cmp r3, #3 ");
1.1077 + asm(" bleq nontoxic1 ");
1.1078 + asm(" cmp r3, #3 ");
1.1079 + asm(" bleq nontoxic1 ");
1.1080 + asm(" cmp r3, #3 ");
1.1081 + asm(" bleq nontoxic1 ");
1.1082 + asm(" cmp r3, #3 ");
1.1083 + asm(" bleq nontoxic1 ");
1.1084 + asm(" cmp r3, #3 ");
1.1085 + asm(" bleq nontoxic1 ");
1.1086 + asm(" cmp r3, #3 ");
1.1087 + asm(" bleq nontoxic1 ");
1.1088 + asm(" cmp r3, #3 ");
1.1089 + asm(" bleq nontoxic1 ");
1.1090 + asm(" cmp r3, #3 ");
1.1091 + asm(" bleq nontoxic1 ");
1.1092 + asm(" cmp r3, #3 ");
1.1093 + asm(" bleq nontoxic1 ");
1.1094 + asm(" cmp r3, #3 ");
1.1095 + asm(" bleq nontoxic1 ");
1.1096 + asm(" cmp r3, #3 ");
1.1097 + asm(" bleq nontoxic1 ");
1.1098 + asm(" cmp r3, #3 ");
1.1099 + asm(" bleq nontoxic1 ");
1.1100 + asm(" teq r3, #3 "); // did we fall through?
1.1101 + asm(" movne r0, #-1 "); // yes we did!
1.1102 + __JUMP(ne,r1); // return
1.1103 + asm(" subs r2, r2, #1 "); // no, decrement the counter and go again
1.1104 + asm(" bne loop3 "); // if there are iters left and we didn't fall through
1.1105 + __JUMP(,r1); // the end!
1.1106 + asm("poison5: ");
1.1107 + asm(" mov r3, #1 "); // woops!
1.1108 + __JUMP(,lr);
1.1109 + }
1.1110 +
1.1111 +__NAKED__ void BranchTest3End()
1.1112 +{
1.1113 + __JUMP(,lr);
1.1114 +}
1.1115 +
1.1116 +__NAKED__ void BranchTest4(TInt)
1.1117 +{
1.1118 + asm(" mov r2, #0xff000 "); // big number
1.1119 + asm("bloop: ");
1.1120 + asm(" cmp r0, #0 ");
1.1121 + asm(" beq skippy ");
1.1122 +
1.1123 + asm(" and r4, r4, r4 ");
1.1124 + asm(" and r5, r5, r5 ");
1.1125 + asm(" and r6, r6, r6 ");
1.1126 + asm(" and r7, r7, r7 ");
1.1127 + asm(" and r8, r8, r8 ");
1.1128 +
1.1129 + asm("skippy: ");
1.1130 + asm(" subs r2, r2, #1 ");
1.1131 + asm(" bne bloop ");
1.1132 + __JUMP(,lr);
1.1133 +}
1.1134 +__NAKED__ void BranchTest4End()
1.1135 +{
1.1136 + __JUMP(,lr);
1.1137 +}
1.1138 +#endif