hotspot/test/runtime/logging/BadMap50.jasm
author mockner
Wed, 02 Dec 2015 14:07:58 -0500
changeset 34628 6d08ec72803b
permissions -rw-r--r--
8142976: Reimplement TraceClassInitialization with Unified Logging Summary: TraceClassInitialization logging reimplemented with Unified Logging. Reviewed-by: coleenp, hseigel
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
34628
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
     1
/*
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
     2
 * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
     3
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
     4
 *
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
     5
 * This code is free software; you can redistribute it and/or modify it
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
     6
 * under the terms of the GNU General Public License version 2 only, as
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
     7
 * published by the Free Software Foundation.
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
     8
 *
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
     9
 * This code is distributed in the hope that it will be useful, but WITHOUT
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
    10
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
    11
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
    12
 * version 2 for more details (a copy is included in the LICENSE file that
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
    13
 * accompanied this code).
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
    14
 *
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
    15
 * You should have received a copy of the GNU General Public License version
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
    16
 * 2 along with this work; if not, write to the Free Software Foundation,
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
    17
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
    18
 *
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
    19
 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
    20
 * or visit www.oracle.com if you need additional information or have any
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
    21
 * questions.
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
    22
 */
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
    23
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
    24
/*
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
    25
 * This class should throw VerifyError because the StackMap for bytecode
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
    26
 * index 45 is incorrect. The stack maps for bytecode indexes 45 and 49 are
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
    27
 * incompatible because 45 doesn't supply enough locals to satisfy 49.
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
    28
 *
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
    29
 * The astore_2 bytecode at bytecode index 45 changes the type state,
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
    30
 * preventing the stackmap mismatch.  But, if the incoming type state is used,
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
    31
 * as required by JVM Spec 8, then the verifier will detected the stackmap
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
    32
 * mismatch, and throw VerifyError.
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
    33
 */
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
    34
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
    35
super public class BadMap50
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
    36
    version 50:0
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
    37
{
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
    38
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
    39
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
    40
public Method "<init>":"()V"
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
    41
    stack 1 locals 1
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
    42
{
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
    43
        aload_0;
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
    44
        invokespecial    Method java/lang/Object."<init>":"()V";
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
    45
        return;
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
    46
}
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
    47
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
    48
public static Method main:"([Ljava/lang/String;)V"
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
    49
    throws java/lang/Throwable
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
    50
    stack 0 locals 1
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
    51
{
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
    52
        return;
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
    53
}
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
    54
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
    55
public static Method foo:"()V"
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
    56
    stack 3 locals 5
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
    57
{
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
    58
        iconst_0;
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
    59
        ifne    L5;
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
    60
        nop;
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
    61
        try t7;
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
    62
    L5:    stack_frame_type full;
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
    63
        aconst_null;
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
    64
        astore_0;
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
    65
        iconst_3;
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
    66
        istore_1;
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
    67
        try t0;
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
    68
        aconst_null;
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
    69
        astore_0;
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
    70
        endtry t0;
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
    71
        goto    L19;
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
    72
        catch t0 java/io/IOException;
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
    73
        stack_frame_type full;
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
    74
        locals_map class java/lang/Object, int;
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
    75
        stack_map class java/io/IOException;
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
    76
        astore_2;
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
    77
        aconst_null;
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
    78
        astore_0;
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
    79
        iconst_2;
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
    80
        istore_1;
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
    81
        try t1;
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
    82
    L19:    stack_frame_type full;
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
    83
        locals_map class java/lang/Object, int;
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
    84
        iconst_0;
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
    85
        istore_2;
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
    86
        endtry t1;
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
    87
        iload_1;
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
    88
        ifeq    L37;
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
    89
        nop;
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
    90
        goto    L37;
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
    91
        catch t1 #0;
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
    92
        catch t2 #0;
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
    93
        try t2;
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
    94
        stack_frame_type full;
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
    95
        locals_map class java/lang/Object, int;
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
    96
        stack_map class java/lang/Throwable;
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
    97
astore_3;
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
    98
iconst_2;
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
    99
istore_2;
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
   100
        endtry t2;
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
   101
        iload_1;
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
   102
        ifeq    L35;
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
   103
        nop;
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
   104
    L35:    stack_frame_type full;
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
   105
        locals_map class java/lang/Object, int, bogus, class java/lang/Throwable;
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
   106
aload_3;
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
   107
        athrow;
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
   108
        try t3, t4;
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
   109
    L37:    stack_frame_type full;
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
   110
        locals_map class java/lang/Object, int, int;
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
   111
        iload_2;
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
   112
        ifeq    L42;
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
   113
        nop;
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
   114
        endtry t3, t4;
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
   115
    L42:    stack_frame_type full;
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
   116
        locals_map class java/lang/Object, int, int;
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
   117
        goto    L54;
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
   118
        catch t3 java/lang/Exception;
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
   119
        try t5;
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
   120
        stack_frame_type full;
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
   121
        locals_map class java/lang/Object, int;
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
   122
        stack_map class java/lang/Exception;
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
   123
        // astore_2;                  // astore_2, at bci 45, that changes the type state.
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
   124
// pop;
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
   125
iconst_1;
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
   126
        istore_2;                  // astore_2, at bci 45, that changes the type state.
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
   127
        endtry t5;
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
   128
        goto    L54;
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
   129
        catch t4 #0;
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
   130
        catch t5 #0;
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
   131
        catch t6 #0;
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
   132
        try t6;
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
   133
      stack_frame_type full;
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
   134
      locals_map class java/lang/Object, int, int;
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
   135
      stack_map class java/lang/Throwable;
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
   136
// astore    3;
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
   137
 istore_1;
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
   138
        endtry t6;
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
   139
// aload    3;
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
   140
//         athrow;
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
   141
    L54:    stack_frame_type full;
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
   142
        locals_map class java/lang/Object, int, int;
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
   143
        goto    L57;
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
   144
    L57:    stack_frame_type full;
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
   145
        locals_map class java/lang/Object, int, int;
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
   146
        nop;
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
   147
        endtry t7;
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
   148
        return;
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
   149
        catch t7 #0;
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
   150
        stack_frame_type full;
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
   151
        stack_map class java/lang/Throwable;
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
   152
        nop;
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
   153
        athrow;
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
   154
}
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
   155
6d08ec72803b 8142976: Reimplement TraceClassInitialization with Unified Logging
mockner
parents:
diff changeset
   156
} // end Class BadMap50