Title: [160680] trunk/Source/_javascript_Core
Revision
160680
Author
[email protected]
Date
2013-12-16 17:33:05 -0800 (Mon, 16 Dec 2013)

Log Message

Add some missing functions to MacroAssembler
https://bugs.webkit.org/show_bug.cgi?id=125809

Reviewed by Oliver Hunt.

* assembler/AbstractMacroAssembler.h:
* assembler/AssemblerBuffer.h:
* assembler/LinkBuffer.cpp:
* assembler/MacroAssembler.h:
(JSC::MacroAssembler::storePtr):
(JSC::MacroAssembler::andPtr):
* assembler/MacroAssemblerARM64.h:
(JSC::MacroAssemblerARM64::and64):
(JSC::MacroAssemblerARM64::branchTest8):
* assembler/MacroAssemblerARMv7.h:
(JSC::MacroAssemblerARMv7::branchTest8):
* assembler/X86Assembler.h:

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (160679 => 160680)


--- trunk/Source/_javascript_Core/ChangeLog	2013-12-17 01:32:12 UTC (rev 160679)
+++ trunk/Source/_javascript_Core/ChangeLog	2013-12-17 01:33:05 UTC (rev 160680)
@@ -1,3 +1,23 @@
+2013-12-16  Mark Hahnenberg  <[email protected]>
+
+        Add some missing functions to MacroAssembler
+        https://bugs.webkit.org/show_bug.cgi?id=125809
+
+        Reviewed by Oliver Hunt.
+
+        * assembler/AbstractMacroAssembler.h:
+        * assembler/AssemblerBuffer.h:
+        * assembler/LinkBuffer.cpp:
+        * assembler/MacroAssembler.h:
+        (JSC::MacroAssembler::storePtr):
+        (JSC::MacroAssembler::andPtr):
+        * assembler/MacroAssemblerARM64.h:
+        (JSC::MacroAssemblerARM64::and64):
+        (JSC::MacroAssemblerARM64::branchTest8):
+        * assembler/MacroAssemblerARMv7.h:
+        (JSC::MacroAssemblerARMv7::branchTest8):
+        * assembler/X86Assembler.h:
+
 2013-12-16  Brent Fulgham  <[email protected]>
 
         [Win] Remove dead code after conversion to VS2013

Modified: trunk/Source/_javascript_Core/assembler/AbstractMacroAssembler.h (160679 => 160680)


--- trunk/Source/_javascript_Core/assembler/AbstractMacroAssembler.h	2013-12-17 01:32:12 UTC (rev 160679)
+++ trunk/Source/_javascript_Core/assembler/AbstractMacroAssembler.h	2013-12-17 01:33:05 UTC (rev 160680)
@@ -30,6 +30,7 @@
 #include "CodeLocation.h"
 #include "MacroAssemblerCodeRef.h"
 #include "Options.h"
+#include "WeakRandom.h"
 #include <wtf/CryptographicallyRandomNumber.h>
 #include <wtf/Noncopyable.h>
 

Modified: trunk/Source/_javascript_Core/assembler/AssemblerBuffer.h (160679 => 160680)


--- trunk/Source/_javascript_Core/assembler/AssemblerBuffer.h	2013-12-17 01:32:12 UTC (rev 160679)
+++ trunk/Source/_javascript_Core/assembler/AssemblerBuffer.h	2013-12-17 01:33:05 UTC (rev 160680)
@@ -30,7 +30,6 @@
 
 #include "ExecutableAllocator.h"
 #include "JITCompilationEffort.h"
-#include "VM.h"
 #include "stdint.h"
 #include <string.h>
 #include <wtf/Assertions.h>

Modified: trunk/Source/_javascript_Core/assembler/LinkBuffer.cpp (160679 => 160680)


--- trunk/Source/_javascript_Core/assembler/LinkBuffer.cpp	2013-12-17 01:32:12 UTC (rev 160679)
+++ trunk/Source/_javascript_Core/assembler/LinkBuffer.cpp	2013-12-17 01:33:05 UTC (rev 160680)
@@ -29,6 +29,7 @@
 #if ENABLE(ASSEMBLER)
 
 #include "Options.h"
+#include "VM.h"
 #include <wtf/CompilationThread.h>
 
 namespace JSC {

Modified: trunk/Source/_javascript_Core/assembler/MacroAssembler.h (160679 => 160680)


--- trunk/Source/_javascript_Core/assembler/MacroAssembler.h	2013-12-17 01:32:12 UTC (rev 160679)
+++ trunk/Source/_javascript_Core/assembler/MacroAssembler.h	2013-12-17 01:33:05 UTC (rev 160680)
@@ -592,6 +592,11 @@
         store32(TrustedImm32(imm), address);
     }
 
