diff options
author | Liang Qi <liang.qi@qt.io> | 2017-05-29 10:30:39 +0200 |
---|---|---|
committer | Lars Knoll <lars.knoll@qt.io> | 2017-06-06 15:59:38 +0200 |
commit | c254cec22a2352a3fcab60244a6ab74f95d45ace (patch) | |
tree | d8456def48b09bd3914eb87c57ab53376f92c14f /src/3rdparty/masm | |
parent | c158ca8be49a75026e83751dfd825c5bdd63189a (diff) | |
parent | 3f9367cb32533b691cb8c761213f21a524e3d1cb (diff) |
Merge remote-tracking branch 'origin/5.9' into dev
Conflicts:
.qmake.conf
src/qml/jsruntime/qv4argumentsobject.cpp
src/qml/jsruntime/qv4arraydata.cpp
src/qml/jsruntime/qv4context.cpp
src/qml/jsruntime/qv4context_p.h
src/qml/jsruntime/qv4errorobject.cpp
src/qml/jsruntime/qv4functionobject.cpp
src/qml/jsruntime/qv4internalclass.cpp
src/qml/jsruntime/qv4lookup.cpp
src/qml/jsruntime/qv4managed.cpp
src/qml/jsruntime/qv4managed_p.h
src/qml/jsruntime/qv4object.cpp
src/qml/jsruntime/qv4object_p.h
src/qml/jsruntime/qv4qmlcontext.cpp
src/qml/jsruntime/qv4runtime.cpp
src/qml/jsruntime/qv4vme_moth.cpp
src/qml/memory/qv4heap_p.h
src/qml/memory/qv4mm.cpp
src/qml/memory/qv4mm_p.h
src/qml/memory/qv4mmdefs_p.h
src/quick/scenegraph/util/qsgdistancefieldutil.cpp
src/quick/scenegraph/util/qsgdistancefieldutil_p.h
tests/auto/qml/qqmllanguage/tst_qqmllanguage.cpp
Change-Id: I7ed925d4f5d308f872a58ddf51fdce0c8494ec9c
Diffstat (limited to 'src/3rdparty/masm')
-rw-r--r-- | src/3rdparty/masm/assembler/ARMv7Assembler.h | 22 | ||||
-rw-r--r-- | src/3rdparty/masm/assembler/MacroAssembler.h | 8 | ||||
-rw-r--r-- | src/3rdparty/masm/assembler/MacroAssemblerARM64.h | 10 |
3 files changed, 19 insertions, 21 deletions
diff --git a/src/3rdparty/masm/assembler/ARMv7Assembler.h b/src/3rdparty/masm/assembler/ARMv7Assembler.h index 615c72fc15..d57e5a7c78 100644 --- a/src/3rdparty/masm/assembler/ARMv7Assembler.h +++ b/src/3rdparty/masm/assembler/ARMv7Assembler.h @@ -2531,12 +2531,18 @@ private: return (instruction[0] == OP_NOP_T2a) && (instruction[1] == OP_NOP_T2b); } + static int32_t makeRelative(const void *target, const void *source) + { + intptr_t difference = reinterpret_cast<intptr_t>(target) - reinterpret_cast<intptr_t>(source); + return static_cast<int32_t>(difference); + } + static bool canBeJumpT1(const uint16_t* instruction, const void* target) { ASSERT(!(reinterpret_cast<intptr_t>(instruction) & 1)); ASSERT(!(reinterpret_cast<intptr_t>(target) & 1)); - intptr_t relative = reinterpret_cast<intptr_t>(target) - (reinterpret_cast<intptr_t>(instruction)); + auto relative = makeRelative(target, instruction); // It does not appear to be documented in the ARM ARM (big surprise), but // for OP_B_T1 the branch displacement encoded in the instruction is 2 // less than the actual displacement. @@ -2549,7 +2555,7 @@ private: ASSERT(!(reinterpret_cast<intptr_t>(instruction) & 1)); ASSERT(!(reinterpret_cast<intptr_t>(target) & 1)); - intptr_t relative = reinterpret_cast<intptr_t>(target) - (reinterpret_cast<intptr_t>(instruction)); + auto relative = makeRelative(target, instruction); // It does not appear to be documented in the ARM ARM (big surprise), but // for OP_B_T2 the branch displacement encoded in the instruction is 2 // less than the actual displacement. @@ -2562,7 +2568,7 @@ private: ASSERT(!(reinterpret_cast<intptr_t>(instruction) & 1)); ASSERT(!(reinterpret_cast<intptr_t>(target) & 1)); - intptr_t relative = reinterpret_cast<intptr_t>(target) - (reinterpret_cast<intptr_t>(instruction)); + auto relative = makeRelative(target, instruction); return ((relative << 11) >> 11) == relative; } @@ -2571,7 +2577,7 @@ private: ASSERT(!(reinterpret_cast<intptr_t>(instruction) & 1)); ASSERT(!(reinterpret_cast<intptr_t>(target) & 1)); - intptr_t relative = reinterpret_cast<intptr_t>(target) - (reinterpret_cast<intptr_t>(instruction)); + auto relative = makeRelative(target, instruction); return ((relative << 7) >> 7) == relative; } @@ -2582,7 +2588,7 @@ private: ASSERT(!(reinterpret_cast<intptr_t>(target) & 1)); ASSERT(canBeJumpT1(instruction, target)); - intptr_t relative = reinterpret_cast<intptr_t>(target) - (reinterpret_cast<intptr_t>(instruction)); + auto relative = makeRelative(target, instruction); // It does not appear to be documented in the ARM ARM (big surprise), but // for OP_B_T1 the branch displacement encoded in the instruction is 2 // less than the actual displacement. @@ -2600,7 +2606,7 @@ private: ASSERT(!(reinterpret_cast<intptr_t>(target) & 1)); ASSERT(canBeJumpT2(instruction, target)); - intptr_t relative = reinterpret_cast<intptr_t>(target) - (reinterpret_cast<intptr_t>(instruction)); + auto relative = makeRelative(target, instruction); // It does not appear to be documented in the ARM ARM (big surprise), but // for OP_B_T2 the branch displacement encoded in the instruction is 2 // less than the actual displacement. @@ -2618,7 +2624,7 @@ private: ASSERT(!(reinterpret_cast<intptr_t>(target) & 1)); ASSERT(canBeJumpT3(instruction, target)); - intptr_t relative = reinterpret_cast<intptr_t>(target) - (reinterpret_cast<intptr_t>(instruction)); + auto relative = makeRelative(target, instruction); // All branch offsets should be an even distance. ASSERT(!(relative & 1)); @@ -2633,7 +2639,7 @@ private: ASSERT(!(reinterpret_cast<intptr_t>(target) & 1)); ASSERT(canBeJumpT4(instruction, target)); - intptr_t relative = reinterpret_cast<intptr_t>(target) - (reinterpret_cast<intptr_t>(instruction)); + auto relative = makeRelative(target, instruction); // ARM encoding for the top two bits below the sign bit is 'peculiar'. if (relative >= 0) relative ^= 0xC00000; diff --git a/src/3rdparty/masm/assembler/MacroAssembler.h b/src/3rdparty/masm/assembler/MacroAssembler.h index f37861eb66..6e77a9ffb7 100644 --- a/src/3rdparty/masm/assembler/MacroAssembler.h +++ b/src/3rdparty/masm/assembler/MacroAssembler.h @@ -248,14 +248,6 @@ public: } #endif -#if CPU(MIPS) - void poke(FPRegisterID src, int index = 0) - { - ASSERT(!(index & 1)); - storeDouble(src, addressForPoke(index)); - } -#endif - // Backwards banches, these are currently all implemented using existing forwards branch mechanisms. void branchPtr(RelationalCondition cond, RegisterID op1, TrustedImmPtr imm, Label target) { diff --git a/src/3rdparty/masm/assembler/MacroAssemblerARM64.h b/src/3rdparty/masm/assembler/MacroAssemblerARM64.h index 11f1672e15..d5f4acb3ca 100644 --- a/src/3rdparty/masm/assembler/MacroAssemblerARM64.h +++ b/src/3rdparty/masm/assembler/MacroAssemblerARM64.h @@ -214,27 +214,27 @@ public: #if defined(V4_BOOTSTRAP) void loadPtr(ImplicitAddress address, RegisterID dest) { - load32(address, dest); + load64(address, dest); } void subPtr(TrustedImm32 imm, RegisterID dest) { - sub32(imm, dest); + sub64(imm, dest); } void addPtr(TrustedImm32 imm, RegisterID dest) { - add32(imm, dest); + add64(imm, dest); } void addPtr(TrustedImm32 imm, RegisterID src, RegisterID dest) { - add32(imm, src, dest); + add64(imm, src, dest); } void storePtr(RegisterID src, ImplicitAddress address) { - store32(src, address); + store64(src, address); } #endif |