1# Copyright (C) 2018 The Android Open Source Project 2# 3# Licensed under the Apache License, Version 2.0 (the "License"); 4# you may not use this file except in compliance with the License. 5# You may obtain a copy of the License at 6# 7# http://www.apache.org/licenses/LICENSE-2.0 8# 9# Unless required by applicable law or agreed to in writing, software 10# distributed under the License is distributed on an "AS IS" BASIS, 11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12# See the License for the specific language governing permissions and 13# limitations under the License. 14 15.class public LMain2; 16.super Ljava/lang/Object; 17 18 19# instance fields 20.field b00:Z 21 22.field b01:Z 23 24.field b02:Z 25 26.field b03:Z 27 28.field b04:Z 29 30.field b05:Z 31 32.field b06:Z 33 34.field b07:Z 35 36.field b08:Z 37 38.field b09:Z 39 40.field b10:Z 41 42.field b11:Z 43 44.field b12:Z 45 46.field b13:Z 47 48.field b14:Z 49 50.field b15:Z 51 52.field b16:Z 53 54.field b17:Z 55 56.field b18:Z 57 58.field b19:Z 59 60.field b20:Z 61 62.field b21:Z 63 64.field b22:Z 65 66.field b23:Z 67 68.field b24:Z 69 70.field b25:Z 71 72.field b26:Z 73 74.field b27:Z 75 76.field b28:Z 77 78.field b29:Z 79 80.field b30:Z 81 82.field b31:Z 83 84.field b32:Z 85 86.field b33:Z 87 88.field b34:Z 89 90.field b35:Z 91 92.field b36:Z 93 94.field conditionA:Z 95 96.field conditionB:Z 97 98.field conditionC:Z 99 100 101# direct methods 102.method public constructor <init>()V 103 .registers 1 104 105 .prologue 106 .line 17 107 invoke-direct {p0}, Ljava/lang/Object;-><init>()V 108 109 return-void 110.end method 111 112## CHECK-START-ARM64: void Main2.test() register (after) 113## CHECK: begin_block 114## CHECK: name "B0" 115## CHECK: <<This:l\d+>> ParameterValue 116## CHECK: end_block 117## CHECK: begin_block 118## CHECK: successors "<<ThenBlock:B\d+>>" "<<ElseBlock:B\d+>>" 119## CHECK: <<CondB:z\d+>> InstanceFieldGet [<<This>>] field_name:Main2.conditionB 120## CHECK: If [<<CondB>>] 121## CHECK: end_block 122## CHECK: begin_block 123## CHECK: name "<<ElseBlock>>" 124## CHECK: ParallelMove moves:[40(sp)->d0,24(sp)->32(sp),28(sp)->36(sp),d0->d3,d3->d4,d2->d5,d4->d6,d5->d7,d6->d18,d7->d19,d18->d20,d19->d21,d20->d22,d21->d23,d22->d10,d23->d11,16(sp)->24(sp),20(sp)->28(sp),d10->d14,d11->d12,d12->d13,d13->d1,d14->d2,32(sp)->16(sp),36(sp)->20(sp)] 125## CHECK: end_block 126 127## CHECK-START-ARM64: void Main2.test() disassembly (after) 128## CHECK: begin_block 129## CHECK: name "B0" 130## CHECK: <<This:l\d+>> ParameterValue 131## CHECK: end_block 132## CHECK: begin_block 133## CHECK: successors "<<ThenBlock:B\d+>>" "<<ElseBlock:B\d+>>" 134## CHECK: <<CondB:z\d+>> InstanceFieldGet [<<This>>] field_name:Main2.conditionB 135## CHECK: If [<<CondB>>] 136## CHECK: end_block 137## CHECK: begin_block 138## CHECK: name "<<ElseBlock>>" 139## CHECK: ParallelMove moves:[invalid->invalid,invalid->invalid,invalid->invalid,invalid->invalid,invalid->invalid,invalid->invalid,invalid->invalid,invalid->invalid,invalid->invalid,invalid->invalid,invalid->invalid,invalid->invalid,invalid->invalid,invalid->invalid,invalid->invalid,invalid->invalid,invalid->invalid,invalid->invalid,invalid->invalid,invalid->invalid,invalid->invalid,invalid->invalid,invalid->invalid,invalid->invalid,invalid->invalid] 140## CHECK: fmov d31, d2 141## CHECK: ldr s2, [sp, #36] 142## CHECK: ldr w16, [sp, #16] 143## CHECK: str w16, [sp, #36] 144## CHECK: str s14, [sp, #16] 145## CHECK: ldr s14, [sp, #28] 146## CHECK: str s1, [sp, #28] 147## CHECK: ldr s1, [sp, #32] 148## CHECK: str s31, [sp, #32] 149## CHECK: ldr s31, [sp, #20] 150## CHECK: str s31, [sp, #40] 151## CHECK: str s12, [sp, #20] 152## CHECK: fmov d12, d11 153## CHECK: fmov d11, d10 154## CHECK: fmov d10, d23 155## CHECK: fmov d23, d22 156## CHECK: fmov d22, d21 157## CHECK: fmov d21, d20 158## CHECK: fmov d20, d19 159## CHECK: fmov d19, d18 160## CHECK: fmov d18, d7 161## CHECK: fmov d7, d6 162## CHECK: fmov d6, d5 163## CHECK: fmov d5, d4 164## CHECK: fmov d4, d3 165## CHECK: fmov d3, d13 166## CHECK: ldr s13, [sp, #24] 167## CHECK: str s3, [sp, #24] 168## CHECK: ldr s3, pc+{{\d+}} (addr {{0x[0-9a-f]+}}) (100) 169## CHECK: end_block 170 171# Original java source: 172# 173# public void test() { 174# String r = ""; 175# 176# // For the purpose of this regression test, the order of 177# // definition of these float variable matters. Likewise with the 178# // order of the instructions where these variables are used below. 179# // Reordering these lines makes the original (b/32545705) 180# // issue vanish. 181# float f17 = b17 ? 0.0f : 1.0f; 182# float f16 = b16 ? 0.0f : 1.0f; 183# float f18 = b18 ? 0.0f : 1.0f; 184# float f19 = b19 ? 0.0f : 1.0f; 185# float f20 = b20 ? 0.0f : 1.0f; 186# float f21 = b21 ? 0.0f : 1.0f; 187# float f15 = b15 ? 0.0f : 1.0f; 188# float f00 = b00 ? 0.0f : 1.0f; 189# float f22 = b22 ? 0.0f : 1.0f; 190# float f23 = b23 ? 0.0f : 1.0f; 191# float f24 = b24 ? 0.0f : 1.0f; 192# float f25 = b25 ? 0.0f : 1.0f; 193# float f26 = b26 ? 0.0f : 1.0f; 194# float f27 = b27 ? 0.0f : 1.0f; 195# float f29 = b29 ? 0.0f : 1.0f; 196# float f28 = b28 ? 0.0f : 1.0f; 197# float f01 = b01 ? 0.0f : 1.0f; 198# float f02 = b02 ? 0.0f : 1.0f; 199# float f03 = b03 ? 0.0f : 1.0f; 200# float f04 = b04 ? 0.0f : 1.0f; 201# float f05 = b05 ? 0.0f : 1.0f; 202# float f07 = b07 ? 0.0f : 1.0f; 203# float f06 = b06 ? 0.0f : 1.0f; 204# float f30 = b30 ? 0.0f : 1.0f; 205# float f31 = b31 ? 0.0f : 1.0f; 206# float f32 = b32 ? 0.0f : 1.0f; 207# float f33 = b33 ? 0.0f : 1.0f; 208# float f34 = b34 ? 0.0f : 1.0f; 209# float f36 = b36 ? 0.0f : 1.0f; 210# float f35 = b35 ? 0.0f : 1.0f; 211# float f08 = b08 ? 0.0f : 1.0f; 212# float f09 = b09 ? 0.0f : 1.0f; 213# float f10 = b10 ? 0.0f : 1.0f; 214# float f11 = b11 ? 0.0f : 1.0f; 215# float f12 = b12 ? 0.0f : 1.0f; 216# float f14 = b14 ? 0.0f : 1.0f; 217# float f13 = b13 ? 0.0f : 1.0f; 218# 219# if (conditionA) { 220# f16 /= 1000.0f; 221# f17 /= 1000.0f; 222# f18 /= 1000.0f; 223# f19 /= 1000.0f; 224# f20 /= 1000.0f; 225# f21 /= 1000.0f; 226# f15 /= 1000.0f; 227# f08 /= 1000.0f; 228# f09 /= 1000.0f; 229# f10 /= 1000.0f; 230# f11 /= 1000.0f; 231# f12 /= 1000.0f; 232# f30 /= 1000.0f; 233# f31 /= 1000.0f; 234# f32 /= 1000.0f; 235# f33 /= 1000.0f; 236# f34 /= 1000.0f; 237# f01 /= 1000.0f; 238# f02 /= 1000.0f; 239# f03 /= 1000.0f; 240# f04 /= 1000.0f; 241# f05 /= 1000.0f; 242# f23 /= 1000.0f; 243# f24 /= 1000.0f; 244# f25 /= 1000.0f; 245# f26 /= 1000.0f; 246# f27 /= 1000.0f; 247# f22 /= 1000.0f; 248# f00 /= 1000.0f; 249# f14 /= 1000.0f; 250# f13 /= 1000.0f; 251# f36 /= 1000.0f; 252# f35 /= 1000.0f; 253# f07 /= 1000.0f; 254# f06 /= 1000.0f; 255# f29 /= 1000.0f; 256# f28 /= 1000.0f; 257# } 258# // The parallel move that used to exhaust the ARM64 parallel move 259# // resolver's scratch register pool (provided by VIXL) was in the 260# // "else" branch of the following condition generated by ART's 261# // compiler. 262# if (conditionB) { 263# f16 /= 100.0f; 264# f17 /= 100.0f; 265# f18 /= 100.0f; 266# f19 /= 100.0f; 267# f20 /= 100.0f; 268# f21 /= 100.0f; 269# f15 /= 100.0f; 270# f08 /= 100.0f; 271# f09 /= 100.0f; 272# f10 /= 100.0f; 273# f11 /= 100.0f; 274# f12 /= 100.0f; 275# f30 /= 100.0f; 276# f31 /= 100.0f; 277# f32 /= 100.0f; 278# f33 /= 100.0f; 279# f34 /= 100.0f; 280# f01 /= 100.0f; 281# f02 /= 100.0f; 282# f03 /= 100.0f; 283# f04 /= 100.0f; 284# f05 /= 100.0f; 285# f23 /= 100.0f; 286# f24 /= 100.0f; 287# f25 /= 100.0f; 288# f26 /= 100.0f; 289# f27 /= 100.0f; 290# f22 /= 100.0f; 291# f00 /= 100.0f; 292# f14 /= 100.0f; 293# f13 /= 100.0f; 294# f36 /= 100.0f; 295# f35 /= 100.0f; 296# f07 /= 100.0f; 297# f06 /= 100.0f; 298# f29 /= 100.0f; 299# f28 /= 100.0f; 300# } 301# if (conditionC) { 302# f16 /= 12.0f; 303# f17 /= 12.0f; 304# f18 /= 12.0f; 305# f19 /= 12.0f; 306# f20 /= 12.0f; 307# f21 /= 12.0f; 308# f15 /= 12.0f; 309# f08 /= 12.0f; 310# f09 /= 12.0f; 311# f10 /= 12.0f; 312# f11 /= 12.0f; 313# f12 /= 12.0f; 314# f30 /= 12.0f; 315# f31 /= 12.0f; 316# f32 /= 12.0f; 317# f33 /= 12.0f; 318# f34 /= 12.0f; 319# f01 /= 12.0f; 320# f02 /= 12.0f; 321# f03 /= 12.0f; 322# f04 /= 12.0f; 323# f05 /= 12.0f; 324# f23 /= 12.0f; 325# f24 /= 12.0f; 326# f25 /= 12.0f; 327# f26 /= 12.0f; 328# f27 /= 12.0f; 329# f22 /= 12.0f; 330# f00 /= 12.0f; 331# f14 /= 12.0f; 332# f13 /= 12.0f; 333# f36 /= 12.0f; 334# f35 /= 12.0f; 335# f07 /= 12.0f; 336# f06 /= 12.0f; 337# f29 /= 12.0f; 338# f28 /= 12.0f; 339# } 340# float s = 0.0f; 341# s = ((float) Math.round(100.0f * s)) / 100.0f; 342# String res = s + r; 343# } 344 345# virtual methods 346.method public test()V 347 .registers 45 348 349 .prologue 350 .line 121 351 const-string v39, "" 352 353 .line 128 354 .local v39, "r":Ljava/lang/String; 355 move-object/from16 v0, p0 356 357 iget-boolean v0, v0, LMain2;->b17:Z 358 359 move/from16 v42, v0 360 361 if-eqz v42, :cond_367 362 363 const/16 v19, 0x0 364 365 .line 129 366 .local v19, "f17":F 367 :goto_c 368 move-object/from16 v0, p0 369 370 iget-boolean v0, v0, LMain2;->b16:Z 371 372 move/from16 v42, v0 373 374 if-eqz v42, :cond_36b 375 376 const/16 v18, 0x0 377 378 .line 130 379 .local v18, "f16":F 380 :goto_16 381 move-object/from16 v0, p0 382 383 iget-boolean v0, v0, LMain2;->b18:Z 384 385 move/from16 v42, v0 386 387 if-eqz v42, :cond_36f 388 389 const/16 v20, 0x0 390 391 .line 131 392 .local v20, "f18":F 393 :goto_20 394 move-object/from16 v0, p0 395 396 iget-boolean v0, v0, LMain2;->b19:Z 397 398 move/from16 v42, v0 399 400 if-eqz v42, :cond_373 401 402 const/16 v21, 0x0 403 404 .line 132 405 .local v21, "f19":F 406 :goto_2a 407 move-object/from16 v0, p0 408 409 iget-boolean v0, v0, LMain2;->b20:Z 410 411 move/from16 v42, v0 412 413 if-eqz v42, :cond_377 414 415 const/16 v22, 0x0 416 417 .line 133 418 .local v22, "f20":F 419 :goto_34 420 move-object/from16 v0, p0 421 422 iget-boolean v0, v0, LMain2;->b21:Z 423 424 move/from16 v42, v0 425 426 if-eqz v42, :cond_37b 427 428 const/16 v23, 0x0 429 430 .line 134 431 .local v23, "f21":F 432 :goto_3e 433 move-object/from16 v0, p0 434 435 iget-boolean v0, v0, LMain2;->b15:Z 436 437 move/from16 v42, v0 438 439 if-eqz v42, :cond_37f 440 441 const/16 v17, 0x0 442 443 .line 135 444 .local v17, "f15":F 445 :goto_48 446 move-object/from16 v0, p0 447 448 iget-boolean v0, v0, LMain2;->b00:Z 449 450 move/from16 v42, v0 451 452 if-eqz v42, :cond_383 453 454 const/4 v2, 0x0 455 456 .line 136 457 .local v2, "f00":F 458 :goto_51 459 move-object/from16 v0, p0 460 461 iget-boolean v0, v0, LMain2;->b22:Z 462 463 move/from16 v42, v0 464 465 if-eqz v42, :cond_387 466 467 const/16 v24, 0x0 468 469 .line 137 470 .local v24, "f22":F 471 :goto_5b 472 move-object/from16 v0, p0 473 474 iget-boolean v0, v0, LMain2;->b23:Z 475 476 move/from16 v42, v0 477 478 if-eqz v42, :cond_38b 479 480 const/16 v25, 0x0 481 482 .line 138 483 .local v25, "f23":F 484 :goto_65 485 move-object/from16 v0, p0 486 487 iget-boolean v0, v0, LMain2;->b24:Z 488 489 move/from16 v42, v0 490 491 if-eqz v42, :cond_38f 492 493 const/16 v26, 0x0 494 495 .line 139 496 .local v26, "f24":F 497 :goto_6f 498 move-object/from16 v0, p0 499 500 iget-boolean v0, v0, LMain2;->b25:Z 501 502 move/from16 v42, v0 503 504 if-eqz v42, :cond_393 505 506 const/16 v27, 0x0 507 508 .line 140 509 .local v27, "f25":F 510 :goto_79 511 move-object/from16 v0, p0 512 513 iget-boolean v0, v0, LMain2;->b26:Z 514 515 move/from16 v42, v0 516 517 if-eqz v42, :cond_397 518 519 const/16 v28, 0x0 520 521 .line 141 522 .local v28, "f26":F 523 :goto_83 524 move-object/from16 v0, p0 525 526 iget-boolean v0, v0, LMain2;->b27:Z 527 528 move/from16 v42, v0 529 530 if-eqz v42, :cond_39b 531 532 const/16 v29, 0x0 533 534 .line 142 535 .local v29, "f27":F 536 :goto_8d 537 move-object/from16 v0, p0 538 539 iget-boolean v0, v0, LMain2;->b29:Z 540 541 move/from16 v42, v0 542 543 if-eqz v42, :cond_39f 544 545 const/16 v31, 0x0 546 547 .line 143 548 .local v31, "f29":F 549 :goto_97 550 move-object/from16 v0, p0 551 552 iget-boolean v0, v0, LMain2;->b28:Z 553 554 move/from16 v42, v0 555 556 if-eqz v42, :cond_3a3 557 558 const/16 v30, 0x0 559 560 .line 144 561 .local v30, "f28":F 562 :goto_a1 563 move-object/from16 v0, p0 564 565 iget-boolean v0, v0, LMain2;->b01:Z 566 567 move/from16 v42, v0 568 569 if-eqz v42, :cond_3a7 570 571 const/4 v3, 0x0 572 573 .line 145 574 .local v3, "f01":F 575 :goto_aa 576 move-object/from16 v0, p0 577 578 iget-boolean v0, v0, LMain2;->b02:Z 579 580 move/from16 v42, v0 581 582 if-eqz v42, :cond_3ab 583 584 const/4 v4, 0x0 585 586 .line 146 587 .local v4, "f02":F 588 :goto_b3 589 move-object/from16 v0, p0 590 591 iget-boolean v0, v0, LMain2;->b03:Z 592 593 move/from16 v42, v0 594 595 if-eqz v42, :cond_3af 596 597 const/4 v5, 0x0 598 599 .line 147 600 .local v5, "f03":F 601 :goto_bc 602 move-object/from16 v0, p0 603 604 iget-boolean v0, v0, LMain2;->b04:Z 605 606 move/from16 v42, v0 607 608 if-eqz v42, :cond_3b3 609 610 const/4 v6, 0x0 611 612 .line 148 613 .local v6, "f04":F 614 :goto_c5 615 move-object/from16 v0, p0 616 617 iget-boolean v0, v0, LMain2;->b05:Z 618 619 move/from16 v42, v0 620 621 if-eqz v42, :cond_3b7 622 623 const/4 v7, 0x0 624 625 .line 149 626 .local v7, "f05":F 627 :goto_ce 628 move-object/from16 v0, p0 629 630 iget-boolean v0, v0, LMain2;->b07:Z 631 632 move/from16 v42, v0 633 634 if-eqz v42, :cond_3bb 635 636 const/4 v9, 0x0 637 638 .line 150 639 .local v9, "f07":F 640 :goto_d7 641 move-object/from16 v0, p0 642 643 iget-boolean v0, v0, LMain2;->b06:Z 644 645 move/from16 v42, v0 646 647 if-eqz v42, :cond_3bf 648 649 const/4 v8, 0x0 650 651 .line 151 652 .local v8, "f06":F 653 :goto_e0 654 move-object/from16 v0, p0 655 656 iget-boolean v0, v0, LMain2;->b30:Z 657 658 move/from16 v42, v0 659 660 if-eqz v42, :cond_3c3 661 662 const/16 v32, 0x0 663 664 .line 152 665 .local v32, "f30":F 666 :goto_ea 667 move-object/from16 v0, p0 668 669 iget-boolean v0, v0, LMain2;->b31:Z 670 671 move/from16 v42, v0 672 673 if-eqz v42, :cond_3c7 674 675 const/16 v33, 0x0 676 677 .line 153 678 .local v33, "f31":F 679 :goto_f4 680 move-object/from16 v0, p0 681 682 iget-boolean v0, v0, LMain2;->b32:Z 683 684 move/from16 v42, v0 685 686 if-eqz v42, :cond_3cb 687 688 const/16 v34, 0x0 689 690 .line 154 691 .local v34, "f32":F 692 :goto_fe 693 move-object/from16 v0, p0 694 695 iget-boolean v0, v0, LMain2;->b33:Z 696 697 move/from16 v42, v0 698 699 if-eqz v42, :cond_3cf 700 701 const/16 v35, 0x0 702 703 .line 155 704 .local v35, "f33":F 705 :goto_108 706 move-object/from16 v0, p0 707 708 iget-boolean v0, v0, LMain2;->b34:Z 709 710 move/from16 v42, v0 711 712 if-eqz v42, :cond_3d3 713 714 const/16 v36, 0x0 715 716 .line 156 717 .local v36, "f34":F 718 :goto_112 719 move-object/from16 v0, p0 720 721 iget-boolean v0, v0, LMain2;->b36:Z 722 723 move/from16 v42, v0 724 725 if-eqz v42, :cond_3d7 726 727 const/16 v38, 0x0 728 729 .line 157 730 .local v38, "f36":F 731 :goto_11c 732 move-object/from16 v0, p0 733 734 iget-boolean v0, v0, LMain2;->b35:Z 735 736 move/from16 v42, v0 737 738 if-eqz v42, :cond_3db 739 740 const/16 v37, 0x0 741 742 .line 158 743 .local v37, "f35":F 744 :goto_126 745 move-object/from16 v0, p0 746 747 iget-boolean v0, v0, LMain2;->b08:Z 748 749 move/from16 v42, v0 750 751 if-eqz v42, :cond_3df 752 753 const/4 v10, 0x0 754 755 .line 159 756 .local v10, "f08":F 757 :goto_12f 758 move-object/from16 v0, p0 759 760 iget-boolean v0, v0, LMain2;->b09:Z 761 762 move/from16 v42, v0 763 764 if-eqz v42, :cond_3e3 765 766 const/4 v11, 0x0 767 768 .line 160 769 .local v11, "f09":F 770 :goto_138 771 move-object/from16 v0, p0 772 773 iget-boolean v0, v0, LMain2;->b10:Z 774 775 move/from16 v42, v0 776 777 if-eqz v42, :cond_3e7 778 779 const/4 v12, 0x0 780 781 .line 161 782 .local v12, "f10":F 783 :goto_141 784 move-object/from16 v0, p0 785 786 iget-boolean v0, v0, LMain2;->b11:Z 787 788 move/from16 v42, v0 789 790 if-eqz v42, :cond_3eb 791 792 const/4 v13, 0x0 793 794 .line 162 795 .local v13, "f11":F 796 :goto_14a 797 move-object/from16 v0, p0 798 799 iget-boolean v0, v0, LMain2;->b12:Z 800 801 move/from16 v42, v0 802 803 if-eqz v42, :cond_3ef 804 805 const/4 v14, 0x0 806 807 .line 163 808 .local v14, "f12":F 809 :goto_153 810 move-object/from16 v0, p0 811 812 iget-boolean v0, v0, LMain2;->b14:Z 813 814 move/from16 v42, v0 815 816 if-eqz v42, :cond_3f3 817 818 const/16 v16, 0x0 819 820 .line 164 821 .local v16, "f14":F 822 :goto_15d 823 move-object/from16 v0, p0 824 825 iget-boolean v0, v0, LMain2;->b13:Z 826 827 move/from16 v42, v0 828 829 if-eqz v42, :cond_3f7 830 831 const/4 v15, 0x0 832 833 .line 166 834 .local v15, "f13":F 835 :goto_166 836 move-object/from16 v0, p0 837 838 iget-boolean v0, v0, LMain2;->conditionA:Z 839 840 move/from16 v42, v0 841 842 if-eqz v42, :cond_202 843 844 .line 167 845 const/high16 v42, 0x447a0000 # 1000.0f 846 847 div-float v18, v18, v42 848 849 .line 168 850 const/high16 v42, 0x447a0000 # 1000.0f 851 852 div-float v19, v19, v42 853 854 .line 169 855 const/high16 v42, 0x447a0000 # 1000.0f 856 857 div-float v20, v20, v42 858 859 .line 170 860 const/high16 v42, 0x447a0000 # 1000.0f 861 862 div-float v21, v21, v42 863 864 .line 171 865 const/high16 v42, 0x447a0000 # 1000.0f 866 867 div-float v22, v22, v42 868 869 .line 172 870 const/high16 v42, 0x447a0000 # 1000.0f 871 872 div-float v23, v23, v42 873 874 .line 173 875 const/high16 v42, 0x447a0000 # 1000.0f 876 877 div-float v17, v17, v42 878 879 .line 174 880 const/high16 v42, 0x447a0000 # 1000.0f 881 882 div-float v10, v10, v42 883 884 .line 175 885 const/high16 v42, 0x447a0000 # 1000.0f 886 887 div-float v11, v11, v42 888 889 .line 176 890 const/high16 v42, 0x447a0000 # 1000.0f 891 892 div-float v12, v12, v42 893 894 .line 177 895 const/high16 v42, 0x447a0000 # 1000.0f 896 897 div-float v13, v13, v42 898 899 .line 178 900 const/high16 v42, 0x447a0000 # 1000.0f 901 902 div-float v14, v14, v42 903 904 .line 179 905 const/high16 v42, 0x447a0000 # 1000.0f 906 907 div-float v32, v32, v42 908 909 .line 180 910 const/high16 v42, 0x447a0000 # 1000.0f 911 912 div-float v33, v33, v42 913 914 .line 181 915 const/high16 v42, 0x447a0000 # 1000.0f 916 917 div-float v34, v34, v42 918 919 .line 182 920 const/high16 v42, 0x447a0000 # 1000.0f 921 922 div-float v35, v35, v42 923 924 .line 183 925 const/high16 v42, 0x447a0000 # 1000.0f 926 927 div-float v36, v36, v42 928 929 .line 184 930 const/high16 v42, 0x447a0000 # 1000.0f 931 932 div-float v3, v3, v42 933 934 .line 185 935 const/high16 v42, 0x447a0000 # 1000.0f 936 937 div-float v4, v4, v42 938 939 .line 186 940 const/high16 v42, 0x447a0000 # 1000.0f 941 942 div-float v5, v5, v42 943 944 .line 187 945 const/high16 v42, 0x447a0000 # 1000.0f 946 947 div-float v6, v6, v42 948 949 .line 188 950 const/high16 v42, 0x447a0000 # 1000.0f 951 952 div-float v7, v7, v42 953 954 .line 189 955 const/high16 v42, 0x447a0000 # 1000.0f 956 957 div-float v25, v25, v42 958 959 .line 190 960 const/high16 v42, 0x447a0000 # 1000.0f 961 962 div-float v26, v26, v42 963 964 .line 191 965 const/high16 v42, 0x447a0000 # 1000.0f 966 967 div-float v27, v27, v42 968 969 .line 192 970 const/high16 v42, 0x447a0000 # 1000.0f 971 972 div-float v28, v28, v42 973 974 .line 193 975 const/high16 v42, 0x447a0000 # 1000.0f 976 977 div-float v29, v29, v42 978 979 .line 194 980 const/high16 v42, 0x447a0000 # 1000.0f 981 982 div-float v24, v24, v42 983 984 .line 195 985 const/high16 v42, 0x447a0000 # 1000.0f 986 987 div-float v2, v2, v42 988 989 .line 196 990 const/high16 v42, 0x447a0000 # 1000.0f 991 992 div-float v16, v16, v42 993 994 .line 197 995 const/high16 v42, 0x447a0000 # 1000.0f 996 997 div-float v15, v15, v42 998 999 .line 198 1000 const/high16 v42, 0x447a0000 # 1000.0f 1001 1002 div-float v38, v38, v42 1003 1004 .line 199 1005 const/high16 v42, 0x447a0000 # 1000.0f 1006 1007 div-float v37, v37, v42 1008 1009 .line 200 1010 const/high16 v42, 0x447a0000 # 1000.0f 1011 1012 div-float v9, v9, v42 1013 1014 .line 201 1015 const/high16 v42, 0x447a0000 # 1000.0f 1016 1017 div-float v8, v8, v42 1018 1019 .line 202 1020 const/high16 v42, 0x447a0000 # 1000.0f 1021 1022 div-float v31, v31, v42 1023 1024 .line 203 1025 const/high16 v42, 0x447a0000 # 1000.0f 1026 1027 div-float v30, v30, v42 1028 1029 .line 209 1030 :cond_202 1031 move-object/from16 v0, p0 1032 1033 iget-boolean v0, v0, LMain2;->conditionB:Z 1034 1035 move/from16 v42, v0 1036 1037 if-eqz v42, :cond_29e 1038 1039 .line 210 1040 const/high16 v42, 0x42c80000 # 100.0f 1041 1042 div-float v18, v18, v42 1043 1044 .line 211 1045 const/high16 v42, 0x42c80000 # 100.0f 1046 1047 div-float v19, v19, v42 1048 1049 .line 212 1050 const/high16 v42, 0x42c80000 # 100.0f 1051 1052 div-float v20, v20, v42 1053 1054 .line 213 1055 const/high16 v42, 0x42c80000 # 100.0f 1056 1057 div-float v21, v21, v42 1058 1059 .line 214 1060 const/high16 v42, 0x42c80000 # 100.0f 1061 1062 div-float v22, v22, v42 1063 1064 .line 215 1065 const/high16 v42, 0x42c80000 # 100.0f 1066 1067 div-float v23, v23, v42 1068 1069 .line 216 1070 const/high16 v42, 0x42c80000 # 100.0f 1071 1072 div-float v17, v17, v42 1073 1074 .line 217 1075 const/high16 v42, 0x42c80000 # 100.0f 1076 1077 div-float v10, v10, v42 1078 1079 .line 218 1080 const/high16 v42, 0x42c80000 # 100.0f 1081 1082 div-float v11, v11, v42 1083 1084 .line 219 1085 const/high16 v42, 0x42c80000 # 100.0f 1086 1087 div-float v12, v12, v42 1088 1089 .line 220 1090 const/high16 v42, 0x42c80000 # 100.0f 1091 1092 div-float v13, v13, v42 1093 1094 .line 221 1095 const/high16 v42, 0x42c80000 # 100.0f 1096 1097 div-float v14, v14, v42 1098 1099 .line 222 1100 const/high16 v42, 0x42c80000 # 100.0f 1101 1102 div-float v32, v32, v42 1103 1104 .line 223 1105 const/high16 v42, 0x42c80000 # 100.0f 1106 1107 div-float v33, v33, v42 1108 1109 .line 224 1110 const/high16 v42, 0x42c80000 # 100.0f 1111 1112 div-float v34, v34, v42 1113 1114 .line 225 1115 const/high16 v42, 0x42c80000 # 100.0f 1116 1117 div-float v35, v35, v42 1118 1119 .line 226 1120 const/high16 v42, 0x42c80000 # 100.0f 1121 1122 div-float v36, v36, v42 1123 1124 .line 227 1125 const/high16 v42, 0x42c80000 # 100.0f 1126 1127 div-float v3, v3, v42 1128 1129 .line 228 1130 const/high16 v42, 0x42c80000 # 100.0f 1131 1132 div-float v4, v4, v42 1133 1134 .line 229 1135 const/high16 v42, 0x42c80000 # 100.0f 1136 1137 div-float v5, v5, v42 1138 1139 .line 230 1140 const/high16 v42, 0x42c80000 # 100.0f 1141 1142 div-float v6, v6, v42 1143 1144 .line 231 1145 const/high16 v42, 0x42c80000 # 100.0f 1146 1147 div-float v7, v7, v42 1148 1149 .line 232 1150 const/high16 v42, 0x42c80000 # 100.0f 1151 1152 div-float v25, v25, v42 1153 1154 .line 233 1155 const/high16 v42, 0x42c80000 # 100.0f 1156 1157 div-float v26, v26, v42 1158 1159 .line 234 1160 const/high16 v42, 0x42c80000 # 100.0f 1161 1162 div-float v27, v27, v42 1163 1164 .line 235 1165 const/high16 v42, 0x42c80000 # 100.0f 1166 1167 div-float v28, v28, v42 1168 1169 .line 236 1170 const/high16 v42, 0x42c80000 # 100.0f 1171 1172 div-float v29, v29, v42 1173 1174 .line 237 1175 const/high16 v42, 0x42c80000 # 100.0f 1176 1177 div-float v24, v24, v42 1178 1179 .line 238 1180 const/high16 v42, 0x42c80000 # 100.0f 1181 1182 div-float v2, v2, v42 1183 1184 .line 239 1185 const/high16 v42, 0x42c80000 # 100.0f 1186 1187 div-float v16, v16, v42 1188 1189 .line 240 1190 const/high16 v42, 0x42c80000 # 100.0f 1191 1192 div-float v15, v15, v42 1193 1194 .line 241 1195 const/high16 v42, 0x42c80000 # 100.0f 1196 1197 div-float v38, v38, v42 1198 1199 .line 242 1200 const/high16 v42, 0x42c80000 # 100.0f 1201 1202 div-float v37, v37, v42 1203 1204 .line 243 1205 const/high16 v42, 0x42c80000 # 100.0f 1206 1207 div-float v9, v9, v42 1208 1209 .line 244 1210 const/high16 v42, 0x42c80000 # 100.0f 1211 1212 div-float v8, v8, v42 1213 1214 .line 245 1215 const/high16 v42, 0x42c80000 # 100.0f 1216 1217 div-float v31, v31, v42 1218 1219 .line 246 1220 const/high16 v42, 0x42c80000 # 100.0f 1221 1222 div-float v30, v30, v42 1223 1224 .line 248 1225 :cond_29e 1226 move-object/from16 v0, p0 1227 1228 iget-boolean v0, v0, LMain2;->conditionC:Z 1229 1230 move/from16 v42, v0 1231 1232 if-eqz v42, :cond_33a 1233 1234 .line 249 1235 const/high16 v42, 0x41400000 # 12.0f 1236 1237 div-float v18, v18, v42 1238 1239 .line 250 1240 const/high16 v42, 0x41400000 # 12.0f 1241 1242 div-float v19, v19, v42 1243 1244 .line 251 1245 const/high16 v42, 0x41400000 # 12.0f 1246 1247 div-float v20, v20, v42 1248 1249 .line 252 1250 const/high16 v42, 0x41400000 # 12.0f 1251 1252 div-float v21, v21, v42 1253 1254 .line 253 1255 const/high16 v42, 0x41400000 # 12.0f 1256 1257 div-float v22, v22, v42 1258 1259 .line 254 1260 const/high16 v42, 0x41400000 # 12.0f 1261 1262 div-float v23, v23, v42 1263 1264 .line 255 1265 const/high16 v42, 0x41400000 # 12.0f 1266 1267 div-float v17, v17, v42 1268 1269 .line 256 1270 const/high16 v42, 0x41400000 # 12.0f 1271 1272 div-float v10, v10, v42 1273 1274 .line 257 1275 const/high16 v42, 0x41400000 # 12.0f 1276 1277 div-float v11, v11, v42 1278 1279 .line 258 1280 const/high16 v42, 0x41400000 # 12.0f 1281 1282 div-float v12, v12, v42 1283 1284 .line 259 1285 const/high16 v42, 0x41400000 # 12.0f 1286 1287 div-float v13, v13, v42 1288 1289 .line 260 1290 const/high16 v42, 0x41400000 # 12.0f 1291 1292 div-float v14, v14, v42 1293 1294 .line 261 1295 const/high16 v42, 0x41400000 # 12.0f 1296 1297 div-float v32, v32, v42 1298 1299 .line 262 1300 const/high16 v42, 0x41400000 # 12.0f 1301 1302 div-float v33, v33, v42 1303 1304 .line 263 1305 const/high16 v42, 0x41400000 # 12.0f 1306 1307 div-float v34, v34, v42 1308 1309 .line 264 1310 const/high16 v42, 0x41400000 # 12.0f 1311 1312 div-float v35, v35, v42 1313 1314 .line 265 1315 const/high16 v42, 0x41400000 # 12.0f 1316 1317 div-float v36, v36, v42 1318 1319 .line 266 1320 const/high16 v42, 0x41400000 # 12.0f 1321 1322 div-float v3, v3, v42 1323 1324 .line 267 1325 const/high16 v42, 0x41400000 # 12.0f 1326 1327 div-float v4, v4, v42 1328 1329 .line 268 1330 const/high16 v42, 0x41400000 # 12.0f 1331 1332 div-float v5, v5, v42 1333 1334 .line 269 1335 const/high16 v42, 0x41400000 # 12.0f 1336 1337 div-float v6, v6, v42 1338 1339 .line 270 1340 const/high16 v42, 0x41400000 # 12.0f 1341 1342 div-float v7, v7, v42 1343 1344 .line 271 1345 const/high16 v42, 0x41400000 # 12.0f 1346 1347 div-float v25, v25, v42 1348 1349 .line 272 1350 const/high16 v42, 0x41400000 # 12.0f 1351 1352 div-float v26, v26, v42 1353 1354 .line 273 1355 const/high16 v42, 0x41400000 # 12.0f 1356 1357 div-float v27, v27, v42 1358 1359 .line 274 1360 const/high16 v42, 0x41400000 # 12.0f 1361 1362 div-float v28, v28, v42 1363 1364 .line 275 1365 const/high16 v42, 0x41400000 # 12.0f 1366 1367 div-float v29, v29, v42 1368 1369 .line 276 1370 const/high16 v42, 0x41400000 # 12.0f 1371 1372 div-float v24, v24, v42 1373 1374 .line 277 1375 const/high16 v42, 0x41400000 # 12.0f 1376 1377 div-float v2, v2, v42 1378 1379 .line 278 1380 const/high16 v42, 0x41400000 # 12.0f 1381 1382 div-float v16, v16, v42 1383 1384 .line 279 1385 const/high16 v42, 0x41400000 # 12.0f 1386 1387 div-float v15, v15, v42 1388 1389 .line 280 1390 const/high16 v42, 0x41400000 # 12.0f 1391 1392 div-float v38, v38, v42 1393 1394 .line 281 1395 const/high16 v42, 0x41400000 # 12.0f 1396 1397 div-float v37, v37, v42 1398 1399 .line 282 1400 const/high16 v42, 0x41400000 # 12.0f 1401 1402 div-float v9, v9, v42 1403 1404 .line 283 1405 const/high16 v42, 0x41400000 # 12.0f 1406 1407 div-float v8, v8, v42 1408 1409 .line 284 1410 const/high16 v42, 0x41400000 # 12.0f 1411 1412 div-float v31, v31, v42 1413 1414 .line 285 1415 const/high16 v42, 0x41400000 # 12.0f 1416 1417 div-float v30, v30, v42 1418 1419 .line 287 1420 :cond_33a 1421 const/16 v41, 0x0 1422 1423 .line 288 1424 .local v41, "s":F 1425 const/high16 v42, 0x42c80000 # 100.0f 1426 1427 mul-float v42, v42, v41 1428 1429 invoke-static/range {v42 .. v42}, Ljava/lang/Math;->round(F)I 1430 1431 move-result v42 1432 1433 move/from16 v0, v42 1434 1435 int-to-float v0, v0 1436 1437 move/from16 v42, v0 1438 1439 const/high16 v43, 0x42c80000 # 100.0f 1440 1441 div-float v41, v42, v43 1442 1443 .line 289 1444 new-instance v42, Ljava/lang/StringBuilder; 1445 1446 invoke-direct/range {v42 .. v42}, Ljava/lang/StringBuilder;-><init>()V 1447 1448 move-object/from16 v0, v42 1449 1450 move/from16 v1, v41 1451 1452 invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(F)Ljava/lang/StringBuilder; 1453 1454 move-result-object v42 1455 1456 move-object/from16 v0, v42 1457 1458 move-object/from16 v1, v39 1459 1460 invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; 1461 1462 move-result-object v42 1463 1464 invoke-virtual/range {v42 .. v42}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; 1465 1466 move-result-object v40 1467 1468 .line 290 1469 .local v40, "res":Ljava/lang/String; 1470 return-void 1471 1472 .line 128 1473 .end local v2 # "f00":F 1474 .end local v3 # "f01":F 1475 .end local v4 # "f02":F 1476 .end local v5 # "f03":F 1477 .end local v6 # "f04":F 1478 .end local v7 # "f05":F 1479 .end local v8 # "f06":F 1480 .end local v9 # "f07":F 1481 .end local v10 # "f08":F 1482 .end local v11 # "f09":F 1483 .end local v12 # "f10":F 1484 .end local v13 # "f11":F 1485 .end local v14 # "f12":F 1486 .end local v15 # "f13":F 1487 .end local v16 # "f14":F 1488 .end local v17 # "f15":F 1489 .end local v18 # "f16":F 1490 .end local v19 # "f17":F 1491 .end local v20 # "f18":F 1492 .end local v21 # "f19":F 1493 .end local v22 # "f20":F 1494 .end local v23 # "f21":F 1495 .end local v24 # "f22":F 1496 .end local v25 # "f23":F 1497 .end local v26 # "f24":F 1498 .end local v27 # "f25":F 1499 .end local v28 # "f26":F 1500 .end local v29 # "f27":F 1501 .end local v30 # "f28":F 1502 .end local v31 # "f29":F 1503 .end local v32 # "f30":F 1504 .end local v33 # "f31":F 1505 .end local v34 # "f32":F 1506 .end local v35 # "f33":F 1507 .end local v36 # "f34":F 1508 .end local v37 # "f35":F 1509 .end local v38 # "f36":F 1510 .end local v40 # "res":Ljava/lang/String; 1511 .end local v41 # "s":F 1512 :cond_367 1513 const/high16 v19, 0x3f800000 # 1.0f 1514 1515 goto/16 :goto_c 1516 1517 .line 129 1518 .restart local v19 # "f17":F 1519 :cond_36b 1520 const/high16 v18, 0x3f800000 # 1.0f 1521 1522 goto/16 :goto_16 1523 1524 .line 130 1525 .restart local v18 # "f16":F 1526 :cond_36f 1527 const/high16 v20, 0x3f800000 # 1.0f 1528 1529 goto/16 :goto_20 1530 1531 .line 131 1532 .restart local v20 # "f18":F 1533 :cond_373 1534 const/high16 v21, 0x3f800000 # 1.0f 1535 1536 goto/16 :goto_2a 1537 1538 .line 132 1539 .restart local v21 # "f19":F 1540 :cond_377 1541 const/high16 v22, 0x3f800000 # 1.0f 1542 1543 goto/16 :goto_34 1544 1545 .line 133 1546 .restart local v22 # "f20":F 1547 :cond_37b 1548 const/high16 v23, 0x3f800000 # 1.0f 1549 1550 goto/16 :goto_3e 1551 1552 .line 134 1553 .restart local v23 # "f21":F 1554 :cond_37f 1555 const/high16 v17, 0x3f800000 # 1.0f 1556 1557 goto/16 :goto_48 1558 1559 .line 135 1560 .restart local v17 # "f15":F 1561 :cond_383 1562 const/high16 v2, 0x3f800000 # 1.0f 1563 1564 goto/16 :goto_51 1565 1566 .line 136 1567 .restart local v2 # "f00":F 1568 :cond_387 1569 const/high16 v24, 0x3f800000 # 1.0f 1570 1571 goto/16 :goto_5b 1572 1573 .line 137 1574 .restart local v24 # "f22":F 1575 :cond_38b 1576 const/high16 v25, 0x3f800000 # 1.0f 1577 1578 goto/16 :goto_65 1579 1580 .line 138 1581 .restart local v25 # "f23":F 1582 :cond_38f 1583 const/high16 v26, 0x3f800000 # 1.0f 1584 1585 goto/16 :goto_6f 1586 1587 .line 139 1588 .restart local v26 # "f24":F 1589 :cond_393 1590 const/high16 v27, 0x3f800000 # 1.0f 1591 1592 goto/16 :goto_79 1593 1594 .line 140 1595 .restart local v27 # "f25":F 1596 :cond_397 1597 const/high16 v28, 0x3f800000 # 1.0f 1598 1599 goto/16 :goto_83 1600 1601 .line 141 1602 .restart local v28 # "f26":F 1603 :cond_39b 1604 const/high16 v29, 0x3f800000 # 1.0f 1605 1606 goto/16 :goto_8d 1607 1608 .line 142 1609 .restart local v29 # "f27":F 1610 :cond_39f 1611 const/high16 v31, 0x3f800000 # 1.0f 1612 1613 goto/16 :goto_97 1614 1615 .line 143 1616 .restart local v31 # "f29":F 1617 :cond_3a3 1618 const/high16 v30, 0x3f800000 # 1.0f 1619 1620 goto/16 :goto_a1 1621 1622 .line 144 1623 .restart local v30 # "f28":F 1624 :cond_3a7 1625 const/high16 v3, 0x3f800000 # 1.0f 1626 1627 goto/16 :goto_aa 1628 1629 .line 145 1630 .restart local v3 # "f01":F 1631 :cond_3ab 1632 const/high16 v4, 0x3f800000 # 1.0f 1633 1634 goto/16 :goto_b3 1635 1636 .line 146 1637 .restart local v4 # "f02":F 1638 :cond_3af 1639 const/high16 v5, 0x3f800000 # 1.0f 1640 1641 goto/16 :goto_bc 1642 1643 .line 147 1644 .restart local v5 # "f03":F 1645 :cond_3b3 1646 const/high16 v6, 0x3f800000 # 1.0f 1647 1648 goto/16 :goto_c5 1649 1650 .line 148 1651 .restart local v6 # "f04":F 1652 :cond_3b7 1653 const/high16 v7, 0x3f800000 # 1.0f 1654 1655 goto/16 :goto_ce 1656 1657 .line 149 1658 .restart local v7 # "f05":F 1659 :cond_3bb 1660 const/high16 v9, 0x3f800000 # 1.0f 1661 1662 goto/16 :goto_d7 1663 1664 .line 150 1665 .restart local v9 # "f07":F 1666 :cond_3bf 1667 const/high16 v8, 0x3f800000 # 1.0f 1668 1669 goto/16 :goto_e0 1670 1671 .line 151 1672 .restart local v8 # "f06":F 1673 :cond_3c3 1674 const/high16 v32, 0x3f800000 # 1.0f 1675 1676 goto/16 :goto_ea 1677 1678 .line 152 1679 .restart local v32 # "f30":F 1680 :cond_3c7 1681 const/high16 v33, 0x3f800000 # 1.0f 1682 1683 goto/16 :goto_f4 1684 1685 .line 153 1686 .restart local v33 # "f31":F 1687 :cond_3cb 1688 const/high16 v34, 0x3f800000 # 1.0f 1689 1690 goto/16 :goto_fe 1691 1692 .line 154 1693 .restart local v34 # "f32":F 1694 :cond_3cf 1695 const/high16 v35, 0x3f800000 # 1.0f 1696 1697 goto/16 :goto_108 1698 1699 .line 155 1700 .restart local v35 # "f33":F 1701 :cond_3d3 1702 const/high16 v36, 0x3f800000 # 1.0f 1703 1704 goto/16 :goto_112 1705 1706 .line 156 1707 .restart local v36 # "f34":F 1708 :cond_3d7 1709 const/high16 v38, 0x3f800000 # 1.0f 1710 1711 goto/16 :goto_11c 1712 1713 .line 157 1714 .restart local v38 # "f36":F 1715 :cond_3db 1716 const/high16 v37, 0x3f800000 # 1.0f 1717 1718 goto/16 :goto_126 1719 1720 .line 158 1721 .restart local v37 # "f35":F 1722 :cond_3df 1723 const/high16 v10, 0x3f800000 # 1.0f 1724 1725 goto/16 :goto_12f 1726 1727 .line 159 1728 .restart local v10 # "f08":F 1729 :cond_3e3 1730 const/high16 v11, 0x3f800000 # 1.0f 1731 1732 goto/16 :goto_138 1733 1734 .line 160 1735 .restart local v11 # "f09":F 1736 :cond_3e7 1737 const/high16 v12, 0x3f800000 # 1.0f 1738 1739 goto/16 :goto_141 1740 1741 .line 161 1742 .restart local v12 # "f10":F 1743 :cond_3eb 1744 const/high16 v13, 0x3f800000 # 1.0f 1745 1746 goto/16 :goto_14a 1747 1748 .line 162 1749 .restart local v13 # "f11":F 1750 :cond_3ef 1751 const/high16 v14, 0x3f800000 # 1.0f 1752 1753 goto/16 :goto_153 1754 1755 .line 163 1756 .restart local v14 # "f12":F 1757 :cond_3f3 1758 const/high16 v16, 0x3f800000 # 1.0f 1759 1760 goto/16 :goto_15d 1761 1762 .line 164 1763 .restart local v16 # "f14":F 1764 :cond_3f7 1765 const/high16 v15, 0x3f800000 # 1.0f 1766 1767 goto/16 :goto_166 1768.end method 1769