Title: [86796] tags/Safari-534.36/Source
Revision
86796
Author
[email protected]
Date
2011-05-18 15:03:14 -0700 (Wed, 18 May 2011)

Log Message

rollout r86699.

Modified Paths

Removed Paths

  • tags/Safari-534.36/Source/_javascript_Core.xcworkspace/

Diff

Modified: tags/Safari-534.36/Source/_javascript_Core/ChangeLog (86795 => 86796)


--- tags/Safari-534.36/Source/_javascript_Core/ChangeLog	2011-05-18 21:58:49 UTC (rev 86795)
+++ tags/Safari-534.36/Source/_javascript_Core/ChangeLog	2011-05-18 22:03:14 UTC (rev 86796)
@@ -1,5 +1,9 @@
-2011-05-17  Sam Weinig  <[email protected]>
+2011-05-18  Lucas Forschler  <[email protected]>
 
+        Rollout r86699.
+        
+    2011-05-17  Sam Weinig  <[email protected]>
+
         Reviewed by Oliver Hunt.
 
         JSGlobalContextRelease should not trigger a synchronous garbage collection
@@ -9,74 +13,6 @@
         Change synchronous call to collectAllGarbage to a call to trigger the
         activityCallback.
 
-2011-05-16  Oliver Hunt  <[email protected]>
-
-        Reviewed by Gavin Barraclough.
-
-        Reduce code size for inline cache
-        https://bugs.webkit.org/show_bug.cgi?id=60942
-
-        This patch introduces the concept of a "compact" address that
-        allows individual architectures to control the maximum offset
-        used for the inline path of get_by_id.  This reduces the code
-        size of get_by_id by 3 bytes on x86 and x86_64 and slightly
-        improves performance on v8 tests.
-
-        * assembler/ARMAssembler.h:
-        (JSC::ARMAssembler::repatchCompact):
-        * assembler/ARMv7Assembler.h:
-        (JSC::ARMv7Assembler::repatchCompact):
-        * assembler/AbstractMacroAssembler.h:
-        (JSC::AbstractMacroAssembler::DataLabelCompact::DataLabelCompact):
-        (JSC::AbstractMacroAssembler::differenceBetween):
-        (JSC::AbstractMacroAssembler::repatchCompact):
-        * assembler/CodeLocation.h:
-        (JSC::CodeLocationDataLabelCompact::CodeLocationDataLabelCompact):
-        (JSC::CodeLocationCommon::dataLabelCompactAtOffset):
-        * assembler/LinkBuffer.h:
-        (JSC::LinkBuffer::locationOf):
-        * assembler/MIPSAssembler.h:
-        (JSC::MIPSAssembler::repatchCompact):
-        * assembler/MacroAssembler.h:
-        (JSC::MacroAssembler::loadPtrWithCompactAddressOffsetPatch):
-        * assembler/MacroAssemblerARM.h:
-        (JSC::MacroAssemblerARM::load32WithCompactAddressOffsetPatch):
-        * assembler/MacroAssemblerARMv7.h:
-        (JSC::MacroAssemblerARMv7::load32WithCompactAddressOffsetPatch):
-        * assembler/MacroAssemblerMIPS.h:
-        (JSC::MacroAssemblerMIPS::load32WithCompactAddressOffsetPatch):
-        * assembler/MacroAssemblerSH4.h:
-        (JSC::MacroAssemblerSH4::load32WithAddressOffsetPatch):
-        * assembler/MacroAssemblerX86.h:
-        (JSC::MacroAssemblerX86::repatchCompact):
-        * assembler/MacroAssemblerX86Common.h:
-        (JSC::MacroAssemblerX86Common::loadCompactWithAddressOffsetPatch):
-        * assembler/MacroAssemblerX86_64.h:
-        (JSC::MacroAssemblerX86_64::loadPtrWithCompactAddressOffsetPatch):
-        * assembler/RepatchBuffer.h:
-        (JSC::RepatchBuffer::repatch):
-        * assembler/SH4Assembler.h:
-        (JSC::SH4Assembler::repatchCompact):
-        * assembler/X86Assembler.h:
-        (JSC::X86Assembler::movl_mr_disp8):
-        (JSC::X86Assembler::movq_mr_disp8):
-        (JSC::X86Assembler::repatchCompact):
-        (JSC::X86Assembler::setInt8):
-        (JSC::X86Assembler::X86InstructionFormatter::oneByteOp_disp8):
-        (JSC::X86Assembler::X86InstructionFormatter::oneByteOp64_disp8):
-        (JSC::X86Assembler::X86InstructionFormatter::memoryModRM):
-        * jit/JIT.h:
-        * jit/JITPropertyAccess.cpp:
-        (JSC::JIT::compileGetByIdHotPath):
-        (JSC::JIT::emit_op_put_by_id):
-        (JSC::JIT::patchGetByIdSelf):
-        * jit/JITPropertyAccess32_64.cpp:
-        (JSC::JIT::compileGetByIdHotPath):
-        (JSC::JIT::emit_op_put_by_id):
-        (JSC::JIT::patchGetByIdSelf):
-        * jit/JITStubs.cpp:
-        (JSC::JITThunks::tryCacheGetByID):
-
 2011-05-16  Sheriff Bot  <[email protected]>
 
         Unreviewed, rolling out r86653.

