InstructionWriter.smali
.class public final Lcom/tencent/tinker/android/dx/instruction/InstructionWriter;
.super Lcom/tencent/tinker/android/dx/instruction/InstructionVisitor;
# instance fields
.field private final codeOut:Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;
.field private final hasPromoter:Z
.field private final insnPromoter:Lcom/tencent/tinker/android/dx/instruction/InstructionPromoter;
# direct methods
.method public constructor <init>(Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;Lcom/tencent/tinker/android/dx/instruction/InstructionPromoter;)V
.registers 4
const/4 v0, 0x0
invoke-direct {p0, v0}, Lcom/tencent/tinker/android/dx/instruction/InstructionVisitor;-><init>(Lcom/tencent/tinker/android/dx/instruction/InstructionVisitor;)V
iput-object p1, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionWriter;->codeOut:Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;
iput-object p2, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionWriter;->insnPromoter:Lcom/tencent/tinker/android/dx/instruction/InstructionPromoter;
if-eqz p2, :cond_e
const/4 v0, 0x1
:goto_b
iput-boolean v0, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionWriter;->hasPromoter:Z
return-void
:cond_e
const/4 v0, 0x0
goto :goto_b
.end method
# virtual methods
.method public visitFillArrayDataPayloadInsn(IILjava/lang/Object;II)V
.registers 9
int-to-short v0, p2
iget-object v1, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionWriter;->codeOut:Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;
invoke-virtual {v1, v0}, Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;->write(S)V
int-to-short v0, p5
iget-object v1, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionWriter;->codeOut:Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;
invoke-virtual {v1, v0}, Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;->write(S)V
iget-object v0, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionWriter;->codeOut:Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;
invoke-virtual {v0, p4}, Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;->writeInt(I)V
packed-switch p5, :pswitch_data_5a
:pswitch_14
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_32
iget-object v0, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionWriter;->codeOut:Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;
check-cast p3, [B
check-cast p3, [B
invoke-virtual {v0, p3}, Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;->write([B)V
:goto_3b
return-void
:pswitch_3c
iget-object v0, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionWriter;->codeOut:Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;
check-cast p3, [S
check-cast p3, [S
invoke-virtual {v0, p3}, Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;->write([S)V
goto :goto_3b
:pswitch_46
iget-object v0, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionWriter;->codeOut:Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;
check-cast p3, [I
check-cast p3, [I
invoke-virtual {v0, p3}, Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;->write([I)V
goto :goto_3b
:pswitch_50
iget-object v0, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionWriter;->codeOut:Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;
check-cast p3, [J
check-cast p3, [J
invoke-virtual {v0, p3}, Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;->write([J)V
goto :goto_3b
:pswitch_data_5a
.packed-switch 0x1
:pswitch_32
:pswitch_3c
:pswitch_14
:pswitch_46
:pswitch_14
:pswitch_14
:pswitch_14
:pswitch_50
.end packed-switch
.end method
.method public visitFiveRegisterInsn(IIIIIJIIIII)V
.registers 18
sparse-switch p2, :sswitch_data_38
new-instance v1, Ljava/lang/IllegalStateException;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string/jumbo v3, "unexpected opcode: "
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
invoke-static {p2}, Lcom/tencent/tinker/android/dx/util/Hex;->u2or4(I)Ljava/lang/String;
move-result-object v3
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-direct {v1, v2}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
throw v1
:sswitch_21
int-to-short v1, p3
iget-object v2, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionWriter;->codeOut:Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;
const/4 v3, 0x5
move/from16 v0, p12
invoke-static {v0, v3}, Lcom/tencent/tinker/android/dx/instruction/InstructionCodec;->makeByte(II)I
move-result v3
invoke-static {p2, v3}, Lcom/tencent/tinker/android/dx/instruction/InstructionCodec;->codeUnit(II)S
move-result v3
invoke-static/range {p8 .. p11}, Lcom/tencent/tinker/android/dx/instruction/InstructionCodec;->codeUnit(IIII)S
move-result v4
invoke-virtual {v2, v3, v1, v4}, Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;->write(SSS)V
return-void
nop
:sswitch_data_38
.sparse-switch
0x24 -> :sswitch_21
0x6e -> :sswitch_21
0x6f -> :sswitch_21
0x70 -> :sswitch_21
0x71 -> :sswitch_21
0x72 -> :sswitch_21
.end sparse-switch
.end method
.method public visitFourRegisterInsn(IIIIIJIIII)V
.registers 16
sparse-switch p2, :sswitch_data_36
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_21
int-to-short v0, p3
iget-object v1, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionWriter;->codeOut:Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;
const/4 v2, 0x0
const/4 v3, 0x4
invoke-static {v2, v3}, Lcom/tencent/tinker/android/dx/instruction/InstructionCodec;->makeByte(II)I
move-result v2
invoke-static {p2, v2}, Lcom/tencent/tinker/android/dx/instruction/InstructionCodec;->codeUnit(II)S
move-result v2
invoke-static {p8, p9, p10, p11}, Lcom/tencent/tinker/android/dx/instruction/InstructionCodec;->codeUnit(IIII)S
move-result v3
invoke-virtual {v1, v2, v0, v3}, Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;->write(SSS)V
return-void
:sswitch_data_36
.sparse-switch
0x24 -> :sswitch_21
0x6e -> :sswitch_21
0x6f -> :sswitch_21
0x70 -> :sswitch_21
0x71 -> :sswitch_21
0x72 -> :sswitch_21
.end sparse-switch
.end method
.method public visitOneRegisterInsn(IIIIIJI)V
.registers 15
const v1, 0xffff
const/4 v3, 0x0
iget-boolean v0, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionWriter;->hasPromoter:Z
if-eqz v0, :cond_e
iget-object v0, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionWriter;->insnPromoter:Lcom/tencent/tinker/android/dx/instruction/InstructionPromoter;
invoke-virtual {v0, p5}, Lcom/tencent/tinker/android/dx/instruction/InstructionPromoter;->getPromotedAddress(I)I
move-result p5
:cond_e
packed-switch p2, :pswitch_data_170
:pswitch_11
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_2f
int-to-short v0, p2
iget-object v1, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionWriter;->codeOut:Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;
invoke-static {p6, p7}, Lcom/tencent/tinker/android/dx/instruction/InstructionCodec;->getLiteralNibble(J)I
move-result v2
invoke-static {p8, v2}, Lcom/tencent/tinker/android/dx/instruction/InstructionCodec;->makeByte(II)I
move-result v2
invoke-static {v0, v2}, Lcom/tencent/tinker/android/dx/instruction/InstructionCodec;->codeUnit(II)S
move-result v0
invoke-virtual {v1, v0}, Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;->write(S)V
:goto_41
return-void
:pswitch_42
iget-object v0, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionWriter;->codeOut:Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;
invoke-static {p2, p8}, Lcom/tencent/tinker/android/dx/instruction/InstructionCodec;->codeUnit(II)S
move-result v1
invoke-virtual {v0, v1}, Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;->write(S)V
goto :goto_41
:pswitch_4c
iget-object v0, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionWriter;->codeOut:Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;
invoke-virtual {v0}, Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;->cursor()I
move-result v0
invoke-static {p5, v0}, Lcom/tencent/tinker/android/dx/instruction/InstructionCodec;->getTargetUnit(II)S
move-result v0
iget-object v1, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionWriter;->codeOut:Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;
invoke-static {p2, p8}, Lcom/tencent/tinker/android/dx/instruction/InstructionCodec;->codeUnit(II)S
move-result v2
invoke-virtual {v1, v2, v0}, Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;->write(SS)V
goto :goto_41
:pswitch_60
iget-object v0, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionWriter;->codeOut:Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;
invoke-static {p2, p8}, Lcom/tencent/tinker/android/dx/instruction/InstructionCodec;->codeUnit(II)S
move-result v1
invoke-static {p6, p7}, Lcom/tencent/tinker/android/dx/instruction/InstructionCodec;->getLiteralUnit(J)S
move-result v2
invoke-virtual {v0, v1, v2}, Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;->write(SS)V
goto :goto_41
:pswitch_6e
const/16 v0, 0x15
if-ne p2, v0, :cond_82
const/16 v0, 0x10
:goto_74
shr-long v0, p6, v0
long-to-int v0, v0
int-to-short v0, v0
iget-object v1, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionWriter;->codeOut:Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;
invoke-static {p2, p8}, Lcom/tencent/tinker/android/dx/instruction/InstructionCodec;->codeUnit(II)S
move-result v2
invoke-virtual {v1, v2, v0}, Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;->write(SS)V
goto :goto_41
:cond_82
const/16 v0, 0x30
goto :goto_74
:pswitch_85
iget-boolean v0, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionWriter;->hasPromoter:Z
if-eqz v0, :cond_aa
if-le p3, v1, :cond_9f
iget-object v0, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionWriter;->codeOut:Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;
const/16 v1, 0x1b
invoke-static {v1, p8}, Lcom/tencent/tinker/android/dx/instruction/InstructionCodec;->codeUnit(II)S
move-result v1
invoke-static {p3}, Lcom/tencent/tinker/android/dx/instruction/InstructionCodec;->unit0(I)S
move-result v2
invoke-static {p3}, Lcom/tencent/tinker/android/dx/instruction/InstructionCodec;->unit1(I)S
move-result v3
invoke-virtual {v0, v1, v2, v3}, Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;->write(SSS)V
goto :goto_41
:cond_9f
int-to-short v0, p3
iget-object v1, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionWriter;->codeOut:Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;
invoke-static {p2, p8}, Lcom/tencent/tinker/android/dx/instruction/InstructionCodec;->codeUnit(II)S
move-result v2
invoke-virtual {v1, v2, v0}, Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;->write(SS)V
goto :goto_41
:cond_aa
if-le p3, v1, :cond_d1
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, "string index out of bound: "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-static {p3}, Lcom/tencent/tinker/android/dx/util/Hex;->u4(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
const-string/jumbo v2, ", perhaps you need to enable force jumbo mode."
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
:cond_d1
int-to-short v0, p3
iget-object v1, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionWriter;->codeOut:Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;
invoke-static {p2, p8}, Lcom/tencent/tinker/android/dx/instruction/InstructionCodec;->codeUnit(II)S
move-result v2
invoke-virtual {v1, v2, v0}, Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;->write(SS)V
goto/16 :goto_41
:pswitch_dd
int-to-short v0, p3
iget-object v1, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionWriter;->codeOut:Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;
invoke-static {p2, p8}, Lcom/tencent/tinker/android/dx/instruction/InstructionCodec;->codeUnit(II)S
move-result v2
invoke-virtual {v1, v2, v0}, Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;->write(SS)V
goto/16 :goto_41
:pswitch_e9
invoke-static {p6, p7}, Lcom/tencent/tinker/android/dx/instruction/InstructionCodec;->getLiteralInt(J)I
move-result v0
iget-object v1, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionWriter;->codeOut:Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;
invoke-static {p2, p8}, Lcom/tencent/tinker/android/dx/instruction/InstructionCodec;->codeUnit(II)S
move-result v2
invoke-static {v0}, Lcom/tencent/tinker/android/dx/instruction/InstructionCodec;->unit0(I)S
move-result v3
invoke-static {v0}, Lcom/tencent/tinker/android/dx/instruction/InstructionCodec;->unit1(I)S
move-result v0
invoke-virtual {v1, v2, v3, v0}, Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;->write(SSS)V
goto/16 :goto_41
:pswitch_100
packed-switch p2, :pswitch_data_246
:goto_103
iget-object v0, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionWriter;->codeOut:Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;
invoke-virtual {v0}, Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;->cursor()I
move-result v0
invoke-static {p5, v0}, Lcom/tencent/tinker/android/dx/instruction/InstructionCodec;->getTarget(II)I
move-result v0
iget-object v1, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionWriter;->codeOut:Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;
invoke-static {p2, p8}, Lcom/tencent/tinker/android/dx/instruction/InstructionCodec;->codeUnit(II)S
move-result v2
invoke-static {v0}, Lcom/tencent/tinker/android/dx/instruction/InstructionCodec;->unit0(I)S
move-result v3
invoke-static {v0}, Lcom/tencent/tinker/android/dx/instruction/InstructionCodec;->unit1(I)S
move-result v0
invoke-virtual {v1, v2, v3, v0}, Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;->write(SSS)V
goto/16 :goto_41
:pswitch_120
iget-object v0, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionWriter;->codeOut:Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;
iget-object v1, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionWriter;->codeOut:Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;
invoke-virtual {v1}, Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;->cursor()I
move-result v1
invoke-virtual {v0, p5, v1}, Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;->setBaseAddress(II)V
goto :goto_103
:pswitch_12c
iget-object v0, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionWriter;->codeOut:Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;
invoke-static {p2, p8}, Lcom/tencent/tinker/android/dx/instruction/InstructionCodec;->codeUnit(II)S
move-result v1
invoke-static {p3}, Lcom/tencent/tinker/android/dx/instruction/InstructionCodec;->unit0(I)S
move-result v2
invoke-static {p3}, Lcom/tencent/tinker/android/dx/instruction/InstructionCodec;->unit1(I)S
move-result v3
invoke-virtual {v0, v1, v2, v3}, Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;->write(SSS)V
goto/16 :goto_41
:pswitch_13f
iget-object v0, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionWriter;->codeOut:Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;
invoke-static {p2, p8}, Lcom/tencent/tinker/android/dx/instruction/InstructionCodec;->codeUnit(II)S
move-result v1
invoke-static {p6, p7}, Lcom/tencent/tinker/android/dx/instruction/InstructionCodec;->unit0(J)S
move-result v2
invoke-static {p6, p7}, Lcom/tencent/tinker/android/dx/instruction/InstructionCodec;->unit1(J)S
move-result v3
invoke-static {p6, p7}, Lcom/tencent/tinker/android/dx/instruction/InstructionCodec;->unit2(J)S
move-result v4
invoke-static {p6, p7}, Lcom/tencent/tinker/android/dx/instruction/InstructionCodec;->unit3(J)S
move-result v5
invoke-virtual/range {v0 .. v5}, Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;->write(SSSSS)V
goto/16 :goto_41
:pswitch_15a
int-to-short v0, p3
iget-object v1, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionWriter;->codeOut:Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;
const/4 v2, 0x1
invoke-static {v3, v2}, Lcom/tencent/tinker/android/dx/instruction/InstructionCodec;->makeByte(II)I
move-result v2
invoke-static {p2, v2}, Lcom/tencent/tinker/android/dx/instruction/InstructionCodec;->codeUnit(II)S
move-result v2
invoke-static {p8, v3, v3, v3}, Lcom/tencent/tinker/android/dx/instruction/InstructionCodec;->codeUnit(IIII)S
move-result v3
invoke-virtual {v1, v2, v0, v3}, Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;->write(SSS)V
goto/16 :goto_41
nop
:pswitch_data_170
.packed-switch 0xa
:pswitch_42
:pswitch_42
:pswitch_42
:pswitch_42
:pswitch_11
:pswitch_42
:pswitch_42
:pswitch_42
:pswitch_2f
:pswitch_60
:pswitch_e9
:pswitch_6e
:pswitch_60
:pswitch_e9
:pswitch_13f
:pswitch_6e
:pswitch_85
:pswitch_12c
:pswitch_dd
:pswitch_42
:pswitch_42
:pswitch_dd
:pswitch_11
:pswitch_11
:pswitch_dd
:pswitch_11
:pswitch_15a
:pswitch_11
:pswitch_100
:pswitch_42
:pswitch_11
:pswitch_11
:pswitch_11
:pswitch_100
:pswitch_100
:pswitch_11
:pswitch_11
:pswitch_11
:pswitch_11
:pswitch_11
:pswitch_11
:pswitch_11
:pswitch_11
:pswitch_11
:pswitch_11
:pswitch_11
:pswitch_4c
:pswitch_4c
:pswitch_4c
:pswitch_4c
:pswitch_4c
:pswitch_4c
:pswitch_11
:pswitch_11
:pswitch_11
:pswitch_11
:pswitch_11
:pswitch_11
:pswitch_11
:pswitch_11
:pswitch_11
:pswitch_11
:pswitch_11
:pswitch_11
:pswitch_11
:pswitch_11
:pswitch_11
:pswitch_11
:pswitch_11
:pswitch_11
:pswitch_11
:pswitch_11
:pswitch_11
:pswitch_11
:pswitch_11
:pswitch_11
:pswitch_11
:pswitch_11
:pswitch_11
:pswitch_11
:pswitch_11
:pswitch_11
:pswitch_11
:pswitch_11
:pswitch_11
:pswitch_11
:pswitch_dd
:pswitch_dd
:pswitch_dd
:pswitch_dd
:pswitch_dd
:pswitch_dd
:pswitch_dd
:pswitch_dd
:pswitch_dd
:pswitch_dd
:pswitch_dd
:pswitch_dd
:pswitch_dd
:pswitch_dd
:pswitch_15a
:pswitch_15a
:pswitch_15a
:pswitch_15a
:pswitch_15a
.end packed-switch
:pswitch_data_246
.packed-switch 0x2b
:pswitch_120
:pswitch_120
.end packed-switch
.end method
.method public visitPackedSwitchPayloadInsn(III[I)V
.registers 10
const/4 v0, 0x0
iget-object v1, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionWriter;->codeOut:Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;
invoke-virtual {v1}, Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;->baseAddressForCursor()I
move-result v1
int-to-short v2, p2
iget-object v3, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionWriter;->codeOut:Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;
invoke-virtual {v3, v2}, Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;->write(S)V
iget-object v2, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionWriter;->codeOut:Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;
array-length v3, p4
invoke-static {v3}, Lcom/tencent/tinker/android/dx/instruction/InstructionCodec;->asUnsignedUnit(I)S
move-result v3
invoke-virtual {v2, v3}, Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;->write(S)V
iget-object v2, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionWriter;->codeOut:Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;
invoke-virtual {v2, p3}, Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;->writeInt(I)V
iget-boolean v2, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionWriter;->hasPromoter:Z
if-eqz v2, :cond_34
array-length v2, p4
:goto_21
if-ge v0, v2, :cond_42
aget v3, p4, v0
iget-object v4, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionWriter;->insnPromoter:Lcom/tencent/tinker/android/dx/instruction/InstructionPromoter;
invoke-virtual {v4, v3}, Lcom/tencent/tinker/android/dx/instruction/InstructionPromoter;->getPromotedAddress(I)I
move-result v3
iget-object v4, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionWriter;->codeOut:Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;
sub-int/2addr v3, v1
invoke-virtual {v4, v3}, Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;->writeInt(I)V
add-int/lit8 v0, v0, 0x1
goto :goto_21
:cond_34
array-length v2, p4
:goto_35
if-ge v0, v2, :cond_42
aget v3, p4, v0
iget-object v4, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionWriter;->codeOut:Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;
sub-int/2addr v3, v1
invoke-virtual {v4, v3}, Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;->writeInt(I)V
add-int/lit8 v0, v0, 0x1
goto :goto_35
:cond_42
return-void
.end method
.method public visitRegisterRangeInsn(IIIIIJII)V
.registers 14
sparse-switch p2, :sswitch_data_30
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_21
int-to-short v0, p3
iget-object v1, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionWriter;->codeOut:Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;
invoke-static {p2, p9}, Lcom/tencent/tinker/android/dx/instruction/InstructionCodec;->codeUnit(II)S
move-result v2
invoke-static {p8}, Lcom/tencent/tinker/android/dx/instruction/InstructionCodec;->getAUnit(I)S
move-result v3
invoke-virtual {v1, v2, v0, v3}, Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;->write(SSS)V
return-void
:sswitch_data_30
.sparse-switch
0x25 -> :sswitch_21
0x74 -> :sswitch_21
0x75 -> :sswitch_21
0x76 -> :sswitch_21
0x77 -> :sswitch_21
0x78 -> :sswitch_21
.end sparse-switch
.end method
.method public visitSparseSwitchPayloadInsn(II[I[I)V
.registers 11
const/4 v0, 0x0
iget-object v1, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionWriter;->codeOut:Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;
invoke-virtual {v1}, Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;->baseAddressForCursor()I
move-result v2
int-to-short v1, p2
iget-object v3, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionWriter;->codeOut:Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;
invoke-virtual {v3, v1}, Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;->write(S)V
iget-object v1, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionWriter;->codeOut:Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;
array-length v3, p4
invoke-static {v3}, Lcom/tencent/tinker/android/dx/instruction/InstructionCodec;->asUnsignedUnit(I)S
move-result v3
invoke-virtual {v1, v3}, Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;->write(S)V
array-length v3, p3
move v1, v0
:goto_19
if-ge v1, v3, :cond_25
aget v4, p3, v1
iget-object v5, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionWriter;->codeOut:Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;
invoke-virtual {v5, v4}, Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;->writeInt(I)V
add-int/lit8 v1, v1, 0x1
goto :goto_19
:cond_25
iget-boolean v1, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionWriter;->hasPromoter:Z
if-eqz v1, :cond_3d
array-length v1, p4
:goto_2a
if-ge v0, v1, :cond_4b
aget v3, p4, v0
iget-object v4, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionWriter;->insnPromoter:Lcom/tencent/tinker/android/dx/instruction/InstructionPromoter;
invoke-virtual {v4, v3}, Lcom/tencent/tinker/android/dx/instruction/InstructionPromoter;->getPromotedAddress(I)I
move-result v3
iget-object v4, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionWriter;->codeOut:Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;
sub-int/2addr v3, v2
invoke-virtual {v4, v3}, Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;->writeInt(I)V
add-int/lit8 v0, v0, 0x1
goto :goto_2a
:cond_3d
array-length v1, p4
:goto_3e
if-ge v0, v1, :cond_4b
aget v3, p4, v0
iget-object v4, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionWriter;->codeOut:Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;
sub-int/2addr v3, v2
invoke-virtual {v4, v3}, Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;->writeInt(I)V
add-int/lit8 v0, v0, 0x1
goto :goto_3e
:cond_4b
return-void
.end method
.method public visitThreeRegisterInsn(IIIIIJIII)V
.registers 15
const/4 v3, 0x0
packed-switch p2, :pswitch_data_44
:pswitch_4
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_22
iget-object v0, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionWriter;->codeOut:Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;
invoke-static {p2, p8}, Lcom/tencent/tinker/android/dx/instruction/InstructionCodec;->codeUnit(II)S
move-result v1
invoke-static {p9, p10}, Lcom/tencent/tinker/android/dx/instruction/InstructionCodec;->codeUnit(II)S
move-result v2
invoke-virtual {v0, v1, v2}, Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;->write(SS)V
:goto_2f
return-void
:pswitch_30
int-to-short v0, p3
iget-object v1, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionWriter;->codeOut:Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;
const/4 v2, 0x3
invoke-static {v3, v2}, Lcom/tencent/tinker/android/dx/instruction/InstructionCodec;->makeByte(II)I
move-result v2
invoke-static {p2, v2}, Lcom/tencent/tinker/android/dx/instruction/InstructionCodec;->codeUnit(II)S
move-result v2
invoke-static {p8, p9, p10, v3}, Lcom/tencent/tinker/android/dx/instruction/InstructionCodec;->codeUnit(IIII)S
move-result v3
invoke-virtual {v1, v2, v0, v3}, Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;->write(SSS)V
goto :goto_2f
:pswitch_data_44
.packed-switch 0x24
:pswitch_30
:pswitch_4
:pswitch_4
:pswitch_4
:pswitch_4
:pswitch_4
:pswitch_4
:pswitch_4
:pswitch_4
:pswitch_22
:pswitch_22
:pswitch_22
:pswitch_22
:pswitch_22
:pswitch_4
:pswitch_4
:pswitch_4
:pswitch_4
:pswitch_4
:pswitch_4
:pswitch_4
:pswitch_4
:pswitch_4
:pswitch_4
:pswitch_4
:pswitch_4
:pswitch_4
:pswitch_4
:pswitch_4
:pswitch_4
:pswitch_4
:pswitch_4
:pswitch_22
:pswitch_22
:pswitch_22
:pswitch_22
:pswitch_22
:pswitch_22
:pswitch_22
:pswitch_22
:pswitch_22
:pswitch_22
:pswitch_22
:pswitch_22
:pswitch_22
:pswitch_22
:pswitch_4
:pswitch_4
:pswitch_4
:pswitch_4
:pswitch_4
:pswitch_4
:pswitch_4
:pswitch_4
:pswitch_4
:pswitch_4
:pswitch_4
:pswitch_4
:pswitch_4
:pswitch_4
:pswitch_4
:pswitch_4
:pswitch_4
:pswitch_4
:pswitch_4
:pswitch_4
:pswitch_4
:pswitch_4
:pswitch_4
:pswitch_4
:pswitch_4
:pswitch_4
:pswitch_4
:pswitch_4
:pswitch_30
:pswitch_30
:pswitch_30
:pswitch_30
:pswitch_30
:pswitch_4
:pswitch_4
:pswitch_4
:pswitch_4
:pswitch_4
:pswitch_4
:pswitch_4
:pswitch_4
:pswitch_4
:pswitch_4
:pswitch_4
:pswitch_4
:pswitch_4
:pswitch_4
:pswitch_4
:pswitch_4
:pswitch_4
:pswitch_4
:pswitch_4
:pswitch_4
:pswitch_4
:pswitch_4
:pswitch_4
:pswitch_4
:pswitch_4
:pswitch_4
:pswitch_4
:pswitch_4
:pswitch_4
:pswitch_22
:pswitch_22
:pswitch_22
:pswitch_22
:pswitch_22
:pswitch_22
:pswitch_22
:pswitch_22
:pswitch_22
:pswitch_22
:pswitch_22
:pswitch_22
:pswitch_22
:pswitch_22
:pswitch_22
:pswitch_22
:pswitch_22
:pswitch_22
:pswitch_22
:pswitch_22
:pswitch_22
:pswitch_22
:pswitch_22
:pswitch_22
:pswitch_22
:pswitch_22
:pswitch_22
:pswitch_22
:pswitch_22
:pswitch_22
:pswitch_22
:pswitch_22
.end packed-switch
.end method
.method public visitTwoRegisterInsn(IIIIIJII)V
.registers 14
const/4 v3, 0x0
iget-boolean v0, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionWriter;->hasPromoter:Z
if-eqz v0, :cond_b
iget-object v0, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionWriter;->insnPromoter:Lcom/tencent/tinker/android/dx/instruction/InstructionPromoter;
invoke-virtual {v0, p5}, Lcom/tencent/tinker/android/dx/instruction/InstructionPromoter;->getPromotedAddress(I)I
move-result p5
:cond_b
packed-switch p2, :pswitch_data_b8
:pswitch_e
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_2c
int-to-short v0, p2
iget-object v1, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionWriter;->codeOut:Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;
invoke-static {p8, p9}, Lcom/tencent/tinker/android/dx/instruction/InstructionCodec;->makeByte(II)I
move-result v2
invoke-static {v0, v2}, Lcom/tencent/tinker/android/dx/instruction/InstructionCodec;->codeUnit(II)S
move-result v0
invoke-virtual {v1, v0}, Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;->write(S)V
:goto_3a
return-void
:pswitch_3b
iget-object v0, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionWriter;->codeOut:Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;
invoke-static {p2, p8}, Lcom/tencent/tinker/android/dx/instruction/InstructionCodec;->codeUnit(II)S
move-result v1
invoke-static {p9}, Lcom/tencent/tinker/android/dx/instruction/InstructionCodec;->getBUnit(I)S
move-result v2
invoke-virtual {v0, v1, v2}, Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;->write(SS)V
goto :goto_3a
:pswitch_49
iget-object v0, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionWriter;->codeOut:Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;
invoke-static {p2, p8}, Lcom/tencent/tinker/android/dx/instruction/InstructionCodec;->codeUnit(II)S
move-result v1
invoke-static {p6, p7}, Lcom/tencent/tinker/android/dx/instruction/InstructionCodec;->getLiteralByte(J)I
move-result v2
invoke-static {p9, v2}, Lcom/tencent/tinker/android/dx/instruction/InstructionCodec;->codeUnit(II)S
move-result v2
invoke-virtual {v0, v1, v2}, Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;->write(SS)V
goto :goto_3a
:pswitch_5b
iget-object v0, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionWriter;->codeOut:Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;
invoke-virtual {v0}, Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;->cursor()I
move-result v0
invoke-static {p5, v0}, Lcom/tencent/tinker/android/dx/instruction/InstructionCodec;->getTargetUnit(II)S
move-result v0
iget-object v1, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionWriter;->codeOut:Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;
invoke-static {p8, p9}, Lcom/tencent/tinker/android/dx/instruction/InstructionCodec;->makeByte(II)I
move-result v2
invoke-static {p2, v2}, Lcom/tencent/tinker/android/dx/instruction/InstructionCodec;->codeUnit(II)S
move-result v2
invoke-virtual {v1, v2, v0}, Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;->write(SS)V
goto :goto_3a
:pswitch_73
iget-object v0, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionWriter;->codeOut:Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;
invoke-static {p8, p9}, Lcom/tencent/tinker/android/dx/instruction/InstructionCodec;->makeByte(II)I
move-result v1
invoke-static {p2, v1}, Lcom/tencent/tinker/android/dx/instruction/InstructionCodec;->codeUnit(II)S
move-result v1
invoke-static {p6, p7}, Lcom/tencent/tinker/android/dx/instruction/InstructionCodec;->getLiteralUnit(J)S
move-result v2
invoke-virtual {v0, v1, v2}, Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;->write(SS)V
goto :goto_3a
:pswitch_85
int-to-short v0, p3
iget-object v1, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionWriter;->codeOut:Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;
invoke-static {p8, p9}, Lcom/tencent/tinker/android/dx/instruction/InstructionCodec;->makeByte(II)I
move-result v2
invoke-static {p2, v2}, Lcom/tencent/tinker/android/dx/instruction/InstructionCodec;->codeUnit(II)S
move-result v2
invoke-virtual {v1, v2, v0}, Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;->write(SS)V
goto :goto_3a
:pswitch_94
int-to-short v0, p2
iget-object v1, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionWriter;->codeOut:Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;
invoke-static {p8}, Lcom/tencent/tinker/android/dx/instruction/InstructionCodec;->getAUnit(I)S
move-result v2
invoke-static {p9}, Lcom/tencent/tinker/android/dx/instruction/InstructionCodec;->getBUnit(I)S
move-result v3
invoke-virtual {v1, v0, v2, v3}, Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;->write(SSS)V
goto :goto_3a
:pswitch_a3
int-to-short v0, p3
iget-object v1, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionWriter;->codeOut:Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;
const/4 v2, 0x2
invoke-static {v3, v2}, Lcom/tencent/tinker/android/dx/instruction/InstructionCodec;->makeByte(II)I
move-result v2
invoke-static {p2, v2}, Lcom/tencent/tinker/android/dx/instruction/InstructionCodec;->codeUnit(II)S
move-result v2
invoke-static {p8, p9, v3, v3}, Lcom/tencent/tinker/android/dx/instruction/InstructionCodec;->codeUnit(IIII)S
move-result v3
invoke-virtual {v1, v2, v0, v3}, Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;->write(SSS)V
goto :goto_3a
nop
:pswitch_data_b8
.packed-switch 0x1
:pswitch_2c
:pswitch_3b
:pswitch_94
:pswitch_2c
:pswitch_3b
:pswitch_94
:pswitch_2c
:pswitch_3b
:pswitch_94
:pswitch_e
:pswitch_e
:pswitch_e
:pswitch_e
:pswitch_e
:pswitch_e
:pswitch_e
:pswitch_e
:pswitch_e
:pswitch_e
:pswitch_e
:pswitch_e
:pswitch_e
:pswitch_e
:pswitch_e
:pswitch_e
:pswitch_e
:pswitch_e
:pswitch_e
:pswitch_e
:pswitch_e
:pswitch_e
:pswitch_85
:pswitch_2c
:pswitch_e
:pswitch_85
:pswitch_a3
:pswitch_e
:pswitch_e
:pswitch_e
:pswitch_e
:pswitch_e
:pswitch_e
:pswitch_e
:pswitch_e
:pswitch_e
:pswitch_e
:pswitch_e
:pswitch_e
:pswitch_e
:pswitch_5b
:pswitch_5b
:pswitch_5b
:pswitch_5b
:pswitch_5b
:pswitch_5b
:pswitch_e
:pswitch_e
:pswitch_e
:pswitch_e
:pswitch_e
:pswitch_e
:pswitch_e
:pswitch_e
:pswitch_e
:pswitch_e
:pswitch_e
:pswitch_e
:pswitch_e
:pswitch_e
:pswitch_e
:pswitch_e
:pswitch_e
:pswitch_e
:pswitch_e
:pswitch_e
:pswitch_e
:pswitch_e
:pswitch_e
:pswitch_e
:pswitch_e
:pswitch_e
:pswitch_85
:pswitch_85
:pswitch_85
:pswitch_85
:pswitch_85
:pswitch_85
:pswitch_85
:pswitch_85
:pswitch_85
:pswitch_85
:pswitch_85
:pswitch_85
:pswitch_85
:pswitch_85
:pswitch_e
:pswitch_e
:pswitch_e
:pswitch_e
:pswitch_e
:pswitch_e
:pswitch_e
:pswitch_e
:pswitch_e
:pswitch_e
:pswitch_e
:pswitch_e
:pswitch_e
:pswitch_e
:pswitch_a3
:pswitch_a3
:pswitch_a3
:pswitch_a3
:pswitch_a3
:pswitch_e
:pswitch_e
:pswitch_e
:pswitch_e
:pswitch_e
:pswitch_e
:pswitch_e
:pswitch_e
:pswitch_2c
:pswitch_2c
:pswitch_2c
:pswitch_2c
:pswitch_2c
:pswitch_2c
:pswitch_2c
:pswitch_2c
:pswitch_2c
:pswitch_2c
:pswitch_2c
:pswitch_2c
:pswitch_2c
:pswitch_2c
:pswitch_2c
:pswitch_2c
:pswitch_2c
:pswitch_2c
:pswitch_2c
:pswitch_2c
:pswitch_2c
:pswitch_e
:pswitch_e
:pswitch_e
:pswitch_e
:pswitch_e
:pswitch_e
:pswitch_e
:pswitch_e
:pswitch_e
:pswitch_e
:pswitch_e
:pswitch_e
:pswitch_e
:pswitch_e
:pswitch_e
:pswitch_e
:pswitch_e
:pswitch_e
:pswitch_e
:pswitch_e
:pswitch_e
:pswitch_e
:pswitch_e
:pswitch_e
:pswitch_e
:pswitch_e
:pswitch_e
:pswitch_e
:pswitch_e
:pswitch_e
:pswitch_e
:pswitch_e
:pswitch_2c
:pswitch_2c
:pswitch_2c
:pswitch_2c
:pswitch_2c
:pswitch_2c
:pswitch_2c
:pswitch_2c
:pswitch_2c
:pswitch_2c
:pswitch_2c
:pswitch_2c
:pswitch_2c
:pswitch_2c
:pswitch_2c
:pswitch_2c
:pswitch_2c
:pswitch_2c
:pswitch_2c
:pswitch_2c
:pswitch_2c
:pswitch_2c
:pswitch_2c
:pswitch_2c
:pswitch_2c
:pswitch_2c
:pswitch_2c
:pswitch_2c
:pswitch_2c
:pswitch_2c
:pswitch_2c
:pswitch_2c
:pswitch_73
:pswitch_73
:pswitch_73
:pswitch_73
:pswitch_73
:pswitch_73
:pswitch_73
:pswitch_73
:pswitch_49
:pswitch_49
:pswitch_49
:pswitch_49
:pswitch_49
:pswitch_49
:pswitch_49
:pswitch_49
:pswitch_49
:pswitch_49
:pswitch_49
.end packed-switch
.end method
.method public visitZeroRegisterInsn(IIIIIJ)V
.registers 13
const/16 v4, 0x2a
const/4 v3, 0x0
iget-boolean v0, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionWriter;->hasPromoter:Z
if-eqz v0, :cond_d
iget-object v0, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionWriter;->insnPromoter:Lcom/tencent/tinker/android/dx/instruction/InstructionPromoter;
invoke-virtual {v0, p5}, Lcom/tencent/tinker/android/dx/instruction/InstructionPromoter;->getPromotedAddress(I)I
move-result p5
:cond_d
sparse-switch p2, :sswitch_data_e8
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_2e
int-to-short v0, p2
iget-object v1, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionWriter;->codeOut:Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;
invoke-virtual {v1, v0}, Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;->write(S)V
:goto_34
return-void
:sswitch_35
iget-boolean v0, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionWriter;->hasPromoter:Z
if-eqz v0, :cond_6c
iget-object v0, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionWriter;->codeOut:Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;
invoke-virtual {v0}, Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;->cursor()I
move-result v0
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_60
int-to-short v1, v0
if-eq v0, v1, :cond_57
iget-object v1, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionWriter;->codeOut:Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;
invoke-static {v0}, Lcom/tencent/tinker/android/dx/instruction/InstructionCodec;->unit0(I)S
move-result v2
invoke-static {v0}, Lcom/tencent/tinker/android/dx/instruction/InstructionCodec;->unit1(I)S
move-result v0
invoke-virtual {v1, v4, v2, v0}, Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;->write(SSS)V
goto :goto_34
:cond_57
int-to-short v0, v0
const/16 v1, 0x29
iget-object v2, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionWriter;->codeOut:Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;
invoke-virtual {v2, v1, v0}, Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;->write(SS)V
goto :goto_34
:cond_60
and-int/lit16 v0, v0, 0xff
iget-object v1, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionWriter;->codeOut:Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;
invoke-static {p2, v0}, Lcom/tencent/tinker/android/dx/instruction/InstructionCodec;->codeUnit(II)S
move-result v0
invoke-virtual {v1, v0}, Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;->write(S)V
goto :goto_34
:cond_6c
iget-object v0, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionWriter;->codeOut:Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;
invoke-virtual {v0}, Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;->cursor()I
move-result v0
invoke-static {p5, v0}, Lcom/tencent/tinker/android/dx/instruction/InstructionCodec;->getTargetByte(II)I
move-result v0
iget-object v1, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionWriter;->codeOut:Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;
invoke-static {p2, v0}, Lcom/tencent/tinker/android/dx/instruction/InstructionCodec;->codeUnit(II)S
move-result v0
invoke-virtual {v1, v0}, Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;->write(S)V
goto :goto_34
:sswitch_80
iget-boolean v0, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionWriter;->hasPromoter:Z
if-eqz v0, :cond_a7
iget-object v0, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionWriter;->codeOut:Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;
invoke-virtual {v0}, Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;->cursor()I
move-result v0
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_9f
iget-object v1, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionWriter;->codeOut:Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;
invoke-static {v0}, Lcom/tencent/tinker/android/dx/instruction/InstructionCodec;->unit0(I)S
move-result v2
invoke-static {v0}, Lcom/tencent/tinker/android/dx/instruction/InstructionCodec;->unit1(I)S
move-result v0
invoke-virtual {v1, v4, v2, v0}, Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;->write(SSS)V
goto :goto_34
:cond_9f
int-to-short v0, v0
int-to-short v1, p2
iget-object v2, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionWriter;->codeOut:Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;
invoke-virtual {v2, v1, v0}, Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;->write(SS)V
goto :goto_34
:cond_a7
iget-object v0, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionWriter;->codeOut:Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;
invoke-virtual {v0}, Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;->cursor()I
move-result v0
invoke-static {p5, v0}, Lcom/tencent/tinker/android/dx/instruction/InstructionCodec;->getTargetUnit(II)S
move-result v0
int-to-short v1, p2
iget-object v2, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionWriter;->codeOut:Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;
invoke-virtual {v2, v1, v0}, Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;->write(SS)V
goto/16 :goto_34
:sswitch_b9
iget-object v0, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionWriter;->codeOut:Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;
invoke-virtual {v0}, Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;->cursor()I
move-result v0
invoke-static {p5, v0}, Lcom/tencent/tinker/android/dx/instruction/InstructionCodec;->getTarget(II)I
move-result v0
int-to-short v1, p2
iget-object v2, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionWriter;->codeOut:Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;
invoke-static {v0}, Lcom/tencent/tinker/android/dx/instruction/InstructionCodec;->unit0(I)S
move-result v3
invoke-static {v0}, Lcom/tencent/tinker/android/dx/instruction/InstructionCodec;->unit1(I)S
move-result v0
invoke-virtual {v2, v1, v3, v0}, Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;->write(SSS)V
goto/16 :goto_34
:sswitch_d3
int-to-short v0, p3
iget-object v1, p0, Lcom/tencent/tinker/android/dx/instruction/InstructionWriter;->codeOut:Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;
invoke-static {v3, v3}, Lcom/tencent/tinker/android/dx/instruction/InstructionCodec;->makeByte(II)I
move-result v2
invoke-static {p2, v2}, Lcom/tencent/tinker/android/dx/instruction/InstructionCodec;->codeUnit(II)S
move-result v2
invoke-static {v3, v3, v3, v3}, Lcom/tencent/tinker/android/dx/instruction/InstructionCodec;->codeUnit(IIII)S
move-result v3
invoke-virtual {v1, v2, v0, v3}, Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;->write(SSS)V
goto/16 :goto_34
nop
:sswitch_data_e8
.sparse-switch
-0x1 -> :sswitch_2e
0x0 -> :sswitch_2e
0xe -> :sswitch_2e
0x24 -> :sswitch_d3
0x28 -> :sswitch_35
0x29 -> :sswitch_80
0x2a -> :sswitch_b9
0x6e -> :sswitch_d3
0x6f -> :sswitch_d3
0x70 -> :sswitch_d3
0x71 -> :sswitch_d3
0x72 -> :sswitch_d3
.end sparse-switch
.end method