Mercurial > hg > truffle
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 ); |