Ignore:
Timestamp:
Mar 15, 2012, 1:06:11 PM (13 years ago)
Author:
[email protected]
Message:

ARMv7: prefer vmov(gpr,gpr->double) over vmov(gpr->single)
https://bugs.webkit.org/show_bug.cgi?id=81256

Reviewed by Oliver Hunt.

This is a 0.5% sunspider progression.

  • assembler/MacroAssemblerARMv7.h:

(JSC::MacroAssemblerARMv7::convertInt32ToDouble):

  • switch which form of vmov we use.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/assembler/MacroAssemblerARMv7.h

    r110751 r110877  
    908908    void convertInt32ToDouble(RegisterID src, FPRegisterID dest)
    909909    {
    910         m_assembler.vmov(fpTempRegisterAsSingle(), src);
     910        m_assembler.vmov(fpTempRegister, src, src);
    911911        m_assembler.vcvt_signedToFloatingPoint(dest, fpTempRegisterAsSingle());
    912912    }
     
    916916        // Fixme: load directly into the fpr!
    917917        load32(address, dataTempRegister);
    918         m_assembler.vmov(fpTempRegisterAsSingle(), dataTempRegister);
     918        m_assembler.vmov(fpTempRegister, dataTempRegister, dataTempRegister);
    919919        m_assembler.vcvt_signedToFloatingPoint(dest, fpTempRegisterAsSingle());
    920920    }
     
    924924        // Fixme: load directly into the fpr!
    925925        load32(address.m_ptr, dataTempRegister);
    926         m_assembler.vmov(fpTempRegisterAsSingle(), dataTempRegister);
     926        m_assembler.vmov(fpTempRegister, dataTempRegister, dataTempRegister);
    927927        m_assembler.vcvt_signedToFloatingPoint(dest, fpTempRegisterAsSingle());
    928928    }
Note: See TracChangeset for help on using the changeset viewer.