/hg/icedtea6: Mask shift counts.
aph at icedtea.classpath.org
aph at icedtea.classpath.org
Tue Nov 8 03:04:09 PST 2011
changeset 0e1ae9c38563 in /hg/icedtea6
details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=0e1ae9c38563
author: aph
date: Tue Nov 08 06:03:17 2011 -0500
Mask shift counts. 2011-11-07 Andrew Haley <aph at redhat.com>
* arm_port/hotspot/src/cpu/zero/vm/thumb2.cpp
(Thumb2_iOp): Mask shift counts with 31.
(Thumb2_codegen): Mask double shift counts with 63.
diffstat:
ChangeLog | 6 ++++++
arm_port/hotspot/src/cpu/zero/vm/thumb2.cpp | 10 ++++++++++
2 files changed, 16 insertions(+), 0 deletions(-)
diffs (54 lines):
diff -r 8b80aff6ceda -r 0e1ae9c38563 ChangeLog
--- a/ChangeLog Fri Nov 04 13:27:40 2011 +0100
+++ b/ChangeLog Tue Nov 08 06:03:17 2011 -0500
@@ -1,3 +1,9 @@
+2011-11-07 Andrew Haley <aph at redhat.com>
+
+ * arm_port/hotspot/src/cpu/zero/vm/thumb2.cpp (Thumb2_iOp): Mask
+ shift counts with 31.
+ (Thumb2_codegen): Mask double shift counts with 63.
+
2011-11-04 Xerxes RÃ¥nby <xerxes at zafena.se>
* arm_port/hotspot/src/cpu/zero/vm/cppInterpreter_arm.S
diff -r 8b80aff6ceda -r 0e1ae9c38563 arm_port/hotspot/src/cpu/zero/vm/thumb2.cpp
--- a/arm_port/hotspot/src/cpu/zero/vm/thumb2.cpp Fri Nov 04 13:27:40 2011 +0100
+++ b/arm_port/hotspot/src/cpu/zero/vm/thumb2.cpp Tue Nov 08 06:03:17 2011 -0500
@@ -4088,6 +4088,13 @@
Thumb2_Spill(jinfo, 1, 0);
r = JSTACK_REG(jstack);
PUSH(jstack, r);
+ switch (opc) {
+ case opc_ishl:
+ case opc_ishr:
+ case opc_iushr:
+ and_imm(jinfo->codebuf, r_rho, r_rho, 31);
+ break;
+ }
dop_reg(jinfo->codebuf, dOps[opc-opc_iadd], r, r_lho, r_rho, 0, 0);
}
@@ -5157,6 +5164,7 @@
res_lo = PUSH(jstack, JSTACK_PREFER(jstack, ~((1<<lho_lo)|(1<<lho_hi))));
JASSERT(res_lo != lho_lo && res_lo != lho_hi, "Spill failed");
JASSERT(res_hi != lho_lo && res_hi != lho_hi, "Spill failed");
+ and_imm(jinfo->codebuf, shift, shift, 63);
and_imm(jinfo->codebuf, ARM_IP, shift, 31);
tst_imm(jinfo->codebuf, shift, 32);
loc1 = forward_16(jinfo->codebuf);
@@ -5186,6 +5194,7 @@
res_lo = PUSH(jstack, JSTACK_PREFER(jstack, ~((1<<lho_lo)|(1<<lho_hi))));
JASSERT(res_lo != lho_lo && res_lo != lho_hi, "Spill failed");
JASSERT(res_hi != lho_lo && res_hi != lho_hi, "Spill failed");
+ and_imm(jinfo->codebuf, shift, shift, 63);
and_imm(jinfo->codebuf, ARM_IP, shift, 31);
tst_imm(jinfo->codebuf, shift, 32);
loc1 = forward_16(jinfo->codebuf);
@@ -5215,6 +5224,7 @@
res_lo = PUSH(jstack, JSTACK_PREFER(jstack, ~((1<<lho_lo)|(1<<lho_hi))));
JASSERT(res_lo != lho_lo && res_lo != lho_hi, "Spill failed");
JASSERT(res_hi != lho_lo && res_hi != lho_hi, "Spill failed");
+ and_imm(jinfo->codebuf, shift, shift, 63);
and_imm(jinfo->codebuf, ARM_IP, shift, 31);
tst_imm(jinfo->codebuf, shift, 32);
loc1 = forward_16(jinfo->codebuf);
More information about the distro-pkg-dev
mailing list