Title: [87356] trunk/Source/_javascript_Core
Revision
87356
Author
barraclo...@apple.com
Date
2011-05-25 21:12:41 -0700 (Wed, 25 May 2011)

Log Message

Bug 61501 - Unify AbstractMacroAssembler::differenceBetween methods.

Reviewed by Sam Weinig.

* assembler/AbstractMacroAssembler.h:
(JSC::AbstractMacroAssembler::Call::Call):
(JSC::AbstractMacroAssembler::Call::fromTailJump):
(JSC::AbstractMacroAssembler::Jump::Jump):
(JSC::AbstractMacroAssembler::Jump::link):
(JSC::AbstractMacroAssembler::Jump::linkTo):
(JSC::AbstractMacroAssembler::Jump::isSet):
(JSC::AbstractMacroAssembler::differenceBetween):
(JSC::AbstractMacroAssembler::linkJump):
(JSC::AbstractMacroAssembler::getLinkerCallReturnOffset):
* assembler/LinkBuffer.h:
(JSC::LinkBuffer::link):
(JSC::LinkBuffer::locationOf):
(JSC::LinkBuffer::locationOfNearCall):
(JSC::LinkBuffer::returnAddressOffset):
* assembler/MacroAssemblerARM.h:
(JSC::MacroAssemblerARM::linkCall):
* assembler/MacroAssemblerARMv7.h:
(JSC::MacroAssemblerARMv7::linkCall):
* assembler/MacroAssemblerMIPS.h:
(JSC::MacroAssemblerMIPS::linkCall):
* assembler/MacroAssemblerSH4.cpp:
(JSC::MacroAssemblerSH4::linkCall):
* assembler/MacroAssemblerX86.h:
(JSC::MacroAssemblerX86::linkCall):
* assembler/MacroAssemblerX86_64.h:
(JSC::MacroAssemblerX86_64::linkCall):

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (87355 => 87356)


--- trunk/Source/_javascript_Core/ChangeLog	2011-05-26 04:05:42 UTC (rev 87355)
+++ trunk/Source/_javascript_Core/ChangeLog	2011-05-26 04:12:41 UTC (rev 87356)
@@ -2,6 +2,40 @@
 
         Reviewed by Sam Weinig.
 
+        Bug 61501 - Unify AbstractMacroAssembler::differenceBetween methods.
+
+        * assembler/AbstractMacroAssembler.h:
+        (JSC::AbstractMacroAssembler::Call::Call):
+        (JSC::AbstractMacroAssembler::Call::fromTailJump):
+        (JSC::AbstractMacroAssembler::Jump::Jump):
+        (JSC::AbstractMacroAssembler::Jump::link):
+        (JSC::AbstractMacroAssembler::Jump::linkTo):
+        (JSC::AbstractMacroAssembler::Jump::isSet):
+        (JSC::AbstractMacroAssembler::differenceBetween):
+        (JSC::AbstractMacroAssembler::linkJump):
+        (JSC::AbstractMacroAssembler::getLinkerCallReturnOffset):
+        * assembler/LinkBuffer.h:
+        (JSC::LinkBuffer::link):
+        (JSC::LinkBuffer::locationOf):
+        (JSC::LinkBuffer::locationOfNearCall):
+        (JSC::LinkBuffer::returnAddressOffset):
+        * assembler/MacroAssemblerARM.h:
+        (JSC::MacroAssemblerARM::linkCall):
+        * assembler/MacroAssemblerARMv7.h:
+        (JSC::MacroAssemblerARMv7::linkCall):
+        * assembler/MacroAssemblerMIPS.h:
+        (JSC::MacroAssemblerMIPS::linkCall):
+        * assembler/MacroAssemblerSH4.cpp:
+        (JSC::MacroAssemblerSH4::linkCall):
+        * assembler/MacroAssemblerX86.h:
+        (JSC::MacroAssemblerX86::linkCall):
+        * assembler/MacroAssemblerX86_64.h:
+        (JSC::MacroAssemblerX86_64::linkCall):
+
+2011-05-25  Gavin Barraclough  <barraclo...@apple.com>
+
+        Reviewed by Sam Weinig.
+
         https://bugs.webkit.org/show_bug.cgi?id=61500
         Add JSObject::offsetOfPropertyStorage
 

Modified: trunk/Source/_javascript_Core/assembler/AbstractMacroAssembler.h (87355 => 87356)


