comparison agent/src/share/classes/sun/jvm/hotspot/interpreter/Bytecodes.java @ 6725:da91efe96a93

6964458: Reimplement class meta-data storage to use native memory Summary: Remove PermGen, allocate meta-data in metaspace linked to class loaders, rewrite GC walking, rewrite and rename metadata to be C++ classes Reviewed-by: jmasa, stefank, never, coleenp, kvn, brutisso, mgerdin, dholmes, jrose, twisti, roland Contributed-by: jmasa <jon.masamitsu@oracle.com>, stefank <stefan.karlsson@oracle.com>, mgerdin <mikael.gerdin@oracle.com>, never <tom.rodriguez@oracle.com>
author coleenp
date Sat, 01 Sep 2012 13:25:18 -0400
parents 6a991dcb52bb
children c7957b458bf8
comparison
equal deleted inserted replaced
6724:36d1d483d5d6 6725:da91efe96a93
1 /* 1 /*
2 * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. 2 * Copyright (c) 2001, 2012, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 * 4 *
5 * This code is free software; you can redistribute it and/or modify it 5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as 6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation. 7 * published by the Free Software Foundation.
360 return (codeOrBPAt(method, bci) == _breakpoint); 360 return (codeOrBPAt(method, bci) == _breakpoint);
361 } 361 }
362 362
363 // find a bytecode, behind a breakpoint if necessary: 363 // find a bytecode, behind a breakpoint if necessary:
364 // FIXME: not yet implementable 364 // FIXME: not yet implementable
365 // static Code non_breakpoint_code_at(address bcp, methodOop method = null); 365 // static Code non_breakpoint_code_at(address bcp, Method* method = null);
366 366
367 // Bytecode attributes 367 // Bytecode attributes
368 public static boolean isDefined (int code) { return 0 <= code && code < number_of_codes && flags(code, false) != 0; } 368 public static boolean isDefined (int code) { return 0 <= code && code < number_of_codes && flags(code, false) != 0; }
369 public static boolean wideIsDefined(int code) { return isDefined(code) && flags(code, true) != 0; } 369 public static boolean wideIsDefined(int code) { return isDefined(code) && flags(code, true) != 0; }
370 public static String name (int code) { check(code); return _name [code]; } 370 public static String name (int code) { check(code); return _name [code]; }
741 def(_putfield , "putfield" , "bJJ" , null , BasicType.getTIllegal(), -2, true ); 741 def(_putfield , "putfield" , "bJJ" , null , BasicType.getTIllegal(), -2, true );
742 def(_invokevirtual , "invokevirtual" , "bJJ" , null , BasicType.getTIllegal(), -1, true ); 742 def(_invokevirtual , "invokevirtual" , "bJJ" , null , BasicType.getTIllegal(), -1, true );
743 def(_invokespecial , "invokespecial" , "bJJ" , null , BasicType.getTIllegal(), -1, true ); 743 def(_invokespecial , "invokespecial" , "bJJ" , null , BasicType.getTIllegal(), -1, true );
744 def(_invokestatic , "invokestatic" , "bJJ" , null , BasicType.getTIllegal(), 0, true ); 744 def(_invokestatic , "invokestatic" , "bJJ" , null , BasicType.getTIllegal(), 0, true );
745 def(_invokeinterface , "invokeinterface" , "bJJ__", null , BasicType.getTIllegal(), -1, true ); 745 def(_invokeinterface , "invokeinterface" , "bJJ__", null , BasicType.getTIllegal(), -1, true );
746 def(_invokedynamic , "invokedynamic" , "bJJJJ", null , BasicType.getTIllegal(), -1, true ); 746 def(_invokedynamic , "invokedynamic" , "bJJJJ", null , BasicType.getTIllegal(), 0, true );
747 def(_new , "new" , "bkk" , null , BasicType.getTObject() , 1, true ); 747 def(_new , "new" , "bkk" , null , BasicType.getTObject() , 1, true );
748 def(_newarray , "newarray" , "bc" , null , BasicType.getTObject() , 0, true ); 748 def(_newarray , "newarray" , "bc" , null , BasicType.getTObject() , 0, true );
749 def(_anewarray , "anewarray" , "bkk" , null , BasicType.getTObject() , 0, true ); 749 def(_anewarray , "anewarray" , "bkk" , null , BasicType.getTObject() , 0, true );
750 def(_arraylength , "arraylength" , "b" , null , BasicType.getTVoid() , 0, true ); 750 def(_arraylength , "arraylength" , "b" , null , BasicType.getTVoid() , 0, true );
751 def(_athrow , "athrow" , "b" , null , BasicType.getTVoid() , -1, true ); 751 def(_athrow , "athrow" , "b" , null , BasicType.getTVoid() , -1, true );
761 def(_jsr_w , "jsr_w" , "boooo", null , BasicType.getTInt() , 0, false); 761 def(_jsr_w , "jsr_w" , "boooo", null , BasicType.getTInt() , 0, false);
762 def(_breakpoint , "breakpoint" , "" , null , BasicType.getTVoid() , 0, true ); 762 def(_breakpoint , "breakpoint" , "" , null , BasicType.getTVoid() , 0, true );
763 763
764 // JVM bytecodes 764 // JVM bytecodes
765 // bytecode bytecode name format wide f. result tp stk traps std code 765 // bytecode bytecode name format wide f. result tp stk traps std code
766
766 def(_fast_agetfield , "fast_agetfield" , "bJJ" , null , BasicType.getTObject() , 0, true , _getfield ); 767 def(_fast_agetfield , "fast_agetfield" , "bJJ" , null , BasicType.getTObject() , 0, true , _getfield );
767 def(_fast_bgetfield , "fast_bgetfield" , "bJJ" , null , BasicType.getTInt() , 0, true , _getfield ); 768 def(_fast_bgetfield , "fast_bgetfield" , "bJJ" , null , BasicType.getTInt() , 0, true , _getfield );
768 def(_fast_cgetfield , "fast_cgetfield" , "bJJ" , null , BasicType.getTChar() , 0, true , _getfield ); 769 def(_fast_cgetfield , "fast_cgetfield" , "bJJ" , null , BasicType.getTChar() , 0, true , _getfield );
769 def(_fast_dgetfield , "fast_dgetfield" , "bJJ" , null , BasicType.getTDouble() , 0, true , _getfield ); 770 def(_fast_dgetfield , "fast_dgetfield" , "bJJ" , null , BasicType.getTDouble() , 0, true , _getfield );
770 def(_fast_fgetfield , "fast_fgetfield" , "bJJ" , null , BasicType.getTFloat() , 0, true , _getfield ); 771 def(_fast_fgetfield , "fast_fgetfield" , "bJJ" , null , BasicType.getTFloat() , 0, true , _getfield );