Checked in jasmin tests.
[cacao.git] / tests / regression / jasmin / test_load_store_conflict_via_dup.j
1 .class public test_load_store_conflict_via_dup
2 .super java/lang/Object
3
4 ; ======================================================================
5
6 .method public <init>()V
7    aload_0
8    invokenonvirtual java/lang/Object/<init>()V
9    return
10 .end method
11
12 ; ======================================================================
13
14 .method public static checkI(I)V
15         .limit locals 1
16         .limit stack 10
17         getstatic java/lang/System/out Ljava/io/PrintStream;
18         iload_0
19         invokevirtual java/io/PrintStream/println(I)V
20         return
21 .end method
22
23 ; ======================================================================
24
25 .method public static main([Ljava/lang/String;)V
26         .limit stack 4
27         .limit locals 3
28
29         ldc 35
30         istore 1
31         ldc 777
32         istore 2
33
34         aload 0
35         ifnull force_basic_block_boundary
36
37         ; --------------------------------------------------
38
39         iload 1  ; loads 35
40         ldc 42
41         dup2     ; stack is now 35 42 35 42 (top)
42         iadd     ; stack is now 35 42 77
43         istore 2
44         istore 1
45         pop
46
47         ; --------------------------------------------------
48
49 force_basic_block_boundary:
50
51         iload 1
52         invokestatic test_load_store_conflict_via_dup/checkI(I)V
53         ; OUTPUT: 42
54
55         iload 2
56         invokestatic test_load_store_conflict_via_dup/checkI(I)V
57         ; OUTPUT: 77
58
59         return
60 .end method