diff options
| author | The Android Open Source Project <initial-contribution@android.com> | 2009-03-03 18:28:14 -0800 |
|---|---|---|
| committer | The Android Open Source Project <initial-contribution@android.com> | 2009-03-03 18:28:14 -0800 |
| commit | f72d5de56a522ac3be03873bdde26f23a5eeeb3c (patch) | |
| tree | 4b825dc642cb6eb9a060e54bf8d69288fbee4904 /dx/tests/071-dex-java-stack-ops | |
| parent | 31e30105703263782efd450d356cd67ea01af3b7 (diff) | |
| download | android_dalvik-f72d5de56a522ac3be03873bdde26f23a5eeeb3c.tar.gz android_dalvik-f72d5de56a522ac3be03873bdde26f23a5eeeb3c.tar.bz2 android_dalvik-f72d5de56a522ac3be03873bdde26f23a5eeeb3c.zip | |
auto import from //depot/cupcake/@135843
Diffstat (limited to 'dx/tests/071-dex-java-stack-ops')
| -rw-r--r-- | dx/tests/071-dex-java-stack-ops/blort.j | 319 | ||||
| -rw-r--r-- | dx/tests/071-dex-java-stack-ops/expected.txt | 210 | ||||
| -rw-r--r-- | dx/tests/071-dex-java-stack-ops/info.txt | 7 | ||||
| -rw-r--r-- | dx/tests/071-dex-java-stack-ops/run | 19 |
4 files changed, 0 insertions, 555 deletions
diff --git a/dx/tests/071-dex-java-stack-ops/blort.j b/dx/tests/071-dex-java-stack-ops/blort.j deleted file mode 100644 index 848a84e18..000000000 --- a/dx/tests/071-dex-java-stack-ops/blort.j +++ /dev/null @@ -1,319 +0,0 @@ -; Copyright (C) 2007 The Android Open Source Project -; -; Licensed under the Apache License, Version 2.0 (the "License"); -; you may not use this file except in compliance with the License. -; You may obtain a copy of the License at -; -; http://www.apache.org/licenses/LICENSE-2.0 -; -; Unless required by applicable law or agreed to in writing, software -; distributed under the License is distributed on an "AS IS" BASIS, -; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -; See the License for the specific language governing permissions and -; limitations under the License. - -.class Blort -.super java/lang/Object - -; Methods to "consume" an int. -.method public static consume1(I)V -.limit stack 0 -.limit locals 1 - nop - return -.end method - -.method public static consume2(I)V -.limit stack 0 -.limit locals 1 - nop - return -.end method - -.method public static consume3(I)V -.limit stack 0 -.limit locals 1 - nop - return -.end method - -.method public static consume4(I)V -.limit stack 0 -.limit locals 1 - nop - return -.end method - -.method public static consume5(I)V -.limit stack 0 -.limit locals 1 - nop - return -.end method - -.method public static consume6(I)V -.limit stack 0 -.limit locals 1 - nop - return -.end method - -; Methods to "consume" a long. -.method public static consume1(J)V -.limit stack 0 -.limit locals 2 - nop - return -.end method - -.method public static consume2(J)V -.limit stack 0 -.limit locals 2 - nop - return -.end method - -.method public static consume3(J)V -.limit stack 0 -.limit locals 2 - nop - return -.end method - -.method public static consume4(J)V -.limit stack 0 -.limit locals 2 - nop - return -.end method - -; Test of "pop" opcode. This should end up causing a call to consume1(0). -.method public static test_pop()V -.limit stack 2 -.limit locals 0 - iconst_0 - iconst_1 - pop ; A1 -> (empty) - invokestatic Blort/consume1(I)V - return -.end method - -; Test of "pop2" opcode, form 1. This should end up causing a call -; to consume1(0). -.method public static test_pop2_form1()V -.limit stack 3 -.limit locals 0 - iconst_0 - iconst_1 - iconst_2 - pop2 ; A1 B1 -> (empty) - invokestatic Blort/consume1(I)V - return -.end method - -; Test of "pop2" opcode, form 2. This should end up causing a call -; to consume1(0). -.method public static test_pop2_form2()V -.limit stack 3 -.limit locals 0 - iconst_0 - lconst_0 - pop2 ; A2 -> (empty) - invokestatic Blort/consume1(I)V - return -.end method - -; Test of "dup" opcode. This should end up causing these calls in order: -; consume1(0), consume2(0). -.method public static test_dup()V -.limit stack 2 -.limit locals 0 - iconst_0 - dup ; A1 -> A1 A1 - invokestatic Blort/consume1(I)V - invokestatic Blort/consume2(I)V - return -.end method - -; Test of "dup_x1" opcode. This should end up causing these calls in order: -; consume1(1), consume2(0), consume3(1). -.method public static test_dup_x1()V -.limit stack 3 -.limit locals 0 - iconst_0 - iconst_1 - dup_x1 ; A1 B1 -> B1 A1 B1 - invokestatic Blort/consume1(I)V - invokestatic Blort/consume2(I)V - invokestatic Blort/consume3(I)V - return -.end method - -; Test of "dup_x2" opcode, form 1. This should end up causing these calls -; in order: consume1(2), consume2(1), consume3(0), consume4(2). -.method public static test_dup_x2_form1()V -.limit stack 4 -.limit locals 0 - iconst_0 - iconst_1 - iconst_2 - dup_x2 ; A1 B1 C1 -> C1 A1 B1 C1 - invokestatic Blort/consume1(I)V - invokestatic Blort/consume2(I)V - invokestatic Blort/consume3(I)V - invokestatic Blort/consume4(I)V - return -.end method - -; Test of "dup_x2" opcode, form 2. This should end up causing these calls -; in order: consume1(1), consume2(0L), consume3(1). -.method public static test_dup_x2_form2()V -.limit stack 4 -.limit locals 0 - lconst_0 - iconst_1 - dup_x2 ; A2 B1 -> B1 A2 B1 - invokestatic Blort/consume1(I)V - invokestatic Blort/consume2(J)V - invokestatic Blort/consume3(I)V - return -.end method - -; Test of "dup2" opcode, form 1. This should end up causing these calls -; in order: consume1(1), consume2(0), consume3(1), consume4(0). -.method public static test_dup2_form1()V -.limit stack 4 -.limit locals 0 - iconst_0 - iconst_1 - dup2 ; A1 B1 -> A1 B1 A1 B1 - invokestatic Blort/consume1(I)V - invokestatic Blort/consume2(I)V - invokestatic Blort/consume3(I)V - invokestatic Blort/consume4(I)V - return -.end method - -; Test of "dup2" opcode, form 2. This should end up causing these calls -; in order: consume1(0L), consume2(0L). -.method public static test_dup2_form2()V -.limit stack 4 -.limit locals 0 - lconst_0 - dup2 ; A2 -> A2 A2 - invokestatic Blort/consume1(J)V - invokestatic Blort/consume2(J)V - return -.end method - -; Test of "dup2_x1" opcode, form 1. This should end up causing these calls -; in order: consume1(1), consume2(2), consume3(0), consume4(1), consume5(2). -.method public static test_dup2_x1_form1()V -.limit stack 5 -.limit locals 0 - iconst_0 - iconst_1 - iconst_2 - dup2_x1 ; A1 B1 C1 -> B1 C1 A1 B1 C1 - invokestatic Blort/consume1(I)V - invokestatic Blort/consume2(I)V - invokestatic Blort/consume3(I)V - invokestatic Blort/consume4(I)V - invokestatic Blort/consume5(I)V - return -.end method - - -; Test of "dup2_x1" opcode, form 2. This should end up causing these calls -; in order: consume1(1L), consume2(2), consume3(1L). -.method public static test_dup2_x1_form2()V -.limit stack 5 -.limit locals 0 - iconst_0 - lconst_1 - dup2_x1 ; A1 B2 -> B2 A1 B2 - invokestatic Blort/consume1(J)V - invokestatic Blort/consume2(I)V - invokestatic Blort/consume3(J)V - return -.end method - -; Test of "dup2_x2" opcode, form 1. This should end up causing these calls -; in order: consume1(3), consume2(2), consume3(1), consume4(0), consume5(3), -; consume6(2). -.method public static test_dup2_x2_form1()V -.limit stack 6 -.limit locals 0 - iconst_0 - iconst_1 - iconst_2 - iconst_3 - dup2_x2 ; A1 B1 C1 D1 -> C1 D1 A1 B1 C1 D1 - invokestatic Blort/consume1(I)V - invokestatic Blort/consume2(I)V - invokestatic Blort/consume3(I)V - invokestatic Blort/consume4(I)V - invokestatic Blort/consume5(I)V - invokestatic Blort/consume6(I)V - return -.end method - -; Test of "dup2_x2" opcode, form 2. This should end up causing these calls -; in order: consume1(2L), consume2(1), consume3(0), consume4(2L). -.method public static test_dup2_x2_form2()V -.limit stack 6 -.limit locals 0 - iconst_0 - iconst_1 - ldc2_w 2 - dup2_x2 ; A1 B1 C2 -> C2 A1 B1 C2 - invokestatic Blort/consume1(J)V - invokestatic Blort/consume2(I)V - invokestatic Blort/consume3(I)V - invokestatic Blort/consume4(J)V - return -.end method - -; Test of "dup2_x2" opcode, form 3. This should end up causing these calls -; in order: consume1(2), consume2(1), consume3(0L), consume4(2), consume5(1). -.method public static test_dup2_x2_form3()V -.limit stack 6 -.limit locals 0 - lconst_0 - iconst_1 - iconst_2 - dup2_x2 ; A2 B1 C1 -> B1 C1 A2 B1 C1 - invokestatic Blort/consume1(I)V - invokestatic Blort/consume2(I)V - invokestatic Blort/consume3(J)V - invokestatic Blort/consume4(I)V - invokestatic Blort/consume5(I)V - return -.end method - -; Test of "dup2_x2" opcode, form 4. This should end up causing these calls -; in order: consume1(1L), consume2(0L), consume3(1L). -.method public static test_dup2_x2_form4()V -.limit stack 6 -.limit locals 0 - lconst_0 - lconst_1 - dup2_x2 ; A2 B2 -> B2 A2 B2 - invokestatic Blort/consume1(J)V - invokestatic Blort/consume2(J)V - invokestatic Blort/consume3(J)V - return -.end method - -; Test of "swap" opcode. This should end up causing these calls -; in order: consume1(0), consume2(1). -.method public static test_swap()V -.limit stack 2 -.limit locals 0 - iconst_0 - iconst_1 - swap ; A1 B1 -> B1 A1 - invokestatic Blort/consume1(I)V - invokestatic Blort/consume2(I)V - return -.end method diff --git a/dx/tests/071-dex-java-stack-ops/expected.txt b/dx/tests/071-dex-java-stack-ops/expected.txt deleted file mode 100644 index 3ba8ef32c..000000000 --- a/dx/tests/071-dex-java-stack-ops/expected.txt +++ /dev/null @@ -1,210 +0,0 @@ -Blort.test_dup:()V: -regs: 0003; ins: 0000; outs: 0001 - 0000: const/4 v0, #int 0 // #0 - 0001: move v2, v0 - 0002: move v0, v2 - 0003: move v1, v2 - 0004: invoke-static {v1}, Blort.consume1:(I)V - 0007: invoke-static {v0}, Blort.consume2:(I)V - 000a: return-void -Blort.test_dup2_form1:()V: -regs: 0006; ins: 0000; outs: 0001 - 0000: const/4 v0, #int 0 // #0 - 0001: const/4 v1, #int 1 // #1 - 0002: move v4, v0 - 0003: move v5, v1 - 0004: move v0, v4 - 0005: move v1, v5 - 0006: move v2, v4 - 0007: move v3, v5 - 0008: invoke-static {v3}, Blort.consume1:(I)V - 000b: invoke-static {v2}, Blort.consume2:(I)V - 000e: invoke-static {v1}, Blort.consume3:(I)V - 0011: invoke-static {v0}, Blort.consume4:(I)V - 0014: return-void -Blort.test_dup2_form2:()V: -regs: 0006; ins: 0000; outs: 0002 - 0000: const-wide/16 v0, #long 0 // #0000 - 0002: move-wide v4, v0 - 0003: move-wide v0, v4 - 0004: move-wide v2, v4 - 0005: invoke-static {v2, v3}, Blort.consume1:(J)V - 0008: invoke-static {v0, v1}, Blort.consume2:(J)V - 000b: return-void -Blort.test_dup2_x1_form1:()V: -regs: 0008; ins: 0000; outs: 0001 - 0000: const/4 v0, #int 0 // #0 - 0001: const/4 v1, #int 1 // #1 - 0002: const/4 v2, #int 2 // #2 - 0003: move v5, v0 - 0004: move v6, v1 - 0005: move v7, v2 - 0006: move v0, v6 - 0007: move v1, v7 - 0008: move v2, v5 - 0009: move v3, v6 - 000a: move v4, v7 - 000b: invoke-static {v4}, Blort.consume1:(I)V - 000e: invoke-static {v3}, Blort.consume2:(I)V - 0011: invoke-static {v2}, Blort.consume3:(I)V - 0014: invoke-static {v1}, Blort.consume4:(I)V - 0017: invoke-static {v0}, Blort.consume5:(I)V - 001a: return-void -Blort.test_dup2_x1_form2:()V: -regs: 0008; ins: 0000; outs: 0002 - 0000: const/4 v0, #int 0 // #0 - 0001: const-wide/16 v1, #long 1 // #0001 - 0003: move v5, v0 - 0004: move-wide v6, v1 - 0005: move-wide v0, v6 - 0006: move v2, v5 - 0007: move-wide v3, v6 - 0008: invoke-static {v3, v4}, Blort.consume1:(J)V - 000b: invoke-static {v2}, Blort.consume2:(I)V - 000e: invoke-static {v0, v1}, Blort.consume3:(J)V - 0011: return-void -Blort.test_dup2_x2_form1:()V: -regs: 000a; ins: 0000; outs: 0001 - 0000: const/4 v0, #int 0 // #0 - 0001: const/4 v1, #int 1 // #1 - 0002: const/4 v2, #int 2 // #2 - 0003: const/4 v3, #int 3 // #3 - 0004: move v6, v0 - 0005: move v7, v1 - 0006: move v8, v2 - 0007: move v9, v3 - 0008: move v0, v8 - 0009: move v1, v9 - 000a: move v2, v6 - 000b: move v3, v7 - 000c: move v4, v8 - 000d: move v5, v9 - 000e: invoke-static {v5}, Blort.consume1:(I)V - 0011: invoke-static {v4}, Blort.consume2:(I)V - 0014: invoke-static {v3}, Blort.consume3:(I)V - 0017: invoke-static {v2}, Blort.consume4:(I)V - 001a: invoke-static {v1}, Blort.consume5:(I)V - 001d: invoke-static {v0}, Blort.consume6:(I)V - 0020: return-void -Blort.test_dup2_x2_form2:()V: -regs: 000a; ins: 0000; outs: 0002 - 0000: const/4 v0, #int 0 // #0 - 0001: const/4 v1, #int 1 // #1 - 0002: const-wide/16 v2, #long 2 // #0002 - 0004: move v6, v0 - 0005: move v7, v1 - 0006: move-wide v8, v2 - 0007: move-wide v0, v8 - 0008: move v2, v6 - 0009: move v3, v7 - 000a: move-wide v4, v8 - 000b: invoke-static {v4, v5}, Blort.consume1:(J)V - 000e: invoke-static {v3}, Blort.consume2:(I)V - 0011: invoke-static {v2}, Blort.consume3:(I)V - 0014: invoke-static {v0, v1}, Blort.consume4:(J)V - 0017: return-void -Blort.test_dup2_x2_form3:()V: -regs: 000a; ins: 0000; outs: 0002 - 0000: const-wide/16 v0, #long 0 // #0000 - 0002: const/4 v2, #int 1 // #1 - 0003: const/4 v3, #int 2 // #2 - 0004: move-wide v6, v0 - 0005: move v8, v2 - 0006: move v9, v3 - 0007: move v0, v8 - 0008: move v1, v9 - 0009: move-wide v2, v6 - 000a: move v4, v8 - 000b: move v5, v9 - 000c: invoke-static {v5}, Blort.consume1:(I)V - 000f: invoke-static {v4}, Blort.consume2:(I)V - 0012: invoke-static {v2, v3}, Blort.consume3:(J)V - 0015: invoke-static {v1}, Blort.consume4:(I)V - 0018: invoke-static {v0}, Blort.consume5:(I)V - 001b: return-void -Blort.test_dup2_x2_form4:()V: -regs: 000a; ins: 0000; outs: 0002 - 0000: const-wide/16 v0, #long 0 // #0000 - 0002: const-wide/16 v2, #long 1 // #0001 - 0004: move-wide v6, v0 - 0005: move-wide v8, v2 - 0006: move-wide v0, v8 - 0007: move-wide v2, v6 - 0008: move-wide v4, v8 - 0009: invoke-static {v4, v5}, Blort.consume1:(J)V - 000c: invoke-static {v2, v3}, Blort.consume2:(J)V - 000f: invoke-static {v0, v1}, Blort.consume3:(J)V - 0012: return-void -Blort.test_dup_x1:()V: -regs: 0005; ins: 0000; outs: 0001 - 0000: const/4 v0, #int 0 // #0 - 0001: const/4 v1, #int 1 // #1 - 0002: move v3, v0 - 0003: move v4, v1 - 0004: move v0, v4 - 0005: move v1, v3 - 0006: move v2, v4 - 0007: invoke-static {v2}, Blort.consume1:(I)V - 000a: invoke-static {v1}, Blort.consume2:(I)V - 000d: invoke-static {v0}, Blort.consume3:(I)V - 0010: return-void -Blort.test_dup_x2_form1:()V: -regs: 0007; ins: 0000; outs: 0001 - 0000: const/4 v0, #int 0 // #0 - 0001: const/4 v1, #int 1 // #1 - 0002: const/4 v2, #int 2 // #2 - 0003: move v4, v0 - 0004: move v5, v1 - 0005: move v6, v2 - 0006: move v0, v6 - 0007: move v1, v4 - 0008: move v2, v5 - 0009: move v3, v6 - 000a: invoke-static {v3}, Blort.consume1:(I)V - 000d: invoke-static {v2}, Blort.consume2:(I)V - 0010: invoke-static {v1}, Blort.consume3:(I)V - 0013: invoke-static {v0}, Blort.consume4:(I)V - 0016: return-void -Blort.test_dup_x2_form2:()V: -regs: 0007; ins: 0000; outs: 0002 - 0000: const-wide/16 v0, #long 0 // #0000 - 0002: const/4 v2, #int 1 // #1 - 0003: move-wide v4, v0 - 0004: move v6, v2 - 0005: move v0, v6 - 0006: move-wide v1, v4 - 0007: move v3, v6 - 0008: invoke-static {v3}, Blort.consume1:(I)V - 000b: invoke-static {v1, v2}, Blort.consume2:(J)V - 000e: invoke-static {v0}, Blort.consume3:(I)V - 0011: return-void -Blort.test_pop:()V: -regs: 0002; ins: 0000; outs: 0001 - 0000: const/4 v0, #int 0 // #0 - 0001: const/4 v1, #int 1 // #1 - 0002: invoke-static {v0}, Blort.consume1:(I)V - 0005: return-void -Blort.test_pop2_form1:()V: -regs: 0003; ins: 0000; outs: 0001 - 0000: const/4 v0, #int 0 // #0 - 0001: const/4 v1, #int 1 // #1 - 0002: const/4 v2, #int 2 // #2 - 0003: invoke-static {v0}, Blort.consume1:(I)V - 0006: return-void -Blort.test_pop2_form2:()V: -regs: 0003; ins: 0000; outs: 0001 - 0000: const/4 v0, #int 0 // #0 - 0001: const-wide/16 v1, #long 0 // #0000 - 0003: invoke-static {v0}, Blort.consume1:(I)V - 0006: return-void -Blort.test_swap:()V: -regs: 0004; ins: 0000; outs: 0001 - 0000: const/4 v0, #int 0 // #0 - 0001: const/4 v1, #int 1 // #1 - 0002: move v2, v0 - 0003: move v3, v1 - 0004: move v0, v3 - 0005: move v1, v2 - 0006: invoke-static {v1}, Blort.consume1:(I)V - 0009: invoke-static {v0}, Blort.consume2:(I)V - 000c: return-void diff --git a/dx/tests/071-dex-java-stack-ops/info.txt b/dx/tests/071-dex-java-stack-ops/info.txt deleted file mode 100644 index 6c5383a5b..000000000 --- a/dx/tests/071-dex-java-stack-ops/info.txt +++ /dev/null @@ -1,7 +0,0 @@ -This is a smoke test of dex conversion, which checks to see that at -least one case of each of the possible forms of Java stack -manipulation op translate reasonably. - -This test compares emitted code against a known-good (via eyeballing) -version, so it is possible for this test to spuriously fail if other -aspects of conversion end up altering the output in innocuous ways. diff --git a/dx/tests/071-dex-java-stack-ops/run b/dx/tests/071-dex-java-stack-ops/run deleted file mode 100644 index 52d8a778b..000000000 --- a/dx/tests/071-dex-java-stack-ops/run +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/bash -# -# Copyright (C) 2007 The Android Open Source Project -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -jasmin -d . blort.j >/dev/null -dx --debug --dex --no-optimize --positions=none --no-locals \ - --dump-method=Blort.test'*' Blort.class |