Modified: tags/Safari-534.36/Source/_javascript_Core/assembler/ARMAssembler.h (86795 => 86796)


--- tags/Safari-534.36/Source/_javascript_Core/assembler/ARMAssembler.h	2011-05-18 21:58:49 UTC (rev 86795)
+++ tags/Safari-534.36/Source/_javascript_Core/assembler/ARMAssembler.h	2011-05-18 22:03:14 UTC (rev 86796)
@@ -744,11 +744,6 @@
         {
             patchPointerInternal(reinterpret_cast<intptr_t>(from), reinterpret_cast<void*>(to));
         }
-        
-        static void repatchCompact(void* where, int32_t value)
-        {
-            repatchInt32(where, value);
-        }
 
         static void repatchPointer(void* from, void* to)
         {

Modified: tags/Safari-534.36/Source/_javascript_Core/assembler/ARMv7Assembler.h (86795 => 86796)


--- tags/Safari-534.36/Source/_javascript_Core/assembler/ARMv7Assembler.h	2011-05-18 21:58:49 UTC (rev 86795)
+++ tags/Safari-534.36/Source/_javascript_Core/assembler/ARMv7Assembler.h	2011-05-18 22:03:14 UTC (rev 86796)
@@ -1748,11 +1748,6 @@
         
         setInt32(where, value);
     }
-    
-    static void repatchCompact(void* where, int32_t value)
-    {
-        repatchInt32(where, value);
-    }
 
     static void repatchPointer(void* where, void* value)
     {

Modified: tags/Safari-534.36/Source/_javascript_Core/assembler/AbstractMacroAssembler.h (86795 => 86796)


--- tags/Safari-534.36/Source/_javascript_Core/assembler/AbstractMacroAssembler.h	2011-05-18 21:58:49 UTC (rev 86795)
+++ tags/Safari-534.36/Source/_javascript_Core/assembler/AbstractMacroAssembler.h	2011-05-18 22:03:14 UTC (rev 86796)
@@ -304,39 +304,10 @@
         {
         }
 
-        AssemblerLabel label() const { return m_label; }
-
     private:
         AssemblerLabel m_label;
     };
 
-    // DataLabelCompact:
-    //
-    // A DataLabelCompact is used to refer to a location in the code containing a
-    // compact immediate to be patched after the code has been generated.
-    class DataLabelCompact {
-        template<class TemplateAssemblerType>
-        friend class AbstractMacroAssembler;
-        friend class LinkBuffer;
-    public:
-        DataLabelCompact()
-        {
-        }
-        
-        DataLabelCompact(AbstractMacroAssembler<AssemblerType>* masm)
-            : m_label(masm->m_assembler.label())
-        {
-        }
-    
-        DataLabelCompact(AssemblerLabel label)
-            : m_label(label)
-        {
-        }
-
-    private:
-        AssemblerLabel m_label;
-    };
-
     // Call:
     //
     // A Call object is a reference to a call instruction that has been planted
@@ -529,11 +500,6 @@
     {
         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)
     {
@@ -598,11 +564,6 @@
         AssemblerType::relinkCall(nearCall.dataLocation(), destination.executableAddress());
     }
 
-    static void repatchCompact(CodeLocationDataLabelCompact dataLabelCompact, int32_t value)
-    {
-        AssemblerType::repatchCompact(dataLabelCompact.dataLocation(), value);
-    }
-    
     static void repatchInt32(CodeLocationDataLabel32 dataLabel32, int32_t value)
     {
         AssemblerType::repatchInt32(dataLabel32.dataLocation(), value);

Modified: tags/Safari-534.36/Source/_javascript_Core/assembler/CodeLocation.h (86795 => 86796)


--- tags/Safari-534.36/Source/_javascript_Core/assembler/CodeLocation.h	2011-05-18 21:58:49 UTC (rev 86795)
+++ tags/Safari-534.36/Source/_javascript_Core/assembler/CodeLocation.h	2011-05-18 22:03:14 UTC (rev 86796)
@@ -37,7 +37,6 @@
 class CodeLocationJump;
 class CodeLocationCall;
 class CodeLocationNearCall;
-class CodeLocationDataLabelCompact;
 class CodeLocationDataLabel32;
 class CodeLocationDataLabelPtr;
 
@@ -61,7 +60,6 @@
     CodeLocationNearCall nearCallAtOffset(int offset);
     CodeLocationDataLabelPtr dataLabelPtrAtOffset(int offset);
     CodeLocationDataLabel32 dataLabel32AtOffset(int offset);
-    CodeLocationDataLabelCompact dataLabelCompactAtOffset(int offset);
 
 protected:
     CodeLocationCommon()
@@ -128,15 +126,6 @@
         : CodeLocationCommon(MacroAssemblerCodePtr(location)) {}
 };
 
