changeset 2525:a54519951ff6

Merge
author iveresov
date Mon, 04 Apr 2011 18:48:49 -0700
parents bb22629531fa (diff) 8b2317d732ec (current diff)
children fb37e3eabfd0 d7a3fed1c1c9
files
diffstat 1 files changed, 7 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/src/cpu/sparc/vm/c1_LIRAssembler_sparc.cpp	Mon Apr 04 12:57:04 2011 -0700
+++ b/src/cpu/sparc/vm/c1_LIRAssembler_sparc.cpp	Mon Apr 04 18:48:49 2011 -0700
@@ -2058,6 +2058,13 @@
   BasicType basic_type = default_type != NULL ? default_type->element_type()->basic_type() : T_ILLEGAL;
   if (basic_type == T_ARRAY) basic_type = T_OBJECT;
 
+#ifdef _LP64
+  // higher 32bits must be null
+  __ sra(dst_pos, 0, dst_pos);
+  __ sra(src_pos, 0, src_pos);
+  __ sra(length, 0, length);
+#endif
+
   // set up the arraycopy stub information
   ArrayCopyStub* stub = op->stub();
 
@@ -2151,11 +2158,6 @@
     __ delayed()->nop();
   }
 
-#ifndef _LP64
-  __ sra(dst_pos, 0, dst_pos); //higher 32bits must be null
-  __ sra(src_pos, 0, src_pos); //higher 32bits must be null
-#endif
-
   int shift = shift_amount(basic_type);
 
   if (flags & LIR_OpArrayCopy::type_check) {
@@ -2243,7 +2245,6 @@
           __ sll(dst_pos, shift, tmp);
           __ add(dst_ptr, tmp, dst_ptr);
         }
-        LP64_ONLY( __ sra(length, 0, length)); //higher 32bits must be null
         __ mov(length, len);
         __ load_klass(dst, tmp);