Mercurial > hg > truffle
comparison src/cpu/sparc/vm/sparc.ad @ 732:fb4c18a2ec66
6833573: C2 sparc: assert(c < 64 && (c & 1) == 0,"bad double float register")
Reviewed-by: twisti
author | never |
---|---|
date | Fri, 24 Apr 2009 15:08:30 -0700 |
parents | 6b2273dd6fa9 |
children | 93c14e5562c4 |
comparison
equal
deleted
inserted
replaced
731:aa92a90b1cc6 | 732:fb4c18a2ec66 |
---|---|
2792 address double_address = __ double_constant(dval); | 2792 address double_address = __ double_constant(dval); |
2793 RelocationHolder rspec = internal_word_Relocation::spec(double_address); | 2793 RelocationHolder rspec = internal_word_Relocation::spec(double_address); |
2794 AddressLiteral addrlit(double_address, rspec); | 2794 AddressLiteral addrlit(double_address, rspec); |
2795 | 2795 |
2796 __ sethi(addrlit, $tmp$$Register); | 2796 __ sethi(addrlit, $tmp$$Register); |
2797 __ ldf(FloatRegisterImpl::D, $tmp$$Register, addrlit.low10(), $dst$$FloatRegister, rspec); | 2797 // XXX This is a quick fix for 6833573. |
2798 //__ ldf(FloatRegisterImpl::D, $tmp$$Register, addrlit.low10(), $dst$$FloatRegister, rspec); | |
2799 __ ldf(FloatRegisterImpl::D, $tmp$$Register, addrlit.low10(), as_DoubleFloatRegister($dst$$reg), rspec); | |
2798 %} | 2800 %} |
2799 | 2801 |
2800 // Compiler ensures base is doubleword aligned and cnt is count of doublewords | 2802 // Compiler ensures base is doubleword aligned and cnt is count of doublewords |
2801 enc_class enc_Clear_Array(iRegX cnt, iRegP base, iRegX temp) %{ | 2803 enc_class enc_Clear_Array(iRegX cnt, iRegP base, iRegX temp) %{ |
2802 MacroAssembler _masm(&cbuf); | 2804 MacroAssembler _masm(&cbuf); |
5900 address double_address = __ double_constant($src$$constant); | 5902 address double_address = __ double_constant($src$$constant); |
5901 RelocationHolder rspec = internal_word_Relocation::spec(double_address); | 5903 RelocationHolder rspec = internal_word_Relocation::spec(double_address); |
5902 AddressLiteral addrlit(double_address, rspec); | 5904 AddressLiteral addrlit(double_address, rspec); |
5903 | 5905 |
5904 __ sethi(addrlit, $tmp$$Register); | 5906 __ sethi(addrlit, $tmp$$Register); |
5905 __ ldf(FloatRegisterImpl::D, $tmp$$Register, addrlit.low10(), $dst$$FloatRegister, rspec); | 5907 // XXX This is a quick fix for 6833573. |
5908 //__ ldf(FloatRegisterImpl::D, $tmp$$Register, addrlit.low10(), $dst$$FloatRegister, rspec); | |
5909 __ ldf(FloatRegisterImpl::D, $tmp$$Register, addrlit.low10(), as_DoubleFloatRegister($dst$$reg), rspec); | |
5906 %} | 5910 %} |
5907 ins_pipe(loadConFD); | 5911 ins_pipe(loadConFD); |
5908 %} | 5912 %} |
5909 | 5913 |
5910 // Prefetch instructions. | 5914 // Prefetch instructions. |