ARMv7: prefer vmov(gpr,gpr->double) over vmov(gpr->single)
authorbarraclough@apple.com <barraclough@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 15 Mar 2012 20:06:11 +0000 (20:06 +0000)
committerbarraclough@apple.com <barraclough@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 15 Mar 2012 20:06:11 +0000 (20:06 +0000)
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.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@110877 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/JavaScriptCore/ChangeLog
Source/JavaScriptCore/assembler/MacroAssemblerARMv7.h

index 2604e2d1c89cbc8f0b86be20af99da26d1a5050b..cc587beff3139223ed23c8e0d418116978e54760 100644 (file)
@@ -1,3 +1,16 @@
+2012-03-15  Gavin Barraclough  <barraclough@apple.com>
+
+        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.
+
 2012-03-15  YoungTaeck Song  <youngtaeck.song@samsung.com>
 
         [EFL] Add OwnPtr specialization for Ecore_Timer.
index 6c8ffa3f12edd69c20a145ec3735366ac42e8677..ff83ccb9b809e1b6b370b25a755e178105201793 100644 (file)
@@ -907,7 +907,7 @@ public:
 
     void convertInt32ToDouble(RegisterID src, FPRegisterID dest)
     {
-        m_assembler.vmov(fpTempRegisterAsSingle(), src);
+        m_assembler.vmov(fpTempRegister, src, src);
         m_assembler.vcvt_signedToFloatingPoint(dest, fpTempRegisterAsSingle());
     }
 
@@ -915,7 +915,7 @@ public:
     {
         // Fixme: load directly into the fpr!
         load32(address, dataTempRegister);
-        m_assembler.vmov(fpTempRegisterAsSingle(), dataTempRegister);
+        m_assembler.vmov(fpTempRegister, dataTempRegister, dataTempRegister);
         m_assembler.vcvt_signedToFloatingPoint(dest, fpTempRegisterAsSingle());
     }
 
@@ -923,7 +923,7 @@ public:
     {
         // Fixme: load directly into the fpr!
         load32(address.m_ptr, dataTempRegister);
-        m_assembler.vmov(fpTempRegisterAsSingle(), dataTempRegister);
+        m_assembler.vmov(fpTempRegister, dataTempRegister, dataTempRegister);
         m_assembler.vcvt_signedToFloatingPoint(dest, fpTempRegisterAsSingle());
     }