hotspot/test/runtime/verifier/popTopTests/popDupSwapTests.jasm
author hseigel
Wed, 14 Sep 2016 10:02:49 -0400
changeset 41093 b7bbdd06976e
permissions -rw-r--r--
8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top Summary: Throw VerifyError exception if type top is illegally popped from the stack. Reviewed-by: coleenp, acorn, ddmitriev
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
41093
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
     1
/*
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
     2
 * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
     3
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
     4
 *
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
     5
 * This code is free software; you can redistribute it and/or modify it
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
     6
 * under the terms of the GNU General Public License version 2 only, as
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
     7
 * published by the Free Software Foundation.
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
     8
 *
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
     9
 * This code is distributed in the hope that it will be useful, but WITHOUT
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
    10
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
    11
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
    12
 * version 2 for more details (a copy is included in the LICENSE file that
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
    13
 * accompanied this code).
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
    14
 *
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
    15
 * You should have received a copy of the GNU General Public License version
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
    16
 * 2 along with this work; if not, write to the Free Software Foundation,
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
    17
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
    18
 *
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
    19
 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
    20
 * or visit www.oracle.com if you need additional information or have any
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
    21
 * questions.
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
    22
 *
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
    23
 */
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
    24
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
    25
// Test that VerifyError is thrown if dup2_x1 tries to replace the filler slot
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
    26
// of a category 2 value.
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
    27
// The stack map is long,top,null,null.  The verifier should reject dup2_x1's
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
    28
// (form1) attempt to turn the stack map into long,top,null,null,null,null
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
    29
public class dup2_x1 version 51:0 {
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
    30
    public static Method run:"()V" stack 6 locals 0 {
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
    31
        lconst_0;
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
    32
        aconst_null;
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
    33
        aconst_null;
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
    34
        dup2_x1;
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
    35
        return;
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
    36
    }
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
    37
}
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
    38
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
    39
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
    40
public class dup2_x2 version 51:0 {
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
    41
    public static Method run:"()V" stack 6 locals 0 {
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
    42
        iconst_0;
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
    43
        lconst_0;
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
    44
        aconst_null;
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
    45
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
    46
        stack_frame_type full;
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
    47
        stack_map int, bogus, bogus, null;
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
    48
        locals_map;
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
    49
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
    50
        dup2_x2;
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
    51
        return;
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
    52
    }
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
    53
}
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
    54
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
    55
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
    56
// Test that VerifyError is thrown if dup2_x2 tries to replace the filler slot
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
    57
// of a category 2 value.
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
    58
// The stack map is long,top,null,null,null.  The verifier should reject dup2_x2's
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
    59
// (form 1) attempt to turn the stack map into long,top,null,null,null,top,null.
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
    60
public class dup2_x2_long_refs version 51:0 {
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
    61
    public static Method run:"()V" stack 6 locals 0 {
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
    62
        lconst_0;
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
    63
        aconst_null;
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
    64
        aconst_null;
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
    65
        aconst_null;
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
    66
        dup2_x2;
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
    67
        return;
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
    68
    }
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
    69
}
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
    70
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
    71
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
    72
// Test that VerifyError is thrown when dup2 is used to remove the upper
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
    73
// half of a category 2 type.
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
    74
public class dup2longtop version 51:0 {
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
    75
    public static Method main:"([Ljava/lang/String;)V" stack 5 locals 1 {
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
    76
        lconst_0;
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
    77
        iconst_0;
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
    78
        dup2;
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
    79
        return;
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
    80
    }
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
    81
}
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
    82
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
    83
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
    84
// Test that VerifyError is thrown when dup2 is used to remove top
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
    85
// because top may be the upper half of a category 2 type.
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
    86