--- trunk/Source/_javascript_Core/assembler/AbstractMacroAssembler.h	2011-05-26 04:05:42 UTC (rev 87355)
+++ trunk/Source/_javascript_Core/assembler/AbstractMacroAssembler.h	2011-05-26 04:12:41 UTC (rev 87356)
@@ -361,7 +361,7 @@
         }
         
         Call(AssemblerLabel jmp, Flags flags)
-            : m_jmp(jmp)
+            : m_label(jmp)
             , m_flags(flags)
         {
         }
@@ -373,10 +373,10 @@
 
         static Call fromTailJump(Jump jump)
         {
-            return Call(jump.m_jmp, Linkable);
+            return Call(jump.m_label, Linkable);
         }
 
-        AssemblerLabel m_jmp;
+        AssemblerLabel m_label;
     private:
         Flags m_flags;
     };
@@ -400,14 +400,14 @@
 #if CPU(ARM_THUMB2)
         // Fixme: this information should be stored in the instruction stream, not in the Jump object.
         Jump(AssemblerLabel jmp, ARMv7Assembler::JumpType type, ARMv7Assembler::Condition condition = ARMv7Assembler::ConditionInvalid)
-            : m_jmp(jmp)
+            : m_label(jmp)
             , m_type(type)
             , m_condition(condition)
         {
         }
 #else
         Jump(AssemblerLabel jmp)    
-            : m_jmp(jmp)
+            : m_label(jmp)
         {
         }
 #endif
@@ -415,25 +415,25 @@
         void link(AbstractMacroAssembler<AssemblerType>* masm) const
         {
 #if CPU(ARM_THUMB2)
-            masm->m_assembler.linkJump(m_jmp, masm->m_assembler.label(), m_type, m_condition);
+            masm->m_assembler.linkJump(m_label, masm->m_assembler.label(), m_type, m_condition);
 #else
-            masm->m_assembler.linkJump(m_jmp, masm->m_assembler.label());
+            masm->m_assembler.linkJump(m_label, masm->m_assembler.label());
 #endif
         }
         
         void linkTo(Label label, AbstractMacroAssembler<AssemblerType>* masm) const
         {
 #if CPU(ARM_THUMB2)
-            masm->m_assembler.linkJump(m_jmp, label.m_label, m_type, m_condition);
+            masm->m_assembler.linkJump(m_label, label.m_label, m_type, m_condition);
 #else
-            masm->m_assembler.linkJump(m_jmp, label.m_label);
+            masm->m_assembler.linkJump(m_label, label.m_label);
 #endif
         }
 
-        bool isSet() const { return m_jmp.isSet(); }
+        bool isSet() const { return m_label.isSet(); }
 
     private:
-        AssemblerLabel m_jmp;
+        AssemblerLabel m_label;
 #if CPU(ARM_THUMB2)
         ARMv7Assembler::JumpType m_type;
         ARMv7Assembler::Condition m_condition;
@@ -505,51 +505,12 @@
         return Label(this);
     }
 
-    ptrdiff_t differenceBetween(Label from, Jump to)
+    template<typename T, typename U>
+    ptrdiff_t differenceBetween(T from, U to)
     {
-        return AssemblerType::getDifferenceBetweenLabels(from.m_label, to.m_jmp);
-    }
-
-    ptrdiff_t differenceBetween(Label from, Call to)
-    {
-        return AssemblerType::getDifferenceBetweenLabels(from.m_label, to.m_jmp);
-    }
-
-    ptrdiff_t differenceBetween(Label from, Label to)
-    {
         return AssemblerType::getDifferenceBetweenLabels(from.m_label, to.m_label);
     }
 
-    ptrdiff_t differenceBetween(Label from, DataLabelPtr to)
-    {
-        return AssemblerType::getDifferenceBetweenLabels(from.m_label, to.m_label);
-    }
-
-    ptrdiff_t differenceBetween(Label from, DataLabel32 to)
-    {
-        return AssemblerType::getDifferenceBetweenLabels(from.m_label, to.m_label);
-    }
-    
-    ptrdiff_t differenceBetween(Label from, DataLabelCompact to)
-    {
-        return AssemblerType::getDifferenceBetweenLabels(from.m_label, to.m_label);
-    }
-
-    ptrdiff_t differenceBetween(DataLabelPtr from, Jump to)
-    {
-        return AssemblerType::getDifferenceBetweenLabels(from.m_label, to.m_jmp);
-    }
-
-    ptrdiff_t differenceBetween(DataLabelPtr from, DataLabelPtr to)
-    {
-        return AssemblerType::getDifferenceBetweenLabels(from.m_label, to.m_label);
-    }
-
-    ptrdiff_t differenceBetween(DataLabelPtr from, Call to)
-    {
-        return AssemblerType::getDifferenceBetweenLabels(from.m_label, to.m_jmp);
-    }
-
     // Temporary interface; likely to be removed, since may be hard to port to all architectures.
 #if CPU(X86) || CPU(X86_64)
     void rewindToLabel(Label rewindTo) { m_assembler.rewindToLabel(rewindTo.m_label); }
