Merge
This commit is contained in:
commit
c15943f7a8
@ -62,95 +62,12 @@
|
||||
<div class="centered" role="banner">
|
||||
<xsl:apply-templates select="title"/>
|
||||
</div>
|
||||
<ul role="navigation">
|
||||
<li>
|
||||
<a href="#SpecificationIntro"><b>Introduction</b></a>
|
||||
<ul>
|
||||
<xsl:for-each select="intro">
|
||||
<li>
|
||||
<a>
|
||||
<xsl:attribute name="href">#<xsl:value-of select="@id"/>
|
||||
</xsl:attribute>
|
||||
<b><xsl:value-of select="@label"/></b>
|
||||
</a>
|
||||
</li>
|
||||
</xsl:for-each>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#FunctionSection"><b>Functions</b></a>
|
||||
<ul>
|
||||
<xsl:for-each select="functionsection/intro">
|
||||
<li>
|
||||
<a>
|
||||
<xsl:attribute name="href">#<xsl:value-of select="@id"/>
|
||||
</xsl:attribute>
|
||||
<b><xsl:value-of select="@label"/></b>
|
||||
</a>
|
||||
</li>
|
||||
</xsl:for-each>
|
||||
<li>
|
||||
<a href="#FunctionIndex"><b>Function Index</b></a>
|
||||
<ul>
|
||||
<xsl:for-each select="functionsection/category">
|
||||
<li>
|
||||
<a>
|
||||
<xsl:attribute name="href">#<xsl:value-of select="@id"/>
|
||||
</xsl:attribute>
|
||||
<b><xsl:value-of select="@label"/></b>
|
||||
</a>
|
||||
</li>
|
||||
</xsl:for-each>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#ErrorSection"><b>Error Codes</b></a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#EventSection"><b>Events</b></a>
|
||||
<ul>
|
||||
<li>
|
||||
<a href="#EventIndex"><b>Event Index</b></a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#DataSection"><b>Data Types</b></a>
|
||||
<ul>
|
||||
<xsl:for-each select="//basetypes">
|
||||
<li>
|
||||
<a>
|
||||
<xsl:attribute name="href">#<xsl:value-of select="@id"/></xsl:attribute>
|
||||
<b>
|
||||
<xsl:value-of select="@label"/>
|
||||
</b>
|
||||
</a>
|
||||
</li>
|
||||
</xsl:for-each>
|
||||
<li>
|
||||
<a href="#StructureTypeDefinitions"><b>Structure Type Definitions</b></a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#FunctionTypeDefinitions"><b>Function Type Definitions</b></a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#EnumerationDefinitions"><b>Enumeration Definitions</b></a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#FunctionTable"><b>Function Table</b></a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#ConstantIndex"><b>Constant Index</b></a>
|
||||
</li>
|
||||
<xsl:if test="$development = 'Show'">
|
||||
<nav>
|
||||
<ul>
|
||||
<li>
|
||||
<a href="#SpecificationIssues"><b>Issues</b></a>
|
||||
<a href="#SpecificationIntro"><b>Introduction</b></a>
|
||||
<ul>
|
||||
<xsl:for-each select="issuessection/intro">
|
||||
<xsl:for-each select="intro">
|
||||
<li>
|
||||
<a>
|
||||
<xsl:attribute name="href">#<xsl:value-of select="@id"/>
|
||||
@ -161,11 +78,96 @@
|
||||
</xsl:for-each>
|
||||
</ul>
|
||||
</li>
|
||||
</xsl:if>
|
||||
<li>
|
||||
<a href="#ChangeHistory"><b>Change History</b></a>
|
||||
</li>
|
||||
</ul>
|
||||
<li>
|
||||
<a href="#FunctionSection"><b>Functions</b></a>
|
||||
<ul>
|
||||
<xsl:for-each select="functionsection/intro">
|
||||
<li>
|
||||
<a>
|
||||
<xsl:attribute name="href">#<xsl:value-of select="@id"/>
|
||||
</xsl:attribute>
|
||||
<b><xsl:value-of select="@label"/></b>
|
||||
</a>
|
||||
</li>
|
||||
</xsl:for-each>
|
||||
<li>
|
||||
<a href="#FunctionIndex"><b>Function Index</b></a>
|
||||
<ul>
|
||||
<xsl:for-each select="functionsection/category">
|
||||
<li>
|
||||
<a>
|
||||
<xsl:attribute name="href">#<xsl:value-of select="@id"/>
|
||||
</xsl:attribute>
|
||||
<b><xsl:value-of select="@label"/></b>
|
||||
</a>
|
||||
</li>
|
||||
</xsl:for-each>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#ErrorSection"><b>Error Codes</b></a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#EventSection"><b>Events</b></a>
|
||||
<ul>
|
||||
<li>
|
||||
<a href="#EventIndex"><b>Event Index</b></a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#DataSection"><b>Data Types</b></a>
|
||||
<ul>
|
||||
<xsl:for-each select="//basetypes">
|
||||
<li>
|
||||
<a>
|
||||
<xsl:attribute name="href">#<xsl:value-of select="@id"/></xsl:attribute>
|
||||
<b>
|
||||
<xsl:value-of select="@label"/>
|
||||
</b>
|
||||
</a>
|
||||
</li>
|
||||
</xsl:for-each>
|
||||
<li>
|
||||
<a href="#StructureTypeDefinitions"><b>Structure Type Definitions</b></a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#FunctionTypeDefinitions"><b>Function Type Definitions</b></a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#EnumerationDefinitions"><b>Enumeration Definitions</b></a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#FunctionTable"><b>Function Table</b></a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#ConstantIndex"><b>Constant Index</b></a>
|
||||
</li>
|
||||
<xsl:if test="$development = 'Show'">
|
||||
<li>
|
||||
<a href="#SpecificationIssues"><b>Issues</b></a>
|
||||
<ul>
|
||||
<xsl:for-each select="issuessection/intro">
|
||||
<li>
|
||||
<a>
|
||||
<xsl:attribute name="href">#<xsl:value-of select="@id"/>
|
||||
</xsl:attribute>
|
||||
<b><xsl:value-of select="@label"/></b>
|
||||
</a>
|
||||
</li>
|
||||
</xsl:for-each>
|
||||
</ul>
|
||||
</li>
|
||||
</xsl:if>
|
||||
<li>
|
||||
<a href="#ChangeHistory"><b>Change History</b></a>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
<!-- end table of contents, begin body -->
|
||||
<div role="main">
|
||||
<div class="sep"/>
|
||||
@ -212,11 +214,11 @@
|
||||
<h1>
|
||||
<xsl:apply-templates/>
|
||||
</h1>
|
||||
<h3>
|
||||
<h2>
|
||||
<xsl:value-of select="@subtitle"/>
|
||||
<xsl:text> </xsl:text>
|
||||
<xsl:call-template name="showbasicversion"/>
|
||||
</h3>
|
||||
</h2>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="functionsection">
|
||||
@ -363,7 +365,7 @@
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td >
|
||||
<td>
|
||||
<xsl:apply-templates select="." mode="phaseinfo"/>
|
||||
</td>
|
||||
<td>
|
||||
@ -642,12 +644,12 @@ typedef struct {
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="capabilitiestypedef|typedef|uniontypedef">
|
||||
<h4>
|
||||
<h3>
|
||||
<xsl:attribute name="id">
|
||||
<xsl:value-of select="@id"/>
|
||||
</xsl:attribute>
|
||||
<xsl:value-of select="@label"/>
|
||||
</h4>
|
||||
</h3>
|
||||
<xsl:apply-templates select="." mode="description"/>
|
||||
<blockquote>
|
||||
<xsl:apply-templates select="." mode="code"/>
|
||||
@ -1951,12 +1953,12 @@ typedef struct {
|
||||
<xsl:if test="@id!=''">
|
||||
<xsl:choose>
|
||||
<xsl:when test="@label!=''">
|
||||
<h4>
|
||||
<h3>
|
||||
<xsl:attribute name="id">
|
||||
<xsl:value-of select="@id"/>
|
||||
</xsl:attribute>
|
||||
<xsl:value-of select="@label"/>
|
||||
</h4>
|
||||
</h3>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<a>
|
||||
|
@ -840,6 +840,15 @@ public:
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
oop lookup_raw(intptr_t raw_value) {
|
||||
// Have to cast to avoid little/big-endian problems.
|
||||
if (sizeof(PrimitiveType) > sizeof(jint)) {
|
||||
jlong value = (jlong)raw_value;
|
||||
return lookup(value);
|
||||
}
|
||||
PrimitiveType value = (PrimitiveType)*((jint*)&raw_value);
|
||||
return lookup(value);
|
||||
}
|
||||
};
|
||||
|
||||
typedef BoxCache<jint, java_lang_Integer_IntegerCache, java_lang_Integer> IntegerBoxCache;
|
||||
@ -878,6 +887,11 @@ public:
|
||||
}
|
||||
return _singleton;
|
||||
}
|
||||
oop lookup_raw(intptr_t raw_value) {
|
||||
// Have to cast to avoid little/big-endian problems.
|
||||
jboolean value = (jboolean)*((jint*)&raw_value);
|
||||
return lookup(value);
|
||||
}
|
||||
oop lookup(jboolean value) {
|
||||
if (value != 0) {
|
||||
return JNIHandles::resolve_non_null(_true_cache);
|
||||
@ -892,18 +906,14 @@ oop Deoptimization::get_cached_box(AutoBoxObjectValue* bv, frame* fr, RegisterMa
|
||||
Klass* k = java_lang_Class::as_Klass(bv->klass()->as_ConstantOopReadValue()->value()());
|
||||
BasicType box_type = SystemDictionary::box_klass_type(k);
|
||||
if (box_type != T_OBJECT) {
|
||||
StackValue* value = StackValue::create_stack_value(fr, reg_map, bv->field_at(0));
|
||||
StackValue* value = StackValue::create_stack_value(fr, reg_map, bv->field_at(box_type == T_LONG ? 1 : 0));
|
||||
switch(box_type) {
|
||||
case T_INT: return IntegerBoxCache::singleton(THREAD)->lookup(value->get_int());
|
||||
case T_LONG: {
|
||||
StackValue* low = StackValue::create_stack_value(fr, reg_map, bv->field_at(1));
|
||||
jlong res = (jlong)low->get_int();
|
||||
return LongBoxCache::singleton(THREAD)->lookup(res);
|
||||
}
|
||||
case T_CHAR: return CharacterBoxCache::singleton(THREAD)->lookup(value->get_int());
|
||||
case T_SHORT: return ShortBoxCache::singleton(THREAD)->lookup(value->get_int());
|
||||
case T_BYTE: return ByteBoxCache::singleton(THREAD)->lookup(value->get_int());
|
||||
case T_BOOLEAN: return BooleanBoxCache::singleton(THREAD)->lookup(value->get_int());
|
||||
case T_INT: return IntegerBoxCache::singleton(THREAD)->lookup_raw(value->get_int());
|
||||
case T_CHAR: return CharacterBoxCache::singleton(THREAD)->lookup_raw(value->get_int());
|
||||
case T_SHORT: return ShortBoxCache::singleton(THREAD)->lookup_raw(value->get_int());
|
||||
case T_BYTE: return ByteBoxCache::singleton(THREAD)->lookup_raw(value->get_int());
|
||||
case T_BOOLEAN: return BooleanBoxCache::singleton(THREAD)->lookup_raw(value->get_int());
|
||||
case T_LONG: return LongBoxCache::singleton(THREAD)->lookup_raw(value->get_int());
|
||||
default:;
|
||||
}
|
||||
}
|
||||
|
@ -475,7 +475,9 @@ final class HotSpotResolvedJavaMethodImpl extends HotSpotMethod implements HotSp
|
||||
methodData = new HotSpotMethodData(metaspaceMethodData, this);
|
||||
String methodDataFilter = Option.TraceMethodDataFilter.getString();
|
||||
if (methodDataFilter != null && this.format("%H.%n").contains(methodDataFilter)) {
|
||||
System.out.println(methodData.toString());
|
||||
String line = methodData.toString() + System.lineSeparator();
|
||||
byte[] lineBytes = line.getBytes();
|
||||
CompilerToVM.compilerToVM().writeDebugOutput(lineBytes, 0, lineBytes.length, true, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user