Skip to content

Commit

Permalink
Merge
Browse files Browse the repository at this point in the history
  • Loading branch information
J. Duke committed Jul 5, 2017
2 parents 0146531 + 90f4e99 commit 0042095
Show file tree
Hide file tree
Showing 92 changed files with 917 additions and 677 deletions.
1 change: 1 addition & 0 deletions .hgtags-top-repo
Original file line number Diff line number Diff line change
Expand Up @@ -180,3 +180,4 @@ b85b44cced2406792cfb9baab1377ff03e7001d8 jdk8-b55
76844579fa4b30929731115b237e477181a82394 jdk8-b56
522dfac8ca4d07c0b74025d4ac3b6e5feefbb829 jdk8-b57
9367024804874faf8e958adeb333682bab1c0c47 jdk8-b58
dae9821589ccd2611bdf7084269b98e819091770 jdk8-b59
1 change: 1 addition & 0 deletions corba/.hgtags
Original file line number Diff line number Diff line change
Expand Up @@ -180,3 +180,4 @@ e8a0e84383d6fbd303ce44bd355fb25972b13286 jdk8-b55
bf1bb47414e178beff67dc255fc3b97bf401f679 jdk8-b56
f3ab4163ae012965fc8acdfc25ce0fece8d6906d jdk8-b57
18462a19f7bd66d38015f61ea549a5e0c0c889a3 jdk8-b58
d54dc53e223ed9ce7d5f4d2cd02ad9d5def3c2db jdk8-b59
2 changes: 2 additions & 0 deletions hotspot/.hgtags
Original file line number Diff line number Diff line change
Expand Up @@ -281,3 +281,5 @@ d70102c4cb73158902acaa6016f47c7bc14e0d67 jdk8-b57
5f54277c67f755a377999bff904ab48aa63ddaf9 hs25-b02
6bb378c50828e9d76fb2653d1712c66ea8fc47db jdk8-b58
f2e12eb74117c917c0bb264694c02de4a6a15a10 hs25-b03
8a1a6b9b4f20fd2f6a12441d638e51f19a82db19 jdk8-b59
1cc7a2a11d00832e3d07f81f3744a6883422db7e hs25-b04
2 changes: 1 addition & 1 deletion hotspot/make/hotspot_version
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ HOTSPOT_VM_COPYRIGHT=Copyright 2012

HS_MAJOR_VER=25
HS_MINOR_VER=0
HS_BUILD_NUMBER=03
HS_BUILD_NUMBER=04

JDK_MAJOR_VER=1
JDK_MINOR_VER=8
Expand Down
5 changes: 5 additions & 0 deletions hotspot/src/cpu/sparc/vm/sparc.ad
Original file line number Diff line number Diff line change
Expand Up @@ -1870,6 +1870,11 @@ const int Matcher::vector_ideal_reg(int size) {
return Op_RegD;
}

const int Matcher::vector_shift_count_ideal_reg(int size) {
fatal("vector shift is not supported");
return Node::NotAMachineReg;
}