@@ -570,7 +531,7 @@
 
     static void linkJump(void* code, Jump jump, CodeLocationLabel target)
     {
-        AssemblerType::linkJump(code, jump.m_jmp, target.dataLocation());
+        AssemblerType::linkJump(code, jump.m_label, target.dataLocation());
     }
 
     static void linkPointer(void* code, AssemblerLabel label, void* value)
@@ -585,7 +546,7 @@
 
     static unsigned getLinkerCallReturnOffset(Call call)
     {
-        return AssemblerType::getCallReturnOffset(call.m_jmp);
+        return AssemblerType::getCallReturnOffset(call.m_label);
     }
 
     static void repatchJump(CodeLocationJump jump, CodeLocationLabel destination)

Modified: trunk/Source/_javascript_Core/assembler/LinkBuffer.h (87355 => 87356)


--- trunk/Source/_javascript_Core/assembler/LinkBuffer.h	2011-05-26 04:05:42 UTC (rev 87355)
+++ trunk/Source/_javascript_Core/assembler/LinkBuffer.h	2011-05-26 04:12:41 UTC (rev 87356)
@@ -101,13 +101,13 @@
     void link(Call call, FunctionPtr function)
     {
         ASSERT(call.isFlagSet(Call::Linkable));
-        call.m_jmp = applyOffset(call.m_jmp);
+        call.m_label = applyOffset(call.m_label);
         MacroAssembler::linkCall(code(), call, function);
     }
     
     void link(Jump jump, CodeLocationLabel label)
     {
-        jump.m_jmp = applyOffset(jump.m_jmp);
+        jump.m_label = applyOffset(jump.m_label);
         MacroAssembler::linkJump(code(), jump, label);
     }
 
@@ -135,14 +135,14 @@
     {
         ASSERT(call.isFlagSet(Call::Linkable));
         ASSERT(!call.isFlagSet(Call::Near));
-        return CodeLocationCall(MacroAssembler::getLinkerAddress(code(), applyOffset(call.m_jmp)));
+        return CodeLocationCall(MacroAssembler::getLinkerAddress(code(), applyOffset(call.m_label)));
     }
 
     CodeLocationNearCall locationOfNearCall(Call call)
     {
         ASSERT(call.isFlagSet(Call::Linkable));
         ASSERT(call.isFlagSet(Call::Near));
-        return CodeLocationNearCall(MacroAssembler::getLinkerAddress(code(), applyOffset(call.m_jmp)));
+        return CodeLocationNearCall(MacroAssembler::getLinkerAddress(code(), applyOffset(call.m_label)));
     }
 
     CodeLocationLabel locationOf(Label label)
@@ -169,7 +169,7 @@
     // the start of the code.
     unsigned returnAddressOffset(Call call)
     {
-        call.m_jmp = applyOffset(call.m_jmp);
+        call.m_label = applyOffset(call.m_label);
         return MacroAssembler::getLinkerCallReturnOffset(call);
     }
 

Modified: trunk/Source/_javascript_Core/assembler/MacroAssemblerARM.h (87355 => 87356)


--- trunk/Source/_javascript_Core/assembler/MacroAssemblerARM.h	2011-05-26 04:05:42 UTC (rev 87355)
+++ trunk/Source/_javascript_Core/assembler/MacroAssemblerARM.h	2011-05-26 04:12:41 UTC (rev 87356)
@@ -1021,7 +1021,7 @@
 
     static void linkCall(void* code, Call call, FunctionPtr function)
     {
-        ARMAssembler::linkCall(code, call.m_jmp, function.value());
+        ARMAssembler::linkCall(code, call.m_label, function.value());
     }
 
     static void repatchCall(CodeLocationCall call, CodeLocationLabel destination)

