Update to 0.4.39
Add patch for div255w fix on ppc64le Resolves: RHEL-50713
This commit is contained in:
parent
2eec18071d
commit
6eefdcb57c
1
.gitignore
vendored
1
.gitignore
vendored
@ -8,3 +8,4 @@
|
|||||||
/orc-0.4.30.tar.xz
|
/orc-0.4.30.tar.xz
|
||||||
/orc-0.4.31.tar.xz
|
/orc-0.4.31.tar.xz
|
||||||
/orc-0.4.33.tar.xz
|
/orc-0.4.33.tar.xz
|
||||||
|
/orc-0.4.39.tar.xz
|
||||||
|
@ -0,0 +1,66 @@
|
|||||||
|
From 508280f7ac31c7d0ab2eaed33b26e6df59bb4dd9 Mon Sep 17 00:00:00 2001
|
||||||
|
From: "L. E. Segovia" <amy@centricular.com>
|
||||||
|
Date: Fri, 19 Jul 2024 22:25:20 -0300
|
||||||
|
Subject: [PATCH 1/2] powerpc: fix div255w which still used the inexact
|
||||||
|
substitution
|
||||||
|
|
||||||
|
The code for this architecture used the substitution suggested in the
|
||||||
|
original bug report. That one had subtle failures on armv7a and aarch64,
|
||||||
|
but I was not able to verify if they affected PowerPC too.
|
||||||
|
|
||||||
|
This commit fixes it by reusing the mulhuw instruction implementation --
|
||||||
|
sse2 can be ported directly that way.
|
||||||
|
|
||||||
|
Fixes #71
|
||||||
|
|
||||||
|
Part-of: <https://gitlab.freedesktop.org/gstreamer/orc/-/merge_requests/195>
|
||||||
|
---
|
||||||
|
orc/orcrules-altivec.c | 31 +++++++++++++++----------------
|
||||||
|
1 file changed, 15 insertions(+), 16 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/orc/orcrules-altivec.c b/orc/orcrules-altivec.c
|
||||||
|
index 23409a8..a13fb5b 100644
|
||||||
|
--- a/orc/orcrules-altivec.c
|
||||||
|
+++ b/orc/orcrules-altivec.c
|
||||||
|
@@ -1513,23 +1513,22 @@ powerpc_rule_convlf (OrcCompiler *p, void *user, OrcInstruction *insn)
|
||||||
|
static void
|
||||||
|
powerpc_rule_div255w (OrcCompiler *p, void *user, OrcInstruction *insn)
|
||||||
|
{
|
||||||
|
- int src1 = ORC_SRC_ARG (p, insn, 0);
|
||||||
|
- int dest = ORC_DEST_ARG (p, insn, 0);
|
||||||
|
- int tmp = orc_compiler_get_temp_reg (p);
|
||||||
|
- int tmp2 = orc_compiler_get_temp_reg (p);
|
||||||
|
- int tmpc;
|
||||||
|
-
|
||||||
|
- tmpc = powerpc_get_constant (p, ORC_CONST_SPLAT_W, 0x0001);
|
||||||
|
-
|
||||||
|
- ORC_ASM_CODE(p," vspltish %s, 8\n", powerpc_get_regname(tmp2));
|
||||||
|
- powerpc_emit_VX(p, 0x1000034c, powerpc_regnum(tmp2), 8, 0);
|
||||||
|
-
|
||||||
|
- powerpc_emit_VX_2 (p, "vadduhm", 0x10000040, dest, src1, tmpc);
|
||||||
|
-
|
||||||
|
- powerpc_emit_VX_2 (p, "vsrh", 0x10000244, tmp, src1, tmp2);
|
||||||
|
- powerpc_emit_VX_2 (p, "vadduhm", 0x10000040, dest, dest, tmp);
|
||||||
|
+ const int src1 = ORC_SRC_ARG (p, insn, 0);
|
||||||
|
+ const int dest = ORC_DEST_ARG(p, insn, 0);
|
||||||
|
+ const int tmp = powerpc_get_constant (p, ORC_CONST_SPLAT_W, 7);
|
||||||
|
+ const int tmpc = powerpc_get_constant (p, ORC_CONST_SPLAT_W, 0x8081);
|
||||||
|
+
|
||||||
|
+ {
|
||||||
|
+ // mulhuw
|
||||||
|
+ const int perm = powerpc_get_constant_full(p, 0x10110001, 0x14150405,
|
||||||
|
+ 0x18190809, 0x1c1d0c0d);
|
||||||
|
+
|
||||||
|
+ powerpc_emit_vmuleuh (p, p->tmpreg, src1, tmpc);
|
||||||
|
+ powerpc_emit_vmulouh (p, dest, src1, tmpc);
|
||||||
|
+ powerpc_emit_vperm (p, dest, dest, p->tmpreg, perm);
|
||||||
|
+ }
|
||||||
|
|
||||||
|
- powerpc_emit_VX_2 (p, "vsrh", 0x10000244, dest, dest, tmp2);
|
||||||
|
+ powerpc_emit_VX_2 (p, "vsrh", 0x10000244, dest, dest, tmp);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
--
|
||||||
|
2.45.2
|
||||||
|
|
38
orc.spec
38
orc.spec
@ -1,12 +1,14 @@
|
|||||||
Name: orc
|
Name: orc
|
||||||
Version: 0.4.33
|
Version: 0.4.39
|
||||||
Release: 6%{?dist}
|
Release: 1%{?dist}
|
||||||
Summary: The Oil Run-time Compiler
|
Summary: The Oil Run-time Compiler
|
||||||
|
|
||||||
License: BSD
|
License: BSD-2-Clause AND BSD-3-Clause
|
||||||
URL: http://cgit.freedesktop.org/gstreamer/orc/
|
URL: http://cgit.freedesktop.org/gstreamer/orc/
|
||||||
Source0: http://gstreamer.freedesktop.org/src/orc/%{name}-%{version}.tar.xz
|
Source0: http://gstreamer.freedesktop.org/src/orc/%{name}-%{version}.tar.xz
|
||||||
|
|
||||||
|
Patch0001: 0001-powerpc-fix-div255w-which-still-used-the-inexact-sub.patch
|
||||||
|
|
||||||
BuildRequires: meson >= 0.47.0
|
BuildRequires: meson >= 0.47.0
|
||||||
BuildRequires: gcc
|
BuildRequires: gcc
|
||||||
BuildRequires: gtk-doc
|
BuildRequires: gtk-doc
|
||||||
@ -46,7 +48,7 @@ The Orc compiler, to produce optimized code.
|
|||||||
|
|
||||||
|
|
||||||
%prep
|
%prep
|
||||||
%setup -q
|
%autosetup -p1
|
||||||
|
|
||||||
%build
|
%build
|
||||||
%meson -D default_library=shared
|
%meson -D default_library=shared
|
||||||
@ -60,16 +62,16 @@ find %{buildroot}/%{_libdir} -name \*.a -delete
|
|||||||
rm -rf %{buildroot}/%{_libdir}/orc
|
rm -rf %{buildroot}/%{_libdir}/orc
|
||||||
|
|
||||||
%check
|
%check
|
||||||
%ifnarch s390 s390x ppc %{power64} %{arm} i686 aarch64
|
|
||||||
%meson_test
|
%meson_test
|
||||||
%endif
|
|
||||||
|
|
||||||
%ldconfig_scriptlets
|
%ldconfig_scriptlets
|
||||||
|
|
||||||
|
|
||||||
%files
|
%files
|
||||||
%doc COPYING README
|
%license COPYING
|
||||||
%{_libdir}/liborc-*.so.*
|
%doc README
|
||||||
|
%{_libdir}/liborc-0.4.so.0*
|
||||||
|
%{_libdir}/liborc-test-0.4.so*
|
||||||
%{_bindir}/orc-bugreport
|
%{_bindir}/orc-bugreport
|
||||||
|
|
||||||
%files doc
|
%files doc
|
||||||
@ -78,18 +80,30 @@ rm -rf %{buildroot}/%{_libdir}/orc
|
|||||||
%files devel
|
%files devel
|
||||||
%doc examples/*.c
|
%doc examples/*.c
|
||||||
%{_includedir}/%{name}-0.4/
|
%{_includedir}/%{name}-0.4/
|
||||||
%{_libdir}/liborc-*.so
|
%{_libdir}/liborc-0.4.so
|
||||||
%{_libdir}/pkgconfig/orc-0.4.pc
|
%{_libdir}/pkgconfig/orc-0.4.pc
|
||||||
%{_libdir}/pkgconfig/orc-test-0.4.pc
|
%{_libdir}/pkgconfig/orc-test-0.4.pc
|
||||||
%{_datadir}/aclocal/orc.m4
|
|
||||||
|
|
||||||
%files compiler
|
%files compiler
|
||||||
%{_bindir}/orcc
|
%{_bindir}/orcc
|
||||||
|
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
* Mon Jun 24 2024 Troy Dawson <tdawson@redhat.com> - 0.4.33-6
|
* Tue Jul 30 2024 Wim Taymans <wtaymans@redhat.com> 0.4.39-1
|
||||||
- Bump release for June 2024 mass rebuild
|
- Update to 0.4.39
|
||||||
|
- Add patch for div255w fix on ppc64le
|
||||||
|
- Resolves: RHEL-50713
|
||||||
|
|
||||||
|
* Thu Jul 18 2024 Fedora Release Engineering <releng@fedoraproject.org> - 0.4.38-3
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
|
||||||
|
|
||||||
|
* Wed Mar 06 2024 Peter Robinson <pbrobinson@fedoraproject.org> - 0.4.38-2
|
||||||
|
- Move orc-test to main package
|
||||||
|
|
||||||
|
* Tue Mar 05 2024 Peter Robinson <pbrobinson@fedoraproject.org> - 0.4.38-1
|
||||||
|
- Update to 0.4.38
|
||||||
|
- Version the library to catch bumps
|
||||||
|
- Cleanup spec, use license var
|
||||||
|
|
||||||
* Thu Jan 25 2024 Fedora Release Engineering <releng@fedoraproject.org> - 0.4.33-5
|
* Thu Jan 25 2024 Fedora Release Engineering <releng@fedoraproject.org> - 0.4.33-5
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
|
||||||
|
2
sources
2
sources
@ -1 +1 @@
|
|||||||
SHA512 (orc-0.4.33.tar.xz) = ae8adce5dd62f4054879e6f2db76ce8a7959fd32fef0fb99f73f450ff58c5237e15bca764f6780309a163e40afcf400345f12b0aed5b88dc698064e44f8eede0
|
SHA512 (orc-0.4.39.tar.xz) = 5b2167c9bb5ef4fdd5b1a683e5e7fc94bafa0afe62cb5f30e6fd2de9e80b4727b533029688e2807fc64b60af45f9263a421074bf330fb2f208b48620b0f95fd6
|
||||||
|
Loading…
Reference in New Issue
Block a user