agent/src/share/classes/sun/jvm/hotspot/interpreter/Bytecode.java
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File 7012081 Cdiff agent/src/share/classes/sun/jvm/hotspot/interpreter/Bytecode.java

agent/src/share/classes/sun/jvm/hotspot/interpreter/Bytecode.java

Print this page

        

*** 24,33 **** --- 24,34 ---- package sun.jvm.hotspot.interpreter; import sun.jvm.hotspot.oops.*; import sun.jvm.hotspot.utilities.*; + import sun.jvm.hotspot.runtime.VM; public class Bytecode { Method method; int bci; static final int jintSize = 4;
*** 43,52 **** --- 44,70 ---- // NOTE: assumes that the start of the method's bytecodes is 4-byte aligned int alignedOffset(int offset) { return Bits.roundTo(bci + offset, jintSize) - bci; } + public int getIndexU1() { return method.getBytecodeOrBPAt(bci() + 1) & 0xFF; } + public int getIndexU2(int bc, boolean isWide) { + if (can_use_native_byte_order(bc, isWide)) { + return method.getNativeShortArg(bci() + (isWide ? 2 : 1)) & 0xFFFF; + } + return method.getBytecodeShortArg(bci() + (isWide ? 2 : 1)) & 0xFFFF; + } + public int getIndexU4() { return method.getNativeIntArg(bci() + 1); } + public boolean hasIndexU4() { return code() == Bytecodes._invokedynamic; } + + public int getIndexU1Cpcache() { return method.getBytecodeOrBPAt(bci() + 1) & 0xFF; } + public int getIndexU2Cpcache() { return method.getNativeShortArg(bci() + 1) & 0xFFFF; } + + static boolean can_use_native_byte_order(int bc, boolean is_wide) { + return (VM.getVM().isBigEndian() || Bytecodes.native_byte_order(bc /*, is_wide*/)); + } + int javaSignedWordAt(int offset) { return method.getBytecodeIntArg(bci + offset); } short javaShortAt(int offset) {
agent/src/share/classes/sun/jvm/hotspot/interpreter/Bytecode.java
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File