agent/src/share/classes/sun/jvm/hotspot/code/CodeBlob.java
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File 6951083 Cdiff agent/src/share/classes/sun/jvm/hotspot/code/CodeBlob.java

agent/src/share/classes/sun/jvm/hotspot/code/CodeBlob.java

Print this page

        

*** 1,7 **** /* ! * Copyright 2000-2005 Sun Microsystems, Inc. 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. --- 1,7 ---- /* ! * Copyright 2000-2010 Sun Microsystems, Inc. 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.
*** 40,51 **** private static CIntegerField headerSizeField; private static CIntegerField relocationSizeField; private static CIntegerField instructionsOffsetField; private static CIntegerField frameCompleteOffsetField; private static CIntegerField dataOffsetField; - private static CIntegerField oopsOffsetField; - private static CIntegerField oopsLengthField; private static CIntegerField frameSizeField; private static AddressField oopMapsField; // Only used by server compiler on x86; computed over in SA rather // than relying on computation in target VM --- 40,49 ----
*** 70,81 **** headerSizeField = type.getCIntegerField("_header_size"); relocationSizeField = type.getCIntegerField("_relocation_size"); frameCompleteOffsetField = type.getCIntegerField("_frame_complete_offset"); instructionsOffsetField = type.getCIntegerField("_instructions_offset"); dataOffsetField = type.getCIntegerField("_data_offset"); - oopsOffsetField = type.getCIntegerField("_oops_offset"); - oopsLengthField = type.getCIntegerField("_oops_length"); frameSizeField = type.getCIntegerField("_frame_size"); oopMapsField = type.getAddressField("_oop_maps"); if (VM.getVM().isServerCompiler()) { matcherInterpreterFramePointerReg = --- 68,77 ----
*** 129,151 **** public Address dataEnd() { return headerBegin().addOffsetTo(sizeField.getValue(addr)); } - public Address oopsBegin() { - return headerBegin().addOffsetTo(oopsOffsetField.getValue(addr)); - } - - public Address oopsEnd() { - return oopsBegin().addOffsetTo(getOopsLength()); - } - // Offsets public int getRelocationOffset() { return (int) headerSizeField.getValue(addr); } public int getInstructionsOffset() { return (int) instructionsOffsetField.getValue(addr); } public int getDataOffset() { return (int) dataOffsetField.getValue(addr); } - public int getOopsOffset() { return (int) oopsOffsetField.getValue(addr); } // Sizes public int getSize() { return (int) sizeField.getValue(addr); } public int getHeaderSize() { return (int) headerSizeField.getValue(addr); } // FIXME: add getRelocationSize() --- 125,138 ----
*** 155,177 **** // Containment public boolean blobContains(Address addr) { return headerBegin().lessThanOrEqual(addr) && dataEnd().greaterThan(addr); } // FIXME: add relocationContains public boolean instructionsContains(Address addr) { return instructionsBegin().lessThanOrEqual(addr) && instructionsEnd().greaterThan(addr); } public boolean dataContains(Address addr) { return dataBegin().lessThanOrEqual(addr) && dataEnd().greaterThan(addr); } - public boolean oopsContains(Address addr) { return oopsBegin().lessThanOrEqual(addr) && oopsEnd().greaterThan(addr); } public boolean contains(Address addr) { return instructionsContains(addr); } public boolean isFrameCompleteAt(Address a) { return instructionsContains(a) && a.minus(instructionsBegin()) >= frameCompleteOffsetField.getValue(addr); } - /** Support for oops in scopes and relocs. Note: index 0 is reserved for null. */ - public OopHandle getOopAt(int index) { - if (index == 0) return null; - if (Assert.ASSERTS_ENABLED) { - Assert.that(index > 0 && index <= getOopsLength(), "must be a valid non-zero index"); - } - return oopsBegin().getOopHandleAt((index - 1) * VM.getVM().getOopSize()); - } - // Reclamation support (really only used by the nmethods, but in order to get asserts to work // in the CodeCache they are defined virtual here) public boolean isZombie() { return false; } public boolean isLockedByVM() { return false; } --- 142,154 ----
*** 221,240 **** tty.print(getName()); printComponentsOn(tty); } protected void printComponentsOn(PrintStream tty) { - // FIXME: add relocation information tty.println(" instructions: [" + instructionsBegin() + ", " + instructionsEnd() + "), " + " data: [" + dataBegin() + ", " + dataEnd() + "), " + - " oops: [" + oopsBegin() + ", " + oopsEnd() + "), " + " frame size: " + getFrameSize()); } - - //-------------------------------------------------------------------------------- - // Internals only below this point - // - - private int getOopsLength() { - return (int) oopsLengthField.getValue(addr); - } } --- 198,207 ----
agent/src/share/classes/sun/jvm/hotspot/code/CodeBlob.java
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File