+    void storePtr(TrustedImmPtr imm, BaseIndex address)
+    {
+        store32(TrustedImm32(imm), address);
+    }
+
     DataLabel32 storePtrWithAddressOffsetPatch(RegisterID src, Address address)
     {
         return store32WithAddressOffsetPatch(src, address);
@@ -729,6 +734,11 @@
         and64(imm, srcDest);
     }
     
+    void andPtr(TrustedImmPtr imm, RegisterID srcDest)
+    {
+        and64(imm, srcDest);
+    }
+    
     void lshiftPtr(Imm32 imm, RegisterID srcDest)
     {
         lshift64(trustedImm32ForShift(imm), srcDest);

Modified: trunk/Source/_javascript_Core/assembler/MacroAssemblerARM64.h (160679 => 160680)


--- trunk/Source/_javascript_Core/assembler/MacroAssemblerARM64.h	2013-12-17 01:32:12 UTC (rev 160679)
+++ trunk/Source/_javascript_Core/assembler/MacroAssemblerARM64.h	2013-12-17 01:33:05 UTC (rev 160680)
@@ -351,6 +351,19 @@
         signExtend32ToPtr(imm, getCachedDataTempRegisterIDAndInvalidate());
         m_assembler.and_<64>(dest, dest, dataTempRegister);
     }
+
+    void and64(TrustedImmPtr imm, RegisterID dest)
+    {
+        LogicalImmediate logicalImm = LogicalImmediate::create64(reinterpret_cast<uint64_t>(imm.m_value));
+
+        if (logicalImm.isValid()) {
+            m_assembler.and_<64>(dest, dest, logicalImm);
+            return;
+        }
+
+        move(imm, getCachedDataTempRegisterIDAndInvalidate());
+        m_assembler.and_<64>(dest, dest, dataTempRegister);
+    }
     
     void countLeadingZeros32(RegisterID src, RegisterID dest)
     {
@@ -1753,6 +1766,12 @@
         return branchTest32(cond, dataTempRegister, mask);
     }
 
+    Jump branchTest8(ResultCondition cond, BaseIndex address, TrustedImm32 mask = TrustedImm32(-1))
+    {
+        load8(address, getCachedDataTempRegisterIDAndInvalidate());
+        return branchTest32(cond, dataTempRegister, mask);
+    }
+
     Jump branch32WithUnalignedHalfWords(RelationalCondition cond, BaseIndex left, TrustedImm32 right)
     {
         return branch32(cond, left, right);

Modified: trunk/Source/_javascript_Core/assembler/MacroAssemblerARMv7.h (160679 => 160680)


--- trunk/Source/_javascript_Core/assembler/MacroAssemblerARMv7.h	2013-12-17 01:32:12 UTC (rev 160679)
+++ trunk/Source/_javascript_Core/assembler/MacroAssemblerARMv7.h	2013-12-17 01:33:05 UTC (rev 160680)
@@ -1405,6 +1405,13 @@
         return branchTest32(cond, addressTempRegister, mask);
     }
 
+    Jump branchTest8(ResultCondition cond, BaseIndex address, TrustedImm32 mask = TrustedImm32(-1))
+    {
+        // use addressTempRegister incase the branchTest8 we call uses dataTempRegister. :-/
+        load8(address, addressTempRegister);
+        return branchTest32(cond, addressTempRegister, mask);
+    }
+
     Jump branchTest8(ResultCondition cond, Address address, TrustedImm32 mask = TrustedImm32(-1))
     {
         // use addressTempRegister incase the branchTest8 we call uses dataTempRegister. :-/

Modified: trunk/Source/_javascript_Core/assembler/X86Assembler.h (160679 => 160680)


--- trunk/Source/_javascript_Core/assembler/X86Assembler.h	2013-12-17 01:32:12 UTC (rev 160679)
+++ trunk/Source/_javascript_Core/assembler/X86Assembler.h	2013-12-17 01:33:05 UTC (rev 160680)
@@ -30,6 +30,7 @@
 
 #include "AssemblerBuffer.h"
 #include "JITCompilationEffort.h"
+#include <limits.h>
 #include <stdint.h>
 #include <wtf/Assertions.h>
 #include <wtf/Vector.h>
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to