[aarch64-port-dev ] Internal Error (c1_LIRAssembler_aarch64.cpp:1733), pid=2545, tid=547560092176

Andrew Haley aph at redhat.com
Thu Aug 29 09:18:51 PDT 2013


On 08/27/2013 07:56 AM, Cao Hoang Thu wrote:
> VM Arguments:
> jvm_args: -Dproc_datanode -Xmx1000m -Dcom.sun.management.jmxremote ...
> java_command: org.apache.hadoop.hdfs.server.datanode.DataNode
> 
> # A fatal error has been detected by the Java Runtime Environment:
> #
> #  Internal Error (c1_LIRAssembler_aarch64.cpp:1733), pid=1920, tid=546312299024
> #  Error: ShouldNotReachHere()

Fixed thusly:

changeset:   4867:3a09edaa2c42
tag:         tip
user:        aph
date:        Thu Aug 29 17:15:33 2013 +0100
files:       src/cpu/aarch64/vm/c1_LIRAssembler_aarch64.cpp
description:
C1: Support add of obj+long


diff -r 356ebc1be1d9 -r 3a09edaa2c42 src/cpu/aarch64/vm/c1_LIRAssembler_aarch64.cpp
--- a/src/cpu/aarch64/vm/c1_LIRAssembler_aarch64.cpp	Fri Aug 23 15:26:17 2013 +0100
+++ b/src/cpu/aarch64/vm/c1_LIRAssembler_aarch64.cpp	Thu Aug 29 17:15:33 2013 +0100
@@ -1702,6 +1702,15 @@
       default:      ShouldNotReachHere();
       }

+    } else if (right->is_double_cpu()) {
+      Register rreg = right->as_register_lo();
+      // single_cpu + double_cpu: can happen with obj+long
+      assert(code == lir_add || code == lir_sub, "mismatched arithmetic op");
+      switch (code) {
+      case lir_add: __ add(dreg, lreg, rreg); break;
+      case lir_sub: __ sub(dreg, lreg, rreg); break;
+      default: ShouldNotReachHere();
+      }
     } else if (right->is_constant()) {
       // cpu register - constant
       jint c = right->as_constant_ptr()->as_jint();

Andrew.



More information about the aarch64-port-dev mailing list