/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