Fix V4 JIT generating bad JIT code on ARM64
Resolves: bz#2178625
This commit is contained in:
parent
dc310ba1ff
commit
a0b3ae6870
44
qt-QTBUG-111935-fix-V4-jit.patch
Normal file
44
qt-QTBUG-111935-fix-V4-jit.patch
Normal file
@ -0,0 +1,44 @@
|
||||
From e2bdde18d9758efdc6a0d7d106aad56995df1271 Mon Sep 17 00:00:00 2001
|
||||
From: Ulf Hermann <ulf.hermann@qt.io>
|
||||
Date: Wed, 15 Mar 2023 08:59:43 +0100
|
||||
Subject: [PATCH] JIT: Add missing {STORE|LOAD}_ACC() to CreateCallContext
|
||||
|
||||
We cannot assume anything about the accumulator register after calling
|
||||
PushCallContext::call(). Also add a note about not needing to re-load
|
||||
the accumulator on ThrowException.
|
||||
|
||||
Pick-to: 6.5 6.2 5.15
|
||||
Fixes: QTBUG-111935
|
||||
Change-Id: I7196585e1d2697c215f4fe87d8d7ac9b98b622a3
|
||||
---
|
||||
src/qml/jit/qv4baselinejit.cpp | 4 ++++
|
||||
1 file changed, 4 insertions(+)
|
||||
|
||||
diff --git a/src/qml/jit/qv4baselinejit.cpp b/src/qml/jit/qv4baselinejit.cpp
|
||||
index 14e183adb8..1d65169dce 100644
|
||||
--- a/src/qml/jit/qv4baselinejit.cpp
|
||||
+++ b/src/qml/jit/qv4baselinejit.cpp
|
||||
@@ -506,6 +506,8 @@ void BaselineJIT::generate_ThrowException()
|
||||
as->passEngineAsArg(0);
|
||||
BASELINEJIT_GENERATE_RUNTIME_CALL(ThrowException, CallResultDestination::Ignore);
|
||||
as->gotoCatchException();
|
||||
+
|
||||
+ // LOAD_ACC(); <- not needed here since it would be unreachable.
|
||||
}
|
||||
|
||||
void BaselineJIT::generate_GetException() { as->getException(); }
|
||||
@@ -513,9 +515,11 @@ void BaselineJIT::generate_SetException() { as->setException(); }
|
||||
|
||||
void BaselineJIT::generate_CreateCallContext()
|
||||
{
|
||||
+ STORE_ACC();
|
||||
as->prepareCallWithArgCount(1);
|
||||
as->passCppFrameAsArg(0);
|
||||
BASELINEJIT_GENERATE_RUNTIME_CALL(PushCallContext, CallResultDestination::Ignore);
|
||||
+ LOAD_ACC();
|
||||
}
|
||||
|
||||
void BaselineJIT::generate_PushCatchContext(int index, int name) { as->pushCatchContext(index, name); }
|
||||
--
|
||||
2.39.2
|
||||
|
@ -12,7 +12,7 @@
|
||||
Summary: Qt5 - QtDeclarative component
|
||||
Name: qt5-%{qt_module}
|
||||
Version: 5.15.3
|
||||
Release: 1%{?dist}
|
||||
Release: 2%{?dist}
|
||||
|
||||
# See LICENSE.GPL LICENSE.LGPL LGPL_EXCEPTION.txt, for details
|
||||
License: LGPLv2 with exceptions or GPLv3 with exceptions
|
||||
@ -55,6 +55,9 @@ Patch20: 0020-Make-sure-QQuickWidget-and-its-offscreen-window-s-sc.patch
|
||||
Patch100: %{name}-gcc11.patch
|
||||
# https://pagure.io/fedora-kde/SIG/issue/82
|
||||
Patch101: qtdeclarative-5.15.0-FixMaxXMaxYExtent.patch
|
||||
# From: https://codereview.qt-project.org/c/qt/qtdeclarative/+/466808
|
||||
# Cf. https://bugzilla.redhat.com/show_bug.cgi?id=2177696
|
||||
Patch102: qt-QTBUG-111935-fix-V4-jit.patch
|
||||
|
||||
|
||||
# filter qml provides
|
||||
@ -251,6 +254,10 @@ make check -k -C tests ||:
|
||||
%endif
|
||||
|
||||
%changelog
|
||||
* Tue Apr 25 2023 Jan Grulich <jgrulich@redhat.com> - 5.15.3-2
|
||||
- Fix V4 JIT generating bad JIT code on ARM64
|
||||
Resolves: bz#2178625
|
||||
|
||||
* Fri Mar 25 2022 Jan Grulich <jgrulich@redhat.com> - 5.15.3-1
|
||||
- 5.15.3 + sync with Fedora
|
||||
Resolves: bz#2061380
|
||||
|
Loading…
Reference in New Issue
Block a user