blob: 832cab92e1f9a576a43e900961980b16a1ed3964 [file] [log] [blame]
# Copyright (c) 2016, the R8 project authors. Please see the AUTHORS file
# for details. All rights reserved. Use of this source code is governed by a
# BSD-style license that can be found in the LICENSE file.
.class public final LTestObject;
.super Ljava/lang/Object;
.method public static a(LTest;LTest;LTest;LTest;)V
.registers 40
.prologue
invoke-virtual/range {p2 .. p2}, LTest;->e()LTest;
move-result-object v2
iget-wide v0, v2, LTest;->l:J
move-wide/from16 v22, v0
invoke-virtual/range {p2 .. p2}, LTest;->e()LTest;
move-result-object v2
iget-wide v2, v2, LTest;->l:J
const-wide/16 v4, 0x3e8
mul-long/2addr v2, v4
const-wide/16 v4, 0x3e8
mul-long/2addr v2, v4
div-long v2, v2, v22
move-object/from16 v0, p0
iput-wide v2, v0, LTest;->l:J
invoke-virtual/range {p1 .. p1}, LTest;->e()LTest;
move-result-object v2
iget-wide v4, v2, LTest;->d:D
double-to-int v3, v4
move-object/from16 v0, p0
iput v3, v0, LTest;->i:I
iget-wide v4, v2, LTest;->d:D
double-to-int v3, v4
move-object/from16 v0, p0
iput v3, v0, LTest;->i:I
iget-object v2, v2, LTest;->h:LTest;
invoke-static {v2}, LTest;->a(LTest;)I
move-result v2
move-object/from16 v0, p0
iput v2, v0, LTest;->i:I
const/4 v3, 0x0
invoke-virtual/range {p3 .. p3}, LTest;->e()LTest;
move-result-object v2
if-eqz v2, :cond_59
invoke-virtual/range {p3 .. p3}, LTest;->e()LTest;
move-result-object v2
iget-object v2, v2, LTest;->a:Ljava/util/List;
invoke-interface {v2}, Ljava/util/List;->iterator()Ljava/util/Iterator;
move-result-object v4
:cond_47
invoke-interface {v4}, Ljava/util/Iterator;->hasNext()Z
move-result v2
if-eqz v2, :cond_59
invoke-interface {v4}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v2
check-cast v2, LTest;
iget v2, v2, LTest;->i:I
if-eqz v2, :cond_47
const/4 v2, 0x1
move v3, v2
:cond_59
move-object/from16 v0, p0
iput-boolean v3, v0, LTest;->b:Z
invoke-virtual/range {p3 .. p3}, LTest;->e()LTest;
move-result-object v2
iget-object v0, v2, LTest;->a:Ljava/util/List;
move-object/from16 v17, v0
const/4 v2, 0x0
invoke-interface/range {v17 .. v17}, Ljava/util/List;->iterator()Ljava/util/Iterator;
move-result-object v5
move v4, v2
:goto_6b
invoke-interface {v5}, Ljava/util/Iterator;->hasNext()Z
move-result v2
if-eqz v2, :cond_8c
invoke-interface {v5}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v2
check-cast v2, LTest;
iget-wide v6, v2, LTest;->l:J
const-wide/16 v8, 0x0
cmp-long v2, v6, v8
if-gez v2, :cond_87
new-instance v2, LTest;
const-string v3, "string"
invoke-direct {v2, v3}, LTest;-><init>(Ljava/lang/String;)V
throw v2
:cond_87
int-to-long v8, v4
add-long/2addr v6, v8
long-to-int v2, v6
move v4, v2
goto :goto_6b
:cond_8c
if-gtz v4, :cond_96
new-instance v2, LTest;
const-string v3, "string"
invoke-direct {v2, v3}, LTest;-><init>(Ljava/lang/String;)V
throw v2
:cond_96
invoke-virtual/range {p3 .. p3}, LTest;->e()LTest;
move-result-object v5
const/4 v2, 0x0
if-eqz v5, :cond_260
iget-object v2, v5, LTest;->al:[J
if-eqz v2, :cond_a4
array-length v5, v2
if-nez v5, :cond_ac
:cond_a4
new-instance v2, LTest;
const-string v3, "string"
invoke-direct {v2, v3}, LTest;-><init>(Ljava/lang/String;)V
throw v2
:cond_ac
array-length v5, v2
add-int/lit8 v5, v5, -0x1
aget-wide v6, v2, v5
int-to-long v8, v4
cmp-long v5, v6, v8
if-lez v5, :cond_be
new-instance v2, LTest;
const-string v3, "string"
invoke-direct {v2, v3}, LTest;-><init>(Ljava/lang/String;)V
throw v2
:cond_be
move-object v5, v2
:goto_bf
const/4 v2, 0x0
const/4 v6, 0x0
invoke-virtual/range {p3 .. p3}, LTest;->e()LTest;
move-result-object v7
if-eqz v7, :cond_f2
iget-object v7, v7, LTest;->a:Ljava/util/List;
invoke-interface {v7}, Ljava/util/List;->iterator()Ljava/util/Iterator;
move-result-object v8
move v6, v2
:goto_ce
invoke-interface {v8}, Ljava/util/Iterator;->hasNext()Z
move-result v2
if-eqz v2, :cond_f0
invoke-interface {v8}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v2
check-cast v2, LTest;
iget v2, v2, LTest;->i:I
int-to-long v10, v2
const-wide/16 v12, 0x0
cmp-long v2, v10, v12
if-gez v2, :cond_eb
new-instance v2, LTest;
const-string v3, "string"
invoke-direct {v2, v3}, LTest;-><init>(Ljava/lang/String;)V
throw v2
:cond_eb
int-to-long v12, v6
add-long/2addr v10, v12
long-to-int v2, v10
move v6, v2
goto :goto_ce
:cond_f0
move v2, v6
move-object v6, v7
:cond_f2
if-eqz v2, :cond_fe
if-eq v2, v4, :cond_fe
new-instance v2, LTest;
const-string v3, "string"
invoke-direct {v2, v3}, LTest;-><init>(Ljava/lang/String;)V
throw v2
:cond_fe
if-eqz v5, :cond_149
new-instance v2, LTest;
array-length v7, v5
invoke-direct {v2, v4, v7}, LTest;-><init>(II)V
move-object v4, v2
:goto_107
iget-object v0, v4, LTest;->al:[J
move-object/from16 v24, v0
iget-object v0, v4, LTest;->ai:[I
move-object/from16 v25, v0
const/16 v16, 0x0
const/4 v7, -0x1
const-wide/16 v14, 0x0
if-eqz v6, :cond_150
invoke-interface {v6}, Ljava/util/List;->size()I
move-result v2
if-lez v2, :cond_150
invoke-interface {v6}, Ljava/util/List;->iterator()Ljava/util/Iterator;
move-result-object v2
move-object v6, v2
:goto_121
const-wide/16 v12, 0x0
const-wide/16 v10, 0x0
const-wide/16 v8, 0x0
invoke-interface/range {v17 .. v17}, Ljava/util/List;->iterator()Ljava/util/Iterator;
move-result-object v26
:cond_12b
invoke-interface/range {v26 .. v26}, Ljava/util/Iterator;->hasNext()Z
move-result v2
if-eqz v2, :cond_22d
invoke-interface/range {v26 .. v26}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v2
check-cast v2, LTest;
iget-wide v0, v2, LTest;->l:J
move-wide/from16 v28, v0
const-wide/16 v18, 0x0
cmp-long v17, v28, v18
if-gez v17, :cond_153
new-instance v2, LTest;
const-string v3, "string"
invoke-direct {v2, v3}, LTest;-><init>(Ljava/lang/String;)V
throw v2
:cond_149
new-instance v2, LTest;
invoke-direct {v2, v4}, LTest;-><init>(I)V
move-object v4, v2
goto :goto_107
:cond_150
const/4 v2, 0x0
move-object v6, v2
goto :goto_121
:cond_153
iget-wide v0, v2, LTest;->l:J
move-wide/from16 v18, v0
move-wide/from16 v20, v18
:goto_159
const-wide/16 v18, 0x0
cmp-long v2, v20, v18
if-lez v2, :cond_12b
if-eqz v6, :cond_192
move-wide/from16 v18, v12
:goto_163
const-wide/16 v12, 0x0
cmp-long v2, v18, v12
if-gtz v2, :cond_178
invoke-interface {v6}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v2
check-cast v2, LTest;
iget v10, v2, LTest;->i:I
int-to-long v0, v10
move-wide/from16 v18, v0
iget v2, v2, LTest;->i:I
int-to-long v10, v2
goto :goto_163
:cond_178
if-nez v16, :cond_17b
move-wide v8, v10
:cond_17b
add-long v12, v14, v10
sub-long/2addr v12, v8
move-wide/from16 v34, v12
move-wide v12, v10
move-wide v10, v8
move-wide/from16 v8, v34
:goto_184
const-wide/16 v30, 0x0
cmp-long v2, v8, v30
if-gez v2, :cond_198
new-instance v2, LTest;
const-string v3, "string"
invoke-direct {v2, v3}, LTest;-><init>(Ljava/lang/String;)V
throw v2
:cond_192
move-wide/from16 v18, v12
move-wide v12, v10
move-wide v10, v8
move-wide v8, v14
goto :goto_184
:cond_198
const-wide/16 v30, 0x3e8
mul-long v8, v8, v30
const-wide/16 v30, 0x3e8
mul-long v8, v8, v30
div-long v8, v8, v22
move/from16 v2, v16
:goto_1a4
if-lez v2, :cond_1cb
add-int/lit8 v17, v2, -0x1
aget-wide v30, v24, v17
cmp-long v17, v30, v8
if-lez v17, :cond_1cb
add-int/lit8 v17, v2, -0x1
aget-wide v30, v24, v17
aput-wide v30, v24, v2
if-eqz v25, :cond_1c8
if-ltz v7, :cond_1c8
add-int/lit8 v17, v2, -0x1
aget v27, v25, v7
move/from16 v0, v17
move/from16 v1, v27
if-ne v0, v1, :cond_1c8
aget v17, v25, v7
add-int/lit8 v17, v17, 0x1
aput v17, v25, v7
:cond_1c8
add-int/lit8 v2, v2, -0x1
goto :goto_1a4
:cond_1cb
aput-wide v8, v24, v2
if-lez v2, :cond_1ea
add-int/lit8 v17, v2, -0x1
aget-wide v30, v24, v17
cmp-long v8, v30, v8
if-nez v8, :cond_1ea
const/4 v3, 0x1
if-ne v2, v3, :cond_1e2
new-instance v2, LTest;
const-string v3, "string"
invoke-direct {v2, v3}, LTest;-><init>(Ljava/lang/String;)V
throw v2
:cond_1e2
new-instance v2, LTest;
const-string v3, "string"
invoke-direct {v2, v3}, LTest;-><init>(Ljava/lang/String;)V
throw v2
:cond_1ea
if-eqz v5, :cond_216
add-int/lit8 v8, v7, 0x1
array-length v9, v5
if-ge v8, v9, :cond_216
move/from16 v0, v16
int-to-long v8, v0
add-int/lit8 v17, v7, 0x1
aget-wide v30, v5, v17
const-wide/16 v32, 0x1
sub-long v30, v30, v32
cmp-long v8, v8, v30
if-nez v8, :cond_216
add-int/lit8 v7, v7, 0x1
aput v2, v25, v7
if-lez v7, :cond_216
add-int/lit8 v2, v7, -0x1
aget v2, v25, v2
aget v8, v25, v7
if-lt v2, v8, :cond_216
new-instance v2, LTest;
const-string v3, "string"
invoke-direct {v2, v3}, LTest;-><init>(Ljava/lang/String;)V
throw v2
:cond_216
add-int/lit8 v2, v16, 0x1
add-long v16, v14, v28
const-wide/16 v8, 0x1
sub-long v14, v18, v8
const-wide/16 v8, 0x1
sub-long v8, v20, v8
move-wide/from16 v20, v8
move-wide v8, v10
move-wide v10, v12
move-wide v12, v14
move-wide/from16 v14, v16
move/from16 v16, v2
goto/16 :goto_159
:cond_22d
iget-object v2, v4, LTest;->al:[J
move-object/from16 v0, p0
iput-object v2, v0, LTest;->al:[J
iget-object v2, v4, LTest;->ai:[I
if-eqz v3, :cond_241
if-nez v2, :cond_241
new-instance v2, LTest;
const-string v3, "string"
invoke-direct {v2, v3}, LTest;-><init>(Ljava/lang/String;)V
throw v2
:cond_241
if-eqz v2, :cond_25b
array-length v3, v2
if-gtz v3, :cond_24e
new-instance v2, LTest;
const-string v3, "string"
invoke-direct {v2, v3}, LTest;-><init>(Ljava/lang/String;)V
throw v2
:cond_24e
const/4 v3, 0x0
aget v3, v2, v3
if-eqz v3, :cond_25b
new-instance v2, LTest;
const-string v3, "string"
invoke-direct {v2, v3}, LTest;-><init>(Ljava/lang/String;)V
throw v2
:cond_25b
move-object/from16 v0, p0
iput-object v2, v0, LTest;->ai:[I
return-void
:cond_260
move-object v5, v2
goto/16 :goto_bf
.end method