Modified: trunk/Source/_javascript_Core/assembler/MacroAssemblerARMv7.h (87355 => 87356)


--- trunk/Source/_javascript_Core/assembler/MacroAssemblerARMv7.h	2011-05-26 04:05:42 UTC (rev 87355)
+++ trunk/Source/_javascript_Core/assembler/MacroAssemblerARMv7.h	2011-05-26 04:12:41 UTC (rev 87356)
@@ -1345,7 +1345,7 @@
 
     static void linkCall(void* code, Call call, FunctionPtr function)
     {
-        ARMv7Assembler::linkCall(code, call.m_jmp, function.value());
+        ARMv7Assembler::linkCall(code, call.m_label, function.value());
     }
 
     static void repatchCall(CodeLocationCall call, CodeLocationLabel destination)

Modified: trunk/Source/_javascript_Core/assembler/MacroAssemblerMIPS.h (87355 => 87356)


--- trunk/Source/_javascript_Core/assembler/MacroAssemblerMIPS.h	2011-05-26 04:05:42 UTC (rev 87355)
+++ trunk/Source/_javascript_Core/assembler/MacroAssemblerMIPS.h	2011-05-26 04:12:41 UTC (rev 87356)
@@ -1786,7 +1786,7 @@
 
     static void linkCall(void* code, Call call, FunctionPtr function)
     {
-        MIPSAssembler::linkCall(code, call.m_jmp, function.value());
+        MIPSAssembler::linkCall(code, call.m_label, function.value());
     }
 
     static void repatchCall(CodeLocationCall call, CodeLocationLabel destination)

Modified: trunk/Source/_javascript_Core/assembler/MacroAssemblerSH4.cpp (87355 => 87356)


--- trunk/Source/_javascript_Core/assembler/MacroAssemblerSH4.cpp	2011-05-26 04:05:42 UTC (rev 87355)
+++ trunk/Source/_javascript_Core/assembler/MacroAssemblerSH4.cpp	2011-05-26 04:12:41 UTC (rev 87356)
@@ -34,7 +34,7 @@
 
 void MacroAssemblerSH4::linkCall(void* code, Call call, FunctionPtr function)
 {
-    SH4Assembler::linkCall(code, call.m_jmp, function.value());
+    SH4Assembler::linkCall(code, call.m_label, function.value());
 }
 
 void MacroAssemblerSH4::repatchCall(CodeLocationCall call, CodeLocationLabel destination)

Modified: trunk/Source/_javascript_Core/assembler/MacroAssemblerX86.h (87355 => 87356)


--- trunk/Source/_javascript_Core/assembler/MacroAssemblerX86.h	2011-05-26 04:05:42 UTC (rev 87355)
+++ trunk/Source/_javascript_Core/assembler/MacroAssemblerX86.h	2011-05-26 04:12:41 UTC (rev 87356)
@@ -175,7 +175,7 @@
 
     static void linkCall(void* code, Call call, FunctionPtr function)
     {
-        X86Assembler::linkCall(code, call.m_jmp, function.value());
+        X86Assembler::linkCall(code, call.m_label, function.value());
     }
 
     static void repatchCall(CodeLocationCall call, CodeLocationLabel destination)

Modified: trunk/Source/_javascript_Core/assembler/MacroAssemblerX86_64.h (87355 => 87356)


--- trunk/Source/_javascript_Core/assembler/MacroAssemblerX86_64.h	2011-05-26 04:05:42 UTC (rev 87355)
+++ trunk/Source/_javascript_Core/assembler/MacroAssemblerX86_64.h	2011-05-26 04:12:41 UTC (rev 87356)
@@ -464,9 +464,9 @@
     static void linkCall(void* code, Call call, FunctionPtr function)
     {
         if (!call.isFlagSet(Call::Near))
-            X86Assembler::linkPointer(code, call.m_jmp.labelAtOffset(-REPTACH_OFFSET_CALL_R11), function.value());
+            X86Assembler::linkPointer(code, call.m_label.labelAtOffset(-REPTACH_OFFSET_CALL_R11), function.value());
         else
-            X86Assembler::linkCall(code, call.m_jmp, function.value());
+            X86Assembler::linkCall(code, call.m_label, function.value());
     }
 
     static void repatchCall(CodeLocationCall call, CodeLocationLabel destination)
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to