-class CodeLocationDataLabelCompact : public CodeLocationCommon {
-public:
-    CodeLocationDataLabelCompact() { }
-    explicit CodeLocationDataLabelCompact(MacroAssemblerCodePtr location)
-        : CodeLocationCommon(location) { }
-    explicit CodeLocationDataLabelCompact(void* location)
-        : CodeLocationCommon(MacroAssemblerCodePtr(location)) { }
-};
-
 class CodeLocationDataLabelPtr : public CodeLocationCommon {
 public:
     CodeLocationDataLabelPtr() {}
@@ -188,12 +177,6 @@
     return CodeLocationDataLabel32(reinterpret_cast<char*>(dataLocation()) + offset);
 }
 
-inline CodeLocationDataLabelCompact CodeLocationCommon::dataLabelCompactAtOffset(int offset)
-{
-    ASSERT_VALID_CODE_OFFSET(offset);
-    return CodeLocationDataLabelCompact(reinterpret_cast<char*>(dataLocation()) + offset);
-}
-
 } // namespace JSC
 
 #endif // ENABLE(ASSEMBLER)

Modified: tags/Safari-534.36/Source/_javascript_Core/assembler/LinkBuffer.h (86795 => 86796)


--- tags/Safari-534.36/Source/_javascript_Core/assembler/LinkBuffer.h	2011-05-18 21:58:49 UTC (rev 86795)
+++ tags/Safari-534.36/Source/_javascript_Core/assembler/LinkBuffer.h	2011-05-18 22:03:14 UTC (rev 86796)
@@ -58,7 +58,6 @@
     typedef MacroAssembler::Jump Jump;
     typedef MacroAssembler::JumpList JumpList;
     typedef MacroAssembler::Call Call;
-    typedef MacroAssembler::DataLabelCompact DataLabelCompact;
     typedef MacroAssembler::DataLabel32 DataLabel32;
     typedef MacroAssembler::DataLabelPtr DataLabelPtr;
 #if ENABLE(BRANCH_COMPACTION)
@@ -159,11 +158,6 @@
     {
         return CodeLocationDataLabel32(MacroAssembler::getLinkerAddress(code(), applyOffset(label.m_label)));
     }
-    
-    CodeLocationDataLabelCompact locationOf(DataLabelCompact label)
-    {
-        return CodeLocationDataLabelCompact(MacroAssembler::getLinkerAddress(code(), applyOffset(label.m_label)));
-    }
 
     // This method obtains the return address of the call, given as an offset from
     // the start of the code.

Modified: tags/Safari-534.36/Source/_javascript_Core/assembler/MIPSAssembler.h (86795 => 86796)


--- tags/Safari-534.36/Source/_javascript_Core/assembler/MIPSAssembler.h	2011-05-18 21:58:49 UTC (rev 86795)
+++ tags/Safari-534.36/Source/_javascript_Core/assembler/MIPSAssembler.h	2011-05-18 22:03:14 UTC (rev 86796)
@@ -745,11 +745,6 @@
         insn--;
         ExecutableAllocator::cacheFlush(insn, 2 * sizeof(MIPSWord));
     }
