InstructionPromoter.smali
.class public final Lcom/tencent/tinker/android/dx/instruction/InstructionPromoter;
.super Lcom/tencent/tinker/android/dx/instruction/InstructionVisitor;
# instance fields
.field private final addressMap:Lcom/tencent/tinker/android/utils/SparseIntArray;
.field private currentPromotedAddress:I
# direct methods
.method public constructor <init>()V
.registers 2
const/4 v0, 0x0
invoke-direct {p0, v0}, Lcom/tencent/tinker/android/dx/instruction/InstructionVisitor;-><init>(Lcom/tencent/tinker/android/dx/instruction/InstructionVisitor;)V
new-instance v0, Lcom/tencent/tinker/android/utils/SparseIntArray;
invoke-direct {v0}, Lcom/tencent/tinker/android/utils/SparseIntArray;-><init>()V
iput-object v0, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionPromoter;->addressMap:Lcom/tencent/tinker/android/utils/SparseIntArray;
const/4 v0, 0x0
iput v0, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionPromoter;->currentPromotedAddress:I
return-void
.end method
.method private mapAddressIfNeeded(I)V
.registers 4
iget v0, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionPromoter;->currentPromotedAddress:I
if-eq p1, v0, :cond_b
iget-object v0, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionPromoter;->addressMap:Lcom/tencent/tinker/android/utils/SparseIntArray;
iget v1, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionPromoter;->currentPromotedAddress:I
invoke-virtual {v0, p1, v1}, Lcom/tencent/tinker/android/utils/SparseIntArray;->append(II)V
:cond_b
return-void
.end method
# virtual methods
.method public getPromotedAddress(I)I
.registers 4
iget-object v0, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionPromoter;->addressMap:Lcom/tencent/tinker/android/utils/SparseIntArray;
invoke-virtual {v0, p1}, Lcom/tencent/tinker/android/utils/SparseIntArray;->indexOfKey(I)I
move-result v0
if-gez v0, :cond_9
:goto_8
return p1
:cond_9
iget-object v1, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionPromoter;->addressMap:Lcom/tencent/tinker/android/utils/SparseIntArray;
invoke-virtual {v1, v0}, Lcom/tencent/tinker/android/utils/SparseIntArray;->valueAt(I)I
move-result p1
goto :goto_8
.end method
.method public getPromotedAddressCount()I
.registers 2
iget-object v0, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionPromoter;->addressMap:Lcom/tencent/tinker/android/utils/SparseIntArray;
invoke-virtual {v0}, Lcom/tencent/tinker/android/utils/SparseIntArray;->size()I
move-result v0
return v0
.end method
.method public visitFillArrayDataPayloadInsn(IILjava/lang/Object;II)V
.registers 9
invoke-direct {p0, p1}, Lcom/tencent/tinker/android/dx/instruction/InstructionPromoter;->mapAddressIfNeeded(I)V
iget v0, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionPromoter;->currentPromotedAddress:I
add-int/lit8 v0, v0, 0x4
iput v0, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionPromoter;->currentPromotedAddress:I
packed-switch p5, :pswitch_data_62
:pswitch_c
new-instance v0, Lcom/tencent/tinker/android/dex/DexException;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string/jumbo v2, "bogus element_width: "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-static {p5}, Lcom/tencent/tinker/android/dx/util/Hex;->u2(I)Ljava/lang/String;
move-result-object v2
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-direct {v0, v1}, Lcom/tencent/tinker/android/dex/DexException;-><init>(Ljava/lang/String;)V
throw v0
:pswitch_2a
check-cast p3, [B
check-cast p3, [B
array-length v0, p3
iget v1, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionPromoter;->currentPromotedAddress:I
shr-int/lit8 v2, v0, 0x1
and-int/lit8 v0, v0, 0x1
add-int/2addr v0, v2
add-int/2addr v0, v1
iput v0, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionPromoter;->currentPromotedAddress:I
:goto_39
return-void
:pswitch_3a
iget v0, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionPromoter;->currentPromotedAddress:I
check-cast p3, [S
check-cast p3, [S
array-length v1, p3
mul-int/lit8 v1, v1, 0x1
add-int/2addr v0, v1
iput v0, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionPromoter;->currentPromotedAddress:I
goto :goto_39
:pswitch_47
iget v0, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionPromoter;->currentPromotedAddress:I
check-cast p3, [I
check-cast p3, [I
array-length v1, p3
mul-int/lit8 v1, v1, 0x2
add-int/2addr v0, v1
iput v0, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionPromoter;->currentPromotedAddress:I
goto :goto_39
:pswitch_54
iget v0, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionPromoter;->currentPromotedAddress:I
check-cast p3, [J
check-cast p3, [J
array-length v1, p3
mul-int/lit8 v1, v1, 0x4
add-int/2addr v0, v1
iput v0, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionPromoter;->currentPromotedAddress:I
goto :goto_39
nop
:pswitch_data_62
.packed-switch 0x1
:pswitch_2a
:pswitch_3a
:pswitch_c
:pswitch_47
:pswitch_c
:pswitch_c
:pswitch_c
:pswitch_54
.end packed-switch
.end method
.method public visitFiveRegisterInsn(IIIIIJIIIII)V
.registers 16
invoke-direct {p0, p1}, Lcom/tencent/tinker/android/dx/instruction/InstructionPromoter;->mapAddressIfNeeded(I)V
sparse-switch p2, :sswitch_data_2c
new-instance v0, Ljava/lang/IllegalStateException;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string/jumbo v2, "unexpected opcode: "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-static {p2}, Lcom/tencent/tinker/android/dx/util/Hex;->u2or4(I)Ljava/lang/String;
move-result-object v2
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
throw v0
:sswitch_24
iget v0, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionPromoter;->currentPromotedAddress:I
add-int/lit8 v0, v0, 0x3
iput v0, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionPromoter;->currentPromotedAddress:I
return-void
nop
:sswitch_data_2c
.sparse-switch
0x24 -> :sswitch_24
0x6e -> :sswitch_24
0x6f -> :sswitch_24
0x70 -> :sswitch_24
0x71 -> :sswitch_24
0x72 -> :sswitch_24
.end sparse-switch
.end method
.method public visitFourRegisterInsn(IIIIIJIIII)V
.registers 15
invoke-direct {p0, p1}, Lcom/tencent/tinker/android/dx/instruction/InstructionPromoter;->mapAddressIfNeeded(I)V
sparse-switch p2, :sswitch_data_2c
new-instance v0, Ljava/lang/IllegalStateException;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string/jumbo v2, "unexpected opcode: "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-static {p2}, Lcom/tencent/tinker/android/dx/util/Hex;->u2or4(I)Ljava/lang/String;
move-result-object v2
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
throw v0
:sswitch_24
iget v0, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionPromoter;->currentPromotedAddress:I
add-int/lit8 v0, v0, 0x3
iput v0, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionPromoter;->currentPromotedAddress:I
return-void
nop
:sswitch_data_2c
.sparse-switch
0x24 -> :sswitch_24
0x6e -> :sswitch_24
0x6f -> :sswitch_24
0x70 -> :sswitch_24
0x71 -> :sswitch_24
0x72 -> :sswitch_24
.end sparse-switch
.end method
.method public visitOneRegisterInsn(IIIIIJI)V
.registers 12
invoke-direct {p0, p1}, Lcom/tencent/tinker/android/dx/instruction/InstructionPromoter;->mapAddressIfNeeded(I)V
packed-switch p2, :pswitch_data_5a
:pswitch_6
new-instance v0, Ljava/lang/IllegalStateException;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string/jumbo v2, "unexpected opcode: "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-static {p2}, Lcom/tencent/tinker/android/dx/util/Hex;->u2or4(I)Ljava/lang/String;
move-result-object v2
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
throw v0
:pswitch_24
const v0, 0xffff
if-le p3, v0, :cond_30
iget v0, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionPromoter;->currentPromotedAddress:I
add-int/lit8 v0, v0, 0x3
iput v0, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionPromoter;->currentPromotedAddress:I
:goto_2f
return-void
:cond_30
iget v0, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionPromoter;->currentPromotedAddress:I
add-int/lit8 v0, v0, 0x2
iput v0, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionPromoter;->currentPromotedAddress:I
goto :goto_2f
:pswitch_37
iget v0, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionPromoter;->currentPromotedAddress:I
add-int/lit8 v0, v0, 0x3
iput v0, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionPromoter;->currentPromotedAddress:I
goto :goto_2f
:pswitch_3e
iget v0, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionPromoter;->currentPromotedAddress:I
add-int/lit8 v0, v0, 0x1
iput v0, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionPromoter;->currentPromotedAddress:I
goto :goto_2f
:pswitch_45
iget v0, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionPromoter;->currentPromotedAddress:I
add-int/lit8 v0, v0, 0x2
iput v0, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionPromoter;->currentPromotedAddress:I
goto :goto_2f
:pswitch_4c
iget v0, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionPromoter;->currentPromotedAddress:I
add-int/lit8 v0, v0, 0x3
iput v0, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionPromoter;->currentPromotedAddress:I
goto :goto_2f
:pswitch_53
iget v0, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionPromoter;->currentPromotedAddress:I
add-int/lit8 v0, v0, 0x5
iput v0, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionPromoter;->currentPromotedAddress:I
goto :goto_2f
:pswitch_data_5a
.packed-switch 0xa
:pswitch_3e
:pswitch_3e
:pswitch_3e
:pswitch_3e
:pswitch_6
:pswitch_3e
:pswitch_3e
:pswitch_3e
:pswitch_3e
:pswitch_45
:pswitch_4c
:pswitch_45
:pswitch_45
:pswitch_4c
:pswitch_53
:pswitch_45
:pswitch_24
:pswitch_37
:pswitch_45
:pswitch_3e
:pswitch_3e
:pswitch_45
:pswitch_6
:pswitch_6
:pswitch_45
:pswitch_6
:pswitch_4c
:pswitch_6
:pswitch_4c
:pswitch_3e
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_4c
:pswitch_4c
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_45
:pswitch_45
:pswitch_45
:pswitch_45
:pswitch_45
:pswitch_45
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_45
:pswitch_45
:pswitch_45
:pswitch_45
:pswitch_45
:pswitch_45
:pswitch_45
:pswitch_45
:pswitch_45
:pswitch_45
:pswitch_45
:pswitch_45
:pswitch_45
:pswitch_45
:pswitch_4c
:pswitch_4c
:pswitch_4c
:pswitch_4c
:pswitch_4c
.end packed-switch
.end method
.method public visitPackedSwitchPayloadInsn(III[I)V
.registers 7
invoke-direct {p0, p1}, Lcom/tencent/tinker/android/dx/instruction/InstructionPromoter;->mapAddressIfNeeded(I)V
iget v0, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionPromoter;->currentPromotedAddress:I
add-int/lit8 v0, v0, 0x4
iput v0, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionPromoter;->currentPromotedAddress:I
iget v0, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionPromoter;->currentPromotedAddress:I
array-length v1, p4
mul-int/lit8 v1, v1, 0x2
add-int/2addr v0, v1
iput v0, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionPromoter;->currentPromotedAddress:I
return-void
.end method
.method public visitRegisterRangeInsn(IIIIIJII)V
.registers 13
invoke-direct {p0, p1}, Lcom/tencent/tinker/android/dx/instruction/InstructionPromoter;->mapAddressIfNeeded(I)V
sparse-switch p2, :sswitch_data_2c
new-instance v0, Ljava/lang/IllegalStateException;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string/jumbo v2, "unexpected opcode: "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-static {p2}, Lcom/tencent/tinker/android/dx/util/Hex;->u2or4(I)Ljava/lang/String;
move-result-object v2
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
throw v0
:sswitch_24
iget v0, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionPromoter;->currentPromotedAddress:I
add-int/lit8 v0, v0, 0x3
iput v0, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionPromoter;->currentPromotedAddress:I
return-void
nop
:sswitch_data_2c
.sparse-switch
0x25 -> :sswitch_24
0x74 -> :sswitch_24
0x75 -> :sswitch_24
0x76 -> :sswitch_24
0x77 -> :sswitch_24
0x78 -> :sswitch_24
.end sparse-switch
.end method
.method public visitSparseSwitchPayloadInsn(II[I[I)V
.registers 7
invoke-direct {p0, p1}, Lcom/tencent/tinker/android/dx/instruction/InstructionPromoter;->mapAddressIfNeeded(I)V
iget v0, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionPromoter;->currentPromotedAddress:I
add-int/lit8 v0, v0, 0x2
iput v0, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionPromoter;->currentPromotedAddress:I
iget v0, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionPromoter;->currentPromotedAddress:I
array-length v1, p3
mul-int/lit8 v1, v1, 0x2
add-int/2addr v0, v1
iput v0, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionPromoter;->currentPromotedAddress:I
iget v0, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionPromoter;->currentPromotedAddress:I
array-length v1, p4
mul-int/lit8 v1, v1, 0x2
add-int/2addr v0, v1
iput v0, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionPromoter;->currentPromotedAddress:I
return-void
.end method
.method public visitThreeRegisterInsn(IIIIIJIII)V
.registers 14
invoke-direct {p0, p1}, Lcom/tencent/tinker/android/dx/instruction/InstructionPromoter;->mapAddressIfNeeded(I)V
packed-switch p2, :pswitch_data_32
:pswitch_6
new-instance v0, Ljava/lang/IllegalStateException;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string/jumbo v2, "unexpected opcode: "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-static {p2}, Lcom/tencent/tinker/android/dx/util/Hex;->u2or4(I)Ljava/lang/String;
move-result-object v2
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
throw v0
:pswitch_24
iget v0, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionPromoter;->currentPromotedAddress:I
add-int/lit8 v0, v0, 0x2
iput v0, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionPromoter;->currentPromotedAddress:I
:goto_2a
return-void
:pswitch_2b
iget v0, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionPromoter;->currentPromotedAddress:I
add-int/lit8 v0, v0, 0x3
iput v0, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionPromoter;->currentPromotedAddress:I
goto :goto_2a
:pswitch_data_32
.packed-switch 0x24
:pswitch_2b
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_24
:pswitch_24
:pswitch_24
:pswitch_24
:pswitch_24
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_24
:pswitch_24
:pswitch_24
:pswitch_24
:pswitch_24
:pswitch_24
:pswitch_24
:pswitch_24
:pswitch_24
:pswitch_24
:pswitch_24
:pswitch_24
:pswitch_24
:pswitch_24
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_2b
:pswitch_2b
:pswitch_2b
:pswitch_2b
:pswitch_2b
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_24
:pswitch_24
:pswitch_24
:pswitch_24
:pswitch_24
:pswitch_24
:pswitch_24
:pswitch_24
:pswitch_24
:pswitch_24
:pswitch_24
:pswitch_24
:pswitch_24
:pswitch_24
:pswitch_24
:pswitch_24
:pswitch_24
:pswitch_24
:pswitch_24
:pswitch_24
:pswitch_24
:pswitch_24
:pswitch_24
:pswitch_24
:pswitch_24
:pswitch_24
:pswitch_24
:pswitch_24
:pswitch_24
:pswitch_24
:pswitch_24
:pswitch_24
.end packed-switch
.end method
.method public visitTwoRegisterInsn(IIIIIJII)V
.registers 13
invoke-direct {p0, p1}, Lcom/tencent/tinker/android/dx/instruction/InstructionPromoter;->mapAddressIfNeeded(I)V
packed-switch p2, :pswitch_data_40
:pswitch_6
new-instance v0, Ljava/lang/IllegalStateException;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string/jumbo v2, "unexpected opcode: "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-static {p2}, Lcom/tencent/tinker/android/dx/util/Hex;->u2or4(I)Ljava/lang/String;
move-result-object v2
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
throw v0
:pswitch_24
iget v0, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionPromoter;->currentPromotedAddress:I
add-int/lit8 v0, v0, 0x1
iput v0, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionPromoter;->currentPromotedAddress:I
:goto_2a
return-void
:pswitch_2b
iget v0, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionPromoter;->currentPromotedAddress:I
add-int/lit8 v0, v0, 0x2
iput v0, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionPromoter;->currentPromotedAddress:I
goto :goto_2a
:pswitch_32
iget v0, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionPromoter;->currentPromotedAddress:I
add-int/lit8 v0, v0, 0x2
iput v0, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionPromoter;->currentPromotedAddress:I
goto :goto_2a
:pswitch_39
iget v0, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionPromoter;->currentPromotedAddress:I
add-int/lit8 v0, v0, 0x3
iput v0, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionPromoter;->currentPromotedAddress:I
goto :goto_2a
:pswitch_data_40
.packed-switch 0x1
:pswitch_24
:pswitch_2b
:pswitch_39
:pswitch_24
:pswitch_2b
:pswitch_39
:pswitch_24
:pswitch_2b
:pswitch_39
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_32
:pswitch_24
:pswitch_6
:pswitch_32
:pswitch_39
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_32
:pswitch_32
:pswitch_32
:pswitch_32
:pswitch_32
:pswitch_32
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_32
:pswitch_32
:pswitch_32
:pswitch_32
:pswitch_32
:pswitch_32
:pswitch_32
:pswitch_32
:pswitch_32
:pswitch_32
:pswitch_32
:pswitch_32
:pswitch_32
:pswitch_32
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_39
:pswitch_39
:pswitch_39
:pswitch_39
:pswitch_39
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_24
:pswitch_24
:pswitch_24
:pswitch_24
:pswitch_24
:pswitch_24
:pswitch_24
:pswitch_24
:pswitch_24
:pswitch_24
:pswitch_24
:pswitch_24
:pswitch_24
:pswitch_24
:pswitch_24
:pswitch_24
:pswitch_24
:pswitch_24
:pswitch_24
:pswitch_24
:pswitch_24
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_6
:pswitch_24
:pswitch_24
:pswitch_24
:pswitch_24
:pswitch_24
:pswitch_24
:pswitch_24
:pswitch_24
:pswitch_24
:pswitch_24
:pswitch_24
:pswitch_24
:pswitch_24
:pswitch_24
:pswitch_24
:pswitch_24
:pswitch_24
:pswitch_24
:pswitch_24
:pswitch_24
:pswitch_24
:pswitch_24
:pswitch_24
:pswitch_24
:pswitch_24
:pswitch_24
:pswitch_24
:pswitch_24
:pswitch_24
:pswitch_24
:pswitch_24
:pswitch_24
:pswitch_32
:pswitch_32
:pswitch_32
:pswitch_32
:pswitch_32
:pswitch_32
:pswitch_32
:pswitch_32
:pswitch_32
:pswitch_32
:pswitch_32
:pswitch_32
:pswitch_32
:pswitch_32
:pswitch_32
:pswitch_32
:pswitch_32
:pswitch_32
:pswitch_32
.end packed-switch
.end method
.method public visitZeroRegisterInsn(IIIIIJ)V
.registers 11
invoke-direct {p0, p1}, Lcom/tencent/tinker/android/dx/instruction/InstructionPromoter;->mapAddressIfNeeded(I)V
sparse-switch p2, :sswitch_data_72
new-instance v0, Ljava/lang/IllegalStateException;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string/jumbo v2, "unexpected opcode: "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-static {p2}, Lcom/tencent/tinker/android/dx/util/Hex;->u2or4(I)Ljava/lang/String;
move-result-object v2
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
throw v0
:sswitch_24
iget v0, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionPromoter;->currentPromotedAddress:I
add-int/lit8 v0, v0, 0x1
iput v0, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionPromoter;->currentPromotedAddress:I
:goto_2a
return-void
:sswitch_2b
iget v0, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionPromoter;->currentPromotedAddress:I
invoke-static {p5, v0}, Lcom/tencent/tinker/android/dx/instruction/InstructionCodec;->getTarget(II)I
move-result v0
int-to-byte v1, v0
if-eq v0, v1, :cond_45
int-to-short v1, v0
if-eq v0, v1, :cond_3e
iget v0, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionPromoter;->currentPromotedAddress:I
add-int/lit8 v0, v0, 0x3
iput v0, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionPromoter;->currentPromotedAddress:I
goto :goto_2a
:cond_3e
iget v0, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionPromoter;->currentPromotedAddress:I
add-int/lit8 v0, v0, 0x2
iput v0, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionPromoter;->currentPromotedAddress:I
goto :goto_2a
:cond_45
iget v0, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionPromoter;->currentPromotedAddress:I
add-int/lit8 v0, v0, 0x1
iput v0, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionPromoter;->currentPromotedAddress:I
goto :goto_2a
:sswitch_4c
iget v0, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionPromoter;->currentPromotedAddress:I
invoke-static {p5, v0}, Lcom/tencent/tinker/android/dx/instruction/InstructionCodec;->getTarget(II)I
move-result v0
int-to-short v1, v0
if-eq v0, v1, :cond_5c
iget v0, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionPromoter;->currentPromotedAddress:I
add-int/lit8 v0, v0, 0x3
iput v0, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionPromoter;->currentPromotedAddress:I
goto :goto_2a
:cond_5c
iget v0, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionPromoter;->currentPromotedAddress:I
add-int/lit8 v0, v0, 0x2
iput v0, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionPromoter;->currentPromotedAddress:I
goto :goto_2a
:sswitch_63
iget v0, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionPromoter;->currentPromotedAddress:I
add-int/lit8 v0, v0, 0x3
iput v0, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionPromoter;->currentPromotedAddress:I
goto :goto_2a
:sswitch_6a
iget v0, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionPromoter;->currentPromotedAddress:I
add-int/lit8 v0, v0, 0x3
iput v0, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionPromoter;->currentPromotedAddress:I
goto :goto_2a
nop
:sswitch_data_72
.sparse-switch
-0x1 -> :sswitch_24
0x0 -> :sswitch_24
0xe -> :sswitch_24
0x24 -> :sswitch_6a
0x28 -> :sswitch_2b
0x29 -> :sswitch_4c
0x2a -> :sswitch_63
0x6e -> :sswitch_6a
0x6f -> :sswitch_6a
0x70 -> :sswitch_6a
0x71 -> :sswitch_6a
0x72 -> :sswitch_6a
.end sparse-switch
.end method