blob: e6943cf7177b25e04832c5424d0a3d7fc3312eba [file] [log] [blame]
# Copyright (C) 2017 The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
.class public LSmali;
.super Ljava/lang/Object;
.field b00:Z
.field b01:Z
.field b02:Z
.field b03:Z
.field b04:Z
.field b05:Z
.field b06:Z
.field b07:Z
.field b08:Z
.field b09:Z
.field b10:Z
.field b11:Z
.field b12:Z
.field b13:Z
.field b14:Z
.field b15:Z
.field b16:Z
.field b17:Z
.field b18:Z
.field b19:Z
.field b20:Z
.field b21:Z
.field b22:Z
.field b23:Z
.field b24:Z
.field b25:Z
.field b26:Z
.field b27:Z
.field b28:Z
.field b29:Z
.field b30:Z
.field b31:Z
.field b32:Z
.field b33:Z
.field b34:Z
.field b35:Z
.field b36:Z
.field conditionA:Z
.field conditionB:Z
.field conditionC:Z
.method public constructor <init>()V
.registers 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
## CHECK-START-ARM64: void Smali.test() register (after)
## CHECK: begin_block
## CHECK: name "B0"
## CHECK: <<This:l\d+>> ParameterValue
## CHECK: end_block
## CHECK: begin_block
## CHECK: successors "<<ThenBlock:B\d+>>" "<<ElseBlock:B\d+>>"
## CHECK: <<CondB:z\d+>> InstanceFieldGet [<<This>>] field_name:Smali.conditionB
## CHECK: If [<<CondB>>]
## CHECK: end_block
## CHECK: begin_block
## CHECK: name "<<ElseBlock>>"
## 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)]
## CHECK: end_block
## CHECK-START-ARM64: void Smali.test() disassembly (after)
## CHECK: begin_block
## CHECK: name "B0"
## CHECK: <<This:l\d+>> ParameterValue
## CHECK: end_block
## CHECK: begin_block
## CHECK: successors "<<ThenBlock:B\d+>>" "<<ElseBlock:B\d+>>"
## CHECK: <<CondB:z\d+>> InstanceFieldGet [<<This>>] field_name:Smali.conditionB
## CHECK: If [<<CondB>>]
## CHECK: end_block
## CHECK: begin_block
## CHECK: name "<<ElseBlock>>"
## 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]
## CHECK: fmov d31, d2
## CHECK: ldr s2, [sp, #36]
## CHECK: ldr w16, [sp, #16]
## CHECK: str w16, [sp, #36]
## CHECK: str s14, [sp, #16]
## CHECK: ldr s14, [sp, #28]
## CHECK: str s1, [sp, #28]
## CHECK: ldr s1, [sp, #32]
## CHECK: str s31, [sp, #32]
## CHECK: ldr s31, [sp, #20]
## CHECK: str s31, [sp, #40]
## CHECK: str s12, [sp, #20]
## CHECK: fmov d12, d11
## CHECK: fmov d11, d10
## CHECK: fmov d10, d23
## CHECK: fmov d23, d22
## CHECK: fmov d22, d21
## CHECK: fmov d21, d20
## CHECK: fmov d20, d19
## CHECK: fmov d19, d18
## CHECK: fmov d18, d7
## CHECK: fmov d7, d6
## CHECK: fmov d6, d5
## CHECK: fmov d5, d4
## CHECK: fmov d4, d3
## CHECK: fmov d3, d13
## CHECK: ldr s13, [sp, #24]
## CHECK: str s3, [sp, #24]
## CHECK: ldr s3, pc+{{\d+}} (addr {{0x[0-9a-f]+}}) (100)
## CHECK: end_block
.method public test()V
.registers 45
const-string v39, ""
move-object/from16 v0, p0
iget-boolean v0, v0, LSmali;->b17:Z
move/from16 v42, v0
if-eqz v42, :cond_367
const/16 v19, 0x0
:goto_c
move-object/from16 v0, p0
iget-boolean v0, v0, LSmali;->b16:Z
move/from16 v42, v0
if-eqz v42, :cond_36b
const/16 v18, 0x0
:goto_16
move-object/from16 v0, p0
iget-boolean v0, v0, LSmali;->b18:Z
move/from16 v42, v0
if-eqz v42, :cond_36f
const/16 v20, 0x0
:goto_20
move-object/from16 v0, p0
iget-boolean v0, v0, LSmali;->b19:Z
move/from16 v42, v0
if-eqz v42, :cond_373
const/16 v21, 0x0
:goto_2a
move-object/from16 v0, p0
iget-boolean v0, v0, LSmali;->b20:Z
move/from16 v42, v0
if-eqz v42, :cond_377
const/16 v22, 0x0
:goto_34
move-object/from16 v0, p0
iget-boolean v0, v0, LSmali;->b21:Z
move/from16 v42, v0
if-eqz v42, :cond_37b
const/16 v23, 0x0
:goto_3e
move-object/from16 v0, p0
iget-boolean v0, v0, LSmali;->b15:Z
move/from16 v42, v0
if-eqz v42, :cond_37f
const/16 v17, 0x0
:goto_48
move-object/from16 v0, p0
iget-boolean v0, v0, LSmali;->b00:Z
move/from16 v42, v0
if-eqz v42, :cond_383
const/4 v2, 0x0
:goto_51
move-object/from16 v0, p0
iget-boolean v0, v0, LSmali;->b22:Z
move/from16 v42, v0
if-eqz v42, :cond_387
const/16 v24, 0x0
:goto_5b
move-object/from16 v0, p0
iget-boolean v0, v0, LSmali;->b23:Z
move/from16 v42, v0
if-eqz v42, :cond_38b
const/16 v25, 0x0
:goto_65
move-object/from16 v0, p0
iget-boolean v0, v0, LSmali;->b24:Z
move/from16 v42, v0
if-eqz v42, :cond_38f
const/16 v26, 0x0
:goto_6f
move-object/from16 v0, p0
iget-boolean v0, v0, LSmali;->b25:Z
move/from16 v42, v0
if-eqz v42, :cond_393
const/16 v27, 0x0
:goto_79
move-object/from16 v0, p0
iget-boolean v0, v0, LSmali;->b26:Z
move/from16 v42, v0
if-eqz v42, :cond_397
const/16 v28, 0x0
:goto_83
move-object/from16 v0, p0
iget-boolean v0, v0, LSmali;->b27:Z
move/from16 v42, v0
if-eqz v42, :cond_39b
const/16 v29, 0x0
:goto_8d
move-object/from16 v0, p0
iget-boolean v0, v0, LSmali;->b29:Z
move/from16 v42, v0
if-eqz v42, :cond_39f
const/16 v31, 0x0
:goto_97
move-object/from16 v0, p0
iget-boolean v0, v0, LSmali;->b28:Z
move/from16 v42, v0
if-eqz v42, :cond_3a3
const/16 v30, 0x0
:goto_a1
move-object/from16 v0, p0
iget-boolean v0, v0, LSmali;->b01:Z
move/from16 v42, v0
if-eqz v42, :cond_3a7
const/4 v3, 0x0
:goto_aa
move-object/from16 v0, p0
iget-boolean v0, v0, LSmali;->b02:Z
move/from16 v42, v0
if-eqz v42, :cond_3ab
const/4 v4, 0x0
:goto_b3
move-object/from16 v0, p0
iget-boolean v0, v0, LSmali;->b03:Z
move/from16 v42, v0
if-eqz v42, :cond_3af
const/4 v5, 0x0
:goto_bc
move-object/from16 v0, p0
iget-boolean v0, v0, LSmali;->b04:Z
move/from16 v42, v0
if-eqz v42, :cond_3b3
const/4 v6, 0x0
:goto_c5
move-object/from16 v0, p0
iget-boolean v0, v0, LSmali;->b05:Z
move/from16 v42, v0
if-eqz v42, :cond_3b7
const/4 v7, 0x0
:goto_ce
move-object/from16 v0, p0
iget-boolean v0, v0, LSmali;->b07:Z
move/from16 v42, v0
if-eqz v42, :cond_3bb
const/4 v9, 0x0
:goto_d7
move-object/from16 v0, p0
iget-boolean v0, v0, LSmali;->b06:Z
move/from16 v42, v0
if-eqz v42, :cond_3bf
const/4 v8, 0x0
:goto_e0
move-object/from16 v0, p0
iget-boolean v0, v0, LSmali;->b30:Z
move/from16 v42, v0
if-eqz v42, :cond_3c3
const/16 v32, 0x0
:goto_ea
move-object/from16 v0, p0
iget-boolean v0, v0, LSmali;->b31:Z
move/from16 v42, v0
if-eqz v42, :cond_3c7
const/16 v33, 0x0
:goto_f4
move-object/from16 v0, p0
iget-boolean v0, v0, LSmali;->b32:Z
move/from16 v42, v0
if-eqz v42, :cond_3cb
const/16 v34, 0x0
:goto_fe
move-object/from16 v0, p0
iget-boolean v0, v0, LSmali;->b33:Z
move/from16 v42, v0
if-eqz v42, :cond_3cf
const/16 v35, 0x0
:goto_108
move-object/from16 v0, p0
iget-boolean v0, v0, LSmali;->b34:Z
move/from16 v42, v0
if-eqz v42, :cond_3d3
const/16 v36, 0x0
:goto_112
move-object/from16 v0, p0
iget-boolean v0, v0, LSmali;->b36:Z
move/from16 v42, v0
if-eqz v42, :cond_3d7
const/16 v38, 0x0
:goto_11c
move-object/from16 v0, p0
iget-boolean v0, v0, LSmali;->b35:Z
move/from16 v42, v0
if-eqz v42, :cond_3db
const/16 v37, 0x0
:goto_126
move-object/from16 v0, p0
iget-boolean v0, v0, LSmali;->b08:Z
move/from16 v42, v0
if-eqz v42, :cond_3df
const/4 v10, 0x0
:goto_12f
move-object/from16 v0, p0
iget-boolean v0, v0, LSmali;->b09:Z
move/from16 v42, v0
if-eqz v42, :cond_3e3
const/4 v11, 0x0
:goto_138
move-object/from16 v0, p0
iget-boolean v0, v0, LSmali;->b10:Z
move/from16 v42, v0
if-eqz v42, :cond_3e7
const/4 v12, 0x0
:goto_141
move-object/from16 v0, p0
iget-boolean v0, v0, LSmali;->b11:Z
move/from16 v42, v0
if-eqz v42, :cond_3eb
const/4 v13, 0x0
:goto_14a
move-object/from16 v0, p0
iget-boolean v0, v0, LSmali;->b12:Z
move/from16 v42, v0
if-eqz v42, :cond_3ef
const/4 v14, 0x0
:goto_153
move-object/from16 v0, p0
iget-boolean v0, v0, LSmali;->b14:Z
move/from16 v42, v0
if-eqz v42, :cond_3f3
const/16 v16, 0x0
:goto_15d
move-object/from16 v0, p0
iget-boolean v0, v0, LSmali;->b13:Z
move/from16 v42, v0
if-eqz v42, :cond_3f7
const/4 v15, 0x0
:goto_166
move-object/from16 v0, p0
iget-boolean v0, v0, LSmali;->conditionA:Z
move/from16 v42, v0
if-eqz v42, :cond_202
const/high16 v42, 0x447a0000 # 1000.0f
div-float v18, v18, v42
const/high16 v42, 0x447a0000 # 1000.0f
div-float v19, v19, v42
const/high16 v42, 0x447a0000 # 1000.0f
div-float v20, v20, v42
const/high16 v42, 0x447a0000 # 1000.0f
div-float v21, v21, v42
const/high16 v42, 0x447a0000 # 1000.0f
div-float v22, v22, v42
const/high16 v42, 0x447a0000 # 1000.0f
div-float v23, v23, v42
const/high16 v42, 0x447a0000 # 1000.0f
div-float v17, v17, v42
const/high16 v42, 0x447a0000 # 1000.0f
div-float v10, v10, v42
const/high16 v42, 0x447a0000 # 1000.0f
div-float v11, v11, v42
const/high16 v42, 0x447a0000 # 1000.0f
div-float v12, v12, v42
const/high16 v42, 0x447a0000 # 1000.0f
div-float v13, v13, v42
const/high16 v42, 0x447a0000 # 1000.0f
div-float v14, v14, v42
const/high16 v42, 0x447a0000 # 1000.0f
div-float v32, v32, v42
const/high16 v42, 0x447a0000 # 1000.0f
div-float v33, v33, v42
const/high16 v42, 0x447a0000 # 1000.0f
div-float v34, v34, v42
const/high16 v42, 0x447a0000 # 1000.0f
div-float v35, v35, v42
const/high16 v42, 0x447a0000 # 1000.0f
div-float v36, v36, v42
const/high16 v42, 0x447a0000 # 1000.0f
div-float v3, v3, v42
const/high16 v42, 0x447a0000 # 1000.0f
div-float v4, v4, v42
const/high16 v42, 0x447a0000 # 1000.0f
div-float v5, v5, v42
const/high16 v42, 0x447a0000 # 1000.0f
div-float v6, v6, v42
const/high16 v42, 0x447a0000 # 1000.0f
div-float v7, v7, v42
const/high16 v42, 0x447a0000 # 1000.0f
div-float v25, v25, v42
const/high16 v42, 0x447a0000 # 1000.0f
div-float v26, v26, v42
const/high16 v42, 0x447a0000 # 1000.0f
div-float v27, v27, v42
const/high16 v42, 0x447a0000 # 1000.0f
div-float v28, v28, v42
const/high16 v42, 0x447a0000 # 1000.0f
div-float v29, v29, v42
const/high16 v42, 0x447a0000 # 1000.0f
div-float v24, v24, v42
const/high16 v42, 0x447a0000 # 1000.0f
div-float v2, v2, v42
const/high16 v42, 0x447a0000 # 1000.0f
div-float v16, v16, v42
const/high16 v42, 0x447a0000 # 1000.0f
div-float v15, v15, v42
const/high16 v42, 0x447a0000 # 1000.0f
div-float v38, v38, v42
const/high16 v42, 0x447a0000 # 1000.0f
div-float v37, v37, v42
const/high16 v42, 0x447a0000 # 1000.0f
div-float v9, v9, v42
const/high16 v42, 0x447a0000 # 1000.0f
div-float v8, v8, v42
const/high16 v42, 0x447a0000 # 1000.0f
div-float v31, v31, v42
const/high16 v42, 0x447a0000 # 1000.0f
div-float v30, v30, v42
:cond_202
move-object/from16 v0, p0
iget-boolean v0, v0, LSmali;->conditionB:Z
move/from16 v42, v0
if-eqz v42, :cond_29e
const/high16 v42, 0x42c80000 # 100.0f
div-float v18, v18, v42
const/high16 v42, 0x42c80000 # 100.0f
div-float v19, v19, v42
const/high16 v42, 0x42c80000 # 100.0f
div-float v20, v20, v42
const/high16 v42, 0x42c80000 # 100.0f
div-float v21, v21, v42
const/high16 v42, 0x42c80000 # 100.0f
div-float v22, v22, v42
const/high16 v42, 0x42c80000 # 100.0f
div-float v23, v23, v42
const/high16 v42, 0x42c80000 # 100.0f
div-float v17, v17, v42
const/high16 v42, 0x42c80000 # 100.0f
div-float v10, v10, v42
const/high16 v42, 0x42c80000 # 100.0f
div-float v11, v11, v42
const/high16 v42, 0x42c80000 # 100.0f
div-float v12, v12, v42
const/high16 v42, 0x42c80000 # 100.0f
div-float v13, v13, v42
const/high16 v42, 0x42c80000 # 100.0f
div-float v14, v14, v42
const/high16 v42, 0x42c80000 # 100.0f
div-float v32, v32, v42
const/high16 v42, 0x42c80000 # 100.0f
div-float v33, v33, v42
const/high16 v42, 0x42c80000 # 100.0f
div-float v34, v34, v42
const/high16 v42, 0x42c80000 # 100.0f
div-float v35, v35, v42
const/high16 v42, 0x42c80000 # 100.0f
div-float v36, v36, v42
const/high16 v42, 0x42c80000 # 100.0f
div-float v3, v3, v42
const/high16 v42, 0x42c80000 # 100.0f
div-float v4, v4, v42
const/high16 v42, 0x42c80000 # 100.0f
div-float v5, v5, v42
const/high16 v42, 0x42c80000 # 100.0f
div-float v6, v6, v42
const/high16 v42, 0x42c80000 # 100.0f
div-float v7, v7, v42
const/high16 v42, 0x42c80000 # 100.0f
div-float v25, v25, v42
const/high16 v42, 0x42c80000 # 100.0f
div-float v26, v26, v42
const/high16 v42, 0x42c80000 # 100.0f
div-float v27, v27, v42
const/high16 v42, 0x42c80000 # 100.0f
div-float v28, v28, v42
const/high16 v42, 0x42c80000 # 100.0f
div-float v29, v29, v42
const/high16 v42, 0x42c80000 # 100.0f
div-float v24, v24, v42
const/high16 v42, 0x42c80000 # 100.0f
div-float v2, v2, v42
const/high16 v42, 0x42c80000 # 100.0f
div-float v16, v16, v42
const/high16 v42, 0x42c80000 # 100.0f
div-float v15, v15, v42
const/high16 v42, 0x42c80000 # 100.0f
div-float v38, v38, v42
const/high16 v42, 0x42c80000 # 100.0f
div-float v37, v37, v42
const/high16 v42, 0x42c80000 # 100.0f
div-float v9, v9, v42
const/high16 v42, 0x42c80000 # 100.0f
div-float v8, v8, v42
const/high16 v42, 0x42c80000 # 100.0f
div-float v31, v31, v42
const/high16 v42, 0x42c80000 # 100.0f
div-float v30, v30, v42
:cond_29e
move-object/from16 v0, p0
iget-boolean v0, v0, LSmali;->conditionC:Z
move/from16 v42, v0
if-eqz v42, :cond_33a
const/high16 v42, 0x41400000 # 12.0f
div-float v18, v18, v42
const/high16 v42, 0x41400000 # 12.0f
div-float v19, v19, v42
const/high16 v42, 0x41400000 # 12.0f
div-float v20, v20, v42
const/high16 v42, 0x41400000 # 12.0f
div-float v21, v21, v42
const/high16 v42, 0x41400000 # 12.0f
div-float v22, v22, v42
const/high16 v42, 0x41400000 # 12.0f
div-float v23, v23, v42
const/high16 v42, 0x41400000 # 12.0f
div-float v17, v17, v42
const/high16 v42, 0x41400000 # 12.0f
div-float v10, v10, v42
const/high16 v42, 0x41400000 # 12.0f
div-float v11, v11, v42
const/high16 v42, 0x41400000 # 12.0f
div-float v12, v12, v42
const/high16 v42, 0x41400000 # 12.0f
div-float v13, v13, v42
const/high16 v42, 0x41400000 # 12.0f
div-float v14, v14, v42
const/high16 v42, 0x41400000 # 12.0f
div-float v32, v32, v42
const/high16 v42, 0x41400000 # 12.0f
div-float v33, v33, v42
const/high16 v42, 0x41400000 # 12.0f
div-float v34, v34, v42
const/high16 v42, 0x41400000 # 12.0f
div-float v35, v35, v42
const/high16 v42, 0x41400000 # 12.0f
div-float v36, v36, v42
const/high16 v42, 0x41400000 # 12.0f
div-float v3, v3, v42
const/high16 v42, 0x41400000 # 12.0f
div-float v4, v4, v42
const/high16 v42, 0x41400000 # 12.0f
div-float v5, v5, v42
const/high16 v42, 0x41400000 # 12.0f
div-float v6, v6, v42
const/high16 v42, 0x41400000 # 12.0f
div-float v7, v7, v42
const/high16 v42, 0x41400000 # 12.0f
div-float v25, v25, v42
const/high16 v42, 0x41400000 # 12.0f
div-float v26, v26, v42
const/high16 v42, 0x41400000 # 12.0f
div-float v27, v27, v42
const/high16 v42, 0x41400000 # 12.0f
div-float v28, v28, v42
const/high16 v42, 0x41400000 # 12.0f
div-float v29, v29, v42
const/high16 v42, 0x41400000 # 12.0f
div-float v24, v24, v42
const/high16 v42, 0x41400000 # 12.0f
div-float v2, v2, v42
const/high16 v42, 0x41400000 # 12.0f
div-float v16, v16, v42
const/high16 v42, 0x41400000 # 12.0f
div-float v15, v15, v42
const/high16 v42, 0x41400000 # 12.0f
div-float v38, v38, v42
const/high16 v42, 0x41400000 # 12.0f
div-float v37, v37, v42
const/high16 v42, 0x41400000 # 12.0f
div-float v9, v9, v42
const/high16 v42, 0x41400000 # 12.0f
div-float v8, v8, v42
const/high16 v42, 0x41400000 # 12.0f
div-float v31, v31, v42
const/high16 v42, 0x41400000 # 12.0f
div-float v30, v30, v42
:cond_33a
const/16 v41, 0x0
const/high16 v42, 0x42c80000 # 100.0f
mul-float v42, v42, v41
invoke-static/range {v42 .. v42}, Ljava/lang/Math;->round(F)I
move-result v42
move/from16 v0, v42
int-to-float v0, v0
move/from16 v42, v0
const/high16 v43, 0x42c80000 # 100.0f
div-float v41, v42, v43
new-instance v42, Ljava/lang/StringBuilder;
invoke-direct/range {v42 .. v42}, Ljava/lang/StringBuilder;-><init>()V
move-object/from16 v0, v42
move/from16 v1, v41
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(F)Ljava/lang/StringBuilder;
move-result-object v42
move-object/from16 v0, v42
move-object/from16 v1, v39
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v42
invoke-virtual/range {v42 .. v42}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v40
return-void
:cond_367
const/high16 v19, 0x3f800000 # 1.0f
goto/16 :goto_c
:cond_36b
const/high16 v18, 0x3f800000 # 1.0f
goto/16 :goto_16
:cond_36f
const/high16 v20, 0x3f800000 # 1.0f
goto/16 :goto_20
:cond_373
const/high16 v21, 0x3f800000 # 1.0f
goto/16 :goto_2a
:cond_377
const/high16 v22, 0x3f800000 # 1.0f
goto/16 :goto_34
:cond_37b
const/high16 v23, 0x3f800000 # 1.0f
goto/16 :goto_3e
:cond_37f
const/high16 v17, 0x3f800000 # 1.0f
goto/16 :goto_48
:cond_383
const/high16 v2, 0x3f800000 # 1.0f
goto/16 :goto_51
:cond_387
const/high16 v24, 0x3f800000 # 1.0f
goto/16 :goto_5b
:cond_38b
const/high16 v25, 0x3f800000 # 1.0f
goto/16 :goto_65
:cond_38f
const/high16 v26, 0x3f800000 # 1.0f
goto/16 :goto_6f
:cond_393
const/high16 v27, 0x3f800000 # 1.0f
goto/16 :goto_79
:cond_397
const/high16 v28, 0x3f800000 # 1.0f
goto/16 :goto_83
:cond_39b
const/high16 v29, 0x3f800000 # 1.0f
goto/16 :goto_8d
:cond_39f
const/high16 v31, 0x3f800000 # 1.0f
goto/16 :goto_97
:cond_3a3
const/high16 v30, 0x3f800000 # 1.0f
goto/16 :goto_a1
:cond_3a7
const/high16 v3, 0x3f800000 # 1.0f
goto/16 :goto_aa
:cond_3ab
const/high16 v4, 0x3f800000 # 1.0f
goto/16 :goto_b3
:cond_3af
const/high16 v5, 0x3f800000 # 1.0f
goto/16 :goto_bc
:cond_3b3
const/high16 v6, 0x3f800000 # 1.0f
goto/16 :goto_c5
:cond_3b7
const/high16 v7, 0x3f800000 # 1.0f
goto/16 :goto_ce
:cond_3bb
const/high16 v9, 0x3f800000 # 1.0f
goto/16 :goto_d7
:cond_3bf
const/high16 v8, 0x3f800000 # 1.0f
goto/16 :goto_e0
:cond_3c3
const/high16 v32, 0x3f800000 # 1.0f
goto/16 :goto_ea
:cond_3c7
const/high16 v33, 0x3f800000 # 1.0f
goto/16 :goto_f4
:cond_3cb
const/high16 v34, 0x3f800000 # 1.0f
goto/16 :goto_fe
:cond_3cf
const/high16 v35, 0x3f800000 # 1.0f
goto/16 :goto_108
:cond_3d3
const/high16 v36, 0x3f800000 # 1.0f
goto/16 :goto_112
:cond_3d7
const/high16 v38, 0x3f800000 # 1.0f
goto/16 :goto_11c
:cond_3db
const/high16 v37, 0x3f800000 # 1.0f
goto/16 :goto_126
:cond_3df
const/high16 v10, 0x3f800000 # 1.0f
goto/16 :goto_12f
:cond_3e3
const/high16 v11, 0x3f800000 # 1.0f
goto/16 :goto_138
:cond_3e7
const/high16 v12, 0x3f800000 # 1.0f
goto/16 :goto_141
:cond_3eb
const/high16 v13, 0x3f800000 # 1.0f
goto/16 :goto_14a
:cond_3ef
const/high16 v14, 0x3f800000 # 1.0f
goto/16 :goto_153
:cond_3f3
const/high16 v16, 0x3f800000 # 1.0f
goto/16 :goto_15d
:cond_3f7
const/high16 v15, 0x3f800000 # 1.0f
goto/16 :goto_166
.end method
## CHECK-START-ARM64: void Smali.testD8() register (after)
## CHECK: begin_block
## CHECK: name "B0"
## CHECK: <<This:l\d+>> ParameterValue
## CHECK: end_block
## CHECK: begin_block
## CHECK: successors "<<ThenBlockA:B\d+>>" "<<ElseBlockA:B\d+>>"
## CHECK: <<CondA:z\d+>> InstanceFieldGet [<<This>>] field_name:Smali.conditionA
## CHECK: If [<<CondA>>]
## CHECK: end_block
## CHECK: begin_block
## CHECK: name "<<ThenBlockA>>"
## CHECK: end_block
## CHECK: begin_block
## CHECK: name "<<ElseBlockA>>"
## CHECK: ParallelMove moves:[d2->d0,40(sp)->d17,d20->d26,d19->d27,d27->d1,d26->d2,d14->d20,d13->d19,d17->d14,d0->d13]
## CHECK: end_block
## CHECK: begin_block
## CHECK: successors "<<ThenBlockB:B\d+>>" "<<ElseBlockB:B\d+>>"
## CHECK: <<CondB:z\d+>> InstanceFieldGet [<<This>>] field_name:Smali.conditionB
## CHECK: If [<<CondB>>]
## CHECK: end_block
## CHECK: begin_block
## CHECK: name "<<ThenBlockB>>"
## CHECK: end_block
## CHECK: begin_block
## CHECK: name "<<ElseBlockB>>"
## CHECK: ParallelMove moves:[#100->d13,16(sp)->d1,20(sp)->d2,28(sp)->d19,24(sp)->d20,36(sp)->d14,32(sp)->16(sp),d1->20(sp),d2->24(sp),d20->28(sp),d19->32(sp),d14->36(sp),d13->40(sp)]
## CHECK: end_block
## CHECK-START-ARM64: void Smali.testD8() disassembly (after)
## CHECK: begin_block
## CHECK: name "B0"
## CHECK: <<This:l\d+>> ParameterValue
## CHECK: end_block
## CHECK: begin_block
## CHECK: successors "<<ThenBlockA:B\d+>>" "<<ElseBlockA:B\d+>>"
## CHECK: <<CondA:z\d+>> InstanceFieldGet [<<This>>] field_name:Smali.conditionA
## CHECK: If [<<CondA>>]
## CHECK: end_block
## CHECK: begin_block
## CHECK: name "<<ThenBlockA>>"
## CHECK: end_block
## CHECK: begin_block
## CHECK: name "<<ElseBlockA>>"
## CHECK: end_block
## CHECK: begin_block
## CHECK: successors "<<ThenBlockB:B\d+>>" "<<ElseBlockB:B\d+>>"
## CHECK: <<CondB:z\d+>> InstanceFieldGet [<<This>>] field_name:Smali.conditionB
## CHECK: If [<<CondB>>]
## CHECK: end_block
## CHECK: begin_block
## CHECK: name "<<ThenBlockB>>"
## CHECK: end_block
## CHECK: begin_block
## CHECK: name "<<ElseBlockB>>"
## 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]
## CHECK: ldr w16, [sp, #32]
## CHECK: str s19, [sp, #32]
## CHECK: ldr s19, [sp, #28]
## CHECK: str s20, [sp, #28]
## CHECK: ldr s20, [sp, #24]
## CHECK: str s2, [sp, #24]
## CHECK: ldr s2, [sp, #20]
## CHECK: str s1, [sp, #20]
## CHECK: ldr s1, [sp, #16]
## CHECK: str w16, [sp, #16]
## CHECK: fmov d31, d14
## CHECK: ldr s14, [sp, #36]
## CHECK: str s31, [sp, #36]
## CHECK: str s13, [sp, #40]
## CHECK: ldr s13, pc+580 (addr 0x61c) (100)
## CHECK: end_block
.method public testD8()V
.registers 47
move-object/from16 v0, p0
const-string v1, ""
iget-boolean v2, v0, LSmali;->b17:Z
if-eqz v2, :cond_a
const/4 v2, 0x0
goto :goto_c
:cond_a
const/high16 v2, 0x3f800000 # 1.0f
:goto_c
iget-boolean v5, v0, LSmali;->b16:Z
if-eqz v5, :cond_12
const/4 v5, 0x0
goto :goto_14
:cond_12
const/high16 v5, 0x3f800000 # 1.0f
:goto_14
iget-boolean v6, v0, LSmali;->b18:Z
if-eqz v6, :cond_1a
const/4 v6, 0x0
goto :goto_1c
:cond_1a
const/high16 v6, 0x3f800000 # 1.0f
:goto_1c
iget-boolean v7, v0, LSmali;->b19:Z
if-eqz v7, :cond_22
const/4 v7, 0x0
goto :goto_24
:cond_22
const/high16 v7, 0x3f800000 # 1.0f
:goto_24
iget-boolean v8, v0, LSmali;->b20:Z
if-eqz v8, :cond_2a
const/4 v8, 0x0
goto :goto_2c
:cond_2a
const/high16 v8, 0x3f800000 # 1.0f
:goto_2c
iget-boolean v9, v0, LSmali;->b21:Z
if-eqz v9, :cond_32
const/4 v9, 0x0
goto :goto_34
:cond_32
const/high16 v9, 0x3f800000 # 1.0f
:goto_34
iget-boolean v10, v0, LSmali;->b15:Z
if-eqz v10, :cond_3a
const/4 v10, 0x0
goto :goto_3c
:cond_3a
const/high16 v10, 0x3f800000 # 1.0f
:goto_3c
iget-boolean v11, v0, LSmali;->b00:Z
if-eqz v11, :cond_42
const/4 v11, 0x0
goto :goto_44
:cond_42
const/high16 v11, 0x3f800000 # 1.0f
:goto_44
iget-boolean v12, v0, LSmali;->b22:Z
if-eqz v12, :cond_4a
const/4 v12, 0x0
goto :goto_4c
:cond_4a
const/high16 v12, 0x3f800000 # 1.0f
:goto_4c
iget-boolean v13, v0, LSmali;->b23:Z
if-eqz v13, :cond_52
const/4 v13, 0x0
goto :goto_54
:cond_52
const/high16 v13, 0x3f800000 # 1.0f
:goto_54
iget-boolean v14, v0, LSmali;->b24:Z
if-eqz v14, :cond_5a
const/4 v14, 0x0
goto :goto_5c
:cond_5a
const/high16 v14, 0x3f800000 # 1.0f
:goto_5c
iget-boolean v15, v0, LSmali;->b25:Z
if-eqz v15, :cond_62
const/4 v15, 0x0
goto :goto_64
:cond_62
const/high16 v15, 0x3f800000 # 1.0f
:goto_64
iget-boolean v3, v0, LSmali;->b26:Z
if-eqz v3, :cond_6a
const/4 v3, 0x0
goto :goto_6c
:cond_6a
const/high16 v3, 0x3f800000 # 1.0f
:goto_6c
iget-boolean v4, v0, LSmali;->b27:Z
if-eqz v4, :cond_72
const/4 v4, 0x0
goto :goto_74
:cond_72
const/high16 v4, 0x3f800000 # 1.0f
:goto_74
move-object/from16 v18, v1
iget-boolean v1, v0, LSmali;->b29:Z
if-eqz v1, :cond_7c
const/4 v1, 0x0
goto :goto_7e
:cond_7c
const/high16 v1, 0x3f800000 # 1.0f
:goto_7e
move/from16 v19, v1
iget-boolean v1, v0, LSmali;->b28:Z
if-eqz v1, :cond_86
const/4 v1, 0x0
goto :goto_88
:cond_86
const/high16 v1, 0x3f800000 # 1.0f
:goto_88
move/from16 v20, v1
iget-boolean v1, v0, LSmali;->b01:Z
if-eqz v1, :cond_90
const/4 v1, 0x0
goto :goto_92
:cond_90
const/high16 v1, 0x3f800000 # 1.0f
:goto_92
move/from16 v21, v11
iget-boolean v11, v0, LSmali;->b02:Z
if-eqz v11, :cond_9a
const/4 v11, 0x0
goto :goto_9c
:cond_9a
const/high16 v11, 0x3f800000 # 1.0f
:goto_9c
move/from16 v22, v12
iget-boolean v12, v0, LSmali;->b03:Z
if-eqz v12, :cond_a4
const/4 v12, 0x0
goto :goto_a6
:cond_a4
const/high16 v12, 0x3f800000 # 1.0f
:goto_a6
move/from16 v23, v4
iget-boolean v4, v0, LSmali;->b04:Z
if-eqz v4, :cond_ae
const/4 v4, 0x0
goto :goto_b0
:cond_ae
const/high16 v4, 0x3f800000 # 1.0f
:goto_b0
move/from16 v24, v3
iget-boolean v3, v0, LSmali;->b05:Z
if-eqz v3, :cond_b8
const/4 v3, 0x0
goto :goto_ba
:cond_b8
const/high16 v3, 0x3f800000 # 1.0f
:goto_ba
move/from16 v25, v15
iget-boolean v15, v0, LSmali;->b07:Z
if-eqz v15, :cond_c2
const/4 v15, 0x0
goto :goto_c4
:cond_c2
const/high16 v15, 0x3f800000 # 1.0f
:goto_c4
move/from16 v26, v15
iget-boolean v15, v0, LSmali;->b06:Z
if-eqz v15, :cond_cc
const/4 v15, 0x0
goto :goto_ce
:cond_cc
const/high16 v15, 0x3f800000 # 1.0f
:goto_ce
move/from16 v27, v15
iget-boolean v15, v0, LSmali;->b30:Z
if-eqz v15, :cond_d6
const/4 v15, 0x0
goto :goto_d8
:cond_d6
const/high16 v15, 0x3f800000 # 1.0f
:goto_d8
move/from16 v28, v14
iget-boolean v14, v0, LSmali;->b31:Z
if-eqz v14, :cond_e0
const/4 v14, 0x0
goto :goto_e2
:cond_e0
const/high16 v14, 0x3f800000 # 1.0f
:goto_e2
move/from16 v29, v13
iget-boolean v13, v0, LSmali;->b32:Z
if-eqz v13, :cond_ea
const/4 v13, 0x0
goto :goto_ec
:cond_ea
const/high16 v13, 0x3f800000 # 1.0f
:goto_ec
move/from16 v30, v3
iget-boolean v3, v0, LSmali;->b33:Z
if-eqz v3, :cond_f4
const/4 v3, 0x0
goto :goto_f6
:cond_f4
const/high16 v3, 0x3f800000 # 1.0f
:goto_f6
move/from16 v31, v4
iget-boolean v4, v0, LSmali;->b34:Z
if-eqz v4, :cond_fe
const/4 v4, 0x0
goto :goto_100
:cond_fe
const/high16 v4, 0x3f800000 # 1.0f
:goto_100
move/from16 v32, v12
iget-boolean v12, v0, LSmali;->b36:Z
if-eqz v12, :cond_108
const/4 v12, 0x0
goto :goto_10a
:cond_108
const/high16 v12, 0x3f800000 # 1.0f
:goto_10a
move/from16 v33, v12
iget-boolean v12, v0, LSmali;->b35:Z
if-eqz v12, :cond_112
const/4 v12, 0x0
goto :goto_114
:cond_112
const/high16 v12, 0x3f800000 # 1.0f
:goto_114
move/from16 v34, v12
iget-boolean v12, v0, LSmali;->b08:Z
if-eqz v12, :cond_11c
const/4 v12, 0x0
goto :goto_11e
:cond_11c
const/high16 v12, 0x3f800000 # 1.0f
:goto_11e
move/from16 v35, v11
iget-boolean v11, v0, LSmali;->b09:Z
if-eqz v11, :cond_126
const/4 v11, 0x0
goto :goto_128
:cond_126
const/high16 v11, 0x3f800000 # 1.0f
:goto_128
move/from16 v36, v1
iget-boolean v1, v0, LSmali;->b10:Z
if-eqz v1, :cond_130
const/4 v1, 0x0
goto :goto_132
:cond_130
const/high16 v1, 0x3f800000 # 1.0f
:goto_132
move/from16 v37, v4
iget-boolean v4, v0, LSmali;->b11:Z
if-eqz v4, :cond_13a
const/4 v4, 0x0
goto :goto_13c
:cond_13a
const/high16 v4, 0x3f800000 # 1.0f
:goto_13c
move/from16 v38, v3
iget-boolean v3, v0, LSmali;->b12:Z
if-eqz v3, :cond_144
const/4 v3, 0x0
goto :goto_146
:cond_144
const/high16 v3, 0x3f800000 # 1.0f
:goto_146
move/from16 v39, v13
iget-boolean v13, v0, LSmali;->b14:Z
if-eqz v13, :cond_14e
const/4 v13, 0x0
goto :goto_150
:cond_14e
const/high16 v13, 0x3f800000 # 1.0f
:goto_150
move/from16 v40, v13
iget-boolean v13, v0, LSmali;->b13:Z
if-eqz v13, :cond_159
const/16 v16, 0x0
goto :goto_15b
:cond_159
const/high16 v16, 0x3f800000 # 1.0f
:goto_15b
move/from16 v13, v16
move/from16 v41, v13
iget-boolean v13, v0, LSmali;->conditionA:Z
if-eqz v13, :cond_1a2
const/high16 v13, 0x447a0000 # 1000.0f
div-float/2addr v5, v13
div-float/2addr v2, v13
div-float/2addr v6, v13
div-float/2addr v7, v13
div-float/2addr v8, v13
div-float/2addr v9, v13
div-float/2addr v10, v13
div-float/2addr v12, v13
div-float/2addr v11, v13
div-float/2addr v1, v13
div-float/2addr v4, v13
div-float/2addr v3, v13
div-float/2addr v15, v13
div-float/2addr v14, v13
div-float v16, v39, v13
div-float v38, v38, v13
div-float v37, v37, v13
div-float v36, v36, v13
div-float v35, v35, v13
div-float v32, v32, v13
div-float v31, v31, v13
div-float v30, v30, v13
div-float v29, v29, v13
div-float v28, v28, v13
div-float v25, v25, v13
div-float v24, v24, v13
div-float v23, v23, v13
div-float v22, v22, v13
div-float v21, v21, v13
div-float v39, v40, v13
div-float v40, v41, v13
div-float v33, v33, v13
div-float v34, v34, v13
div-float v26, v26, v13
div-float v27, v27, v13
div-float v19, v19, v13
div-float v13, v20, v13
goto :goto_1aa
:cond_1a2
move/from16 v13, v20
move/from16 v16, v39
move/from16 v39, v40
move/from16 v40, v41
:goto_1aa
move/from16 v42, v13
iget-boolean v13, v0, LSmali;->conditionB:Z
const/high16 v20, 0x42c80000 # 100.0f
if-eqz v13, :cond_1fd
div-float v5, v5, v20
div-float v2, v2, v20
div-float v6, v6, v20
div-float v7, v7, v20
div-float v8, v8, v20
div-float v9, v9, v20
div-float v10, v10, v20
div-float v12, v12, v20
div-float v11, v11, v20
div-float v1, v1, v20
div-float v4, v4, v20
div-float v3, v3, v20
div-float v15, v15, v20
div-float v14, v14, v20
div-float v16, v16, v20
div-float v38, v38, v20
div-float v37, v37, v20
div-float v36, v36, v20
div-float v35, v35, v20
div-float v32, v32, v20
div-float v31, v31, v20
div-float v30, v30, v20
div-float v29, v29, v20
div-float v28, v28, v20
div-float v25, v25, v20
div-float v24, v24, v20
div-float v23, v23, v20
div-float v22, v22, v20
div-float v21, v21, v20
div-float v39, v39, v20
div-float v40, v40, v20
div-float v33, v33, v20
div-float v34, v34, v20
div-float v26, v26, v20
div-float v27, v27, v20
div-float v19, v19, v20
div-float v13, v42, v20
goto :goto_1ff
:cond_1fd
move/from16 v13, v42
:goto_1ff
move/from16 v43, v13
iget-boolean v13, v0, LSmali;->conditionC:Z
if-eqz v13, :cond_244
const/high16 v13, 0x41400000 # 12.0f
div-float/2addr v5, v13
div-float/2addr v2, v13
div-float/2addr v6, v13
div-float/2addr v7, v13
div-float/2addr v8, v13
div-float/2addr v9, v13
div-float/2addr v10, v13
div-float/2addr v12, v13
div-float/2addr v11, v13
div-float/2addr v1, v13
div-float/2addr v4, v13
div-float/2addr v3, v13
div-float/2addr v15, v13
div-float/2addr v14, v13
div-float v16, v16, v13
div-float v38, v38, v13
div-float v37, v37, v13
div-float v36, v36, v13
div-float v35, v35, v13
div-float v32, v32, v13
div-float v31, v31, v13
div-float v30, v30, v13
div-float v29, v29, v13
div-float v28, v28, v13
div-float v25, v25, v13
div-float v24, v24, v13
div-float v23, v23, v13
div-float v22, v22, v13
div-float v21, v21, v13
div-float v39, v39, v13
div-float v40, v40, v13
div-float v33, v33, v13
div-float v34, v34, v13
div-float v26, v26, v13
div-float v27, v27, v13
div-float v19, v19, v13
div-float v13, v43, v13
goto :goto_246
:cond_244
move/from16 v13, v43
:goto_246
const/16 v17, 0x0
mul-float v0, v20, v17
invoke-static {v0}, Ljava/lang/Math;->round(F)I
move-result v0
int-to-float v0, v0
div-float v0, v0, v20
move/from16 v44, v1
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(F)Ljava/lang/StringBuilder;
move/from16 v45, v0
move-object/from16 v0, v18
invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
return-void
.end method