Skip to content

Commit

Permalink
Upgrade: orc version to 0.4.39 (#11485)
Browse files Browse the repository at this point in the history
  • Loading branch information
jykanase authored Feb 6, 2025
1 parent ee8abe0 commit 3525603
Show file tree
Hide file tree
Showing 4 changed files with 145 additions and 23 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
From 508280f7ac31c7d0ab2eaed33b26e6df59bb4dd9 Mon Sep 17 00:00:00 2001
From: "L. E. Segovia" <[email protected]>
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

4 changes: 2 additions & 2 deletions SPECS-EXTENDED/orc/orc.signatures.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"Signatures": {
"orc-0.4.31.tar.xz": "a0ab5f10a6a9ae7c3a6b4218246564c3bf00d657cbdf587e6d34ec3ef0616075"
"orc-0.4.39.tar.xz": "33ed2387f49b825fa1b9c3b0072e05f259141b895474ad085ae51143d3040cc0"
}
}
}
94 changes: 75 additions & 19 deletions SPECS-EXTENDED/orc/orc.spec
Original file line number Diff line number Diff line change
@@ -1,17 +1,19 @@
Vendor: Microsoft Corporation
Distribution: Azure Linux
Name: orc
Version: 0.4.31
Release: 4%{?dist}
Version: 0.4.39
Release: 2%{?dist}
Summary: The Oil Run-time Compiler

License: BSD
License: BSD-2-Clause AND BSD-3-Clause
Vendor: Microsoft Corporation
Distribution: Azure Linux
URL: http://cgit.freedesktop.org/gstreamer/orc/
Source0: http://gstreamer.freedesktop.org/src/orc/%{name}-%{version}.tar.xz
Source0: https://gstreamer.freedesktop.org/src/orc/%{name}-%{version}.tar.xz

Patch0001: 0001-powerpc-fix-div255w-which-still-used-the-inexact-sub.patch

BuildRequires: %{_bindir}/xsltproc
BuildRequires: meson >= 0.47.0
BuildRequires: gcc
BuildRequires: gtk-doc

%description
Orc is a library and set of tools for compiling and executing
Expand All @@ -20,6 +22,14 @@ is a generic assembly language that represents many of the features
available in SIMD architectures, including saturated addition and
subtraction, and many arithmetic operations.

%package doc
Summary: Documentation for Orc
Requires: %{name} = %{version}-%{release}
BuildArch: noarch

%description doc
Documentation for Orc.

%package devel
Summary: Development files and libraries for Orc
Requires: %{name} = %{version}-%{release}
Expand All @@ -40,10 +50,10 @@ The Orc compiler, to produce optimized code.


%prep
%setup -q
%autosetup -p1

%build
%meson -D default_library=shared -Dgtk_doc=disabled
%meson -D default_library=shared
%meson_build

%install
Expand All @@ -54,39 +64,85 @@ 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
%license COPYING
%doc README
%{_libdir}/liborc-*.so.*
%{_libdir}/liborc-0.4.so.0*
%{_libdir}/liborc-test-0.4.so*
%{_bindir}/orc-bugreport

%files doc
%doc %{_datadir}/gtk-doc/html/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 Mar 21 2022 Pawel Winogrodzki <[email protected]> - 0.4.31-4
- Adding BR on '%%{_bindir}/xsltproc'.
- Disabled gtk doc generation to remove network dependency during build-time.
* Tue Dec 17 2024 Jyoti kanase <[email protected]> - 0.4.39-2
- Initial Azure Linux import from Fedora 41 (license: MIT).
- License verified.

* Fri Oct 15 2021 Pawel Winogrodzki <[email protected]> - 0.4.31-3
- Initial CBL-Mariner import from Fedora 32 (license: MIT).
* Tue Jul 30 2024 Wim Taymans <[email protected]> 0.4.39-1
- Update to 0.4.39
- Add patch for div255w fix on ppc64le

* Thu Jul 18 2024 Fedora Release Engineering <[email protected]> - 0.4.38-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild

* Wed Mar 06 2024 Peter Robinson <[email protected]> - 0.4.38-2
- Move orc-test to main package

* Tue Mar 05 2024 Peter Robinson <[email protected]> - 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 <[email protected]> - 0.4.33-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild

* Sun Jan 21 2024 Fedora Release Engineering <[email protected]> - 0.4.33-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild

* Thu Jul 20 2023 Fedora Release Engineering <[email protected]> - 0.4.33-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild

* Thu Jan 19 2023 Fedora Release Engineering <[email protected]> - 0.4.33-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild

* Fri Nov 04 2022 Wim Taymans <[email protected]> 0.4.33-1
- Update to 0.4.33

* Fri Jul 22 2022 Fedora Release Engineering <[email protected]> - 0.4.31-8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild

* Thu Jan 20 2022 Fedora Release Engineering <[email protected]> - 0.4.31-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild

* Wed Aug 18 2021 Vít Ondruch <[email protected]> - 0.4.31-6
- Fix ppc64le segfault when used via libvips.
Resolves: rhbz#1917540

* Thu Jul 22 2021 Fedora Release Engineering <[email protected]> - 0.4.31-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild

* Tue Jan 26 2021 Fedora Release Engineering <[email protected]> - 0.4.31-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild

* Tue Jul 28 2020 Fedora Release Engineering <[email protected]> - 0.4.31-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild

* Wed Jan 29 2020 Fedora Release Engineering <[email protected]> - 0.4.31-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
Expand Down
4 changes: 2 additions & 2 deletions cgmanifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -15493,8 +15493,8 @@
"type": "other",
"other": {
"name": "orc",
"version": "0.4.31",
"downloadUrl": "http://gstreamer.freedesktop.org/src/orc/orc-0.4.31.tar.xz"
"version": "0.4.39",
"downloadUrl": "https://gstreamer.freedesktop.org/src/orc/orc-0.4.39.tar.xz"
}
}
},
Expand Down

0 comments on commit 3525603

Please sign in to comment.