// Limits on vector size (number of elements) loaded into vector.
const int Matcher::max_vector_size(const BasicType bt) {
assert(is_java_primitive(bt), "only primitive type vectors");
Expand Down
11 changes: 6 additions & 5 deletions hotspot/src/cpu/sparc/vm/templateTable_sparc.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2936,6 +2936,7 @@ void TemplateTable::prepare_invoke(int byte_no,
// Push the appendix as a trailing parameter.
// This must be done before we get the receiver,
// since the parameter_size includes it.
assert(ConstantPoolCacheEntry::_indy_resolved_references_appendix_offset == 0, "appendix expected at index+0");
__ load_resolved_reference_at_index(temp, index);
__ verify_oop(temp);
__ push_ptr(temp); // push appendix (MethodType, CallSite, etc.)
Expand Down Expand Up @@ -3235,15 +3236,15 @@ void TemplateTable::invokehandle(int byte_no) {
}

const Register Rret = Lscratch;
const Register G4_mtype = G4_scratch; // f1
const Register G4_mtype = G4_scratch;
const Register O0_recv = O0;
const Register Rscratch = G3_scratch;

prepare_invoke(byte_no, G5_method, Rret, G4_mtype, O0_recv);
__ null_check(O0_recv);

// G4: MethodType object (from cpool->resolved_references[])
// G5: MH.linkToCallSite method (from f2)
// G4: MethodType object (from cpool->resolved_references[f1], if necessary)
// G5: MH.invokeExact_MT method (from f2)

// Note: G4_mtype is already pushed (if necessary) by prepare_invoke

Expand Down Expand Up @@ -3275,8 +3276,8 @@ void TemplateTable::invokedynamic(int byte_no) {

prepare_invoke(byte_no, G5_method, Rret, G4_callsite);

// G4: CallSite object (from cpool->resolved_references[])
// G5: MH.linkToCallSite method (from f1)
// G4: CallSite object (from cpool->resolved_references[f1])
// G5: MH.linkToCallSite method (from f2)

// Note: G4_callsite is already pushed by prepare_invoke

Expand Down
16 changes: 9 additions & 7 deletions hotspot/src/cpu/x86/vm/templateTable_x86_32.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2139,7 +2139,7 @@ void TemplateTable::load_invoke_cp_cache_entry(int byte_no,
const int index_offset = in_bytes(ConstantPoolCache::base_offset() +
ConstantPoolCacheEntry::f2_offset());

size_t index_size = (is_invokedynamic ? sizeof(u4) : sizeof(u2));
size_t index_size = (is_invokedynamic ? sizeof(u4) : sizeof(u2));
resolve_cache_and_index(byte_no, cache, index, index_size);
__ movptr(method, Address(cache, index, Address::times_ptr, method_offset));

Expand Down Expand Up @@ -2876,6 +2876,7 @@ void TemplateTable::prepare_invoke(int byte_no,
// since the parameter_size includes it.
__ push(rbx);
__ mov(rbx, index);
assert(ConstantPoolCacheEntry::_indy_resolved_references_appendix_offset == 0, "appendix expected at index+0");
__ load_resolved_reference_at_index(index, rbx);
__ pop(rbx);
__ push(index); // push appendix (MethodType, CallSite, etc.)
Expand Down Expand Up @@ -3093,8 +3094,8 @@ void TemplateTable::invokeinterface(int byte_no) {
void TemplateTable::invokehandle(int byte_no) {
transition(vtos, vtos);
assert(byte_no == f1_byte, "use this argument");
const Register rbx_method = rbx; // (from f2)
const Register rax_mtype = rax; // (from f1)
const Register rbx_method = rbx;
const Register rax_mtype = rax;
const Register rcx_recv = rcx;
const Register rdx_flags = rdx;

Expand All @@ -3104,13 +3105,14 @@ void TemplateTable::invokehandle(int byte_no) {
return;
}

prepare_invoke(byte_no,
rbx_method, rax_mtype, // get f2 Method*, f1 MethodType
rcx_recv);
prepare_invoke(byte_no, rbx_method, rax_mtype, rcx_recv);
__ verify_method_ptr(rbx_method);
__ verify_oop(rcx_recv);
__ null_check(rcx_recv);

// rax: MethodType object (from cpool->resolved_references[f1], if necessary)
// rbx: MH.invokeExact_MT method (from f2)

// Note: rax_mtype is already pushed (if necessary) by prepare_invoke

// FIXME: profile the LambdaForm also
Expand Down Expand Up @@ -3140,7 +3142,7 @@ void TemplateTable::invokedynamic(int byte_no) {

prepare_invoke(byte_no, rbx_method, rax_callsite);

// rax: CallSite object (from cpool->resolved_references[])
// rax: CallSite object (from cpool->resolved_references[f1])
// rbx: MH.linkToCallSite method (from f2)

// Note: rax_callsite is already pushed by prepare_invoke
Expand Down
16 changes: 9 additions & 7 deletions hotspot/src/cpu/x86/vm/templateTable_x86_64.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2184,7 +2184,7 @@ void TemplateTable::load_invoke_cp_cache_entry(int byte_no,
const int index_offset = in_bytes(ConstantPoolCache::base_offset() +
ConstantPoolCacheEntry::f2_offset());

size_t index_size = (is_invokedynamic ? sizeof(u4) : sizeof(u2));
size_t index_size = (is_invokedynamic ? sizeof(u4) : sizeof(u2));
resolve_cache_and_index(byte_no, cache, index, index_size);
__ movptr(method, Address(cache, index, Address::times_ptr, method_offset));

Expand Down Expand Up @@ -2926,6 +2926,7 @@ void TemplateTable::prepare_invoke(int byte_no,
// since the parameter_size includes it.
__ push(rbx);
__ mov(rbx, index);
assert(ConstantPoolCacheEntry::_indy_resolved_references_appendix_offset == 0, "appendix expected at index+0");
__ load_resolved_reference_at_index(index, rbx);
__ pop(rbx);
__ push(index); // push appendix (MethodType, CallSite, etc.)
Expand Down Expand Up @@ -3144,8 +3145,8 @@ void TemplateTable::invokeinterface(int byte_no) {
void TemplateTable::invokehandle(int byte_no) {
transition(vtos, vtos);
assert(byte_no == f1_byte, "use this argument");
const Register rbx_method = rbx; // f2
const Register rax_mtype = rax; // f1
const Register rbx_method = rbx;
const Register rax_mtype = rax;
const Register rcx_recv = rcx;
const Register rdx_flags = rdx;

Expand All @@ -3155,13 +3156,14 @@ void TemplateTable::invokehandle(int byte_no) {
return;
}

prepare_invoke(byte_no,
rbx_method, rax_mtype, // get f2 Method*, f1 MethodType
rcx_recv);
prepare_invoke(byte_no, rbx_method, rax_mtype, rcx_recv);
__ verify_method_ptr(rbx_method);
__ verify_oop(rcx_recv);
__ null_check(rcx_recv);

// rax: MethodType object (from cpool->resolved_references[f1], if necessary)
// rbx: MH.invokeExact_MT method (from f2)

// Note: rax_mtype is already pushed (if necessary) by prepare_invoke

// FIXME: profile the LambdaForm also
Expand Down Expand Up @@ -3191,7 +3193,7 @@ void TemplateTable::invokedynamic(int byte_no) {

prepare_invoke(byte_no, rbx_method, rax_callsite);

// rax: CallSite object (from cpool->resolved_references[])
// rax: CallSite object (from cpool->resolved_references[f1])
// rbx: MH.linkToCallSite method (from f2)

// Note: rax_callsite is already pushed by prepare_invoke
Expand Down

0 comments on commit 0042095

Please sign in to comment.