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:
JesusFreke@JesusFreke.com 2009-12-01 08:13:57 +00:00
parent a5fb30849d
commit 8555ce95d5
2 changed files with 14 additions and 14 deletions

View File

@ -5,15 +5,15 @@
.method public static main([Ljava/lang/String;)V
.registers 3
here4:
:here4
const v0, 0
here3:
:here3
new-instance v2, Lsuperclass;
invoke-direct {v2}, Lsuperclass;-><init>()V
if-eqz v0, here2:
if-eqz v0, :here2
#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
#be commented out, because there is a non-dead instruction
#that branches to it
if-eqz v0, here2:
if-eqz v0, :here2
#a branch to inside the dead code. the branch label should be
#commented out
if-eqz v0, here:
if-eqz v0, :here
#another branch to outside the dead code. In this case, the "dead"
#instruction is the first instruction that references the label.
#the label should not be commented out, because it is referenced
#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
#commented out, because there are no other non-dead instructions
#referenceding it
if-eqz v0, here4:
if-eqz v0, :here4
#another odexed instruction that uses the result of the
#first unresolveable odex instruction. this should
#appear as a commented invoke-virtual-quick instruction
invoke-virtual {v1}, Lsuperclass;->somemethod()V
here:
:here
#a resolveable odex instruction in the dead code. It should be resolved,
#but still commented out
invoke-virtual {v2}, Lsuperclass;->somemethod()V
here2:
:here2
#and we're back to the non-dead code
invoke-virtual {v2}, Lsuperclass;->somemethod()V
if-nez v0, here3:
if-nez v0, :here3
return-void

View File

@ -15,12 +15,12 @@
invoke-direct {v0}, Lsubclass1;-><init>()V
aput-object v0, v1, v4
goto here2:
goto :here2
here:
:here
const v2, 1
here2:
:here2
#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
@ -35,7 +35,7 @@
invoke-direct {v0}, Lsubclass2;-><init>()V
aput-object v0, v1, v4
if-eqz v2, here:
if-eqz v2, :here
return-void
.end method