59ac4c2629
Reviewed-by: sspitsyn, erikj
194 lines
5.9 KiB
Plaintext
194 lines
5.9 KiB
Plaintext
/*
|
|
* Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
|
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
*
|
|
* This code is free software; you can redistribute it and/or modify it
|
|
* under the terms of the GNU General Public License version 2 only, as
|
|
* published by the Free Software Foundation.
|
|
*
|
|
* This code is distributed in the hope that it will be useful, but WITHOUT
|
|
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
* version 2 for more details (a copy is included in the LICENSE file that
|
|
* accompanied this code).
|
|
*
|
|
* You should have received a copy of the GNU General Public License version
|
|
* 2 along with this work; if not, write to the Free Software Foundation,
|
|
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
*
|
|
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
|
* or visit www.oracle.com if you need additional information or have any
|
|
* questions.
|
|
*/
|
|
|
|
package nsk/jvmti/FieldAccess;
|
|
|
|
super public class fieldacc001a {
|
|
|
|
static Field staticBoolean:Z;
|
|
static Field staticByte:B;
|
|
static Field staticShort:S;
|
|
static Field staticInt:I;
|
|
static Field staticLong:J;
|
|
static Field staticFloat:F;
|
|
static Field staticDouble:D;
|
|
static Field staticChar:C;
|
|
static Field staticObject:"Ljava/lang/Object;";
|
|
static Field staticArrInt:"[I";
|
|
Field instanceBoolean:Z;
|
|
Field instanceByte:B;
|
|
Field instanceShort:S;
|
|
Field instanceInt:I;
|
|
Field instanceLong:J;
|
|
Field instanceFloat:F;
|
|
Field instanceDouble:D;
|
|
Field instanceChar:C;
|
|
Field instanceObject:"Ljava/lang/Object;";
|
|
Field instanceArrInt:"[I";
|
|
|
|
public Method "<init>":"()V" stack 5 locals 1 {
|
|
aload_0;
|
|
invokespecial Method java/lang/Object."<init>":"()V";
|
|
aload_0;
|
|
iconst_0;
|
|
putfield Field instanceBoolean:"Z";
|
|
aload_0;
|
|
bipush 10;
|
|
putfield Field instanceByte:"B";
|
|
aload_0;
|
|
bipush 20;
|
|
putfield Field instanceShort:"S";
|
|
aload_0;
|
|
bipush 30;
|
|
putfield Field instanceInt:"I";
|
|
aload_0;
|
|
ldc2_w long 40l;
|
|
putfield Field instanceLong:"J";
|
|
aload_0;
|
|
ldc float 0.05f;
|
|
putfield Field instanceFloat:"F";
|
|
aload_0;
|
|
ldc2_w double 0.06d;
|
|
putfield Field instanceDouble:"D";
|
|
aload_0;
|
|
bipush 122;
|
|
putfield Field instanceChar:"C";
|
|
aload_0;
|
|
new class java/lang/Object;
|
|
dup;
|
|
invokespecial Method java/lang/Object."<init>":"()V";
|
|
putfield Field instanceObject:"Ljava/lang/Object;";
|
|
aload_0;
|
|
iconst_2;
|
|
newarray int;
|
|
dup;
|
|
iconst_0;
|
|
bipush 70;
|
|
iastore;
|
|
dup;
|
|
iconst_1;
|
|
bipush 80;
|
|
iastore;
|
|
putfield Field instanceArrInt:"[I";
|
|
return;
|
|
}
|
|
|
|
public Method run:"()I" stack 4 locals 2 {
|
|
iconst_0;
|
|
istore_1;
|
|
getstatic Field staticBoolean:"Z"; // bci=2
|
|
aload_0;
|
|
getfield Field instanceBoolean:"Z"; // bci=6
|
|
if_icmpne L15;
|
|
iinc 1, 1;
|
|
L15: getstatic Field staticByte:"B"; // bci=15
|
|
aload_0;
|
|
getfield Field instanceByte:"B"; // bci=19
|
|
if_icmpne L28;
|
|
iinc 1, 1;
|
|
L28: getstatic Field staticShort:"S"; // bci=28
|
|
aload_0;
|
|
getfield Field instanceShort:"S"; // bci=32
|
|
if_icmpne L41;
|
|
iinc 1, 1;
|
|
L41: getstatic Field staticInt:"I"; // bci=41
|
|
aload_0;
|
|
getfield Field instanceInt:"I"; // bci=45
|
|
if_icmpne L54;
|
|
iinc 1, 1;
|
|
L54: getstatic Field staticLong:"J"; // bci=54
|
|
aload_0;
|
|
getfield Field instanceLong:"J"; // bci=58
|
|
lcmp;
|
|
ifne L68;
|
|
iinc 1, 1;
|
|
L68: getstatic Field staticFloat:"F"; // bci=68
|
|
aload_0;
|
|
getfield Field instanceFloat:"F"; // bci=72
|
|
fcmpl;
|
|
ifne L82;
|
|
iinc 1, 1;
|
|
L82: getstatic Field staticDouble:"D"; // bci=82
|
|
aload_0;
|
|
getfield Field instanceDouble:"D"; // bci=86
|
|
dcmpl;
|
|
ifne L96;
|
|
iinc 1, 1;
|
|
L96: getstatic Field staticChar:"C"; // bci=96
|
|
aload_0;
|
|
getfield Field instanceChar:"C"; // bci=100
|
|
if_icmpne L109;
|
|
iinc 1, 1;
|
|
L109: getstatic Field staticObject:"Ljava/lang/Object;"; // bci=109
|
|
aload_0;
|
|
getfield Field instanceObject:"Ljava/lang/Object;"; // bci=113
|
|
if_acmpne L122;
|
|
iinc 1, 1;
|
|
L122: getstatic Field staticArrInt:"[I"; // bci=122
|
|
iconst_0;
|
|
iaload;
|
|
aload_0;
|
|
getfield Field instanceArrInt:"[I"; // bci=128
|
|
iconst_1;
|
|
iaload;
|
|
if_icmpne L139;
|
|
iinc 1, 1;
|
|
L139: iload_1;
|
|
ireturn;
|
|
}
|
|
|
|
static Method "<clinit>":"()V" stack 4 locals 0 {
|
|
iconst_1;
|
|
putstatic Field staticBoolean:"Z";
|
|
iconst_1;
|
|
putstatic Field staticByte:"B";
|
|
iconst_2;
|
|
putstatic Field staticShort:"S";
|
|
iconst_3;
|
|
putstatic Field staticInt:"I";
|
|
ldc2_w long 4l;
|
|
putstatic Field staticLong:"J";
|
|
ldc float 0.5f;
|
|
putstatic Field staticFloat:"F";
|
|
ldc2_w double 0.6d;
|
|
putstatic Field staticDouble:"D";
|
|
bipush 97;
|
|
putstatic Field staticChar:"C";
|
|
aconst_null;
|
|
putstatic Field staticObject:"Ljava/lang/Object;";
|
|
iconst_2;
|
|
newarray int;
|
|
dup;
|
|
iconst_0;
|
|
bipush 7;
|
|
iastore;
|
|
dup;
|
|
iconst_1;
|
|
bipush 8;
|
|
iastore;
|
|
putstatic Field staticArrInt:"[I";
|
|
return;
|
|
}
|
|
|
|
}
|