Home | History | Annotate | Download | only in 031-bb-dead-code
      1 ; Copyright (C) 2007 The Android Open Source Project
      2 ;
      3 ; Licensed under the Apache License, Version 2.0 (the "License");
      4 ; you may not use this file except in compliance with the License.
      5 ; You may obtain a copy of the License at
      6 ;
      7 ;      http://www.apache.org/licenses/LICENSE-2.0
      8 ;
      9 ; Unless required by applicable law or agreed to in writing, software
     10 ; distributed under the License is distributed on an "AS IS" BASIS,
     11 ; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     12 ; See the License for the specific language governing permissions and
     13 ; limitations under the License.
     14 
     15 .class blort
     16 .super java/lang/Object
     17 
     18 .method public <init>()V
     19     .limit locals 1
     20 
     21     aload_0
     22     invokespecial java/lang/Object/<init>()V
     23     return
     24 .end method
     25 
     26 ; dead code after the last reachable instruction in a method
     27 .method public test_deadend1()V
     28     return
     29     aload_0
     30 .end method
     31 
     32 ; dead code after the last reachable instruction in a method
     33 .method public test_deadend2()V
     34     ireturn
     35     aload_0
     36     aload_0
     37 .end method
     38 
     39 ; dead code after the last reachable instruction in a method
     40 .method public test_deadend3()V
     41     aconst_null
     42     athrow
     43     sipush 0x1234
     44 .end method
     45 
     46 ; make sure an exception handler for a dead range doesn't get enlivened
     47 .method public test_dead_exception_handler()V
     48     return
     49     nop
     50 blort:
     51     nop
     52     nop
     53     return
     54 handler:
     55     nop
     56     return
     57     .catch all from blort to handler using handler
     58 .end method
     59 
     60 ; dead code after goto instruction
     61 .method public test_dead_goto()V
     62     goto blort
     63     nop
     64 blort:
     65     return
     66 .end method
     67 
     68 ; dead code after ret instruction
     69 .method public test_dead_ret()V
     70     ifeq blort
     71     ret 0
     72     iconst_m1
     73 blort:
     74     return
     75 .end method
     76 
     77 ; dead code after tableswitch instruction
     78 .method public test_dead_tableswitch()V
     79     tableswitch 0x10
     80         blort
     81         default: blort
     82     nop
     83     nop
     84     nop
     85     aload_0
     86     aload_1
     87     aload_2
     88     aload_3
     89 blort:
     90     return
     91 .end method
     92 
     93 ; dead code after lookupswitch instruction
     94 .method public test_dead_lookupswitch()V
     95     lookupswitch
     96         0x10: blort
     97         0x20: blort
     98         default: blort
     99     ldc "WHYA REYO UREA DING THIS ?"
    100 blort:
    101     return
    102 .end method
    103 
    104 ; dead code after ireturn instruction
    105 .method public test_dead_ireturn()V
    106     ifeq blort
    107     ireturn
    108     iconst_1
    109 blort:
    110     return
    111 .end method
    112 
    113 ; dead code after lreturn instruction
    114 .method public test_dead_lreturn()V
    115     ifeq blort
    116     lreturn
    117     iconst_1
    118 blort:
    119     return
    120 .end method
    121 
    122 ; dead code after freturn instruction
    123 .method public test_dead_freturn()V
    124     ifeq blort
    125     freturn
    126     iconst_1
    127 blort:
    128     return
    129 .end method
    130 
    131 ; dead code after dreturn instruction
    132 .method public test_dead_dreturn()V
    133     ifeq blort
    134     dreturn
    135     iconst_1
    136 blort:
    137     return
    138 .end method
    139 
    140 ; dead code after areturn instruction
    141 .method public test_dead_areturn()V
    142     ifeq blort
    143     areturn
    144     iconst_1
    145 blort:
    146     return
    147 .end method
    148 
    149 ; dead code after return instruction
    150 .method public test_dead_return()V
    151     ifeq blort
    152     return
    153     iconst_1
    154 blort:
    155     return
    156 .end method
    157 
    158 ; dead code after athrow instruction
    159 .method public test_dead_athrow()V
    160     ifeq blort
    161     athrow
    162     iconst_1
    163 blort:
    164     return
    165 .end method
    166 
    167 ; dead code after wide ret instruction
    168 .method public test_dead_wideret()V
    169     ifeq blort
    170     ret 0x0100
    171     iconst_1
    172 blort:
    173     return
    174 .end method
    175 
    176 ; dead code after goto_w instruction
    177 .method public test_dead_goto_w()V
    178     goto_w blort
    179     iconst_1
    180 blort:
    181     return
    182 .end method
    183