mirror of
https://github.com/revanced/smali.git
synced 2025-05-25 10:42:06 +02:00
converted the labels in the deodex tests to the new label format
git-svn-id: https://smali.googlecode.com/svn/trunk@492 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
This commit is contained in:
parent
a5fb30849d
commit
8555ce95d5
@ -5,15 +5,15 @@
|
|||||||
.method public static main([Ljava/lang/String;)V
|
.method public static main([Ljava/lang/String;)V
|
||||||
.registers 3
|
.registers 3
|
||||||
|
|
||||||
here4:
|
:here4
|
||||||
const v0, 0
|
const v0, 0
|
||||||
|
|
||||||
here3:
|
:here3
|
||||||
|
|
||||||
new-instance v2, Lsuperclass;
|
new-instance v2, Lsuperclass;
|
||||||
invoke-direct {v2}, Lsuperclass;-><init>()V
|
invoke-direct {v2}, Lsuperclass;-><init>()V
|
||||||
|
|
||||||
if-eqz v0, here2:
|
if-eqz v0, :here2
|
||||||
|
|
||||||
|
|
||||||
#this is the unresolvable instruction. v0 is always null,
|
#this is the unresolvable instruction. v0 is always null,
|
||||||
@ -32,42 +32,42 @@
|
|||||||
#a branch to outside the dead code. The branch label should not
|
#a branch to outside the dead code. The branch label should not
|
||||||
#be commented out, because there is a non-dead instruction
|
#be commented out, because there is a non-dead instruction
|
||||||
#that branches to it
|
#that branches to it
|
||||||
if-eqz v0, here2:
|
if-eqz v0, :here2
|
||||||
|
|
||||||
|
|
||||||
#a branch to inside the dead code. the branch label should be
|
#a branch to inside the dead code. the branch label should be
|
||||||
#commented out
|
#commented out
|
||||||
if-eqz v0, here:
|
if-eqz v0, :here
|
||||||
|
|
||||||
#another branch to outside the dead code. In this case, the "dead"
|
#another branch to outside the dead code. In this case, the "dead"
|
||||||
#instruction is the first instruction that references the label.
|
#instruction is the first instruction that references the label.
|
||||||
#the label should not be commented out, because it is referenced
|
#the label should not be commented out, because it is referenced
|
||||||
#be a non-dead instruction
|
#be a non-dead instruction
|
||||||
if-eqz v0, here3:
|
if-eqz v0, :here3
|
||||||
|
|
||||||
#one more branch to out the dead code. the branch label should be
|
#one more branch to out the dead code. the branch label should be
|
||||||
#commented out, because there are no other non-dead instructions
|
#commented out, because there are no other non-dead instructions
|
||||||
#referenceding it
|
#referenceding it
|
||||||
if-eqz v0, here4:
|
if-eqz v0, :here4
|
||||||
|
|
||||||
#another odexed instruction that uses the result of the
|
#another odexed instruction that uses the result of the
|
||||||
#first unresolveable odex instruction. this should
|
#first unresolveable odex instruction. this should
|
||||||
#appear as a commented invoke-virtual-quick instruction
|
#appear as a commented invoke-virtual-quick instruction
|
||||||
invoke-virtual {v1}, Lsuperclass;->somemethod()V
|
invoke-virtual {v1}, Lsuperclass;->somemethod()V
|
||||||
|
|
||||||
here:
|
:here
|
||||||
|
|
||||||
#a resolveable odex instruction in the dead code. It should be resolved,
|
#a resolveable odex instruction in the dead code. It should be resolved,
|
||||||
#but still commented out
|
#but still commented out
|
||||||
invoke-virtual {v2}, Lsuperclass;->somemethod()V
|
invoke-virtual {v2}, Lsuperclass;->somemethod()V
|
||||||
|
|
||||||
|
|
||||||
here2:
|
:here2
|
||||||
|
|
||||||
#and we're back to the non-dead code
|
#and we're back to the non-dead code
|
||||||
invoke-virtual {v2}, Lsuperclass;->somemethod()V
|
invoke-virtual {v2}, Lsuperclass;->somemethod()V
|
||||||
|
|
||||||
if-nez v0, here3:
|
if-nez v0, :here3
|
||||||
|
|
||||||
|
|
||||||
return-void
|
return-void
|
||||||
|
@ -15,12 +15,12 @@
|
|||||||
invoke-direct {v0}, Lsubclass1;-><init>()V
|
invoke-direct {v0}, Lsubclass1;-><init>()V
|
||||||
aput-object v0, v1, v4
|
aput-object v0, v1, v4
|
||||||
|
|
||||||
goto here2:
|
goto :here2
|
||||||
|
|
||||||
here:
|
:here
|
||||||
const v2, 1
|
const v2, 1
|
||||||
|
|
||||||
here2:
|
:here2
|
||||||
|
|
||||||
#this is tricky, because it has to merge two array types, [Lsubclass1; and [Lsubclass2
|
#this is tricky, because it has to merge two array types, [Lsubclass1; and [Lsubclass2
|
||||||
#which should result in [Lsuperclass;. However, this dex file won't have a reference
|
#which should result in [Lsuperclass;. However, this dex file won't have a reference
|
||||||
@ -35,7 +35,7 @@
|
|||||||
invoke-direct {v0}, Lsubclass2;-><init>()V
|
invoke-direct {v0}, Lsubclass2;-><init>()V
|
||||||
aput-object v0, v1, v4
|
aput-object v0, v1, v4
|
||||||
|
|
||||||
if-eqz v2, here:
|
if-eqz v2, :here
|
||||||
|
|
||||||
return-void
|
return-void
|
||||||
.end method
|
.end method
|
Loading…
x
Reference in New Issue
Block a user