Categories:
Audio (13)
Biotech (29)
Bytecode (36)
Database (77)
Framework (7)
Game (7)
General (507)
Graphics (53)
I/O (35)
IDE (2)
JAR Tools (101)
JavaBeans (21)
JDBC (121)
JDK (426)
JSP (20)
Logging (108)
Mail (58)
Messaging (8)
Network (84)
PDF (97)
Report (7)
Scripting (84)
Security (32)
Server (121)
Servlet (26)
SOAP (24)
Testing (54)
Web (15)
XML (309)
Collections:
Other Resources:
JDK 11 jdk.hotspot.agent.jmod - Hotspot Agent Module
JDK 11 jdk.hotspot.agent.jmod is the JMOD file for JDK 11 Hotspot Agent module.
JDK 11 Hotspot Agent module compiled class files are stored in \fyicenter\jdk-11.0.1\jmods\jdk.hotspot.agent.jmod.
JDK 11 Hotspot Agent module compiled class files are also linked and stored in the \fyicenter\jdk-11.0.1\lib\modules JImage file.
JDK 11 Hotspot Agent module source code files are stored in \fyicenter\jdk-11.0.1\lib\src.zip\jdk.hotspot.agent.
You can click and view the content of each source code file in the list below.
✍: FYIcenter
⏎ sun/jvm/hotspot/interpreter/BytecodeLoadConstant.java
/* * Copyright (c) 2002, 2017, Oracle and/or its affiliates. All rights reserved. * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. * * * * * * * * * * * * * * * * * * * */ package sun.jvm.hotspot.interpreter; import sun.jvm.hotspot.oops.*; import sun.jvm.hotspot.runtime.*; import sun.jvm.hotspot.utilities.*; public class BytecodeLoadConstant extends Bytecode { BytecodeLoadConstant(Method method, int bci) { super(method, bci); } public boolean hasCacheIndex() { // normal ldc uses CP index, but fast_aldc uses swapped CP cache index return code() >= Bytecodes.number_of_java_codes; } int rawIndex() { if (javaCode() == Bytecodes._ldc) return getIndexU1(); else return getIndexU2(code(), false); } public int poolIndex() { int index = rawIndex(); if (hasCacheIndex()) { return method().getConstants().objectToCPIndex(index); } else { return index; } } public int cacheIndex() { if (hasCacheIndex()) { return rawIndex(); } else { return -1; // no cache index } } public BasicType resultType() { int index = poolIndex(); ConstantTag tag = method().getConstants().getTagAt(index); return tag.basicType(); } private Oop getCachedConstant() { int i = cacheIndex(); if (i >= 0) { throw new InternalError("invokedynamic not implemented yet"); } return null; } public void verify() { if (Assert.ASSERTS_ENABLED) { Assert.that(isValid(), "check load constant"); } } public boolean isValid() { int jcode = javaCode(); boolean codeOk = jcode == Bytecodes._ldc || jcode == Bytecodes._ldc_w || jcode == Bytecodes._ldc2_w; if (! codeOk) return false; ConstantTag ctag = method().getConstants().getTagAt(poolIndex()); if (jcode == Bytecodes._ldc2_w) { // has to be double or long return (ctag.isDouble() || ctag.isLong()) ? true: false; } else { // has to be int or float or String or Klass return (ctag.isString() || ctag.isUnresolvedKlass() || ctag.isKlass() || ctag.isMethodHandle() || ctag.isMethodType() || ctag.isInt() || ctag.isFloat())? true: false; } } public boolean isKlassConstant() { int jcode = javaCode(); if (jcode == Bytecodes._ldc2_w) { return false; } ConstantTag ctag = method().getConstants().getTagAt(poolIndex()); return ctag.isKlass() || ctag.isUnresolvedKlass(); } // return Symbol (if unresolved) or Klass (if resolved) public Object getKlass() { if (Assert.ASSERTS_ENABLED) { Assert.that(isKlassConstant(), "not a klass literal"); } // tag change from 'unresolved' to 'klass' does not happen atomically. // We just look at the object at the corresponding index and // decide based on the oop type. ConstantPool cpool = method().getConstants(); int cpIndex = poolIndex(); return cpool.getKlassNameAt(cpIndex); } public static BytecodeLoadConstant at(Method method, int bci) { BytecodeLoadConstant b = new BytecodeLoadConstant(method, bci); if (Assert.ASSERTS_ENABLED) { b.verify(); } return b; } /** Like at, but returns null if the BCI is not at ldc or ldc_w or ldc2_w */ public static BytecodeLoadConstant atCheck(Method method, int bci) { BytecodeLoadConstant b = new BytecodeLoadConstant(method, bci); return (b.isValid() ? b : null); } public static BytecodeLoadConstant at(BytecodeStream bcs) { return new BytecodeLoadConstant(bcs.method(), bcs.bci()); } public String getConstantValue() { ConstantPool cpool = method().getConstants(); int cpIndex = poolIndex(); ConstantTag ctag = cpool.getTagAt(cpIndex); if (ctag.isInt()) { return "<int " + Integer.toString(cpool.getIntAt(cpIndex)) +">"; } else if (ctag.isLong()) { return "<long " + Long.toString(cpool.getLongAt(cpIndex)) + "L>"; } else if (ctag.isFloat()) { return "<float " + Float.toString(cpool.getFloatAt(cpIndex)) + "F>"; } else if (ctag.isDouble()) { return "<double " + Double.toString(cpool.getDoubleAt(cpIndex)) + "D>"; } else if (ctag.isString()) { // tag change from 'unresolved' to 'string' does not happen atomically. // We just look at the object at the corresponding index and // decide based on the oop type. Symbol sym = cpool.getUnresolvedStringAt(cpIndex); return "<String \"" + sym.asString() + "\">"; } else if (ctag.isKlass() || ctag.isUnresolvedKlass()) { // tag change from 'unresolved' to 'klass' does not happen atomically. // We just look at the object at the corresponding index and // decide based on the oop type. ConstantTag tag = cpool.getTagAt(cpIndex); if (tag.isKlass()) { Klass k = cpool.getKlassAt(cpIndex); return "<Class " + k.getName().asString() + "@" + k.getAddress() + ">"; } else if (tag.isUnresolvedKlass()) { Symbol sym = cpool.getKlassNameAt(cpIndex); return "<Class " + sym.asString() + ">"; } else { throw new RuntimeException("should not reach here"); } } else if (ctag.isMethodHandle()) { Oop x = getCachedConstant(); int refidx = cpool.getMethodHandleIndexAt(cpIndex); int refkind = cpool.getMethodHandleRefKindAt(cpIndex); return "<MethodHandle kind=" + Integer.toString(refkind) + " ref=" + Integer.toString(refidx) + (x == null ? "" : " @" + x.getHandle()) + ">"; } else if (ctag.isMethodType()) { Oop x = getCachedConstant(); int refidx = cpool.getMethodTypeIndexAt(cpIndex); return "<MethodType " + cpool.getSymbolAt(refidx).asString() + (x == null ? "" : " @" + x.getHandle()) + ">"; } else { if (Assert.ASSERTS_ENABLED) { Assert.that(false, "invalid load constant type"); } return null; } } public String toString() { StringBuffer buf = new StringBuffer(); buf.append(getJavaBytecodeName()); buf.append(spaces); buf.append('#'); buf.append(Integer.toString(poolIndex())); if (hasCacheIndex()) { buf.append('('); buf.append(Integer.toString(cacheIndex())); buf.append(')'); } buf.append(spaces); buf.append(getConstantValue()); if (code() != javaCode()) { buf.append(spaces); buf.append('['); buf.append(getBytecodeName()); buf.append(']'); } return buf.toString(); } }
⏎ sun/jvm/hotspot/interpreter/BytecodeLoadConstant.java
Or download all of them as a single archive file:
File name: jdk.hotspot.agent-11.0.1-src.zip File size: 1243786 bytes Release date: 2018-11-04 Download
⇒ JDK 11 jdk.httpserver.jmod - HTTP Server Module
2020-02-29, 132996👍, 0💬
Popular Posts:
Apache Log4j API provides the interface that applications should code to and provides the adapter co...
JDK 11 jdk.httpserver.jmod is the JMOD file for JDK 11 HTTP Server module. JDK 11 HTTP Server module...
JAX-WS is an API for building web services and clients. It is the next generation Web Services API r...
Old version of xml-apis.jar. JAR File Size and Download Location: File name: xmlParserAPIs.jar File ...
JDK 11 jdk.charsets.jmod is the JMOD file for JDK 11 Charsets module. JDK 11 Charsets module compile...