-    
-    static void repatchCompact(void* where, int32_t value)
-    {
-        repatchInt32(where, value);
-    }
 
     static void repatchPointer(void* from, void* to)
     {

Modified: tags/Safari-534.36/Source/_javascript_Core/assembler/MacroAssembler.h (86795 => 86796)


--- tags/Safari-534.36/Source/_javascript_Core/assembler/MacroAssembler.h	2011-05-18 21:58:49 UTC (rev 86795)
+++ tags/Safari-534.36/Source/_javascript_Core/assembler/MacroAssembler.h	2011-05-18 22:03:14 UTC (rev 86796)
@@ -235,11 +235,6 @@
     {
         return load32WithAddressOffsetPatch(address, dest);
     }
-    
-    DataLabelCompact loadPtrWithCompactAddressOffsetPatch(Address address, RegisterID dest)
-    {
-        return load32WithCompactAddressOffsetPatch(address, dest);
-    }
 
     void comparePtr(RelationalCondition cond, RegisterID left, TrustedImm32 right, RegisterID dest)
     {

Modified: tags/Safari-534.36/Source/_javascript_Core/assembler/MacroAssemblerARM.h (86795 => 86796)


--- tags/Safari-534.36/Source/_javascript_Core/assembler/MacroAssemblerARM.h	2011-05-18 21:58:49 UTC (rev 86795)
+++ tags/Safari-534.36/Source/_javascript_Core/assembler/MacroAssemblerARM.h	2011-05-18 22:03:14 UTC (rev 86796)
@@ -41,7 +41,6 @@
     COMPILE_ASSERT(!(DoubleConditionBitSpecial & DoubleConditionMask), DoubleConditionBitSpecial_should_not_interfere_with_ARMAssembler_Condition_codes);
 public:
     typedef ARMRegisters::FPRegisterID FPRegisterID;
-    static const int MaximumCompactPtrAlignedAddressOffset = 0x7FFFFFFF;
 
     enum RelationalCondition {
         Equal = ARMAssembler::EQ,
@@ -274,13 +273,6 @@
         m_assembler.dtr_ur(true, dest, address.base, ARMRegisters::S0);
         return dataLabel;
     }
-    
-    DataLabelCompact load32WithCompactAddressOffsetPatch(Address address, RegisterID dest)
-    {
-        DataLabelCompact dataLabel(this);
-        load32WithAddressOffsetPatch(address, dest);
-        return dataLabel;
-    }
 
     void load16(BaseIndex address, RegisterID dest)
     {

Modified: tags/Safari-534.36/Source/_javascript_Core/assembler/MacroAssemblerARMv7.h (86795 => 86796)


--- tags/Safari-534.36/Source/_javascript_Core/assembler/MacroAssemblerARMv7.h	2011-05-18 21:58:49 UTC (rev 86795)
+++ tags/Safari-534.36/Source/_javascript_Core/assembler/MacroAssemblerARMv7.h	2011-05-18 22:03:14 UTC (rev 86796)
@@ -48,7 +48,6 @@
     typedef ARMv7Assembler::LinkRecord LinkRecord;
     typedef ARMv7Assembler::JumpType JumpType;
     typedef ARMv7Assembler::JumpLinkType JumpLinkType;
-    static const int MaximumCompactPtrAlignedAddressOffset = 0x7FFFFFFF;
 
     MacroAssemblerARMv7()
         : m_inUninterruptedSequence(false)
@@ -482,12 +481,6 @@
         load32(ArmAddress(address.base, dataTempRegister), dest);
         return label;
     }
-    
-    DataLabelCompact load32WithCompactAddressOffsetPatch(Address address, RegisterID dest)
-    {
-        DataLabel32 label = load32WithAddressOffsetPatch(address, dest);
-        return DataLabelCompact(label.label());
-    }
 
     void load16(BaseIndex address, RegisterID dest)
     {

Modified: tags/Safari-534.36/Source/_javascript_Core/assembler/MacroAssemblerMIPS.h (86795 => 86796)


--- tags/Safari-534.36/Source/_javascript_Core/assembler/MacroAssemblerMIPS.h	2011-05-18 21:58:49 UTC (rev 86795)
+++ tags/Safari-534.36/Source/_javascript_Core/assembler/MacroAssemblerMIPS.h	2011-05-18 22:03:14 UTC (rev 86796)
@@ -57,8 +57,6 @@
     // FP temp register
     static const FPRegisterID fpTempRegister = MIPSRegisters::f16;
 
-    static const int MaximumCompactPtrAlignedAddressOffset = 0x7FFFFFFF;
-
     enum RelationalCondition {
         Equal,
         NotEqual,
@@ -612,13 +610,6 @@
         m_fixedWidth = false;
         return dataLabel;
     }
-    
-    DataLabelCompact load32WithCompactAddressOffsetPatch(Address address, RegisterID dest)
-    {
-        DataLabelCompact dataLabel(this);
-        load32WithAddressOffsetPatch(address, dest);
-        return dataLabel;
-    }
 
     /* Need to use zero-extened load half-word for load16.  */
     void load16(ImplicitAddress address, RegisterID dest)

Modified: tags/Safari-534.36/Source/_javascript_Core/assembler/MacroAssemblerSH4.h (86795 => 86796)


--- tags/Safari-534.36/Source/_javascript_Core/assembler/MacroAssemblerSH4.h	2011-05-18 21:58:49 UTC (rev 86795)
+++ tags/Safari-534.36/Source/_javascript_Core/assembler/MacroAssemblerSH4.h	2011-05-18 22:03:14 UTC (rev 86796)
@@ -45,8 +45,6 @@
     static const RegisterID linkRegister = SH4Registers::pr;
     static const RegisterID scratchReg3 = SH4Registers::r13;
 
-    static const int MaximumCompactPtrAlignedAddressOffset = 0x7FFFFFFF;
-
     enum RelationalCondition {
         Equal = SH4Assembler::EQ,
         NotEqual = SH4Assembler::NE,
@@ -734,17 +732,6 @@
         releaseScratch(scr);
         return label;
     }
-    
-    DataLabel32 load32WithAddressOffsetPatch(Address address, RegisterID dest)
-    {
-        RegisterID scr = claimScratch();
-        DataLabelCompact label(this);
-        m_assembler.loadConstantUnReusable(address.offset, scr);
-        m_assembler.addlRegReg(address.base, scr);
-        m_assembler.movlMemReg(scr, dest);
-        releaseScratch(scr);
-        return label;
-    }
 
     DataLabel32 store32WithAddressOffsetPatch(RegisterID src, Address address)
     {

Modified: tags/Safari-534.36/Source/_javascript_Core/assembler/MacroAssemblerX86Common.h (86795 => 86796)


--- tags/Safari-534.36/Source/_javascript_Core/assembler/MacroAssemblerX86Common.h	2011-05-18 21:58:49 UTC (rev 86795)
+++ tags/Safari-534.36/Source/_javascript_Core/assembler/MacroAssemblerX86Common.h	2011-05-18 22:03:14 UTC (rev 86796)
@@ -40,8 +40,6 @@
 
 public:
     typedef X86Assembler::FPRegisterID FPRegisterID;
-    
-    static const int MaximumCompactPtrAlignedAddressOffset = 127;
 
     enum RelationalCondition {
         Equal = X86Assembler::ConditionE,
@@ -450,25 +448,6 @@
         m_assembler.movl_mr_disp32(address.offset, address.base, dest);
         return DataLabel32(this);
     }
-    
-    DataLabelCompact load32WithCompactAddressOffsetPatch(Address address, RegisterID dest)
-    {
-        m_assembler.movl_mr_disp8(address.offset, address.base, dest);
-        return DataLabelCompact(this);
-    }
-    
-    static void repatchCompact(CodeLocationDataLabelCompact dataLabelCompact, int32_t value)
-    {
-        ASSERT(value >= 0);
-        ASSERT(value < MaximumCompactPtrAlignedAddressOffset);
-        AssemblerType_T::repatchCompact(dataLabelCompact.dataLocation(), value);
-    }
-    
-    DataLabelCompact loadCompactWithAddressOffsetPatch(Address address, RegisterID dest)
-    {
-        m_assembler.movl_mr_disp8(address.offset, address.base, dest);
-        return DataLabelCompact(this);
-    }
 
     void load16(BaseIndex address, RegisterID dest)
     {

Modified: tags/Safari-534.36/Source/_javascript_Core/assembler/MacroAssemblerX86_64.h (86795 => 86796)


--- tags/Safari-534.36/Source/_javascript_Core/assembler/MacroAssemblerX86_64.h	2011-05-18 21:58:49 UTC (rev 86795)
+++ tags/Safari-534.36/Source/_javascript_Core/assembler/MacroAssemblerX86_64.h	2011-05-18 22:03:14 UTC (rev 86796)
@@ -268,12 +268,6 @@
         m_assembler.movq_mr_disp32(address.offset, address.base, dest);
         return DataLabel32(this);
     }
-    
-    DataLabelCompact loadPtrWithCompactAddressOffsetPatch(Address address, RegisterID dest)
-    {
-        m_assembler.movq_mr_disp8(address.offset, address.base, dest);
-        return DataLabelCompact(this);
-    }
 
     void storePtr(RegisterID src, ImplicitAddress address)
     {

Modified: tags/Safari-534.36/Source/_javascript_Core/assembler/RepatchBuffer.h (86795 => 86796)


--- tags/Safari-534.36/Source/_javascript_Core/assembler/RepatchBuffer.h	2011-05-18 21:58:49 UTC (rev 86795)
+++ tags/Safari-534.36/Source/_javascript_Core/assembler/RepatchBuffer.h	2011-05-18 22:03:14 UTC (rev 86796)
@@ -87,11 +87,6 @@
         MacroAssembler::repatchInt32(dataLabel32, value);
     }
 
-    void repatch(CodeLocationDataLabelCompact dataLabelCompact, int32_t value)
-    {
-        MacroAssembler::repatchCompact(dataLabelCompact, value);
-    }
-
     void repatch(CodeLocationDataLabelPtr dataLabelPtr, void* value)
     {
         MacroAssembler::repatchPointer(dataLabelPtr, value);

Modified: tags/Safari-534.36/Source/_javascript_Core/assembler/SH4Assembler.h (86795 => 86796)


--- tags/Safari-534.36/Source/_javascript_Core/assembler/SH4Assembler.h	2011-05-18 21:58:49 UTC (rev 86795)
+++ tags/Safari-534.36/Source/_javascript_Core/assembler/SH4Assembler.h	2011-05-18 22:03:14 UTC (rev 86796)
@@ -1352,11 +1352,6 @@
         changePCrelativeAddress((*instructionPtr & 0xff), instructionPtr, value);
     }
 
-    static void repatchCompact(void* where, int32_t value)
-    {
-        repatchInt32(where, value);
-    }
-
     static void relinkCall(void* from, void* to)
     {
         uint16_t* instructionPtr = reinterpret_cast<uint16_t*>(from);

Modified: tags/Safari-534.36/Source/_javascript_Core/assembler/X86Assembler.h (86795 => 86796)


--- tags/Safari-534.36/Source/_javascript_Core/assembler/X86Assembler.h	2011-05-18 21:58:49 UTC (rev 86795)
+++ tags/Safari-534.36/Source/_javascript_Core/assembler/X86Assembler.h	2011-05-18 22:03:14 UTC (rev 86796)
@@ -1019,11 +1019,6 @@
     {
         m_formatter.oneByteOp_disp32(OP_MOV_GvEv, dst, base, offset);
     }
-    
-    void movl_mr_disp8(int offset, RegisterID base, RegisterID dst)
-    {
-        m_formatter.oneByteOp_disp8(OP_MOV_GvEv, dst, base, offset);
-    }
 
     void movl_mr(int offset, RegisterID base, RegisterID index, int scale, RegisterID dst)
     {
@@ -1095,11 +1090,6 @@
         m_formatter.oneByteOp64_disp32(OP_MOV_GvEv, dst, base, offset);
     }
 
-    void movq_mr_disp8(int offset, RegisterID base, RegisterID dst)
-    {
-        m_formatter.oneByteOp64_disp8(OP_MOV_GvEv, dst, base, offset);
-    }
-
     void movq_mr(int offset, RegisterID base, RegisterID index, int scale, RegisterID dst)
     {
         m_formatter.oneByteOp64(OP_MOV_GvEv, dst, base, index, scale, offset);
@@ -1547,13 +1537,6 @@
     {
         setRel32(from, to);
     }
-    
-    static void repatchCompact(void* where, int32_t value)
-    {
-        ASSERT(value >= 0);
-        ASSERT(value <= std::numeric_limits<int8_t>::max());
-        setInt8(where, value);
-    }
 
     static void repatchInt32(void* where, int32_t value)
     {
@@ -1604,11 +1587,6 @@
     {
         reinterpret_cast<int32_t*>(where)[-1] = value;
     }
-    
-    static void setInt8(void* where, int8_t value)
-    {
-        reinterpret_cast<int8_t*>(where)[-1] = value;
-    }
 
     static void setRel32(void* from, void* to)
     {
@@ -1683,14 +1661,6 @@
             m_buffer.putByteUnchecked(opcode);
             memoryModRM_disp32(reg, base, offset);
         }
-        
-        void oneByteOp_disp8(OneByteOpcodeID opcode, int reg, RegisterID base, int offset)
-        {
-            m_buffer.ensureSpace(maxInstructionSize);
-            emitRexIfNeeded(reg, 0, base);
-            m_buffer.putByteUnchecked(opcode);
-            memoryModRM_disp8(reg, base, offset);
-        }
 
         void oneByteOp(OneByteOpcodeID opcode, int reg, RegisterID base, RegisterID index, int scale, int offset)
         {
@@ -1797,14 +1767,6 @@
             m_buffer.putByteUnchecked(opcode);
             memoryModRM_disp32(reg, base, offset);
         }
-        
-        void oneByteOp64_disp8(OneByteOpcodeID opcode, int reg, RegisterID base, int offset)
-        {
-            m_buffer.ensureSpace(maxInstructionSize);
-            emitRexW(reg, 0, base);
-            m_buffer.putByteUnchecked(opcode);
-            memoryModRM_disp8(reg, base, offset);
-        }
 
         void oneByteOp64(OneByteOpcodeID opcode, int reg, RegisterID base, RegisterID index, int scale, int offset)
         {
@@ -2037,24 +1999,7 @@
                 }
             }
         }
-
-        void memoryModRM_disp8(int reg, RegisterID base, int offset)
-        {
-            // A base of esp or r12 would be interpreted as a sib, so force a sib with no index & put the base in there.
-            ASSERT(CAN_SIGN_EXTEND_8_32(offset));
-#if CPU(X86_64)
-            if ((base == hasSib) || (base == hasSib2)) {
-#else
-            if (base == hasSib) {
-#endif
-                putModRmSib(ModRmMemoryDisp8, reg, base, noIndex, 0);
-                m_buffer.putByteUnchecked(offset);
-            } else {
-                putModRm(ModRmMemoryDisp8, reg, base);
-                m_buffer.putByteUnchecked(offset);
-            }
-        }
-
+    
         void memoryModRM_disp32(int reg, RegisterID base, int offset)
         {
             // A base of esp or r12 would be interpreted as a sib, so force a sib with no index & put the base in there.

Modified: tags/Safari-534.36/Source/_javascript_Core/jit/JIT.h (86795 => 86796)


--- tags/Safari-534.36/Source/_javascript_Core/jit/JIT.h	2011-05-18 21:58:49 UTC (rev 86795)
+++ tags/Safari-534.36/Source/_javascript_Core/jit/JIT.h	2011-05-18 22:03:14 UTC (rev 86796)
@@ -174,10 +174,9 @@
         using MacroAssembler::Label;
 
         static const int patchGetByIdDefaultStructure = -1;
-        static const int patchGetByIdDefaultOffset = 0;
         // Magic number - initial offset cannot be representable as a signed 8bit value, or the X86Assembler
         // will compress the displacement, and we may not be able to fit a patched offset.
-        static const int patchPutByIdDefaultOffset = 256;
+        static const int patchGetByIdDefaultOffset = 256;
 
     public:
         static JITCode compile(JSGlobalData* globalData, CodeBlock* codeBlock, CodePtr* functionEntryArityCheck = 0)
@@ -350,9 +349,9 @@
         // These architecture specific value are used to enable patching - see comment on op_get_by_id.
         static const int patchOffsetGetByIdStructure = 7;
         static const int patchOffsetGetByIdBranchToSlowCase = 13;
-        static const int patchOffsetGetByIdPropertyMapOffset1 = 19;
-        static const int patchOffsetGetByIdPropertyMapOffset2 = 22;
-        static const int patchOffsetGetByIdPutResult = 22;
+        static const int patchOffsetGetByIdPropertyMapOffset1 = 22;
+        static const int patchOffsetGetByIdPropertyMapOffset2 = 28;
+        static const int patchOffsetGetByIdPutResult = 28;
 #if ENABLE(OPCODE_SAMPLING)
         static const int patchOffsetGetByIdSlowCaseCall = 37;
 #else
@@ -585,8 +584,8 @@
         // These architecture specific value are used to enable patching - see comment on op_get_by_id.
         static const int patchOffsetGetByIdStructure = 10;
         static const int patchOffsetGetByIdBranchToSlowCase = 20;
-        static const int patchOffsetGetByIdPropertyMapOffset = 28;
-        static const int patchOffsetGetByIdPutResult = 28;
+        static const int patchOffsetGetByIdPropertyMapOffset = 31;
+        static const int patchOffsetGetByIdPutResult = 31;
 #if ENABLE(OPCODE_SAMPLING)
         static const int patchOffsetGetByIdSlowCaseCall = 64;
 #else

Modified: tags/Safari-534.36/Source/_javascript_Core/jit/JITPropertyAccess.cpp (86795 => 86796)


--- tags/Safari-534.36/Source/_javascript_Core/jit/JITPropertyAccess.cpp	2011-05-18 21:58:49 UTC (rev 86795)
+++ tags/Safari-534.36/Source/_javascript_Core/jit/JITPropertyAccess.cpp	2011-05-18 22:03:14 UTC (rev 86796)
@@ -420,7 +420,7 @@
     ASSERT_JIT_OFFSET(differenceBetween(hotPathBegin, structureCheck), patchOffsetGetByIdBranchToSlowCase)
 
     loadPtr(Address(regT0, OBJECT_OFFSETOF(JSObject, m_propertyStorage)), regT0);
-    DataLabelCompact displacementLabel = loadPtrWithCompactAddressOffsetPatch(Address(regT0, patchGetByIdDefaultOffset), regT0);
+    DataLabel32 displacementLabel = loadPtrWithAddressOffsetPatch(Address(regT0, patchGetByIdDefaultOffset), regT0);
     ASSERT_JIT_OFFSET_UNUSED(displacementLabel, differenceBetween(hotPathBegin, displacementLabel), patchOffsetGetByIdPropertyMapOffset);
 
     Label putResult(this);
@@ -496,7 +496,7 @@
     ASSERT_JIT_OFFSET(differenceBetween(hotPathBegin, structureToCompare), patchOffsetPutByIdStructure);
 
     loadPtr(Address(regT0, OBJECT_OFFSETOF(JSObject, m_propertyStorage)), regT0);
-    DataLabel32 displacementLabel = storePtrWithAddressOffsetPatch(regT1, Address(regT0, patchPutByIdDefaultOffset));
+    DataLabel32 displacementLabel = storePtrWithAddressOffsetPatch(regT1, Address(regT0, patchGetByIdDefaultOffset));
 
     END_UNINTERRUPTED_SEQUENCE(sequencePutById);
 
@@ -628,7 +628,7 @@
 
     // Patch the offset into the propoerty map to load from, then patch the Structure to look for.
     repatchBuffer.repatch(stubInfo->hotPathBegin.dataLabelPtrAtOffset(patchOffsetGetByIdStructure), structure);
-    repatchBuffer.repatch(stubInfo->hotPathBegin.dataLabelCompactAtOffset(patchOffsetGetByIdPropertyMapOffset), offset);
+    repatchBuffer.repatch(stubInfo->hotPathBegin.dataLabel32AtOffset(patchOffsetGetByIdPropertyMapOffset), offset);
 }
 
 void JIT::patchMethodCallProto(JSGlobalData& globalData, CodeBlock* codeBlock, MethodCallLinkInfo& methodCallLinkInfo, JSFunction* callee, Structure* structure, JSObject* proto, ReturnAddressPtr returnAddress)

Modified: tags/Safari-534.36/Source/_javascript_Core/jit/JITPropertyAccess32_64.cpp (86795 => 86796)


--- tags/Safari-534.36/Source/_javascript_Core/jit/JITPropertyAccess32_64.cpp	2011-05-18 21:58:49 UTC (rev 86795)
+++ tags/Safari-534.36/Source/_javascript_Core/jit/JITPropertyAccess32_64.cpp	2011-05-18 22:03:14 UTC (rev 86796)
@@ -435,9 +435,9 @@
     ASSERT_JIT_OFFSET(differenceBetween(hotPathBegin, structureCheck), patchOffsetGetByIdBranchToSlowCase);
     
     loadPtr(Address(regT0, OBJECT_OFFSETOF(JSObject, m_propertyStorage)), regT2);
-    DataLabelCompact displacementLabel1 = loadPtrWithCompactAddressOffsetPatch(Address(regT2, patchGetByIdDefaultOffset), regT0); // payload
+    DataLabel32 displacementLabel1 = loadPtrWithAddressOffsetPatch(Address(regT2, patchGetByIdDefaultOffset), regT0); // payload
     ASSERT_JIT_OFFSET(differenceBetween(hotPathBegin, displacementLabel1), patchOffsetGetByIdPropertyMapOffset1);
-    DataLabelCompact displacementLabel2 = loadPtrWithCompactAddressOffsetPatch(Address(regT2, patchGetByIdDefaultOffset), regT1); // tag
+    DataLabel32 displacementLabel2 = loadPtrWithAddressOffsetPatch(Address(regT2, patchGetByIdDefaultOffset), regT1); // tag
     ASSERT_JIT_OFFSET(differenceBetween(hotPathBegin, displacementLabel2), patchOffsetGetByIdPropertyMapOffset2);
     
     Label putResult(this);
@@ -509,8 +509,8 @@
     ASSERT_JIT_OFFSET(differenceBetween(hotPathBegin, structureToCompare), patchOffsetPutByIdStructure);
     
     loadPtr(Address(regT0, OBJECT_OFFSETOF(JSObject, m_propertyStorage)), regT0);
-    DataLabel32 displacementLabel1 = storePtrWithAddressOffsetPatch(regT2, Address(regT0, patchPutByIdDefaultOffset)); // payload
-    DataLabel32 displacementLabel2 = storePtrWithAddressOffsetPatch(regT3, Address(regT0, patchPutByIdDefaultOffset)); // tag
+    DataLabel32 displacementLabel1 = storePtrWithAddressOffsetPatch(regT2, Address(regT0, patchGetByIdDefaultOffset)); // payload
+    DataLabel32 displacementLabel2 = storePtrWithAddressOffsetPatch(regT3, Address(regT0, patchGetByIdDefaultOffset)); // tag
     
     END_UNINTERRUPTED_SEQUENCE(sequencePutById);
     
@@ -651,8 +651,8 @@
 
     // Patch the offset into the propoerty map to load from, then patch the Structure to look for.
     repatchBuffer.repatch(stubInfo->hotPathBegin.dataLabelPtrAtOffset(patchOffsetGetByIdStructure), structure);
-    repatchBuffer.repatch(stubInfo->hotPathBegin.dataLabelCompactAtOffset(patchOffsetGetByIdPropertyMapOffset1), offset + OBJECT_OFFSETOF(JSValue, u.asBits.payload)); // payload
-    repatchBuffer.repatch(stubInfo->hotPathBegin.dataLabelCompactAtOffset(patchOffsetGetByIdPropertyMapOffset2), offset + OBJECT_OFFSETOF(JSValue, u.asBits.tag)); // tag
+    repatchBuffer.repatch(stubInfo->hotPathBegin.dataLabel32AtOffset(patchOffsetGetByIdPropertyMapOffset1), offset + OBJECT_OFFSETOF(JSValue, u.asBits.payload)); // payload
+    repatchBuffer.repatch(stubInfo->hotPathBegin.dataLabel32AtOffset(patchOffsetGetByIdPropertyMapOffset2), offset + OBJECT_OFFSETOF(JSValue, u.asBits.tag)); // tag
 }
 
 void JIT::patchMethodCallProto(JSGlobalData& globalData, CodeBlock* codeBlock, MethodCallLinkInfo& methodCallLinkInfo, JSFunction* callee, Structure* structure, JSObject* proto, ReturnAddressPtr returnAddress)

Modified: tags/Safari-534.36/Source/_javascript_Core/jit/JITStubs.cpp (86795 => 86796)


--- tags/Safari-534.36/Source/_javascript_Core/jit/JITStubs.cpp	2011-05-18 21:58:49 UTC (rev 86795)
+++ tags/Safari-534.36/Source/_javascript_Core/jit/JITStubs.cpp	2011-05-18 22:03:14 UTC (rev 86796)
@@ -897,7 +897,7 @@
     if (slot.slotBase() == baseValue) {
         // set this up, so derefStructures can do it's job.
         stubInfo->initGetByIdSelf(callFrame->globalData(), codeBlock->ownerExecutable(), structure);
-        if ((slot.cachedPropertyType() != PropertySlot::Value) || ((slot.cachedOffset() * sizeof(JSValue)) > (unsigned)MacroAssembler::MaximumCompactPtrAlignedAddressOffset))
+        if (slot.cachedPropertyType() != PropertySlot::Value)
             ctiPatchCallByReturnAddress(codeBlock, returnAddress, FunctionPtr(cti_op_get_by_id_self_fail));
         else
             JIT::patchGetByIdSelf(codeBlock, stubInfo, structure, slot.cachedOffset(), returnAddress);
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to