[aarch64-port-dev ] RFR: merge up to jdk8-b111
Andrew McDermott
andrew.mcdermott at linaro.org
Mon Dec 2 23:14:01 PST 2013
Hi,
The attached or referenced changesets merge the aarch64-port to
jdk8-b111. I have built both client and server and tested as follows:
Cross-compilation
=================
client/fastdebug/hotspot
Test results: passed: 321; failed: 10; error: 8
server/fastdebug/hotspot (*)
Test results: passed: 312; failed: 21; error: 6
(*) The server/fastdebug/hotspot test used an older---Linaro
OpenEmbedded 13.10---client/release as the test harness.
Builtin Simulator builds
========================
server/fastdebug/hotspot
Test results: passed: 216; failed: 4; error: 10
client/fastdebug/hotspot
Test results: passed: 329; failed: 8; error: 11
Some of the errors are tests timing out. It appears that some tests are
leaving spinning JVM processes which exacerbates the problem. I haven't
looked into why this is.
As inlining all the changesets would make this email quite large I have
copied them to:
http://people.linaro.org/~andrew.mcdermott/b111/corba-b111.patch
http://people.linaro.org/~andrew.mcdermott/b111/hotspot-b111.patch
http://people.linaro.org/~andrew.mcdermott/b111/jaxp-b111.patch
http://people.linaro.org/~andrew.mcdermott/b111/jaxws-b111.patch
http://people.linaro.org/~andrew.mcdermott/b111/jdk-b111.patch
http://people.linaro.org/~andrew.mcdermott/b111/jdk8-b111.patch
http://people.linaro.org/~andrew.mcdermott/b111/langtools-b111.patch
http://people.linaro.org/~andrew.mcdermott/b111/nashorn-b111.patch
A tarball of all the patches, including the following inline patch, may
be downloaded from:
http://people.linaro.org/~andrew.mcdermott/b111.tar.gz
The inline changeset below represents the changes to the hotspot aarch64
specific code to bring it in line with jdk8-b111.
--- cut here ---
# HG changeset patch
# User Andrew McDermott <andrew.mcdermott at linaro.org>
# Date 1385746889 0
# Node ID 631358b867dc330d3d865c9d170daccf4c4df794
# Parent 0cd6fb9aac13f79ac7b7db23235a183bcc01f655
aarch64 specific changes for merge to jdk8-b111
diff -r 0cd6fb9aac13 -r 631358b867dc src/cpu/aarch64/vm/aarch64.ad
--- a/src/cpu/aarch64/vm/aarch64.ad Fri Nov 29 09:19:25 2013 +0000
+++ b/src/cpu/aarch64/vm/aarch64.ad Fri Nov 29 17:41:29 2013 +0000
@@ -1701,6 +1701,16 @@
return RegMask();
}
+const RegMask Matcher::mathExactI_result_proj_mask() {
+ ShouldNotReachHere();
+ return RegMask();
+}
+
+const RegMask Matcher::mathExactI_flags_proj_mask() {
+ ShouldNotReachHere();
+ return RegMask();
+}
+
// helper for encoding java_to_runtime calls on sim
//
// this is needed to compute the extra arguments required when
@@ -4465,6 +4475,8 @@
greater_equal(0xa, "ge");
less_equal(0xd, "le");
greater(0xc, "gt");
+ overflow(0x6, "vs");
+ no_overflow(0x7, "vc");
%}
%}
@@ -4482,6 +4494,8 @@
greater_equal(0x2, "hs");
less_equal(0x9, "ls");
greater(0x8, "hi");
+ overflow(0x6, "vs");
+ no_overflow(0x7, "vc");
%}
%}
diff -r 0cd6fb9aac13 -r 631358b867dc src/cpu/aarch64/vm/c1_Runtime1_aarch64.cpp
--- a/src/cpu/aarch64/vm/c1_Runtime1_aarch64.cpp Fri Nov 29 09:19:25 2013 +0000
+++ b/src/cpu/aarch64/vm/c1_Runtime1_aarch64.cpp Fri Nov 29 17:41:29 2013 +0000
@@ -1415,7 +1415,7 @@
case access_field_patching_id:
*cpool_addr = patch_field_offset; break;
case load_mirror_patching_id:
- *cpool_addr = (uint64_t)mirror(); break;
+ *cpool_addr = cast_from_oop<uint64_t>(mirror()); break;
case load_klass_patching_id:
*cpool_addr = (uint64_t)load_klass(); break;
default:
diff -r 0cd6fb9aac13 -r 631358b867dc src/cpu/aarch64/vm/frame_aarch64.cpp
--- a/src/cpu/aarch64/vm/frame_aarch64.cpp Fri Nov 29 09:19:25 2013 +0000
+++ b/src/cpu/aarch64/vm/frame_aarch64.cpp Fri Nov 29 17:41:29 2013 +0000
@@ -637,7 +637,7 @@
#ifdef CC_INTERP
obj = istate->_oop_temp;
#else
- obj = (oop) at(interpreter_frame_oop_temp_offset);
+ obj = cast_to_oop(at(interpreter_frame_oop_temp_offset));
#endif // CC_INTERP
} else {
oop* obj_p = (oop*)tos_addr;
diff -r 0cd6fb9aac13 -r 631358b867dc src/cpu/aarch64/vm/methodHandles_aarch64.cpp
--- a/src/cpu/aarch64/vm/methodHandles_aarch64.cpp Fri Nov 29 09:19:25 2013 +0000
+++ b/src/cpu/aarch64/vm/methodHandles_aarch64.cpp Fri Nov 29 17:41:29 2013 +0000
@@ -100,6 +100,8 @@
void MethodHandles::jump_from_method_handle(MacroAssembler* _masm, Register method, Register temp,
bool for_compiler_entry) {
assert(method == rmethod, "interpreter calling convention");
+ Label L_no_such_method;
+ __ cbz(rmethod, L_no_such_method);
__ verify_method_ptr(method);
if (!for_compiler_entry && JvmtiExport::can_post_interpreter_events()) {
@@ -119,6 +121,8 @@
Method::from_interpreted_offset();
__ ldr(rscratch1,Address(method, entry_offset));
__ br(rscratch1);
+ __ bind(L_no_such_method);
+ __ b(RuntimeAddress(StubRoutines::throw_AbstractMethodError_entry()));
}
void MethodHandles::jump_to_lambda_form(MacroAssembler* _masm,
--- cut here ---
More information about the aarch64-port-dev
mailing list