diff options
Diffstat (limited to 'src/3rdparty')
-rw-r--r-- | src/3rdparty/masm/assembler/MacroAssembler.h | 2 | ||||
-rw-r--r-- | src/3rdparty/masm/assembler/MacroAssemblerARM64.h | 9 | ||||
-rw-r--r-- | src/3rdparty/masm/assembler/MacroAssemblerARMv7.h | 11 | ||||
-rw-r--r-- | src/3rdparty/masm/assembler/MacroAssemblerX86_64.h | 13 | ||||
-rw-r--r-- | src/3rdparty/masm/masm-defs.pri | 1 | ||||
-rw-r--r-- | src/3rdparty/masm/stubs/WTFStubs.cpp | 5 |
6 files changed, 38 insertions, 3 deletions
diff --git a/src/3rdparty/masm/assembler/MacroAssembler.h b/src/3rdparty/masm/assembler/MacroAssembler.h index 6e77a9ffb7..20ddcadae1 100644 --- a/src/3rdparty/masm/assembler/MacroAssembler.h +++ b/src/3rdparty/masm/assembler/MacroAssembler.h @@ -810,7 +810,7 @@ public: Jump branchPtr(RelationalCondition cond, RegisterID left, TrustedImmPtr right) { - return branch64(cond, left, TrustedImm64(right)); + return this->branch64(cond, left, TrustedImm64(right)); } Jump branchPtr(RelationalCondition cond, RegisterID left, Address right) diff --git a/src/3rdparty/masm/assembler/MacroAssemblerARM64.h b/src/3rdparty/masm/assembler/MacroAssemblerARM64.h index d5f4acb3ca..1f94eb9032 100644 --- a/src/3rdparty/masm/assembler/MacroAssemblerARM64.h +++ b/src/3rdparty/masm/assembler/MacroAssemblerARM64.h @@ -718,15 +718,20 @@ public: void or64(TrustedImm64 imm, RegisterID dest) { + or64(imm, dest, dest); + } + + void or64(TrustedImm64 imm, RegisterID src, RegisterID dest) + { LogicalImmediate logicalImm = LogicalImmediate::create64(static_cast<intptr_t>(static_cast<int64_t>(imm.m_value))); if (logicalImm.isValid()) { - m_assembler.orr<64>(dest, dest, logicalImm); + m_assembler.orr<64>(dest, src, logicalImm); return; } move(imm, getCachedDataTempRegisterIDAndInvalidate()); - m_assembler.orr<64>(dest, dest, dataTempRegister); + m_assembler.orr<64>(dest, src, dataTempRegister); } void rotateRight64(TrustedImm32 imm, RegisterID srcDst) diff --git a/src/3rdparty/masm/assembler/MacroAssemblerARMv7.h b/src/3rdparty/masm/assembler/MacroAssemblerARMv7.h index fe8170d098..d91122d4a1 100644 --- a/src/3rdparty/masm/assembler/MacroAssemblerARMv7.h +++ b/src/3rdparty/masm/assembler/MacroAssemblerARMv7.h @@ -815,6 +815,17 @@ public: store8(src, setupArmAddress(address)); } + void store8(RegisterID src, Address address) + { + store8(src, setupArmAddress(address)); + } + + void store8(TrustedImm32 imm, Address address) + { + move(imm, dataTempRegister); + store8(dataTempRegister, address); + } + #if !defined(V4_BOOTSTRAP) void store8(RegisterID src, void* address) { diff --git a/src/3rdparty/masm/assembler/MacroAssemblerX86_64.h b/src/3rdparty/masm/assembler/MacroAssemblerX86_64.h index c7c6aae637..002caaae78 100644 --- a/src/3rdparty/masm/assembler/MacroAssemblerX86_64.h +++ b/src/3rdparty/masm/assembler/MacroAssemblerX86_64.h @@ -292,6 +292,12 @@ public: or64(imm, dest); } + void or64(TrustedImm64 imm, RegisterID src, RegisterID dest) + { + move(src, dest); + or64(imm, dest); + } + void rotateRight64(TrustedImm32 imm, RegisterID srcDst) { m_assembler.rorq_i8r(imm.m_value, srcDst); @@ -366,6 +372,13 @@ public: } } + void urshift64(RegisterID src, TrustedImm32 imm, RegisterID dest) + { + if (src != dest) + move(src, dest); + urshift64(imm, dest); + } + void urshift64(TrustedImm32 imm, RegisterID dest) { m_assembler.shrq_i8r(imm.m_value, dest); diff --git a/src/3rdparty/masm/masm-defs.pri b/src/3rdparty/masm/masm-defs.pri index c0c5f3d114..34d6a67451 100644 --- a/src/3rdparty/masm/masm-defs.pri +++ b/src/3rdparty/masm/masm-defs.pri @@ -3,6 +3,7 @@ DEFINES += ENABLE_ASSEMBLER_WX_EXCLUSIVE=1 # Avoid symbol clashes with QtScript during static linking DEFINES += WTFReportAssertionFailure=qmlWTFReportAssertionFailure +DEFINES += WTFReportAssertionFailureWithMessage=qmlWTFReportAssertionFailureWithMessage DEFINES += WTFReportBacktrace=qmlWTFReportBacktrace DEFINES += WTFInvokeCrashHook=qmlWTFInvokeCrashHook diff --git a/src/3rdparty/masm/stubs/WTFStubs.cpp b/src/3rdparty/masm/stubs/WTFStubs.cpp index 610b632baf..ea7e2d78e0 100644 --- a/src/3rdparty/masm/stubs/WTFStubs.cpp +++ b/src/3rdparty/masm/stubs/WTFStubs.cpp @@ -112,6 +112,11 @@ void dataLogFString(const char* str) } extern "C" { +// When adding a new stub here do not forget to add +// DEFINES += StubFunctionName=qmlStubFunctionName +// for example: +// DEFINES += WTFReportAssertionFailureWithMessage=qmlWTFReportAssertionFailureWithMessage +// to prevent "duplicate symbol" error during static library linking. See bugs QTBUG-35041 and QTBUG-63050 void WTFReportAssertionFailure(const char* file, int line, const char* function, const char*assertion) { |