From 89e2486a48b739f8d771d69ede5a6a1b244a10fc Mon Sep 17 00:00:00 2001 From: Simon Hausmann Date: Mon, 30 Jul 2012 11:37:48 +0200 Subject: Imported WebKit commit 0282df8ca7c11d8c8a66ea18543695c69f545a27 (http://svn.webkit.org/repository/webkit/trunk@124002) New snapshot with prospective Mountain Lion build fix --- Source/JavaScriptCore/assembler/MacroAssemblerARM.h | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) (limited to 'Source/JavaScriptCore/assembler/MacroAssemblerARM.h') diff --git a/Source/JavaScriptCore/assembler/MacroAssemblerARM.h b/Source/JavaScriptCore/assembler/MacroAssemblerARM.h index 2773b022c..530f62b86 100644 --- a/Source/JavaScriptCore/assembler/MacroAssemblerARM.h +++ b/Source/JavaScriptCore/assembler/MacroAssemblerARM.h @@ -41,7 +41,6 @@ class MacroAssemblerARM : public AbstractMacroAssembler { 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, @@ -408,11 +407,20 @@ public: m_assembler.dtr_ur(ARMAssembler::LoadUint32, dest, address.base, ARMRegisters::S0); return dataLabel; } - + + static bool isCompactPtrAlignedAddressOffset(ptrdiff_t value) + { + return value >= -4095 && value <= 4095; + } + DataLabelCompact load32WithCompactAddressOffsetPatch(Address address, RegisterID dest) { DataLabelCompact dataLabel(this); - load32WithAddressOffsetPatch(address, dest); + ASSERT(isCompactPtrAlignedAddressOffset(address.offset)); + if (address.offset >= 0) + m_assembler.dtr_u(ARMAssembler::LoadUint32, dest, address.base, address.offset); + else + m_assembler.dtr_d(ARMAssembler::LoadUint32, dest, address.base, address.offset); return dataLabel; } -- cgit v1.2.1