[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