summaryrefslogtreecommitdiffstats
path: root/dx/tests/071-dex-java-stack-ops
diff options
context:
space:
mode:
authorThe Android Open Source Project <initial-contribution@android.com>2009-03-03 18:28:14 -0800
committerThe Android Open Source Project <initial-contribution@android.com>2009-03-03 18:28:14 -0800
commitf72d5de56a522ac3be03873bdde26f23a5eeeb3c (patch)
tree4b825dc642cb6eb9a060e54bf8d69288fbee4904 /dx/tests/071-dex-java-stack-ops
parent31e30105703263782efd450d356cd67ea01af3b7 (diff)
downloadandroid_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.j319
-rw-r--r--dx/tests/071-dex-java-stack-ops/expected.txt210
-rw-r--r--dx/tests/071-dex-java-stack-ops/info.txt7
-rw-r--r--dx/tests/071-dex-java-stack-ops/run19
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