public class dup2toptop version 51:0 {
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
    87
    public static Method main:"([Ljava/lang/String;)V" stack 5 locals 1 {
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
    88
        // here we have {long, top, null}
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
    89
        // EXECUTION: we have {long, null}
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
    90
        lconst_0;
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
    91
        aconst_null;
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
    92
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
    93
        stack_frame_type full;
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
    94
        stack_map bogus, bogus, null;
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
    95
        locals_map bogus;
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
    96
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
    97
        // VERIFIER: use form1 of dup2 - {top, top, null} -> {top, top, null, top, null}
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
    98
        // EXECUTION: have {long, null} - no applicable form of dup2 for such type state by JVMS ch. 6
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
    99
        dup2;
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   100
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   101
        return;
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   102
    }
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   103
}
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   104
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   105
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   106
// Test that VerifyError is thrown if dup_x1 tries to replace the filler slot
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   107
// of a category 2 value.
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   108
public class dup_x1 version 51:0 {
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   109
    public static Method run:"()V" stack 6 locals 0 {
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   110
        lconst_0;
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   111
        aconst_null;
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   112
        dup_x1;
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   113
        return;
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   114
    }
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   115
}
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   116
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   117
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   118
// Test that VerifyError is thrown when pop2 is used to remove top
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   119
// because top may be the upper half of a category 2 type.
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   120
public class pop2longtop version 51:0
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   121
{
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   122
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   123
    public Method regular:"()V" stack 6 locals 6
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   124
    {
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   125
        lconst_0;
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   126
        iconst_0;
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   127
        stack_frame_type full;
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   128
        stack_map long, bogus;
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   129
        locals_map;
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   130
        pop2;
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   131
        return;
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   132
    }
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   133
} // end Class pop2longtop
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   134
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   135
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   136
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   137
// Test that VerifyError is thrown when pop2 is used to remove top, top
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   138
// because either top may be the upper half of a category 2 type.
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   139
public class pop2toptop version 51:0
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   140
{
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   141
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   142
    public Method regular:"()V" stack 6 locals 6
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   143
    {
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   144
        iconst_0;
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   145
        iconst_0;
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   146
        stack_frame_type full;
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   147
        stack_map bogus, bogus;
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   148
        locals_map;
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   149
        pop2;
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   150
        return;
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   151
    }
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   152
} // end Class pop2toptop
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   153
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   154
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   155
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   156
// Test that VerifyError is thrown when pop is used to remove top
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   157
// because top may be the upper half of a category 2 type.
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   158
public class poptop version 51:0
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   159
{
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   160
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   161
    public Method regular:"()V" stack 2 locals 1
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   162
    {
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   163
        iconst_0;
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   164
        stack_frame_type full;
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   165
        stack_map bogus;
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   166
        pop;
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   167
        return;
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   168
    }
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   169
} // end Class poptop
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   170
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   171
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   172
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   173
// Test that VerifyError is thrown when pop is used to remove top, top
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   174
// because either top may be the upper half of a category 2 type.
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   175
public class poptoptop version 51:0
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   176
{
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   177
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   178
    public Method regular:"()V" stack 2 locals 1
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   179
    {
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   180
        iconst_0;
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   181
        iconst_0;
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   182
        stack_frame_type full;
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   183
        stack_map bogus, bogus;
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   184
        pop;
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   185
        return;
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   186
    }
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   187
} // end Class poptoptop
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   188
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   189
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   190
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   191
// Test that VerifyError is thrown when swap is used to swap int, top
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   192
// because top may be the lower half of a category 2 type.
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   193
public class swapinttop version 51:0
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   194
{
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   195
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   196
    public Method regular:"()V" stack 6 locals 6
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   197
    {
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   198
        iconst_0;
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   199
        iconst_0;
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   200
        stack_frame_type full;
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   201
        stack_map int, bogus;
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   202
        locals_map;
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   203
        swap;
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   204
        return;
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   205
    }
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   206
} // end Class swapinttop
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   207
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   208
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   209
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   210
// Test that VerifyError is thrown when swap is used to swap top, int
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   211
// because top may be the upper half of a category 2 type.
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   212
public class swaptopint version 51:0
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   213
{
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   214
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   215
    public Method regular:"()V" stack 6 locals 6
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   216
    {
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   217
        iconst_0;
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   218
        iconst_0;
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   219
        stack_frame_type full;
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   220
        stack_map bogus, int;
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   221
        locals_map;
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   222
        swap;
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   223
        return;
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   224
    }
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   225
} // end Class swaptopint
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   226
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   227
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   228
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   229
// Test that VerifyError is thrown when swap is used to swap top, top
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   230
// because either top may be the upper half of a category 2 type.
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   231
public class swaptoptop version 51:0
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   232
{
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   233
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   234
    public Method regular:"()V" stack 6 locals 6
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   235
    {
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   236
        iconst_0;
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   237
        iconst_0;
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   238
        stack_frame_type full;
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   239
        stack_map bogus, bogus;
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   240
        locals_map;
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   241
        swap;
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   242
        return;
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   243
    }
b7bbdd06976e 8149607: [Verifier] Do not verify pop, pop2, swap, dup* against top
hseigel
parents:
diff changeset
   244
} // end Class swaptoptop