6833573: C2 sparc: assert(c < 64 && (c & 1) == 0,"bad double float register")
authornever
Fri, 24 Apr 2009 15:08:30 -0700
changeset 2576 a3babdbbca51
parent 2575 518dc8f6575a
child 2577 7cccf1a8352b
child 2578 c2b1f85a1b2a
child 2732 3ab85419f523
6833573: C2 sparc: assert(c < 64 && (c & 1) == 0,"bad double float register") Reviewed-by: twisti
hotspot/src/cpu/sparc/vm/sparc.ad
--- a/hotspot/src/cpu/sparc/vm/sparc.ad	Fri Apr 24 09:14:39 2009 -0700
+++ b/hotspot/src/cpu/sparc/vm/sparc.ad	Fri Apr 24 15:08:30 2009 -0700
@@ -2794,7 +2794,9 @@
     AddressLiteral addrlit(double_address, rspec);
 
     __ sethi(addrlit, $tmp$$Register);
-    __ ldf(FloatRegisterImpl::D, $tmp$$Register, addrlit.low10(), $dst$$FloatRegister, rspec);
+    // XXX This is a quick fix for 6833573.
+    //__ ldf(FloatRegisterImpl::D, $tmp$$Register, addrlit.low10(), $dst$$FloatRegister, rspec);
+    __ ldf(FloatRegisterImpl::D, $tmp$$Register, addrlit.low10(), as_DoubleFloatRegister($dst$$reg), rspec);
   %}
 
   // Compiler ensures base is doubleword aligned and cnt is count of doublewords
@@ -5902,7 +5904,9 @@
     AddressLiteral addrlit(double_address, rspec);
 
     __ sethi(addrlit, $tmp$$Register);
-    __ ldf(FloatRegisterImpl::D, $tmp$$Register, addrlit.low10(), $dst$$FloatRegister, rspec);
+    // XXX This is a quick fix for 6833573.
+    //__ ldf(FloatRegisterImpl::D, $tmp$$Register, addrlit.low10(), $dst$$FloatRegister, rspec);
+    __ ldf(FloatRegisterImpl::D, $tmp$$Register, addrlit.low10(), as_DoubleFloatRegister($dst$$reg), rspec);
   %}
   ins_pipe(loadConFD);
 %}