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.31.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
|
||||
Version: 0.4.33
|
||||
Release: 6%{?dist}
|
||||
Version: 0.4.39
|
||||
Release: 1%{?dist}
|
||||
Summary: The Oil Run-time Compiler
|
||||
|
||||
License: BSD
|
||||
License: BSD-2-Clause AND BSD-3-Clause
|
||||
URL: http://cgit.freedesktop.org/gstreamer/orc/
|
||||
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: gcc
|
||||
BuildRequires: gtk-doc
|
||||
@ -46,7 +48,7 @@ The Orc compiler, to produce optimized code.
|
||||
|
||||
|
||||
%prep
|
||||
%setup -q
|
||||
%autosetup -p1
|
||||
|
||||
%build
|
||||
%meson -D default_library=shared
|
||||
@ -60,16 +62,16 @@ find %{buildroot}/%{_libdir} -name \*.a -delete
|
||||
rm -rf %{buildroot}/%{_libdir}/orc
|
||||
|
||||
%check
|
||||
%ifnarch s390 s390x ppc %{power64} %{arm} i686 aarch64
|
||||
%meson_test
|
||||
%endif
|
||||
|
||||
%ldconfig_scriptlets
|
||||
|
||||
|
||||
%files
|
||||
%doc COPYING README
|
||||
%{_libdir}/liborc-*.so.*
|
||||
%license COPYING
|
||||
%doc README
|
||||
%{_libdir}/liborc-0.4.so.0*
|
||||
%{_libdir}/liborc-test-0.4.so*
|
||||
%{_bindir}/orc-bugreport
|
||||
|
||||
%files doc
|
||||
@ -78,18 +80,30 @@ rm -rf %{buildroot}/%{_libdir}/orc
|
||||
%files devel
|
||||
%doc examples/*.c
|
||||
%{_includedir}/%{name}-0.4/
|
||||
%{_libdir}/liborc-*.so
|
||||
%{_libdir}/liborc-0.4.so
|
||||
%{_libdir}/pkgconfig/orc-0.4.pc
|
||||
%{_libdir}/pkgconfig/orc-test-0.4.pc
|
||||
%{_datadir}/aclocal/orc.m4
|
||||
|
||||
%files compiler
|
||||
%{_bindir}/orcc
|
||||
|
||||
|
||||
%changelog
|
||||
* Mon Jun 24 2024 Troy Dawson <tdawson@redhat.com> - 0.4.33-6
|
||||
- Bump release for June 2024 mass rebuild
|
||||
* Tue Jul 30 2024 Wim Taymans <wtaymans@redhat.com> 0.4.39-1
|
||||
- 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
|
||||
- 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