[aarch64-port-dev ] Internal Error (assembler_aarch64.hpp:238) guarantee(val < (1U << nbits)) failed: Field too big for insn
Andrew Haley
aph at redhat.com
Fri Nov 15 02:46:50 PST 2013
On 11/15/2013 04:59 AM, Cao Hoang Thu wrote:
> I built current source today (client and server), I got error:
>
> #java -Xmx1024m -jar dacapo-9.12-bach.jar sunflow
>
> Using scaled threading model. 8 processors detected, 8 threads used to drive the workload, in a possible range of [1,256]
> ===== DaCapo 9.12 sunflow starting =====
> #
> # A fatal error has been detected by the Java Runtime Environment:
> #
> # Internal Error (assembler_aarch64.hpp:238), pid=3161, tid=547480334864
> # guarantee(val < (1U << nbits)) failed: Field too big for insn
Fixed thusly.
Andrew.
# HG changeset patch
# User aph
# Date 1384511583 18000
# Fri Nov 15 05:33:03 2013 -0500
# Node ID fa8f1a444540e106765e3967e3c97a394389f706
# Parent cbc8c470e3bd2fa1711f3e135bc5b52240ba14a0
Correct handling of 64-bit logical immediate operands.
diff -r cbc8c470e3bd -r fa8f1a444540 src/cpu/aarch64/vm/aarch64.ad
--- a/src/cpu/aarch64/vm/aarch64.ad Thu Nov 14 12:59:57 2013 +0000
+++ b/src/cpu/aarch64/vm/aarch64.ad Fri Nov 15 05:33:03 2013 -0500
@@ -3588,7 +3588,7 @@
// TODO -- check this is right when e.g the mask is 0x80000000
operand immILog()
%{
- predicate(Assembler::operand_valid_for_logical_immediate(true, (unsigned long)n->get_int()));
+ predicate(Assembler::operand_valid_for_logical_immediate(/*is32*/true, (unsigned long)n->get_int()));
match(ConI);
op_cost(0);
format %{ %}
@@ -3665,7 +3665,7 @@
// 64 bit integer valid for logical immediate
operand immLLog()
%{
- predicate(Assembler::operand_valid_for_logical_immediate(true, (unsigned long)n->get_long()));
+ predicate(Assembler::operand_valid_for_logical_immediate(/*is32*/false, (unsigned long)n->get_long()));
match(ConL);
op_cost(0);
format %{ %}
More information about the aarch64-port-dev
mailing list