diff options
-rw-r--r-- | src/3rdparty/masm/assembler/LinkBuffer.cpp | 3 | ||||
-rw-r--r-- | src/3rdparty/masm/yarr/YarrJIT.cpp | 9 | ||||
-rw-r--r-- | src/qml/jit/qv4assembler_p.h | 6 |
3 files changed, 13 insertions, 5 deletions
diff --git a/src/3rdparty/masm/assembler/LinkBuffer.cpp b/src/3rdparty/masm/assembler/LinkBuffer.cpp index 645eba5380..bf4f2f5278 100644 --- a/src/3rdparty/masm/assembler/LinkBuffer.cpp +++ b/src/3rdparty/masm/assembler/LinkBuffer.cpp @@ -154,7 +154,8 @@ void LinkBuffer::performFinalization() #if ENABLE(BRANCH_COMPACTION) ExecutableAllocator::makeExecutable(code(), m_initialSize); #else - ExecutableAllocator::makeExecutable(code(), m_size); + ASSERT(m_size <= INT_MAX); + ExecutableAllocator::makeExecutable(code(), static_cast<int>(m_size)); #endif MacroAssembler::cacheFlush(code(), m_size); } diff --git a/src/3rdparty/masm/yarr/YarrJIT.cpp b/src/3rdparty/masm/yarr/YarrJIT.cpp index 8027446118..783a869b5a 100644 --- a/src/3rdparty/masm/yarr/YarrJIT.cpp +++ b/src/3rdparty/masm/yarr/YarrJIT.cpp @@ -212,7 +212,11 @@ class YarrGenerator : private MacroAssembler { if (charClass->m_ranges.size()) { unsigned matchIndex = 0; JumpList failures; - matchCharacterClassRange(character, failures, matchDest, &charClass->m_ranges[0], charClass->m_ranges.size(), &matchIndex, charClass->m_matches.isEmpty() ? 0 : &charClass->m_matches[0], charClass->m_matches.size()); + ASSERT(charClass->m_ranges.size() <= UINT_MAX); + matchCharacterClassRange(character, failures, matchDest, &charClass->m_ranges[0], + static_cast<unsigned>(charClass->m_ranges.size()), + &matchIndex, charClass->m_matches.isEmpty() ? 0 : &charClass->m_matches[0], + static_cast<unsigned>(charClass->m_matches.size())); while (matchIndex < charClass->m_matches.size()) matchDest.append(branch32(Equal, character, Imm32((unsigned short)charClass->m_matches[matchIndex++]))); @@ -234,7 +238,8 @@ class YarrGenerator : private MacroAssembler { matchDest.append(branch32(Equal, character, Imm32((unsigned short)ch))); } - if (unsigned countAZaz = matchesAZaz.size()) { + ASSERT(matchesAZaz.size() <= UINT_MAX); + if (unsigned countAZaz = static_cast<int>(matchesAZaz.size())) { or32(TrustedImm32(32), character); for (unsigned i = 0; i < countAZaz; ++i) matchDest.append(branch32(Equal, character, TrustedImm32(matchesAZaz[i]))); diff --git a/src/qml/jit/qv4assembler_p.h b/src/qml/jit/qv4assembler_p.h index f28aed6ed1..29e94ea5f0 100644 --- a/src/qml/jit/qv4assembler_p.h +++ b/src/qml/jit/qv4assembler_p.h @@ -354,7 +354,8 @@ public: int frameSize = RegisterSize * calleeSavedRegisterCount; frameSize += savedRegCount * sizeof(QV4::Value); // these get written out as Values, not as native registers - frameSize = WTF::roundUpToMultipleOf(StackAlignment, frameSize + stackSpaceAllocatedOtherwise); + Q_ASSERT(frameSize + stackSpaceAllocatedOtherwise < INT_MAX); + frameSize = static_cast<int>(WTF::roundUpToMultipleOf(StackAlignment, frameSize + stackSpaceAllocatedOtherwise)); frameSize -= stackSpaceAllocatedOtherwise; return frameSize; @@ -962,7 +963,8 @@ public: + StackShadowSpace; if (stackSpaceNeeded) { - stackSpaceNeeded = WTF::roundUpToMultipleOf(StackAlignment, stackSpaceNeeded); + Q_ASSERT(stackSpaceNeeded < (INT_MAX - StackAlignment)); + stackSpaceNeeded = static_cast<int>(WTF::roundUpToMultipleOf(StackAlignment, stackSpaceNeeded)); sub32(TrustedImm32(stackSpaceNeeded), StackPointerRegister); } |