1 # Copyright (c) 2016, the R8 project authors. Please see the AUTHORS file 2 # for details. All rights reserved. Use of this source code is governed by a 3 # BSD-style license that can be found in the LICENSE file. 4 5 .class public LTest; 6 7 .super Ljava/lang/Object; 8 9 # Empty packed switch 10 .method public static test1(I)I 11 .registers 1 12 packed-switch v0, :packed_switch_data 13 const/4 v0, 0x1 14 return v0 15 16 :packed_switch_data 17 .packed-switch 0x0 18 .end packed-switch 19 .end method 20 21 # Empty packed switch after data 22 .method public static test2(I)I 23 .registers 1 24 25 goto :packed_switch 26 27 :packed_switch_data 28 .packed-switch 0x0 29 .end packed-switch 30 31 :packed_switch 32 packed-switch v0, :packed_switch_data 33 const/4 v0, 0x2 34 return v0 35 .end method 36 37 # Packed switch after data 38 .method public static test3(I)I 39 .registers 1 40 41 goto :packed_switch 42 43 :case_0 44 const/4 v0, 0x3 45 goto :return 46 47 :packed_switch_data 48 .packed-switch 0x0 49 :case_0 50 :case_1 51 .end packed-switch 52 53 :packed_switch 54 packed-switch v0, :packed_switch_data 55 const/4 v0, 0x5 56 goto :return 57 58 :case_1 59 const/4 v0, 0x4 60 61 :return 62 return v0 63 .end method 64 65 .method public static main([Ljava/lang/String;)V 66 .locals 2 67 68 sget-object v0, Ljava/lang/System;->out:Ljava/io/PrintStream; 69 70 const/4 v1, 0x0 71 invoke-static {v1}, LTest;->test1(I)I 72 move-result v1 73 invoke-static {v1}, Ljava/lang/Integer;->toString(I)Ljava/lang/String; 74 move-result-object v1 75 invoke-virtual {v0, v1}, Ljava/io/PrintStream;->print(Ljava/lang/Object;)V 76 77 const/4 v1, 0x0 78 invoke-static {v1}, LTest;->test2(I)I 79 move-result v1 80 invoke-static {v1}, Ljava/lang/Integer;->toString(I)Ljava/lang/String; 81 move-result-object v1 82 invoke-virtual {v0, v1}, Ljava/io/PrintStream;->print(Ljava/lang/Object;)V 83 84 const/4 v1, 0x0 85 invoke-static {v1}, LTest;->test3(I)I 86 move-result v1 87 invoke-static {v1}, Ljava/lang/Integer;->toString(I)Ljava/lang/String; 88 move-result-object v1 89 invoke-virtual {v0, v1}, Ljava/io/PrintStream;->print(Ljava/lang/Object;)V 90 91 const/4 v1, 0x1 92 invoke-static {v1}, LTest;->test3(I)I 93 move-result v1 94 invoke-static {v1}, Ljava/lang/Integer;->toString(I)Ljava/lang/String; 95 move-result-object v1 96 invoke-virtual {v0, v1}, Ljava/io/PrintStream;->print(Ljava/lang/Object;)V 97 98 const/4 v1, 0x2 99 invoke-static {v1}, LTest;->test3(I)I 100 move-result v1 101 invoke-static {v1}, Ljava/lang/Integer;->toString(I)Ljava/lang/String; 102 move-result-object v1 103 invoke-virtual {v0, v1}, Ljava/io/PrintStream;->print(Ljava/lang/Object;)V 104 105 return-void 106 .end method 107