Mercurial > hg > graal-jvmci-8
changeset 22823:11b575a5169b
8071818: Incorrect addressing mode used for ldf in SPARC assembler
Summary: Update MacroAssembler::ldf to select addressing mode depending on Address parameter.
Reviewed-by: kvn, dlong
author | zmajo |
---|---|
date | Fri, 30 Jan 2015 10:40:08 +0100 |
parents | d9c03a9ead96 |
children | 7b93939e093e |
files | src/cpu/sparc/vm/macroAssembler_sparc.inline.hpp |
diffstat | 1 files changed, 6 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/src/cpu/sparc/vm/macroAssembler_sparc.inline.hpp Wed Jan 28 21:43:06 2015 +0000 +++ b/src/cpu/sparc/vm/macroAssembler_sparc.inline.hpp Fri Jan 30 10:40:08 2015 +0100 @@ -630,7 +630,12 @@ inline void MacroAssembler::ldf(FloatRegisterImpl::Width w, const Address& a, FloatRegister d, int offset) { relocate(a.rspec(offset)); - ldf(w, a.base(), a.disp() + offset, d); + if (a.has_index()) { + assert(offset == 0, ""); + ldf(w, a.base(), a.index(), d); + } else { + ldf(w, a.base(), a.disp() + offset, d); + } } // returns if membar generates anything, obviously this code should mirror