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)