From e157b7698fc6dbac54abe9175e9612e0c439c200 Mon Sep 17 00:00:00 2001 From: =?utf8?q?S=C3=A9bastien=20Villemot?= Date: Sat, 17 Feb 2018 20:30:10 +0000 Subject: [PATCH] Import ffcall_2.1-1.debian.tar.xz [dgit import tarball ffcall 2.1-1 ffcall_2.1-1.debian.tar.xz] --- changelog | 264 ++ compat | 1 + control | 113 + copyright | 129 + libavcall1.install | 1 + libavcall1.symbols | 15 + libcallback1.install | 1 + libcallback1.symbols | 49 + libffcall-dev.docs | 8 + libffcall-dev.install | 14 + libffcall1b.install | 1 + libffcall1b.symbols | 62 + libtrampoline1.install | 1 + libtrampoline1.symbols | 7 + patches/mips-fpxx.patch | 5104 ++++++++++++++++++++++++++++++++++++++ patches/series | 1 + rules | 8 + source/format | 1 + upstream/signing-key.asc | 53 + watch | 2 + 20 files changed, 5835 insertions(+) create mode 100644 changelog create mode 100644 compat create mode 100644 control create mode 100644 copyright create mode 100644 libavcall1.install create mode 100644 libavcall1.symbols create mode 100644 libcallback1.install create mode 100644 libcallback1.symbols create mode 100644 libffcall-dev.docs create mode 100644 libffcall-dev.install create mode 100644 libffcall1b.install create mode 100644 libffcall1b.symbols create mode 100644 libtrampoline1.install create mode 100644 libtrampoline1.symbols create mode 100644 patches/mips-fpxx.patch create mode 100644 patches/series create mode 100755 rules create mode 100644 source/format create mode 100644 upstream/signing-key.asc create mode 100644 watch diff --git a/changelog b/changelog new file mode 100644 index 0000000..908861e --- /dev/null +++ b/changelog @@ -0,0 +1,264 @@ +ffcall (2.1-1) unstable; urgency=medium + + * New upstream release. + * Update Vcs-* fields for move to salsa. + * Drop fix-powerpcspe.patch, outdated, no longer works. + * Drop trampoline-mips64el.patch, applied upstream. + * No longer disable PIE on armhf, not needed anymore. + * Bump to debhelper compat level 11. + * Bump Standards-Version to 4.1.3. + * d/copyright: reflect upstream changes. + + -- Sébastien Villemot Sat, 17 Feb 2018 21:30:10 +0100 + +ffcall (2.0-2) unstable; urgency=medium + + * Fix FTBFS on armhf by disabling PIE (for vacall test). + * trampoline-mips64el.patch: new patch, fixes FTBFS on mips64el. + * Fix symbols file on sparc64 (callback_get_receiver not present there). + * mips-fpxx.patch: regenerate avcall assembly files using -fno-tree-dce. + This fixes test failures on mips and mipsel. + + -- Sébastien Villemot Sun, 26 Nov 2017 18:23:10 +0100 + +ffcall (2.0-1) experimental; urgency=medium + + * New upstream version 2.0 + * Rewrite debian/copyright using machine-readable format 1.0. + * Move under Debian Common Lisp Team maintenance. + Thanks to Christoph Egger for his past work on this package. + * Verify PGP signature of upstream tarball. + * Drop Fix_MIPS_N32_test.patch, no longer needed. + * Bump to debhelper compat level 10. + * Make testsuite failures fatal at build time. + * Reorganize binary packages: + - libffcall1-dev renamed to libffcall-dev (with a transitional package) + - libffcall1a renamed to libffcall1b: now contains the new libffcall shared + library, which combines avcall and callback + - new libavcall1 and libcallback1 packages, for providing the separate + libraries, which are now deprecated + - new shared library package libtrampoline1 + * Ship all docs under /usr/share/doc/libffcall-dev. + * Mark all binary packages as M-A same. + * Bump Standards-Version to 4.1.1. + + -- Sébastien Villemot Thu, 09 Nov 2017 16:08:34 +0100 + +ffcall (1.13-0.2) unstable; urgency=low + + * Non-maintainer upload. + * Rename libffcall1 to libffcall1a because ABI was broken in 1.13-0.1. + (Closes: #874068) + * Update symbols file. This should fix FTBFS on hurd-i386, powerpcspe and + sparc64. + + -- Sébastien Villemot Sat, 02 Sep 2017 23:43:43 +0200 + +ffcall (1.13-0.1) unstable; urgency=low + + * Non-maintainer upload. + * Thanks to Frédéric Bonnard for crafting a first version of this upload. + (Closes: #868021) + * New upstream version 1.13. (Closes: #806992) + + better ppc64el support (Closes: #871567) + + better arm64 support (Closes: #758379) + + fixes testsuite failure on any-amd64 (Closes: #451356) + + executable stack no longer needed (Closes: #445895) + * d/copyright: ffcall has been relicensed to GPL-2+ + * Drop patches no longer needed: + + 0001-fix-callback-on-x86_64.patch + + ppc64el-elfv2.patch + * New mips-frpxx.patch, needed for compiling on mips and mipsel. + * Tell aclocal to look into gnulib-m4 (because it is now patched). + Also effectively run libtoolize. (Closes: #727848) + * No longer mark libffcall1-dev as Multi-Arch: same. (Closes: #824725) + * Fix URL in debian/watch. + * Fix Vcs-Browser URL. + * Drop obsolete README.source. + + -- Sébastien Villemot Sat, 02 Sep 2017 16:42:44 +0200 + +ffcall (1.10+cvs20100619-4) unstable; urgency=medium + + [ Fernando Seiti Furusato ] + * Replaced .odp section, unexistent on ELFv2 by .localentry for the + entry point within *.s files, which fixes ftbfs on + ppc64el. Additionally made some other modifications for endianness + definition for ppc64 into header files (Closes: #768236). + + [ Christoph Egger ] + * Import path by James Cowgill to fix MIPS n32 (Closes: #782590) + * use autoreconf dh addon including relibtoolizing + * Update VCS URLs + * Update compat version + * Implement compat 9 + multiarch + + -- Christoph Egger Wed, 18 May 2016 17:11:00 +0200 + +ffcall (1.10+cvs20100619-3) unstable; urgency=medium + + * Update config.* during build (Closes: #727848) + * Add patch by Roland Stigge to add support for powerpcspe (Closes: + #731647) + * Add patch by Andrey Kutejko to save needed register content (Closes: + #636849) + + -- Christoph Egger Tue, 24 Dec 2013 12:55:04 +0100 + +ffcall (1.10+cvs20100619-2) unstable; urgency=low + + * Ship to unstable + + -- Christoph Egger Sat, 26 Jun 2010 15:29:30 +0200 + +ffcall (1.10+cvs20100619-1) experimental; urgency=low + + * New Upstream CVS snapshot (LP: #274951) (Closes: #504515) + * Adding support for armel + * Upload to experimental for now + + -- Christoph Egger Sat, 19 Jun 2010 17:43:53 +0200 + +ffcall (1.10+2.41-4) unstable; urgency=low + + * Adopt package + * Import into git, set relevant headers + * set Homepage: field + * Update for Policy 3.8.4 + * Jump to debhelper 7 (non-dh for now) + * Cleanup packaging + + -- Christoph Egger Fri, 11 Jun 2010 18:32:21 +0200 + +ffcall (1.10+2.41-3) unstable; urgency=low + + * Uhm. It helps if I regenerate the configure scripts too. + + -- Hubert Chan Tue, 21 Nov 2006 15:09:04 -0500 + +ffcall (1.10+2.41-2) unstable; urgency=low + + * Patch ffcall/m4/general.m4 to support mipsel. (cross fingers) + + -- Hubert Chan Thu, 16 Nov 2006 17:37:32 -0500 + +ffcall (1.10+2.41-1) unstable; urgency=low + + * Update from clisp-2.41, fixing powerpc build failure. + * New maintainer. (Thanks to doko for his work.) + * Bump standards version to 3.7.2. (no changes) + * Sync copyright info. + + -- Hubert Chan Mon, 13 Nov 2006 15:03:56 -0500 + +ffcall (1.10-3) unstable; urgency=low + + * Update libtool scripts to build on (GNU/k*BSD) (Petr Salinger). + Closes: #380118. + + -- Matthias Klose Mon, 14 Aug 2006 01:34:55 +0200 + +ffcall (1.10-2) unstable; urgency=low + + * Add support for mipsel (Thiemo Seufer). Closes: #189992. + + -- Matthias Klose Mon, 28 Mar 2005 14:57:56 +0200 + +ffcall (1.10-1) unstable; urgency=low + + * New upstream version. + * Apply patch from arm + (http://savannah.gnu.org/bugs/?func=detailitem&item_id=9468). + + -- Matthias Klose Sat, 3 Jul 2004 06:27:52 +0200 + +ffcall (1.9-1) unstable; urgency=low + + * New upstream version (amd64 support added). + + -- Matthias Klose Tue, 27 Jan 2004 07:58:04 +0100 + +ffcall (1.8.20030831-1) unstable; urgency=low + + * New maintainer (closes: #130293). + * New upstream version taken from the clisp-2003-08-31 snapshot. + - Builds on ia64 (closes: #110080). + * mips: Don't rely on obsolete header file (closes: #189991). + + -- Matthias Klose Sun, 31 Aug 2003 21:04:43 +0200 + +ffcall (1.8-5) unstable; urgency=low + + * Patch to fix build scripts on newer Alphas. + Thanks to Christopher Chimes. (Closes: #153959) + * Acknowledging NMUs below: + (Closes: #104638) + (Closes: #130213) + (Closes: #129141) + Thank you for the help. + + -- Matthew Danish Fri, 9 Aug 2002 15:43:03 -0400 + +ffcall (1.8-4.2) unstable; urgency=low + + * NMU + * Fix hppa compile failures. Closes: #104638 + * Do a better job on detecting arm. Closes: #130213. + + -- LaMont Jones Thu, 4 Apr 2002 22:14:46 -0700 + +ffcall (1.8-4.1) unstable; urgency=low + + * Non-maintainer upload + * s390 ffcall patches applied. (Closes: #129141) + + -- Gerhard Tonn Mon, 21 Jan 2002 07:46:15 +0100 + +ffcall (1.8-4) unstable; urgency=low + + * Added .la files into -dev, added some man pages and docs + + -- Matthew Danish Sat, 28 Apr 2001 19:32:27 -0400 + +ffcall (1.8-3) unstable; urgency=low + + * Updated Standards Version + + -- Matthew Danish Tue, 24 Apr 2001 13:44:14 -0400 + +ffcall (1.8-2) unstable; urgency=low + + * Fixed some lintian warnings + + -- Matthew Danish Mon, 26 Mar 2001 00:35:00 -0500 + +ffcall (1.8-1) unstable; urgency=low + + * Updated Standards-Version + + -- Matthew Danish Sun, 25 Mar 2001 23:17:29 -0500 + +ffcall (1.8-0) unstable; urgency=low + + * NMU. + * New upstream release + + -- Matthias Klose Sun, 25 Feb 2001 07:37:32 +0100 + +ffcall (1.7-2) unstable; urgency=low + + * Bugfixes in package + + -- Matthew Danish Fri, 16 Feb 2001 20:02:41 -0500 + +ffcall (1.7-1) unstable; urgency=low + + * New upstream release + + -- Matthew Danish Mon, 8 Jan 2001 15:53:12 -0500 + +ffcall (1.6-1) unstable; urgency=low + + * Initial Release. + + -- Matthew Danish Sat, 6 Jan 2001 23:29:53 -0500 diff --git a/compat b/compat new file mode 100644 index 0000000..b4de394 --- /dev/null +++ b/compat @@ -0,0 +1 @@ +11 diff --git a/control b/control new file mode 100644 index 0000000..3a16c6b --- /dev/null +++ b/control @@ -0,0 +1,113 @@ +Source: ffcall +Section: libs +Priority: optional +Maintainer: Debian Common Lisp Team +Uploaders: Sébastien Villemot +Build-Depends: debhelper (>= 11) +Standards-Version: 4.1.3 +Vcs-Git: https://salsa.debian.org/common-lisp-team/ffcall.git +Vcs-Browser: https://salsa.debian.org/common-lisp-team/ffcall +Homepage: https://savannah.gnu.org/projects/libffcall/ + +Package: libffcall-dev +Architecture: any +Multi-Arch: same +Section: libdevel +Depends: libffcall1b (= ${binary:Version}), + libavcall1 (= ${binary:Version}), + libcallback1 (= ${binary:Version}), + libtrampoline1 (= ${binary:Version}), + ${misc:Depends} +Breaks: libffcall1-dev (<< 2.0) +Replaces: libffcall1-dev (<< 2.0) +Description: foreign function call libraries - development files + ffcall is a collection of libraries which can be used to build + foreign function call interfaces in embedded interpreters. + . + The main libffcall library consists of two parts: + . + avcall - calling C functions with variable arguments + . + callback - closures with variable arguments as first-class C functions + . + The avcall and callback modules are also provided as separate + libraries, but those are deprecated and are installed only for backward + compatibility. + . + Two other libraries are provided: + . + vacall - C functions accepting variable argument prototypes + (non-reentrant variant of part of 'callback') + . + trampoline - closures as first-class C functions + (non-reentrant variant of part of 'callback') + . + This package also includes documentation, in HTML format and as manual pages. + +Package: libffcall1-dev +Architecture: all +Section: oldlibs +Depends: libffcall-dev, + ${misc:Depends} +Description: foreign function call libraries - transitional package + This transitional package can be safely removed once libffcall-dev has been + installed. + +Package: libffcall1b +Architecture: any +Multi-Arch: same +Depends: ${shlibs:Depends}, + ${misc:Depends} +Description: foreign function call libraries - main shared library + ffcall is a collection of libraries which can be used to build + foreign function call interfaces in embedded interpreters. + . + This package installs a shared version of the main libffcall library, + which consists of two parts: + . + avcall - calling C functions with variable arguments + . + callback - closures with variable arguments as first-class C functions + +Package: libavcall1 +Architecture: any +Multi-Arch: same +Depends: ${shlibs:Depends}, + ${misc:Depends} +Description: foreign function call libraries - calling C functions with variable arguments + ffcall is a collection of libraries which can be used to build + foreign function call interfaces in embedded interpreters. + . + This package installs a shared library version of the avcall library, which + can be used for calling C functions with variable arguments. + . + The use of this shared library is deprecated. The main libffcall library, + which embeds avcall, should be preferred. + +Package: libcallback1 +Architecture: any +Multi-Arch: same +Depends: ${shlibs:Depends}, + ${misc:Depends} +Description: foreign function call libraries - closures with variable arguments in C + ffcall is a collection of libraries which can be used to build + foreign function call interfaces in embedded interpreters. + . + This package installs a shared library version of the callback library, which + provides closures with variable arguments as first-class C functions. + . + The use of this shared library is deprecated. The main libffcall library, + which embeds callback, should be preferred. + +Package: libtrampoline1 +Architecture: any +Multi-Arch: same +Depends: ${shlibs:Depends}, + ${misc:Depends} +Description: foreign function call libraries - closures in C (non-reentrant variant) + ffcall is a collection of libraries which can be used to build + foreign function call interfaces in embedded interpreters. + . + This package installs a shared library version of the trampoline library, + which implements closures as first-class C functions. This is a non-reentrant + variant of part of the 'callback' library. diff --git a/copyright b/copyright new file mode 100644 index 0000000..4d124c5 --- /dev/null +++ b/copyright @@ -0,0 +1,129 @@ +Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ +Upstream-Name: libffcall +Upstream-Contact: Bruno Haible +Source: https://savannah.gnu.org/projects/libffcall/ + +Files: * +Copyright: 1993-1995 Bill Triggs (original avcall) + 1995-2018 Bruno Haible (everything) + 1997 Jörg Höhle (m68k AmigaOS support) + 2000 Adam Fedor (PowerPC MacOS support) + 2001-2012 Sam Steingold (build infrastructure) + 2001-2002 Gerhard Tonn (s390 support) + 2004 Paul Guyot (PowerPC MacOS support) + 2005 Thiemo Seufer (MIPS EL support) + 2009 Max Lapan (ARM EL support) + 2010 Valery Ushakov (SPARC64 improvements) + 1986-2017, Free Software Foundation, Inc. +License: GPL-2+ + +Files: callback/callback.3 + callback/trampoline_r/trampoline_r.3 + trampoline/trampoline.3 + vacall/vacall.3 +Copyright: 1995-2017, Bruno Haible +License: GFDL-NIV-1.2+ or GPL-2+ + +Files: gnulib-lib/* +Copyright: 1994-2018, Free Software Foundation, Inc. +License: GPL-3+ + +Files: gnulib-m4/* + m4/endianness.m4 + m4/ltoptions.m4 + m4/ltversion.m4 + m4/libtool.m4 + m4/ltsugar.m4 + m4/lt~obsolete.m4 +Copyright: 1989, 1991, 1996-2018, Free Software Foundation, Inc. +License: permissive + This file is free software; the Free Software Foundation + gives unlimited permission to copy and/or distribute it, + with or without modifications, as long as this notice is preserved. + +Files: gnulib-m4/gnulib-cache.m4 + gnulib-m4/gnulib-comp.m4 + gnulib-m4/onceonly.m4 +Copyright: 1994-2017, Free Software Foundation, Inc. +License: GPL-3+ with Autoconf exception + +Files: debian/* +Copyright: 2001-2002 Matthew Danish + 2003-2006 Matthias Klose + 2006 Hubert Chan + 2010-2016 Christoph Egger + 2017-2018 Sébastien Villemot +License: GPL-2+ + +License: GPL-2+ + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License as + published by the Free Software Foundation; either version 2, + or (at your option) any later version. + . + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + . + You should have received a copy of the GNU General Public License along + with this program. If not, see . + . + On Debian systems, the complete text of the GNU General Public + License, version 2, can be found in the file + `/usr/share/common-licenses/GPL-2'. + +License: GPL-3+ + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + . + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + . + You should have received a copy of the GNU General Public License + along with this program. If not, see . + . + On Debian systems, the complete text of the GNU General Public + License, version 3, can be found in the file + `/usr/share/common-licenses/GPL-3'. + +License: GPL-3+ with Autoconf exception + This program is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the + Free Software Foundation, either version 3 of the License, or (at your + option) any later version. + . + This program is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General + Public License for more details. + . + You should have received a copy of the GNU General Public License along + with this program. If not, see . + . + On Debian systems, the complete text of the GNU General Public + License, version 3, can be found in the file + `/usr/share/common-licenses/GPL-3'. + . + As a special exception to the GNU General Public License, + this file may be distributed as part of a program + that contains a configuration script generated by Autoconf, under + the same distribution terms as the rest of that program. + +License: GFDL-NIV-1.2+ + This manual is covered by the GNU FDL. Permission is granted to copy, + distribute and/or modify this document under the terms of the + GNU Free Documentation License (FDL), either version 1.2 of the + License, or (at your option) any later version published by the + Free Software Foundation (FSF); with no Invariant Sections, with no + Front-Cover Text, and with no Back-Cover Texts + . + A copy of the license is at . + . + On Debian systems, the complete text of the GNU Free Documentation + License, version 1.2, can be found in the file + `/usr/share/common-licenses/GFDL-1.2'. diff --git a/libavcall1.install b/libavcall1.install new file mode 100644 index 0000000..6fae34f --- /dev/null +++ b/libavcall1.install @@ -0,0 +1 @@ +usr/lib/*/libavcall.so.* diff --git a/libavcall1.symbols b/libavcall1.symbols new file mode 100644 index 0000000..10c6401 --- /dev/null +++ b/libavcall1.symbols @@ -0,0 +1,15 @@ +libavcall.so.1 libavcall1 #MINVER# + __builtin_avcall@Base 2.0 + avcall_arg_double@Base 2.0 + avcall_arg_float@Base 2.0 + avcall_arg_long@Base 2.0 + avcall_arg_longlong@Base 2.0 + avcall_arg_ptr@Base 2.0 + avcall_arg_struct@Base 2.0 + avcall_arg_ulong@Base 2.0 + avcall_arg_ulonglong@Base 2.0 + avcall_call@Base 2.0 + avcall_overflown@Base 2.0 + avcall_start@Base 2.0 + avcall_start_struct@Base 2.0 + avcall_structcpy@Base 2.0 diff --git a/libcallback1.install b/libcallback1.install new file mode 100644 index 0000000..96117cd --- /dev/null +++ b/libcallback1.install @@ -0,0 +1 @@ +usr/lib/*/libcallback.so.* diff --git a/libcallback1.symbols b/libcallback1.symbols new file mode 100644 index 0000000..29f2c19 --- /dev/null +++ b/libcallback1.symbols @@ -0,0 +1,49 @@ +libcallback.so.1 libcallback1 #MINVER# + alloc_callback@Base 2.0 + callback_address@Base 2.0 + callback_arg_char@Base 2.0 + callback_arg_double@Base 2.0 + callback_arg_float@Base 2.0 + callback_arg_int@Base 2.0 + callback_arg_long@Base 2.0 + callback_arg_longlong@Base 2.0 + callback_arg_ptr@Base 2.0 + callback_arg_schar@Base 2.0 + callback_arg_short@Base 2.0 + callback_arg_struct@Base 2.0 + callback_arg_uchar@Base 2.0 + callback_arg_uint@Base 2.0 + callback_arg_ulong@Base 2.0 + callback_arg_ulonglong@Base 2.0 + callback_arg_ushort@Base 2.0 + callback_data@Base 2.0 + (arch=!sparc64)callback_get_receiver@Base 2.0 + (arch=armhf sparc64)callback_receiver@Base 2.0 + callback_return_char@Base 2.0 + callback_return_double@Base 2.0 + callback_return_float@Base 2.0 + callback_return_int@Base 2.0 + callback_return_long@Base 2.0 + callback_return_longlong@Base 2.0 + callback_return_ptr@Base 2.0 + callback_return_schar@Base 2.0 + callback_return_short@Base 2.0 + callback_return_struct@Base 2.0 + callback_return_uchar@Base 2.0 + callback_return_uint@Base 2.0 + callback_return_ulong@Base 2.0 + callback_return_ulonglong@Base 2.0 + callback_return_ushort@Base 2.0 + callback_return_void@Base 2.0 + callback_start@Base 2.0 + callback_start_struct@Base 2.0 + callback_structcpy@Base 2.0 + callback_trampoline_address@Base 2.0 + callback_trampoline_alloc@Base 2.0 + callback_trampoline_data0@Base 2.0 + callback_trampoline_data1@Base 2.0 + callback_trampoline_free@Base 2.0 + callback_trampoline_is@Base 2.0 + free_callback@Base 2.0 + is_callback@Base 2.0 + trampoline_r_data0@Base 2.0 diff --git a/libffcall-dev.docs b/libffcall-dev.docs new file mode 100644 index 0000000..5f74ca1 --- /dev/null +++ b/libffcall-dev.docs @@ -0,0 +1,8 @@ +NEWS +README +PLATFORMS +debian/tmp/usr/share/html/vacall.html +debian/tmp/usr/share/html/callback.html +debian/tmp/usr/share/html/trampoline.html +debian/tmp/usr/share/html/avcall.html + diff --git a/libffcall-dev.install b/libffcall-dev.install new file mode 100644 index 0000000..b03cc5f --- /dev/null +++ b/libffcall-dev.install @@ -0,0 +1,14 @@ +usr/include/ +usr/lib/*/libffcall.so +usr/lib/*/libffcall.a +usr/lib/*/libcallback.so +usr/lib/*/libcallback.a +usr/lib/*/libavcall.so +usr/lib/*/libavcall.a +usr/lib/*/libtrampoline.so +usr/lib/*/libtrampoline.a +usr/lib/*/libvacall.a +usr/share/man/man3/vacall.3 +usr/share/man/man3/callback.3 +usr/share/man/man3/avcall.3 +usr/share/man/man3/trampoline.3 diff --git a/libffcall1b.install b/libffcall1b.install new file mode 100644 index 0000000..b07ab5c --- /dev/null +++ b/libffcall1b.install @@ -0,0 +1 @@ +usr/lib/*/libffcall.so.* diff --git a/libffcall1b.symbols b/libffcall1b.symbols new file mode 100644 index 0000000..96fbfe2 --- /dev/null +++ b/libffcall1b.symbols @@ -0,0 +1,62 @@ +libffcall.so.0 libffcall1b #MINVER# + alloc_callback@Base 2.0 + avcall_arg_double@Base 2.0 + avcall_arg_float@Base 2.0 + avcall_arg_long@Base 2.0 + avcall_arg_longlong@Base 2.0 + avcall_arg_ptr@Base 2.0 + avcall_arg_struct@Base 2.0 + avcall_arg_ulong@Base 2.0 + avcall_arg_ulonglong@Base 2.0 + avcall_call@Base 2.0 + avcall_overflown@Base 2.0 + avcall_start@Base 2.0 + avcall_start_struct@Base 2.0 + avcall_structcpy@Base 2.0 + callback_address@Base 2.0 + callback_arg_char@Base 2.0 + callback_arg_double@Base 2.0 + callback_arg_float@Base 2.0 + callback_arg_int@Base 2.0 + callback_arg_long@Base 2.0 + callback_arg_longlong@Base 2.0 + callback_arg_ptr@Base 2.0 + callback_arg_schar@Base 2.0 + callback_arg_short@Base 2.0 + callback_arg_struct@Base 2.0 + callback_arg_uchar@Base 2.0 + callback_arg_uint@Base 2.0 + callback_arg_ulong@Base 2.0 + callback_arg_ulonglong@Base 2.0 + callback_arg_ushort@Base 2.0 + callback_data@Base 2.0 + (arch=!sparc64)callback_get_receiver@Base 2.0 + (arch=armhf sparc64)callback_receiver@Base 2.0 + callback_return_char@Base 2.0 + callback_return_double@Base 2.0 + callback_return_float@Base 2.0 + callback_return_int@Base 2.0 + callback_return_long@Base 2.0 + callback_return_longlong@Base 2.0 + callback_return_ptr@Base 2.0 + callback_return_schar@Base 2.0 + callback_return_short@Base 2.0 + callback_return_struct@Base 2.0 + callback_return_uchar@Base 2.0 + callback_return_uint@Base 2.0 + callback_return_ulong@Base 2.0 + callback_return_ulonglong@Base 2.0 + callback_return_ushort@Base 2.0 + callback_return_void@Base 2.0 + callback_start@Base 2.0 + callback_start_struct@Base 2.0 + callback_structcpy@Base 2.0 + callback_trampoline_address@Base 2.0 + callback_trampoline_alloc@Base 2.0 + callback_trampoline_data0@Base 2.0 + callback_trampoline_data1@Base 2.0 + callback_trampoline_free@Base 2.0 + callback_trampoline_is@Base 2.0 + ffcall_get_version@Base 2.0 + free_callback@Base 2.0 + is_callback@Base 2.0 diff --git a/libtrampoline1.install b/libtrampoline1.install new file mode 100644 index 0000000..ca56810 --- /dev/null +++ b/libtrampoline1.install @@ -0,0 +1 @@ +usr/lib/*/libtrampoline.so.* diff --git a/libtrampoline1.symbols b/libtrampoline1.symbols new file mode 100644 index 0000000..687ac47 --- /dev/null +++ b/libtrampoline1.symbols @@ -0,0 +1,7 @@ +libtrampoline.so.1 libtrampoline1 #MINVER# + alloc_trampoline@Base 2.0 + free_trampoline@Base 2.0 + is_trampoline@Base 2.0 + trampoline_address@Base 2.0 + trampoline_data@Base 2.0 + trampoline_variable@Base 2.0 diff --git a/patches/mips-fpxx.patch b/patches/mips-fpxx.patch new file mode 100644 index 0000000..40048dd --- /dev/null +++ b/patches/mips-fpxx.patch @@ -0,0 +1,5104 @@ +Description: Update assembly code for new ABI on mips and mipsel + There was a change in the ABI of mips and mipsel since gcc-5 (see #825342), that + makes ffcall FTBFS on those arches, because it uses odd-numbered floating point + registers, which is no longer possible with the new ABI. + . + This patch regenerates the assembly files with the new ABI. Note that the flag + -fno-tree-dce was added for generating the avcall files, because otherwise the + allocation on the stack with __builtin_alloca is optimized out. + . + On mips, the new assembly files have been created with the following commands: + . + rm avcall/avcall-mipseb* vacall/vacall-mipseb* callback/vacall_r/vacall-mipseb* + make -C avcall -f Makefile.devel avcall-mipseb-linux.s avcall-mipseb-macro.S + make -C vacall -f Makefile.devel vacall-mipseb-linux.s vacall-mipseb-macro.S + make -C callback/vacall_r -f Makefile.devel vacall-mipseb-linux.s vacall-mipseb-macro.S + . + On mipsel, the commands are the same after substituting mipseb by mipsel. +Author: Sébastien Villemot +Forwarded: https://savannah.gnu.org/bugs/index.php?52510 +Last-Update: 2017-11-26 +--- +This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ +--- a/avcall/Makefile.devel ++++ b/avcall/Makefile.devel +@@ -48,13 +48,13 @@ avcall-m68k.motorola.S : avcall-m68k-lin + + + avcall-mipseb-linux.s : avcall-mips.c avcall-internal.h avcall.h avcall-alist.h $(THISFILE) +- $(CROSS_TOOL) mips64-linux gcc -V 4.0.2 -mabi=32 -meb $(GCCFLAGS) -D__mips__ -S avcall-mips.c -o avcall-mipseb-linux.s ++ mips-linux-gnu-gcc $(GCCFLAGS) -fno-tree-dce -D__mips__ -S avcall-mips.c -o avcall-mipseb-linux.s + + avcall-mipseb-macro.S : avcall-mipseb-linux.s ../common/asm-mips.sh $(THISFILE) + (echo '#include "asm-mips.h"' ; ../common/asm-mips.sh < avcall-mipseb-linux.s) > avcall-mipseb-macro.S + + avcall-mipsel-linux.s : avcall-mips.c avcall-internal.h avcall.h avcall-alist.h $(THISFILE) +- $(CROSS_TOOL) mips64-linux gcc -V 4.0.2 -mabi=32 -mel $(GCCFLAGS) -D__mips__ -S avcall-mips.c -o avcall-mipsel-linux.s ++ mipsel-linux-gnu-gcc $(GCCFLAGS) -fno-tree-dce -D__mips__ -S avcall-mips.c -o avcall-mipsel-linux.s + + avcall-mipsel-macro.S : avcall-mipsel-linux.s ../common/asm-mips.sh $(THISFILE) + (echo '#include "asm-mips.h"' ; ../common/asm-mips.sh < avcall-mipsel-linux.s) > avcall-mipsel-macro.S +--- a/callback/vacall_r/Makefile.devel ++++ b/callback/vacall_r/Makefile.devel +@@ -49,13 +49,13 @@ vacall-m68k.motorola.S : vacall-m68k-lin + + vacall-mipseb-linux.s : ../../vacall/vacall-mips.c ../../vacall/vacall-internal.h vacall_r.h $(THISFILE) + # For references to symbols: -mno-explicit-relocs ensures a syntax that the IRIX assembler understands. +- $(CROSS_TOOL) mips64-linux gcc -V 4.0.2 -mabi=32 -meb -mno-explicit-relocs $(GCCFLAGS) -D__mips__ -S ../../vacall/vacall-mips.c -I../../vacall -I. -o vacall-mipseb-linux.s ++ mips-linux-gnu-gcc -mno-explicit-relocs $(GCCFLAGS) -D__mips__ -S ../../vacall/vacall-mips.c -I../../vacall -I. -o vacall-mipseb-linux.s + + vacall-mipseb-macro.S : vacall-mipseb-linux.s ../../common/asm-mips.sh $(THISFILE) + (echo '#include "asm-mips.h"' ; ../../common/asm-mips.sh < vacall-mipseb-linux.s) > vacall-mipseb-macro.S + + vacall-mipsel-linux.s : ../../vacall/vacall-mips.c ../../vacall/vacall-internal.h vacall_r.h $(THISFILE) +- $(CROSS_TOOL) mips64-linux gcc -V 4.0.2 -mabi=32 -mel -mno-explicit-relocs $(GCCFLAGS) -D__mips__ -S ../../vacall/vacall-mips.c -I../../vacall -I. -o vacall-mipsel-linux.s ++ mipsel-linux-gnu-gcc -mno-explicit-relocs $(GCCFLAGS) -D__mips__ -S ../../vacall/vacall-mips.c -I../../vacall -I. -o vacall-mipsel-linux.s + + vacall-mipsel-macro.S : vacall-mipsel-linux.s ../../common/asm-mips.sh $(THISFILE) + (echo '#include "asm-mips.h"' ; ../../common/asm-mips.sh < vacall-mipsel-linux.s) > vacall-mipsel-macro.S +--- a/vacall/Makefile.devel ++++ b/vacall/Makefile.devel +@@ -49,13 +49,13 @@ vacall-m68k.motorola.S : vacall-m68k-lin + + vacall-mipseb-linux.s : vacall-mips.c vacall-internal.h vacall.h $(THISFILE) + # For references to global symbols: -mno-explicit-relocs ensures a syntax that the IRIX assembler understands. +- $(CROSS_TOOL) mips64-linux gcc -V 4.0.2 -mabi=32 -meb -mno-explicit-relocs $(GCCFLAGS) -D__mips__ -S vacall-mips.c -o vacall-mipseb-linux.s ++ mips-linux-gnu-gcc -mno-explicit-relocs $(GCCFLAGS) -D__mips__ -S vacall-mips.c -o vacall-mipseb-linux.s + + vacall-mipseb-macro.S : vacall-mipseb-linux.s ../common/asm-mips.sh $(THISFILE) + (echo '#include "asm-mips.h"' ; ../common/asm-mips.sh < vacall-mipseb-linux.s) > vacall-mipseb-macro.S + + vacall-mipsel-linux.s : vacall-mips.c vacall-internal.h vacall.h $(THISFILE) +- $(CROSS_TOOL) mips64-linux gcc -V 4.0.2 -mabi=32 -mel -mno-explicit-relocs $(GCCFLAGS) -D__mips__ -S vacall-mips.c -o vacall-mipsel-linux.s ++ mipsel-linux-gnu-gcc -mno-explicit-relocs $(GCCFLAGS) -D__mips__ -S vacall-mips.c -o vacall-mipsel-linux.s + + vacall-mipsel-macro.S : vacall-mipsel-linux.s ../common/asm-mips.sh $(THISFILE) + (echo '#include "asm-mips.h"' ; ../common/asm-mips.sh < vacall-mipsel-linux.s) > vacall-mipsel-macro.S +--- a/avcall/avcall-mipseb-linux.s ++++ b/avcall/avcall-mipseb-linux.s +@@ -1,325 +1,310 @@ + .file 1 "avcall-mips.c" + .section .mdebug.abi32 + .previous ++ .nan legacy ++ .module fp=xx ++ .module nooddspreg + .abicalls + .text + .align 2 + .globl avcall_call ++ .set nomips16 ++ .set nomicromips + .ent avcall_call + .type avcall_call, @function + avcall_call: + .frame $fp,40,$31 # vars= 0, regs= 3/0, args= 16, gp= 8 +- .mask 0xc0010000,-8 ++ .mask 0xc0010000,-4 + .fmask 0x00000000,0 + addiu $sp,$sp,-40 +- sw $fp,28($sp) ++ lw $8,24($4) ++ lw $3,20($4) ++ lw $5,40($4) ++ sw $fp,32($sp) + move $fp,$sp +- sw $31,32($sp) +- sw $16,24($sp) +- .cprestore 16 +- lw $3,24($4) +- lw $2,20($4) +- move $16,$4 +- lw $4,40($4) +- subu $2,$2,$3 ++ sw $16,28($sp) ++ subu $3,$3,$8 ++ sw $31,36($sp) + addiu $sp,$sp,-1032 +- andi $3,$4,0x1 +- sra $7,$2,2 ++ move $16,$4 ++ andi $4,$5,0x1 ++ move $2,$sp + .set noreorder + .set nomacro +- beq $3,$0,$L2 +- move $5,$sp ++ beq $4,$0,$L2 ++ sra $7,$3,2 + .set macro + .set reorder + + #APP ++ # 76 "avcall-mips.c" 1 + l.s $f12,48($16) ++ # 0 "" 2 + #NO_APP + $L2: +- lw $3,44($16) +- #nop +- andi $2,$3,0x1 +- .set noreorder +- .set nomacro +- beq $2,$0,$L63 +- andi $2,$4,0x2 +- .set macro +- .set reorder +- ++ lw $4,44($16) ++ andi $6,$4,0x1 ++ beq $6,$0,$L3 + #APP ++ # 78 "avcall-mips.c" 1 + l.d $f12,56($16) ++ # 0 "" 2 + #NO_APP +- andi $2,$4,0x2 +-$L63: +- .set noreorder +- .set nomacro +- beq $2,$0,$L64 +- andi $2,$3,0x2 +- .set macro +- .set reorder +- ++$L3: ++ andi $5,$5,0x2 ++ beq $5,$0,$L4 + #APP ++ # 80 "avcall-mips.c" 1 + l.s $f14,52($16) ++ # 0 "" 2 + #NO_APP +- andi $2,$3,0x2 +-$L64: +- .set noreorder +- .set nomacro +- beq $2,$0,$L65 +- slt $2,$7,5 +- .set macro +- .set reorder +- ++$L4: ++ andi $4,$4,0x2 ++ beq $4,$0,$L5 + #APP ++ # 82 "avcall-mips.c" 1 + l.d $f14,64($16) ++ # 0 "" 2 + #NO_APP +- slt $2,$7,5 +-$L65: ++$L5: ++ slt $3,$3,17 + .set noreorder + .set nomacro +- bne $2,$0,$L51 +- li $4,4 # 0x4 ++ bne $3,$0,$L6 ++ addiu $4,$8,16 + .set macro + .set reorder + +- lw $6,24($16) +-$L10: +- sll $2,$4,2 +- addu $2,$2,$6 +- lw $3,0($2) +- addiu $4,$4,1 +- sw $3,16($5) ++ addiu $2,$2,16 ++ li $3,4 # 0x4 ++$L7: ++ lw $6,0($4) ++ addiu $3,$3,1 ++ addiu $4,$4,4 ++ slt $5,$3,$7 ++ sw $6,0($2) + .set noreorder + .set nomacro +- bne $7,$4,$L10 +- addiu $5,$5,4 ++ bne $5,$0,$L7 ++ addiu $2,$2,4 + .set macro + .set reorder + +-$L11: +- lw $4,0($6) +- lw $5,4($6) +- lw $7,12($6) ++$L6: ++ lw $5,4($8) ++ lw $4,0($8) + lw $25,4($16) +- lw $6,8($6) +- jalr $25 +- lw $4,12($16) +- move $5,$2 +- li $2,1 # 0x1 +- lw $28,16($fp) +- beq $4,$2,$L12 ++ lw $7,12($8) + .set noreorder + .set nomacro +- beq $4,$0,$L57 +- li $2,2 # 0x2 ++ jalr $25 ++ lw $6,8($8) + .set macro + .set reorder + ++ li $5,1 # 0x1 ++ lw $4,12($16) ++ beq $4,$5,$L8 + .set noreorder + .set nomacro +- beq $4,$2,$L56 +- li $2,3 # 0x3 ++ beq $4,$0,$L42 ++ li $5,2 # 0x2 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $4,$2,$L56 +- li $2,4 # 0x4 ++ beq $4,$5,$L45 ++ li $5,3 # 0x3 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $4,$2,$L56 +- li $2,5 # 0x5 ++ beq $4,$5,$L45 ++ li $5,4 # 0x4 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $4,$2,$L58 +- li $2,6 # 0x6 ++ beq $4,$5,$L45 ++ li $5,5 # 0x5 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $4,$2,$L58 +- li $2,7 # 0x7 ++ beq $4,$5,$L46 ++ li $5,6 # 0x6 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $4,$2,$L57 +- li $2,8 # 0x8 ++ beq $4,$5,$L46 ++ li $5,7 # 0x7 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $4,$2,$L57 +- li $2,9 # 0x9 ++ beq $4,$5,$L42 ++ li $5,8 # 0x8 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $4,$2,$L57 +- li $2,10 # 0xa ++ beq $4,$5,$L42 ++ li $5,9 # 0x9 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $4,$2,$L57 +- addiu $2,$4,-11 ++ beq $4,$5,$L42 ++ li $5,10 # 0xa + .set macro + .set reorder + +- sltu $2,$2,2 + .set noreorder + .set nomacro +- bne $2,$0,$L60 +- li $2,13 # 0xd ++ beq $4,$5,$L42 ++ addiu $5,$4,-11 + .set macro + .set reorder + ++ sltu $5,$5,2 ++ bne $5,$0,$L48 ++ li $3,13 # 0xd + .set noreorder + .set nomacro +- beq $4,$2,$L61 +- li $2,14 # 0xe ++ beq $4,$3,$L49 ++ li $3,14 # 0xe + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $4,$2,$L62 +- li $2,15 # 0xf ++ beq $4,$3,$L50 ++ li $3,15 # 0xf + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $4,$2,$L57 +- li $2,16 # 0x10 ++ beq $4,$3,$L42 ++ li $3,16 # 0x10 + .set macro + .set reorder + +- bne $4,$2,$L12 +- lw $2,0($16) +- #nop +- andi $2,$2,0x2 ++ bne $4,$3,$L8 ++ lw $3,0($16) ++ andi $3,$3,0x2 + .set noreorder + .set nomacro +- beq $2,$0,$L12 +- li $2,1 # 0x1 ++ beq $3,$0,$L8 ++ li $4,1 # 0x1 + .set macro + .set reorder + + lw $3,16($16) +- #nop + .set noreorder + .set nomacro +- beq $3,$2,$L56 +- li $2,2 # 0x2 ++ beq $3,$4,$L45 ++ li $4,2 # 0x2 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $3,$2,$L58 +- li $2,4 # 0x4 ++ beq $3,$4,$L46 ++ li $4,4 # 0x4 + .set macro + .set reorder + +- beq $3,$2,$L57 +-$L12: ++ beq $3,$4,$L42 ++$L8: + move $sp,$fp +- lw $31,32($fp) +- lw $fp,28($sp) +- lw $16,24($sp) + move $2,$0 ++ lw $31,36($sp) ++ lw $fp,32($sp) ++ lw $16,28($sp) + .set noreorder + .set nomacro +- j $31 ++ jr $31 + addiu $sp,$sp,40 + .set macro + .set reorder + +-$L51: +- lw $6,24($16) +- b $L11 +-$L57: +- lw $2,8($16) ++$L42: ++ lw $3,8($16) ++ sw $2,0($3) + move $sp,$fp +- sw $5,0($2) +- lw $31,32($sp) +- lw $fp,28($sp) +- lw $16,24($sp) + move $2,$0 ++ lw $31,36($sp) ++ lw $fp,32($sp) ++ lw $16,28($sp) + .set noreorder + .set nomacro +- j $31 ++ jr $31 + addiu $sp,$sp,40 + .set macro + .set reorder + +-$L56: +- lw $2,8($16) ++$L45: ++ lw $3,8($16) ++ sb $2,0($3) + move $sp,$fp +- sb $5,0($2) +- lw $31,32($sp) +- lw $fp,28($sp) +- lw $16,24($sp) + move $2,$0 ++ lw $31,36($sp) ++ lw $fp,32($sp) ++ lw $16,28($sp) + .set noreorder + .set nomacro +- j $31 ++ jr $31 + addiu $sp,$sp,40 + .set macro + .set reorder + +-$L58: +- lw $2,8($16) ++$L46: ++ lw $3,8($16) + .set noreorder + .set nomacro +- b $L12 +- sh $5,0($2) ++ b $L8 ++ sh $2,0($3) + .set macro + .set reorder + +-$L61: +- lw $2,8($16) ++$L48: ++ lw $4,8($16) ++ sw $2,0($4) + .set noreorder + .set nomacro +- b $L12 +- swc1 $f0,0($2) ++ b $L8 ++ sw $3,4($4) + .set macro + .set reorder + +-$L60: ++$L49: + lw $2,8($16) +- #nop +- sw $3,4($2) + .set noreorder + .set nomacro +- b $L12 +- sw $5,0($2) ++ b $L8 ++ swc1 $f0,0($2) + .set macro + .set reorder + +-$L62: ++$L50: + lw $2,8($16) +- #nop +- swc1 $f0,4($2) + .set noreorder + .set nomacro +- b $L12 +- swc1 $f1,0($2) ++ b $L8 ++ sdc1 $f0,0($2) + .set macro + .set reorder + + .end avcall_call +- .ident "GCC: (GNU) 4.0.2" ++ .size avcall_call, .-avcall_call ++ .ident "GCC: (Debian 7.2.0-11) 7.2.0" +--- a/avcall/avcall-mipseb-macro.S ++++ b/avcall/avcall-mipseb-macro.S +@@ -1,322 +1,307 @@ + #include "asm-mips.h" + .file 1 "avcall-mips.c" ++ .nan legacy ++ .module fp=xx ++ .module nooddspreg + .text + .align 2 + .globl avcall_call ++ .set nomips16 ++ .set nomicromips + .ent avcall_call + DECLARE_FUNCTION(avcall_call) + avcall_call: + .frame $fp,40,$31 +- .mask 0xc0010000,-8 ++ .mask 0xc0010000,-4 + .fmask 0x00000000,0 + addiu $sp,$sp,-40 +- sw $fp,28($sp) ++ lw $8,24($4) ++ lw $3,20($4) ++ lw $5,40($4) ++ sw $fp,32($sp) + move $fp,$sp +- sw $31,32($sp) +- sw $16,24($sp) +- .cprestore 16 +- lw $3,24($4) +- lw $2,20($4) +- move $16,$4 +- lw $4,40($4) +- subu $2,$2,$3 ++ sw $16,28($sp) ++ subu $3,$3,$8 ++ sw $31,36($sp) + addiu $sp,$sp,-1032 +- andi $3,$4,0x1 +- sra $7,$2,2 ++ move $16,$4 ++ andi $4,$5,0x1 ++ move $2,$sp + .set noreorder + .set nomacro +- beq $3,$0,$L2 +- move $5,$sp ++ beq $4,$0,$L2 ++ sra $7,$3,2 + .set macro + .set reorder + + ++ + l.s $f12,48($16) ++ + + $L2: +- lw $3,44($16) +- +- andi $2,$3,0x1 +- .set noreorder +- .set nomacro +- beq $2,$0,$L63 +- andi $2,$4,0x2 +- .set macro +- .set reorder +- ++ lw $4,44($16) ++ andi $6,$4,0x1 ++ beq $6,$0,$L3 + ++ + l.d $f12,56($16) ++ + +- andi $2,$4,0x2 +-$L63: +- .set noreorder +- .set nomacro +- beq $2,$0,$L64 +- andi $2,$3,0x2 +- .set macro +- .set reorder +- ++$L3: ++ andi $5,$5,0x2 ++ beq $5,$0,$L4 + ++ + l.s $f14,52($16) ++ + +- andi $2,$3,0x2 +-$L64: +- .set noreorder +- .set nomacro +- beq $2,$0,$L65 +- slt $2,$7,5 +- .set macro +- .set reorder +- ++$L4: ++ andi $4,$4,0x2 ++ beq $4,$0,$L5 + ++ + l.d $f14,64($16) ++ + +- slt $2,$7,5 +-$L65: ++$L5: ++ slt $3,$3,17 + .set noreorder + .set nomacro +- bne $2,$0,$L51 +- li $4,4 ++ bne $3,$0,$L6 ++ addiu $4,$8,16 + .set macro + .set reorder + +- lw $6,24($16) +-$L10: +- sll $2,$4,2 +- addu $2,$2,$6 +- lw $3,0($2) +- addiu $4,$4,1 +- sw $3,16($5) ++ addiu $2,$2,16 ++ li $3,4 ++$L7: ++ lw $6,0($4) ++ addiu $3,$3,1 ++ addiu $4,$4,4 ++ slt $5,$3,$7 ++ sw $6,0($2) + .set noreorder + .set nomacro +- bne $7,$4,$L10 +- addiu $5,$5,4 ++ bne $5,$0,$L7 ++ addiu $2,$2,4 + .set macro + .set reorder + +-$L11: +- lw $4,0($6) +- lw $5,4($6) +- lw $7,12($6) ++$L6: ++ lw $5,4($8) ++ lw $4,0($8) + lw $25,4($16) +- lw $6,8($6) +- jalr $25 +- lw $4,12($16) +- move $5,$2 +- li $2,1 +- lw $28,16($fp) +- beq $4,$2,$L12 ++ lw $7,12($8) + .set noreorder + .set nomacro +- beq $4,$0,$L57 +- li $2,2 ++ jalr $25 ++ lw $6,8($8) + .set macro + .set reorder + ++ li $5,1 ++ lw $4,12($16) ++ beq $4,$5,$L8 + .set noreorder + .set nomacro +- beq $4,$2,$L56 +- li $2,3 ++ beq $4,$0,$L42 ++ li $5,2 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $4,$2,$L56 +- li $2,4 ++ beq $4,$5,$L45 ++ li $5,3 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $4,$2,$L56 +- li $2,5 ++ beq $4,$5,$L45 ++ li $5,4 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $4,$2,$L58 +- li $2,6 ++ beq $4,$5,$L45 ++ li $5,5 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $4,$2,$L58 +- li $2,7 ++ beq $4,$5,$L46 ++ li $5,6 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $4,$2,$L57 +- li $2,8 ++ beq $4,$5,$L46 ++ li $5,7 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $4,$2,$L57 +- li $2,9 ++ beq $4,$5,$L42 ++ li $5,8 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $4,$2,$L57 +- li $2,10 ++ beq $4,$5,$L42 ++ li $5,9 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $4,$2,$L57 +- addiu $2,$4,-11 ++ beq $4,$5,$L42 ++ li $5,10 + .set macro + .set reorder + +- sltu $2,$2,2 + .set noreorder + .set nomacro +- bne $2,$0,$L60 +- li $2,13 ++ beq $4,$5,$L42 ++ addiu $5,$4,-11 + .set macro + .set reorder + ++ sltu $5,$5,2 ++ bne $5,$0,$L48 ++ li $3,13 + .set noreorder + .set nomacro +- beq $4,$2,$L61 +- li $2,14 ++ beq $4,$3,$L49 ++ li $3,14 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $4,$2,$L62 +- li $2,15 ++ beq $4,$3,$L50 ++ li $3,15 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $4,$2,$L57 +- li $2,16 ++ beq $4,$3,$L42 ++ li $3,16 + .set macro + .set reorder + +- bne $4,$2,$L12 +- lw $2,0($16) +- +- andi $2,$2,0x2 ++ bne $4,$3,$L8 ++ lw $3,0($16) ++ andi $3,$3,0x2 + .set noreorder + .set nomacro +- beq $2,$0,$L12 +- li $2,1 ++ beq $3,$0,$L8 ++ li $4,1 + .set macro + .set reorder + + lw $3,16($16) +- + .set noreorder + .set nomacro +- beq $3,$2,$L56 +- li $2,2 ++ beq $3,$4,$L45 ++ li $4,2 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $3,$2,$L58 +- li $2,4 ++ beq $3,$4,$L46 ++ li $4,4 + .set macro + .set reorder + +- beq $3,$2,$L57 +-$L12: ++ beq $3,$4,$L42 ++$L8: + move $sp,$fp +- lw $31,32($fp) +- lw $fp,28($sp) +- lw $16,24($sp) + move $2,$0 ++ lw $31,36($sp) ++ lw $fp,32($sp) ++ lw $16,28($sp) + .set noreorder + .set nomacro +- j $31 ++ jr $31 + addiu $sp,$sp,40 + .set macro + .set reorder + +-$L51: +- lw $6,24($16) +- b $L11 +-$L57: +- lw $2,8($16) ++$L42: ++ lw $3,8($16) ++ sw $2,0($3) + move $sp,$fp +- sw $5,0($2) +- lw $31,32($sp) +- lw $fp,28($sp) +- lw $16,24($sp) + move $2,$0 ++ lw $31,36($sp) ++ lw $fp,32($sp) ++ lw $16,28($sp) + .set noreorder + .set nomacro +- j $31 ++ jr $31 + addiu $sp,$sp,40 + .set macro + .set reorder + +-$L56: +- lw $2,8($16) ++$L45: ++ lw $3,8($16) ++ sb $2,0($3) + move $sp,$fp +- sb $5,0($2) +- lw $31,32($sp) +- lw $fp,28($sp) +- lw $16,24($sp) + move $2,$0 ++ lw $31,36($sp) ++ lw $fp,32($sp) ++ lw $16,28($sp) + .set noreorder + .set nomacro +- j $31 ++ jr $31 + addiu $sp,$sp,40 + .set macro + .set reorder + +-$L58: +- lw $2,8($16) ++$L46: ++ lw $3,8($16) + .set noreorder + .set nomacro +- b $L12 +- sh $5,0($2) ++ b $L8 ++ sh $2,0($3) + .set macro + .set reorder + +-$L61: +- lw $2,8($16) ++$L48: ++ lw $4,8($16) ++ sw $2,0($4) + .set noreorder + .set nomacro +- b $L12 +- swc1 $f0,0($2) ++ b $L8 ++ sw $3,4($4) + .set macro + .set reorder + +-$L60: ++$L49: + lw $2,8($16) +- +- sw $3,4($2) + .set noreorder + .set nomacro +- b $L12 +- sw $5,0($2) ++ b $L8 ++ swc1 $f0,0($2) + .set macro + .set reorder + +-$L62: ++$L50: + lw $2,8($16) +- +- swc1 $f0,4($2) + .set noreorder + .set nomacro +- b $L12 +- swc1 $f1,0($2) ++ b $L8 ++ sdc1 $f0,0($2) + .set macro + .set reorder + + .end avcall_call ++ .size avcall_call, .-avcall_call +--- a/avcall/avcall-mipsel-linux.s ++++ b/avcall/avcall-mipsel-linux.s +@@ -1,325 +1,310 @@ + .file 1 "avcall-mips.c" + .section .mdebug.abi32 + .previous ++ .nan legacy ++ .module fp=xx ++ .module nooddspreg + .abicalls + .text + .align 2 + .globl avcall_call ++ .set nomips16 ++ .set nomicromips + .ent avcall_call + .type avcall_call, @function + avcall_call: + .frame $fp,40,$31 # vars= 0, regs= 3/0, args= 16, gp= 8 +- .mask 0xc0010000,-8 ++ .mask 0xc0010000,-4 + .fmask 0x00000000,0 + addiu $sp,$sp,-40 +- sw $fp,28($sp) ++ lw $8,24($4) ++ lw $3,20($4) ++ lw $5,40($4) ++ sw $fp,32($sp) + move $fp,$sp +- sw $31,32($sp) +- sw $16,24($sp) +- .cprestore 16 +- lw $3,24($4) +- lw $2,20($4) +- move $16,$4 +- lw $4,40($4) +- subu $2,$2,$3 ++ sw $16,28($sp) ++ subu $3,$3,$8 ++ sw $31,36($sp) + addiu $sp,$sp,-1032 +- andi $3,$4,0x1 +- sra $7,$2,2 ++ move $16,$4 ++ andi $4,$5,0x1 ++ move $2,$sp + .set noreorder + .set nomacro +- beq $3,$0,$L2 +- move $5,$sp ++ beq $4,$0,$L2 ++ sra $7,$3,2 + .set macro + .set reorder + + #APP ++ # 76 "avcall-mips.c" 1 + l.s $f12,48($16) ++ # 0 "" 2 + #NO_APP + $L2: +- lw $3,44($16) +- #nop +- andi $2,$3,0x1 +- .set noreorder +- .set nomacro +- beq $2,$0,$L63 +- andi $2,$4,0x2 +- .set macro +- .set reorder +- ++ lw $4,44($16) ++ andi $6,$4,0x1 ++ beq $6,$0,$L3 + #APP ++ # 78 "avcall-mips.c" 1 + l.d $f12,56($16) ++ # 0 "" 2 + #NO_APP +- andi $2,$4,0x2 +-$L63: +- .set noreorder +- .set nomacro +- beq $2,$0,$L64 +- andi $2,$3,0x2 +- .set macro +- .set reorder +- ++$L3: ++ andi $5,$5,0x2 ++ beq $5,$0,$L4 + #APP ++ # 80 "avcall-mips.c" 1 + l.s $f14,52($16) ++ # 0 "" 2 + #NO_APP +- andi $2,$3,0x2 +-$L64: +- .set noreorder +- .set nomacro +- beq $2,$0,$L65 +- slt $2,$7,5 +- .set macro +- .set reorder +- ++$L4: ++ andi $4,$4,0x2 ++ beq $4,$0,$L5 + #APP ++ # 82 "avcall-mips.c" 1 + l.d $f14,64($16) ++ # 0 "" 2 + #NO_APP +- slt $2,$7,5 +-$L65: ++$L5: ++ slt $3,$3,17 + .set noreorder + .set nomacro +- bne $2,$0,$L51 +- li $4,4 # 0x4 ++ bne $3,$0,$L6 ++ addiu $4,$8,16 + .set macro + .set reorder + +- lw $6,24($16) +-$L10: +- sll $2,$4,2 +- addu $2,$2,$6 +- lw $3,0($2) +- addiu $4,$4,1 +- sw $3,16($5) ++ addiu $2,$2,16 ++ li $3,4 # 0x4 ++$L7: ++ lw $6,0($4) ++ addiu $3,$3,1 ++ addiu $4,$4,4 ++ slt $5,$3,$7 ++ sw $6,0($2) + .set noreorder + .set nomacro +- bne $7,$4,$L10 +- addiu $5,$5,4 ++ bne $5,$0,$L7 ++ addiu $2,$2,4 + .set macro + .set reorder + +-$L11: +- lw $4,0($6) +- lw $5,4($6) +- lw $7,12($6) ++$L6: ++ lw $5,4($8) ++ lw $4,0($8) + lw $25,4($16) +- lw $6,8($6) +- jalr $25 +- lw $4,12($16) +- move $5,$2 +- li $2,1 # 0x1 +- lw $28,16($fp) +- beq $4,$2,$L12 ++ lw $7,12($8) + .set noreorder + .set nomacro +- beq $4,$0,$L57 +- li $2,2 # 0x2 ++ jalr $25 ++ lw $6,8($8) + .set macro + .set reorder + ++ li $5,1 # 0x1 ++ lw $4,12($16) ++ beq $4,$5,$L8 + .set noreorder + .set nomacro +- beq $4,$2,$L56 +- li $2,3 # 0x3 ++ beq $4,$0,$L42 ++ li $5,2 # 0x2 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $4,$2,$L56 +- li $2,4 # 0x4 ++ beq $4,$5,$L45 ++ li $5,3 # 0x3 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $4,$2,$L56 +- li $2,5 # 0x5 ++ beq $4,$5,$L45 ++ li $5,4 # 0x4 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $4,$2,$L58 +- li $2,6 # 0x6 ++ beq $4,$5,$L45 ++ li $5,5 # 0x5 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $4,$2,$L58 +- li $2,7 # 0x7 ++ beq $4,$5,$L46 ++ li $5,6 # 0x6 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $4,$2,$L57 +- li $2,8 # 0x8 ++ beq $4,$5,$L46 ++ li $5,7 # 0x7 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $4,$2,$L57 +- li $2,9 # 0x9 ++ beq $4,$5,$L42 ++ li $5,8 # 0x8 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $4,$2,$L57 +- li $2,10 # 0xa ++ beq $4,$5,$L42 ++ li $5,9 # 0x9 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $4,$2,$L57 +- addiu $2,$4,-11 ++ beq $4,$5,$L42 ++ li $5,10 # 0xa + .set macro + .set reorder + +- sltu $2,$2,2 + .set noreorder + .set nomacro +- bne $2,$0,$L60 +- li $2,13 # 0xd ++ beq $4,$5,$L42 ++ addiu $5,$4,-11 + .set macro + .set reorder + ++ sltu $5,$5,2 ++ bne $5,$0,$L48 ++ li $3,13 # 0xd + .set noreorder + .set nomacro +- beq $4,$2,$L61 +- li $2,14 # 0xe ++ beq $4,$3,$L49 ++ li $3,14 # 0xe + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $4,$2,$L62 +- li $2,15 # 0xf ++ beq $4,$3,$L50 ++ li $3,15 # 0xf + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $4,$2,$L57 +- li $2,16 # 0x10 ++ beq $4,$3,$L42 ++ li $3,16 # 0x10 + .set macro + .set reorder + +- bne $4,$2,$L12 +- lw $2,0($16) +- #nop +- andi $2,$2,0x2 ++ bne $4,$3,$L8 ++ lw $3,0($16) ++ andi $3,$3,0x2 + .set noreorder + .set nomacro +- beq $2,$0,$L12 +- li $2,1 # 0x1 ++ beq $3,$0,$L8 ++ li $4,1 # 0x1 + .set macro + .set reorder + + lw $3,16($16) +- #nop + .set noreorder + .set nomacro +- beq $3,$2,$L56 +- li $2,2 # 0x2 ++ beq $3,$4,$L45 ++ li $4,2 # 0x2 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $3,$2,$L58 +- li $2,4 # 0x4 ++ beq $3,$4,$L46 ++ li $4,4 # 0x4 + .set macro + .set reorder + +- beq $3,$2,$L57 +-$L12: ++ beq $3,$4,$L42 ++$L8: + move $sp,$fp +- lw $31,32($fp) +- lw $fp,28($sp) +- lw $16,24($sp) + move $2,$0 ++ lw $31,36($sp) ++ lw $fp,32($sp) ++ lw $16,28($sp) + .set noreorder + .set nomacro +- j $31 ++ jr $31 + addiu $sp,$sp,40 + .set macro + .set reorder + +-$L51: +- lw $6,24($16) +- b $L11 +-$L57: +- lw $2,8($16) ++$L42: ++ lw $3,8($16) ++ sw $2,0($3) + move $sp,$fp +- sw $5,0($2) +- lw $31,32($sp) +- lw $fp,28($sp) +- lw $16,24($sp) + move $2,$0 ++ lw $31,36($sp) ++ lw $fp,32($sp) ++ lw $16,28($sp) + .set noreorder + .set nomacro +- j $31 ++ jr $31 + addiu $sp,$sp,40 + .set macro + .set reorder + +-$L56: +- lw $2,8($16) ++$L45: ++ lw $3,8($16) ++ sb $2,0($3) + move $sp,$fp +- sb $5,0($2) +- lw $31,32($sp) +- lw $fp,28($sp) +- lw $16,24($sp) + move $2,$0 ++ lw $31,36($sp) ++ lw $fp,32($sp) ++ lw $16,28($sp) + .set noreorder + .set nomacro +- j $31 ++ jr $31 + addiu $sp,$sp,40 + .set macro + .set reorder + +-$L58: +- lw $2,8($16) ++$L46: ++ lw $3,8($16) + .set noreorder + .set nomacro +- b $L12 +- sh $5,0($2) ++ b $L8 ++ sh $2,0($3) + .set macro + .set reorder + +-$L61: +- lw $2,8($16) ++$L48: ++ lw $4,8($16) ++ sw $2,0($4) + .set noreorder + .set nomacro +- b $L12 +- swc1 $f0,0($2) ++ b $L8 ++ sw $3,4($4) + .set macro + .set reorder + +-$L60: ++$L49: + lw $2,8($16) +- #nop +- sw $3,4($2) + .set noreorder + .set nomacro +- b $L12 +- sw $5,0($2) ++ b $L8 ++ swc1 $f0,0($2) + .set macro + .set reorder + +-$L62: ++$L50: + lw $2,8($16) +- #nop +- swc1 $f0,0($2) + .set noreorder + .set nomacro +- b $L12 +- swc1 $f1,4($2) ++ b $L8 ++ sdc1 $f0,0($2) + .set macro + .set reorder + + .end avcall_call +- .ident "GCC: (GNU) 4.0.2" ++ .size avcall_call, .-avcall_call ++ .ident "GCC: (Debian 7.2.0-11) 7.2.0" +--- a/avcall/avcall-mipsel-macro.S ++++ b/avcall/avcall-mipsel-macro.S +@@ -1,322 +1,307 @@ + #include "asm-mips.h" + .file 1 "avcall-mips.c" ++ .nan legacy ++ .module fp=xx ++ .module nooddspreg + .text + .align 2 + .globl avcall_call ++ .set nomips16 ++ .set nomicromips + .ent avcall_call + DECLARE_FUNCTION(avcall_call) + avcall_call: + .frame $fp,40,$31 +- .mask 0xc0010000,-8 ++ .mask 0xc0010000,-4 + .fmask 0x00000000,0 + addiu $sp,$sp,-40 +- sw $fp,28($sp) ++ lw $8,24($4) ++ lw $3,20($4) ++ lw $5,40($4) ++ sw $fp,32($sp) + move $fp,$sp +- sw $31,32($sp) +- sw $16,24($sp) +- .cprestore 16 +- lw $3,24($4) +- lw $2,20($4) +- move $16,$4 +- lw $4,40($4) +- subu $2,$2,$3 ++ sw $16,28($sp) ++ subu $3,$3,$8 ++ sw $31,36($sp) + addiu $sp,$sp,-1032 +- andi $3,$4,0x1 +- sra $7,$2,2 ++ move $16,$4 ++ andi $4,$5,0x1 ++ move $2,$sp + .set noreorder + .set nomacro +- beq $3,$0,$L2 +- move $5,$sp ++ beq $4,$0,$L2 ++ sra $7,$3,2 + .set macro + .set reorder + + ++ + l.s $f12,48($16) ++ + + $L2: +- lw $3,44($16) +- +- andi $2,$3,0x1 +- .set noreorder +- .set nomacro +- beq $2,$0,$L63 +- andi $2,$4,0x2 +- .set macro +- .set reorder +- ++ lw $4,44($16) ++ andi $6,$4,0x1 ++ beq $6,$0,$L3 + ++ + l.d $f12,56($16) ++ + +- andi $2,$4,0x2 +-$L63: +- .set noreorder +- .set nomacro +- beq $2,$0,$L64 +- andi $2,$3,0x2 +- .set macro +- .set reorder +- ++$L3: ++ andi $5,$5,0x2 ++ beq $5,$0,$L4 + ++ + l.s $f14,52($16) ++ + +- andi $2,$3,0x2 +-$L64: +- .set noreorder +- .set nomacro +- beq $2,$0,$L65 +- slt $2,$7,5 +- .set macro +- .set reorder +- ++$L4: ++ andi $4,$4,0x2 ++ beq $4,$0,$L5 + ++ + l.d $f14,64($16) ++ + +- slt $2,$7,5 +-$L65: ++$L5: ++ slt $3,$3,17 + .set noreorder + .set nomacro +- bne $2,$0,$L51 +- li $4,4 ++ bne $3,$0,$L6 ++ addiu $4,$8,16 + .set macro + .set reorder + +- lw $6,24($16) +-$L10: +- sll $2,$4,2 +- addu $2,$2,$6 +- lw $3,0($2) +- addiu $4,$4,1 +- sw $3,16($5) ++ addiu $2,$2,16 ++ li $3,4 ++$L7: ++ lw $6,0($4) ++ addiu $3,$3,1 ++ addiu $4,$4,4 ++ slt $5,$3,$7 ++ sw $6,0($2) + .set noreorder + .set nomacro +- bne $7,$4,$L10 +- addiu $5,$5,4 ++ bne $5,$0,$L7 ++ addiu $2,$2,4 + .set macro + .set reorder + +-$L11: +- lw $4,0($6) +- lw $5,4($6) +- lw $7,12($6) ++$L6: ++ lw $5,4($8) ++ lw $4,0($8) + lw $25,4($16) +- lw $6,8($6) +- jalr $25 +- lw $4,12($16) +- move $5,$2 +- li $2,1 +- lw $28,16($fp) +- beq $4,$2,$L12 ++ lw $7,12($8) + .set noreorder + .set nomacro +- beq $4,$0,$L57 +- li $2,2 ++ jalr $25 ++ lw $6,8($8) + .set macro + .set reorder + ++ li $5,1 ++ lw $4,12($16) ++ beq $4,$5,$L8 + .set noreorder + .set nomacro +- beq $4,$2,$L56 +- li $2,3 ++ beq $4,$0,$L42 ++ li $5,2 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $4,$2,$L56 +- li $2,4 ++ beq $4,$5,$L45 ++ li $5,3 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $4,$2,$L56 +- li $2,5 ++ beq $4,$5,$L45 ++ li $5,4 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $4,$2,$L58 +- li $2,6 ++ beq $4,$5,$L45 ++ li $5,5 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $4,$2,$L58 +- li $2,7 ++ beq $4,$5,$L46 ++ li $5,6 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $4,$2,$L57 +- li $2,8 ++ beq $4,$5,$L46 ++ li $5,7 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $4,$2,$L57 +- li $2,9 ++ beq $4,$5,$L42 ++ li $5,8 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $4,$2,$L57 +- li $2,10 ++ beq $4,$5,$L42 ++ li $5,9 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $4,$2,$L57 +- addiu $2,$4,-11 ++ beq $4,$5,$L42 ++ li $5,10 + .set macro + .set reorder + +- sltu $2,$2,2 + .set noreorder + .set nomacro +- bne $2,$0,$L60 +- li $2,13 ++ beq $4,$5,$L42 ++ addiu $5,$4,-11 + .set macro + .set reorder + ++ sltu $5,$5,2 ++ bne $5,$0,$L48 ++ li $3,13 + .set noreorder + .set nomacro +- beq $4,$2,$L61 +- li $2,14 ++ beq $4,$3,$L49 ++ li $3,14 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $4,$2,$L62 +- li $2,15 ++ beq $4,$3,$L50 ++ li $3,15 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $4,$2,$L57 +- li $2,16 ++ beq $4,$3,$L42 ++ li $3,16 + .set macro + .set reorder + +- bne $4,$2,$L12 +- lw $2,0($16) +- +- andi $2,$2,0x2 ++ bne $4,$3,$L8 ++ lw $3,0($16) ++ andi $3,$3,0x2 + .set noreorder + .set nomacro +- beq $2,$0,$L12 +- li $2,1 ++ beq $3,$0,$L8 ++ li $4,1 + .set macro + .set reorder + + lw $3,16($16) +- + .set noreorder + .set nomacro +- beq $3,$2,$L56 +- li $2,2 ++ beq $3,$4,$L45 ++ li $4,2 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $3,$2,$L58 +- li $2,4 ++ beq $3,$4,$L46 ++ li $4,4 + .set macro + .set reorder + +- beq $3,$2,$L57 +-$L12: ++ beq $3,$4,$L42 ++$L8: + move $sp,$fp +- lw $31,32($fp) +- lw $fp,28($sp) +- lw $16,24($sp) + move $2,$0 ++ lw $31,36($sp) ++ lw $fp,32($sp) ++ lw $16,28($sp) + .set noreorder + .set nomacro +- j $31 ++ jr $31 + addiu $sp,$sp,40 + .set macro + .set reorder + +-$L51: +- lw $6,24($16) +- b $L11 +-$L57: +- lw $2,8($16) ++$L42: ++ lw $3,8($16) ++ sw $2,0($3) + move $sp,$fp +- sw $5,0($2) +- lw $31,32($sp) +- lw $fp,28($sp) +- lw $16,24($sp) + move $2,$0 ++ lw $31,36($sp) ++ lw $fp,32($sp) ++ lw $16,28($sp) + .set noreorder + .set nomacro +- j $31 ++ jr $31 + addiu $sp,$sp,40 + .set macro + .set reorder + +-$L56: +- lw $2,8($16) ++$L45: ++ lw $3,8($16) ++ sb $2,0($3) + move $sp,$fp +- sb $5,0($2) +- lw $31,32($sp) +- lw $fp,28($sp) +- lw $16,24($sp) + move $2,$0 ++ lw $31,36($sp) ++ lw $fp,32($sp) ++ lw $16,28($sp) + .set noreorder + .set nomacro +- j $31 ++ jr $31 + addiu $sp,$sp,40 + .set macro + .set reorder + +-$L58: +- lw $2,8($16) ++$L46: ++ lw $3,8($16) + .set noreorder + .set nomacro +- b $L12 +- sh $5,0($2) ++ b $L8 ++ sh $2,0($3) + .set macro + .set reorder + +-$L61: +- lw $2,8($16) ++$L48: ++ lw $4,8($16) ++ sw $2,0($4) + .set noreorder + .set nomacro +- b $L12 +- swc1 $f0,0($2) ++ b $L8 ++ sw $3,4($4) + .set macro + .set reorder + +-$L60: ++$L49: + lw $2,8($16) +- +- sw $3,4($2) + .set noreorder + .set nomacro +- b $L12 +- sw $5,0($2) ++ b $L8 ++ swc1 $f0,0($2) + .set macro + .set reorder + +-$L62: ++$L50: + lw $2,8($16) +- +- swc1 $f0,0($2) + .set noreorder + .set nomacro +- b $L12 +- swc1 $f1,4($2) ++ b $L8 ++ sdc1 $f0,0($2) + .set macro + .set reorder + + .end avcall_call ++ .size avcall_call, .-avcall_call +--- a/callback/vacall_r/vacall-mipseb-linux.s ++++ b/callback/vacall_r/vacall-mipseb-linux.s +@@ -1,9 +1,14 @@ + .file 1 "vacall-mips.c" + .section .mdebug.abi32 + .previous ++ .nan legacy ++ .module fp=xx ++ .module nooddspreg + .abicalls + .text + .align 2 ++ .set nomips16 ++ .set nomicromips + .ent callback_receiver + .type callback_receiver, @function + callback_receiver: +@@ -17,162 +22,164 @@ callback_receiver: + sw $fp,96($sp) + move $fp,$sp + sw $31,100($sp) +- .cprestore 16 +- sw $0,44($fp) +- sw $5,108($fp) +- addiu $5,$fp,120 + sw $4,104($fp) +- sw $5,56($fp) +- lw $4,4($2) +- addiu $5,$fp,104 +- lw $25,0($2) +- sw $5,40($fp) +- sw $6,112($fp) ++ addiu $4,$fp,104 ++ sw $5,108($fp) + addiu $5,$fp,24 ++ sw $4,40($fp) ++ addiu $4,$fp,120 ++ .cprestore 16 ++ sw $4,56($fp) ++ sw $6,112($fp) + sw $7,116($fp) +- swc1 $f12,84($fp) +- swc1 $f13,80($fp) +- swc1 $f14,92($fp) +- swc1 $f15,88($fp) +- swc1 $f12,68($fp) +- swc1 $f14,72($fp) + sw $0,24($fp) ++ sw $0,44($fp) + sw $0,48($fp) + sw $0,60($fp) + sw $0,64($fp) ++ lw $4,4($2) ++ lw $25,0($2) ++ sdc1 $f12,80($fp) ++ sdc1 $f14,88($fp) ++ swc1 $f12,68($fp) ++ swc1 $f14,72($fp) + jal $25 +- lw $5,48($fp) ++ lw $4,48($fp) + .set noreorder + .set nomacro +- beq $5,$0,$L38 +- li $4,1 # 0x1 ++ beq $4,$0,$L1 ++ li $5,1 # 0x1 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $5,$4,$L39 +- li $4,2 # 0x2 ++ beq $4,$5,$L23 ++ li $5,2 # 0x2 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $5,$4,$L39 +- li $4,3 # 0x3 ++ beq $4,$5,$L23 ++ li $5,3 # 0x3 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $5,$4,$L45 +- li $4,4 # 0x4 ++ beq $4,$5,$L29 ++ li $5,4 # 0x4 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $5,$4,$L46 +- li $4,5 # 0x5 ++ beq $4,$5,$L30 ++ li $5,5 # 0x5 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $5,$4,$L47 +- li $4,6 # 0x6 ++ beq $4,$5,$L31 ++ li $5,6 # 0x6 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $5,$4,$L43 +- li $4,7 # 0x7 ++ beq $4,$5,$L27 ++ li $5,7 # 0x7 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $5,$4,$L43 +- li $4,8 # 0x8 ++ beq $4,$5,$L27 ++ li $5,8 # 0x8 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $5,$4,$L43 +- li $4,9 # 0x9 ++ beq $4,$5,$L27 ++ li $5,9 # 0x9 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $5,$4,$L43 +- addiu $4,$5,-10 ++ beq $4,$5,$L27 ++ addiu $5,$4,-10 + .set macro + .set reorder + +- sltu $4,$4,2 ++ sltu $5,$5,2 + .set noreorder + .set nomacro +- bne $4,$0,$L48 +- li $4,12 # 0xc ++ bne $5,$0,$L32 ++ li $5,12 # 0xc + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $5,$4,$L49 +- li $4,13 # 0xd ++ beq $4,$5,$L33 ++ li $5,13 # 0xd + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $5,$4,$L50 +- li $4,14 # 0xe ++ beq $4,$5,$L34 ++ li $5,14 # 0xe + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $5,$4,$L43 +- li $4,15 # 0xf ++ beq $4,$5,$L27 ++ li $5,15 # 0xf + .set macro + .set reorder + +- bne $5,$4,$L38 ++ .set noreorder ++ .set nomacro ++ bne $4,$5,$L1 + lw $4,24($fp) ++ .set macro ++ .set reorder ++ + andi $4,$4,0x2 + .set noreorder + .set nomacro +- beq $4,$0,$L31 +- li $4,1 # 0x1 ++ beq $4,$0,$L16 ++ lw $4,52($fp) + .set macro + .set reorder + +- lw $5,52($fp) ++ li $5,1 # 0x1 + .set noreorder + .set nomacro +- beq $5,$4,$L51 +- li $4,2 # 0x2 ++ beq $4,$5,$L35 ++ li $5,2 # 0x2 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $5,$4,$L52 +- li $4,4 # 0x4 ++ beq $4,$5,$L36 ++ li $5,4 # 0x4 + .set macro + .set reorder + +- bne $5,$4,$L38 +- lw $4,44($fp) +- lw $2,0($4) +-$L38: ++ bne $4,$5,$L1 ++ lw $2,44($fp) ++ lw $2,0($2) ++$L1: + move $sp,$fp +-$L53: +- lw $31,100($sp) ++ lw $31,100($fp) + lw $fp,96($sp) + .set noreorder + .set nomacro +@@ -181,7 +188,7 @@ $L53: + .set macro + .set reorder + +-$L39: ++$L23: + move $sp,$fp + lb $2,32($fp) + lw $31,100($sp) +@@ -193,118 +200,110 @@ $L39: + .set macro + .set reorder + +-$L46: +- lh $2,32($fp) ++$L29: + .set noreorder + .set nomacro +- b $L53 +- move $sp,$fp ++ b $L1 ++ lbu $2,32($fp) + .set macro + .set reorder + +-$L43: +- lw $2,32($fp) ++$L27: + .set noreorder + .set nomacro +- b $L53 +- move $sp,$fp ++ b $L1 ++ lw $2,32($fp) + .set macro + .set reorder + +-$L45: +- lbu $2,32($fp) ++$L30: + .set noreorder + .set nomacro +- b $L53 +- move $sp,$fp ++ b $L1 ++ lh $2,32($fp) + .set macro + .set reorder + +-$L47: +- lhu $2,32($fp) ++$L31: + .set noreorder + .set nomacro +- b $L53 +- move $sp,$fp ++ b $L1 ++ lhu $2,32($fp) + .set macro + .set reorder + +-$L49: +- lwc1 $f0,32($fp) ++$L32: ++ lw $2,32($fp) + .set noreorder + .set nomacro +- b $L53 +- move $sp,$fp ++ b $L1 ++ lw $3,36($fp) + .set macro + .set reorder + +-$L48: +- lw $2,32($fp) +- lw $3,36($fp) ++$L33: + .set noreorder + .set nomacro +- b $L53 +- move $sp,$fp ++ b $L1 ++ lwc1 $f0,32($fp) + .set macro + .set reorder + +-$L50: +- lwc1 $f0,36($fp) +- lwc1 $f1,32($fp) ++$L34: + .set noreorder + .set nomacro +- b $L53 +- move $sp,$fp ++ b $L1 ++ ldc1 $f0,32($fp) + .set macro + .set reorder + +-$L31: +- lw $2,44($fp) ++$L16: + .set noreorder + .set nomacro +- b $L53 +- move $sp,$fp ++ b $L1 ++ lw $2,44($fp) + .set macro + .set reorder + +-$L51: +- lw $4,44($fp) +- lbu $2,0($4) ++$L35: ++ lw $2,44($fp) + .set noreorder + .set nomacro +- b $L53 +- move $sp,$fp ++ b $L1 ++ lbu $2,0($2) + .set macro + .set reorder + +-$L52: +- lw $4,44($fp) +- lhu $2,0($4) ++$L36: ++ lw $2,44($fp) + .set noreorder + .set nomacro +- b $L53 +- move $sp,$fp ++ b $L1 ++ lhu $2,0($2) + .set macro + .set reorder + + .end callback_receiver ++ .size callback_receiver, .-callback_receiver + .align 2 + .globl callback_get_receiver ++ .set nomips16 ++ .set nomicromips + .ent callback_get_receiver + .type callback_get_receiver, @function + callback_get_receiver: + .frame $fp,8,$31 # vars= 0, regs= 1/0, args= 0, gp= 0 +- .mask 0x40000000,-8 ++ .mask 0x40000000,-4 + .fmask 0x00000000,0 + .set noreorder + .cpload $25 + .set reorder + addiu $sp,$sp,-8 +- sw $fp,0($sp) ++ sw $fp,4($sp) + move $fp,$sp + move $sp,$fp +- lw $fp,0($sp) + la $2,callback_receiver ++ lw $fp,4($sp) + .set noreorder + .set nomacro + j $31 +@@ -313,4 +312,5 @@ callback_get_receiver: + .set reorder + + .end callback_get_receiver +- .ident "GCC: (GNU) 4.0.2" ++ .size callback_get_receiver, .-callback_get_receiver ++ .ident "GCC: (Debian 7.2.0-11) 7.2.0" +--- a/callback/vacall_r/vacall-mipseb-macro.S ++++ b/callback/vacall_r/vacall-mipseb-macro.S +@@ -1,7 +1,12 @@ + #include "asm-mips.h" + .file 1 "vacall-mips.c" ++ .nan legacy ++ .module fp=xx ++ .module nooddspreg + .text + .align 2 ++ .set nomips16 ++ .set nomicromips + .ent callback_receiver + DECLARE_FUNCTION(callback_receiver) + callback_receiver: +@@ -15,162 +20,164 @@ callback_receiver: + sw $fp,96($sp) + move $fp,$sp + sw $31,100($sp) +- .cprestore 16 +- sw $0,44($fp) +- sw $5,108($fp) +- addiu $5,$fp,120 + sw $4,104($fp) +- sw $5,56($fp) +- lw $4,4($2) +- addiu $5,$fp,104 +- lw $25,0($2) +- sw $5,40($fp) +- sw $6,112($fp) ++ addiu $4,$fp,104 ++ sw $5,108($fp) + addiu $5,$fp,24 ++ sw $4,40($fp) ++ addiu $4,$fp,120 ++ .cprestore 16 ++ sw $4,56($fp) ++ sw $6,112($fp) + sw $7,116($fp) +- swc1 $f12,84($fp) +- swc1 $f13,80($fp) +- swc1 $f14,92($fp) +- swc1 $f15,88($fp) +- swc1 $f12,68($fp) +- swc1 $f14,72($fp) + sw $0,24($fp) ++ sw $0,44($fp) + sw $0,48($fp) + sw $0,60($fp) + sw $0,64($fp) ++ lw $4,4($2) ++ lw $25,0($2) ++ sdc1 $f12,80($fp) ++ sdc1 $f14,88($fp) ++ swc1 $f12,68($fp) ++ swc1 $f14,72($fp) + jal $25 +- lw $5,48($fp) ++ lw $4,48($fp) + .set noreorder + .set nomacro +- beq $5,$0,$L38 +- li $4,1 ++ beq $4,$0,$L1 ++ li $5,1 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $5,$4,$L39 +- li $4,2 ++ beq $4,$5,$L23 ++ li $5,2 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $5,$4,$L39 +- li $4,3 ++ beq $4,$5,$L23 ++ li $5,3 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $5,$4,$L45 +- li $4,4 ++ beq $4,$5,$L29 ++ li $5,4 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $5,$4,$L46 +- li $4,5 ++ beq $4,$5,$L30 ++ li $5,5 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $5,$4,$L47 +- li $4,6 ++ beq $4,$5,$L31 ++ li $5,6 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $5,$4,$L43 +- li $4,7 ++ beq $4,$5,$L27 ++ li $5,7 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $5,$4,$L43 +- li $4,8 ++ beq $4,$5,$L27 ++ li $5,8 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $5,$4,$L43 +- li $4,9 ++ beq $4,$5,$L27 ++ li $5,9 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $5,$4,$L43 +- addiu $4,$5,-10 ++ beq $4,$5,$L27 ++ addiu $5,$4,-10 + .set macro + .set reorder + +- sltu $4,$4,2 ++ sltu $5,$5,2 + .set noreorder + .set nomacro +- bne $4,$0,$L48 +- li $4,12 ++ bne $5,$0,$L32 ++ li $5,12 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $5,$4,$L49 +- li $4,13 ++ beq $4,$5,$L33 ++ li $5,13 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $5,$4,$L50 +- li $4,14 ++ beq $4,$5,$L34 ++ li $5,14 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $5,$4,$L43 +- li $4,15 ++ beq $4,$5,$L27 ++ li $5,15 + .set macro + .set reorder + +- bne $5,$4,$L38 ++ .set noreorder ++ .set nomacro ++ bne $4,$5,$L1 + lw $4,24($fp) ++ .set macro ++ .set reorder ++ + andi $4,$4,0x2 + .set noreorder + .set nomacro +- beq $4,$0,$L31 +- li $4,1 ++ beq $4,$0,$L16 ++ lw $4,52($fp) + .set macro + .set reorder + +- lw $5,52($fp) ++ li $5,1 + .set noreorder + .set nomacro +- beq $5,$4,$L51 +- li $4,2 ++ beq $4,$5,$L35 ++ li $5,2 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $5,$4,$L52 +- li $4,4 ++ beq $4,$5,$L36 ++ li $5,4 + .set macro + .set reorder + +- bne $5,$4,$L38 +- lw $4,44($fp) +- lw $2,0($4) +-$L38: ++ bne $4,$5,$L1 ++ lw $2,44($fp) ++ lw $2,0($2) ++$L1: + move $sp,$fp +-$L53: +- lw $31,100($sp) ++ lw $31,100($fp) + lw $fp,96($sp) + .set noreorder + .set nomacro +@@ -179,7 +186,7 @@ $L53: + .set macro + .set reorder + +-$L39: ++$L23: + move $sp,$fp + lb $2,32($fp) + lw $31,100($sp) +@@ -191,118 +198,110 @@ $L39: + .set macro + .set reorder + +-$L46: +- lh $2,32($fp) ++$L29: + .set noreorder + .set nomacro +- b $L53 +- move $sp,$fp ++ b $L1 ++ lbu $2,32($fp) + .set macro + .set reorder + +-$L43: +- lw $2,32($fp) ++$L27: + .set noreorder + .set nomacro +- b $L53 +- move $sp,$fp ++ b $L1 ++ lw $2,32($fp) + .set macro + .set reorder + +-$L45: +- lbu $2,32($fp) ++$L30: + .set noreorder + .set nomacro +- b $L53 +- move $sp,$fp ++ b $L1 ++ lh $2,32($fp) + .set macro + .set reorder + +-$L47: +- lhu $2,32($fp) ++$L31: + .set noreorder + .set nomacro +- b $L53 +- move $sp,$fp ++ b $L1 ++ lhu $2,32($fp) + .set macro + .set reorder + +-$L49: +- lwc1 $f0,32($fp) ++$L32: ++ lw $2,32($fp) + .set noreorder + .set nomacro +- b $L53 +- move $sp,$fp ++ b $L1 ++ lw $3,36($fp) + .set macro + .set reorder + +-$L48: +- lw $2,32($fp) +- lw $3,36($fp) ++$L33: + .set noreorder + .set nomacro +- b $L53 +- move $sp,$fp ++ b $L1 ++ lwc1 $f0,32($fp) + .set macro + .set reorder + +-$L50: +- lwc1 $f0,36($fp) +- lwc1 $f1,32($fp) ++$L34: + .set noreorder + .set nomacro +- b $L53 +- move $sp,$fp ++ b $L1 ++ ldc1 $f0,32($fp) + .set macro + .set reorder + +-$L31: +- lw $2,44($fp) ++$L16: + .set noreorder + .set nomacro +- b $L53 +- move $sp,$fp ++ b $L1 ++ lw $2,44($fp) + .set macro + .set reorder + +-$L51: +- lw $4,44($fp) +- lbu $2,0($4) ++$L35: ++ lw $2,44($fp) + .set noreorder + .set nomacro +- b $L53 +- move $sp,$fp ++ b $L1 ++ lbu $2,0($2) + .set macro + .set reorder + +-$L52: +- lw $4,44($fp) +- lhu $2,0($4) ++$L36: ++ lw $2,44($fp) + .set noreorder + .set nomacro +- b $L53 +- move $sp,$fp ++ b $L1 ++ lhu $2,0($2) + .set macro + .set reorder + + .end callback_receiver ++ .size callback_receiver, .-callback_receiver + .align 2 + .globl callback_get_receiver ++ .set nomips16 ++ .set nomicromips + .ent callback_get_receiver + DECLARE_FUNCTION(callback_get_receiver) + callback_get_receiver: + .frame $fp,8,$31 +- .mask 0x40000000,-8 ++ .mask 0x40000000,-4 + .fmask 0x00000000,0 + .set noreorder + .cpload $25 + .set reorder + addiu $sp,$sp,-8 +- sw $fp,0($sp) ++ sw $fp,4($sp) + move $fp,$sp + move $sp,$fp +- lw $fp,0($sp) + la $2,callback_receiver ++ lw $fp,4($sp) + .set noreorder + .set nomacro + j $31 +@@ -311,3 +310,4 @@ callback_get_receiver: + .set reorder + + .end callback_get_receiver ++ .size callback_get_receiver, .-callback_get_receiver +--- a/callback/vacall_r/vacall-mipsel-linux.s ++++ b/callback/vacall_r/vacall-mipsel-linux.s +@@ -1,9 +1,14 @@ + .file 1 "vacall-mips.c" + .section .mdebug.abi32 + .previous ++ .nan legacy ++ .module fp=xx ++ .module nooddspreg + .abicalls + .text + .align 2 ++ .set nomips16 ++ .set nomicromips + .ent callback_receiver + .type callback_receiver, @function + callback_receiver: +@@ -17,162 +22,164 @@ callback_receiver: + sw $fp,96($sp) + move $fp,$sp + sw $31,100($sp) +- .cprestore 16 +- sw $0,44($fp) +- sw $5,108($fp) +- addiu $5,$fp,120 + sw $4,104($fp) +- sw $5,56($fp) +- lw $4,4($2) +- addiu $5,$fp,104 +- lw $25,0($2) +- sw $5,40($fp) +- sw $6,112($fp) ++ addiu $4,$fp,104 ++ sw $5,108($fp) + addiu $5,$fp,24 ++ sw $4,40($fp) ++ addiu $4,$fp,120 ++ .cprestore 16 ++ sw $4,56($fp) ++ sw $6,112($fp) + sw $7,116($fp) +- swc1 $f12,80($fp) +- swc1 $f13,84($fp) +- swc1 $f14,88($fp) +- swc1 $f15,92($fp) +- swc1 $f12,68($fp) +- swc1 $f14,72($fp) + sw $0,24($fp) ++ sw $0,44($fp) + sw $0,48($fp) + sw $0,60($fp) + sw $0,64($fp) ++ lw $4,4($2) ++ lw $25,0($2) ++ sdc1 $f12,80($fp) ++ sdc1 $f14,88($fp) ++ swc1 $f12,68($fp) ++ swc1 $f14,72($fp) + jal $25 +- lw $5,48($fp) ++ lw $4,48($fp) + .set noreorder + .set nomacro +- beq $5,$0,$L38 +- li $4,1 # 0x1 ++ beq $4,$0,$L1 ++ li $5,1 # 0x1 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $5,$4,$L39 +- li $4,2 # 0x2 ++ beq $4,$5,$L23 ++ li $5,2 # 0x2 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $5,$4,$L39 +- li $4,3 # 0x3 ++ beq $4,$5,$L23 ++ li $5,3 # 0x3 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $5,$4,$L45 +- li $4,4 # 0x4 ++ beq $4,$5,$L29 ++ li $5,4 # 0x4 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $5,$4,$L46 +- li $4,5 # 0x5 ++ beq $4,$5,$L30 ++ li $5,5 # 0x5 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $5,$4,$L47 +- li $4,6 # 0x6 ++ beq $4,$5,$L31 ++ li $5,6 # 0x6 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $5,$4,$L43 +- li $4,7 # 0x7 ++ beq $4,$5,$L27 ++ li $5,7 # 0x7 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $5,$4,$L43 +- li $4,8 # 0x8 ++ beq $4,$5,$L27 ++ li $5,8 # 0x8 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $5,$4,$L43 +- li $4,9 # 0x9 ++ beq $4,$5,$L27 ++ li $5,9 # 0x9 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $5,$4,$L43 +- addiu $4,$5,-10 ++ beq $4,$5,$L27 ++ addiu $5,$4,-10 + .set macro + .set reorder + +- sltu $4,$4,2 ++ sltu $5,$5,2 + .set noreorder + .set nomacro +- bne $4,$0,$L48 +- li $4,12 # 0xc ++ bne $5,$0,$L32 ++ li $5,12 # 0xc + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $5,$4,$L49 +- li $4,13 # 0xd ++ beq $4,$5,$L33 ++ li $5,13 # 0xd + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $5,$4,$L50 +- li $4,14 # 0xe ++ beq $4,$5,$L34 ++ li $5,14 # 0xe + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $5,$4,$L43 +- li $4,15 # 0xf ++ beq $4,$5,$L27 ++ li $5,15 # 0xf + .set macro + .set reorder + +- bne $5,$4,$L38 ++ .set noreorder ++ .set nomacro ++ bne $4,$5,$L1 + lw $4,24($fp) ++ .set macro ++ .set reorder ++ + andi $4,$4,0x2 + .set noreorder + .set nomacro +- beq $4,$0,$L31 +- li $4,1 # 0x1 ++ beq $4,$0,$L16 ++ lw $4,52($fp) + .set macro + .set reorder + +- lw $5,52($fp) ++ li $5,1 # 0x1 + .set noreorder + .set nomacro +- beq $5,$4,$L51 +- li $4,2 # 0x2 ++ beq $4,$5,$L35 ++ li $5,2 # 0x2 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $5,$4,$L52 +- li $4,4 # 0x4 ++ beq $4,$5,$L36 ++ li $5,4 # 0x4 + .set macro + .set reorder + +- bne $5,$4,$L38 +- lw $4,44($fp) +- lw $2,0($4) +-$L38: ++ bne $4,$5,$L1 ++ lw $2,44($fp) ++ lw $2,0($2) ++$L1: + move $sp,$fp +-$L53: +- lw $31,100($sp) ++ lw $31,100($fp) + lw $fp,96($sp) + .set noreorder + .set nomacro +@@ -181,7 +188,7 @@ $L53: + .set macro + .set reorder + +-$L39: ++$L23: + move $sp,$fp + lb $2,32($fp) + lw $31,100($sp) +@@ -193,118 +200,110 @@ $L39: + .set macro + .set reorder + +-$L46: +- lh $2,32($fp) ++$L29: + .set noreorder + .set nomacro +- b $L53 +- move $sp,$fp ++ b $L1 ++ lbu $2,32($fp) + .set macro + .set reorder + +-$L43: +- lw $2,32($fp) ++$L27: + .set noreorder + .set nomacro +- b $L53 +- move $sp,$fp ++ b $L1 ++ lw $2,32($fp) + .set macro + .set reorder + +-$L45: +- lbu $2,32($fp) ++$L30: + .set noreorder + .set nomacro +- b $L53 +- move $sp,$fp ++ b $L1 ++ lh $2,32($fp) + .set macro + .set reorder + +-$L47: +- lhu $2,32($fp) ++$L31: + .set noreorder + .set nomacro +- b $L53 +- move $sp,$fp ++ b $L1 ++ lhu $2,32($fp) + .set macro + .set reorder + +-$L49: +- lwc1 $f0,32($fp) ++$L32: ++ lw $2,32($fp) + .set noreorder + .set nomacro +- b $L53 +- move $sp,$fp ++ b $L1 ++ lw $3,36($fp) + .set macro + .set reorder + +-$L48: +- lw $2,32($fp) +- lw $3,36($fp) ++$L33: + .set noreorder + .set nomacro +- b $L53 +- move $sp,$fp ++ b $L1 ++ lwc1 $f0,32($fp) + .set macro + .set reorder + +-$L50: +- lwc1 $f0,32($fp) +- lwc1 $f1,36($fp) ++$L34: + .set noreorder + .set nomacro +- b $L53 +- move $sp,$fp ++ b $L1 ++ ldc1 $f0,32($fp) + .set macro + .set reorder + +-$L31: +- lw $2,44($fp) ++$L16: + .set noreorder + .set nomacro +- b $L53 +- move $sp,$fp ++ b $L1 ++ lw $2,44($fp) + .set macro + .set reorder + +-$L51: +- lw $4,44($fp) +- lbu $2,0($4) ++$L35: ++ lw $2,44($fp) + .set noreorder + .set nomacro +- b $L53 +- move $sp,$fp ++ b $L1 ++ lbu $2,0($2) + .set macro + .set reorder + +-$L52: +- lw $4,44($fp) +- lhu $2,0($4) ++$L36: ++ lw $2,44($fp) + .set noreorder + .set nomacro +- b $L53 +- move $sp,$fp ++ b $L1 ++ lhu $2,0($2) + .set macro + .set reorder + + .end callback_receiver ++ .size callback_receiver, .-callback_receiver + .align 2 + .globl callback_get_receiver ++ .set nomips16 ++ .set nomicromips + .ent callback_get_receiver + .type callback_get_receiver, @function + callback_get_receiver: + .frame $fp,8,$31 # vars= 0, regs= 1/0, args= 0, gp= 0 +- .mask 0x40000000,-8 ++ .mask 0x40000000,-4 + .fmask 0x00000000,0 + .set noreorder + .cpload $25 + .set reorder + addiu $sp,$sp,-8 +- sw $fp,0($sp) ++ sw $fp,4($sp) + move $fp,$sp + move $sp,$fp +- lw $fp,0($sp) + la $2,callback_receiver ++ lw $fp,4($sp) + .set noreorder + .set nomacro + j $31 +@@ -313,4 +312,5 @@ callback_get_receiver: + .set reorder + + .end callback_get_receiver +- .ident "GCC: (GNU) 4.0.2" ++ .size callback_get_receiver, .-callback_get_receiver ++ .ident "GCC: (Debian 7.2.0-11) 7.2.0" +--- a/callback/vacall_r/vacall-mipsel-macro.S ++++ b/callback/vacall_r/vacall-mipsel-macro.S +@@ -1,7 +1,12 @@ + #include "asm-mips.h" + .file 1 "vacall-mips.c" ++ .nan legacy ++ .module fp=xx ++ .module nooddspreg + .text + .align 2 ++ .set nomips16 ++ .set nomicromips + .ent callback_receiver + DECLARE_FUNCTION(callback_receiver) + callback_receiver: +@@ -15,162 +20,164 @@ callback_receiver: + sw $fp,96($sp) + move $fp,$sp + sw $31,100($sp) +- .cprestore 16 +- sw $0,44($fp) +- sw $5,108($fp) +- addiu $5,$fp,120 + sw $4,104($fp) +- sw $5,56($fp) +- lw $4,4($2) +- addiu $5,$fp,104 +- lw $25,0($2) +- sw $5,40($fp) +- sw $6,112($fp) ++ addiu $4,$fp,104 ++ sw $5,108($fp) + addiu $5,$fp,24 ++ sw $4,40($fp) ++ addiu $4,$fp,120 ++ .cprestore 16 ++ sw $4,56($fp) ++ sw $6,112($fp) + sw $7,116($fp) +- swc1 $f12,80($fp) +- swc1 $f13,84($fp) +- swc1 $f14,88($fp) +- swc1 $f15,92($fp) +- swc1 $f12,68($fp) +- swc1 $f14,72($fp) + sw $0,24($fp) ++ sw $0,44($fp) + sw $0,48($fp) + sw $0,60($fp) + sw $0,64($fp) ++ lw $4,4($2) ++ lw $25,0($2) ++ sdc1 $f12,80($fp) ++ sdc1 $f14,88($fp) ++ swc1 $f12,68($fp) ++ swc1 $f14,72($fp) + jal $25 +- lw $5,48($fp) ++ lw $4,48($fp) + .set noreorder + .set nomacro +- beq $5,$0,$L38 +- li $4,1 ++ beq $4,$0,$L1 ++ li $5,1 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $5,$4,$L39 +- li $4,2 ++ beq $4,$5,$L23 ++ li $5,2 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $5,$4,$L39 +- li $4,3 ++ beq $4,$5,$L23 ++ li $5,3 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $5,$4,$L45 +- li $4,4 ++ beq $4,$5,$L29 ++ li $5,4 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $5,$4,$L46 +- li $4,5 ++ beq $4,$5,$L30 ++ li $5,5 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $5,$4,$L47 +- li $4,6 ++ beq $4,$5,$L31 ++ li $5,6 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $5,$4,$L43 +- li $4,7 ++ beq $4,$5,$L27 ++ li $5,7 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $5,$4,$L43 +- li $4,8 ++ beq $4,$5,$L27 ++ li $5,8 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $5,$4,$L43 +- li $4,9 ++ beq $4,$5,$L27 ++ li $5,9 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $5,$4,$L43 +- addiu $4,$5,-10 ++ beq $4,$5,$L27 ++ addiu $5,$4,-10 + .set macro + .set reorder + +- sltu $4,$4,2 ++ sltu $5,$5,2 + .set noreorder + .set nomacro +- bne $4,$0,$L48 +- li $4,12 ++ bne $5,$0,$L32 ++ li $5,12 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $5,$4,$L49 +- li $4,13 ++ beq $4,$5,$L33 ++ li $5,13 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $5,$4,$L50 +- li $4,14 ++ beq $4,$5,$L34 ++ li $5,14 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $5,$4,$L43 +- li $4,15 ++ beq $4,$5,$L27 ++ li $5,15 + .set macro + .set reorder + +- bne $5,$4,$L38 ++ .set noreorder ++ .set nomacro ++ bne $4,$5,$L1 + lw $4,24($fp) ++ .set macro ++ .set reorder ++ + andi $4,$4,0x2 + .set noreorder + .set nomacro +- beq $4,$0,$L31 +- li $4,1 ++ beq $4,$0,$L16 ++ lw $4,52($fp) + .set macro + .set reorder + +- lw $5,52($fp) ++ li $5,1 + .set noreorder + .set nomacro +- beq $5,$4,$L51 +- li $4,2 ++ beq $4,$5,$L35 ++ li $5,2 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $5,$4,$L52 +- li $4,4 ++ beq $4,$5,$L36 ++ li $5,4 + .set macro + .set reorder + +- bne $5,$4,$L38 +- lw $4,44($fp) +- lw $2,0($4) +-$L38: ++ bne $4,$5,$L1 ++ lw $2,44($fp) ++ lw $2,0($2) ++$L1: + move $sp,$fp +-$L53: +- lw $31,100($sp) ++ lw $31,100($fp) + lw $fp,96($sp) + .set noreorder + .set nomacro +@@ -179,7 +186,7 @@ $L53: + .set macro + .set reorder + +-$L39: ++$L23: + move $sp,$fp + lb $2,32($fp) + lw $31,100($sp) +@@ -191,118 +198,110 @@ $L39: + .set macro + .set reorder + +-$L46: +- lh $2,32($fp) ++$L29: + .set noreorder + .set nomacro +- b $L53 +- move $sp,$fp ++ b $L1 ++ lbu $2,32($fp) + .set macro + .set reorder + +-$L43: +- lw $2,32($fp) ++$L27: + .set noreorder + .set nomacro +- b $L53 +- move $sp,$fp ++ b $L1 ++ lw $2,32($fp) + .set macro + .set reorder + +-$L45: +- lbu $2,32($fp) ++$L30: + .set noreorder + .set nomacro +- b $L53 +- move $sp,$fp ++ b $L1 ++ lh $2,32($fp) + .set macro + .set reorder + +-$L47: +- lhu $2,32($fp) ++$L31: + .set noreorder + .set nomacro +- b $L53 +- move $sp,$fp ++ b $L1 ++ lhu $2,32($fp) + .set macro + .set reorder + +-$L49: +- lwc1 $f0,32($fp) ++$L32: ++ lw $2,32($fp) + .set noreorder + .set nomacro +- b $L53 +- move $sp,$fp ++ b $L1 ++ lw $3,36($fp) + .set macro + .set reorder + +-$L48: +- lw $2,32($fp) +- lw $3,36($fp) ++$L33: + .set noreorder + .set nomacro +- b $L53 +- move $sp,$fp ++ b $L1 ++ lwc1 $f0,32($fp) + .set macro + .set reorder + +-$L50: +- lwc1 $f0,32($fp) +- lwc1 $f1,36($fp) ++$L34: + .set noreorder + .set nomacro +- b $L53 +- move $sp,$fp ++ b $L1 ++ ldc1 $f0,32($fp) + .set macro + .set reorder + +-$L31: +- lw $2,44($fp) ++$L16: + .set noreorder + .set nomacro +- b $L53 +- move $sp,$fp ++ b $L1 ++ lw $2,44($fp) + .set macro + .set reorder + +-$L51: +- lw $4,44($fp) +- lbu $2,0($4) ++$L35: ++ lw $2,44($fp) + .set noreorder + .set nomacro +- b $L53 +- move $sp,$fp ++ b $L1 ++ lbu $2,0($2) + .set macro + .set reorder + +-$L52: +- lw $4,44($fp) +- lhu $2,0($4) ++$L36: ++ lw $2,44($fp) + .set noreorder + .set nomacro +- b $L53 +- move $sp,$fp ++ b $L1 ++ lhu $2,0($2) + .set macro + .set reorder + + .end callback_receiver ++ .size callback_receiver, .-callback_receiver + .align 2 + .globl callback_get_receiver ++ .set nomips16 ++ .set nomicromips + .ent callback_get_receiver + DECLARE_FUNCTION(callback_get_receiver) + callback_get_receiver: + .frame $fp,8,$31 +- .mask 0x40000000,-8 ++ .mask 0x40000000,-4 + .fmask 0x00000000,0 + .set noreorder + .cpload $25 + .set reorder + addiu $sp,$sp,-8 +- sw $fp,0($sp) ++ sw $fp,4($sp) + move $fp,$sp + move $sp,$fp +- lw $fp,0($sp) + la $2,callback_receiver ++ lw $fp,4($sp) + .set noreorder + .set nomacro + j $31 +@@ -311,3 +310,4 @@ callback_get_receiver: + .set reorder + + .end callback_get_receiver ++ .size callback_get_receiver, .-callback_get_receiver +--- a/vacall/vacall-mipseb-linux.s ++++ b/vacall/vacall-mipseb-linux.s +@@ -1,10 +1,15 @@ + .file 1 "vacall-mips.c" + .section .mdebug.abi32 + .previous ++ .nan legacy ++ .module fp=xx ++ .module nooddspreg + .abicalls + .text + .align 2 + .globl vacall_receiver ++ .set nomips16 ++ .set nomicromips + .ent vacall_receiver + .type vacall_receiver, @function + vacall_receiver: +@@ -18,162 +23,164 @@ vacall_receiver: + sw $fp,96($sp) + move $fp,$sp + sw $31,100($sp) +- .cprestore 16 +- sw $4,104($fp) +- la $8,vacall_function +- addiu $4,$fp,120 +- sw $4,56($fp) +- lw $25,0($8) +- addiu $4,$fp,104 + sw $5,108($fp) +- sw $4,40($fp) ++ addiu $5,$fp,104 ++ sw $4,104($fp) ++ addiu $4,$fp,24 ++ sw $5,40($fp) ++ addiu $5,$fp,120 ++ sdc1 $f12,80($fp) ++ sw $5,56($fp) ++ la $5,vacall_function ++ sdc1 $f14,88($fp) ++ .cprestore 16 + sw $6,112($fp) + sw $7,116($fp) +- swc1 $f12,84($fp) +- swc1 $f13,80($fp) +- swc1 $f14,92($fp) +- swc1 $f15,88($fp) +- swc1 $f12,68($fp) +- swc1 $f14,72($fp) + sw $0,24($fp) + sw $0,44($fp) + sw $0,48($fp) + sw $0,60($fp) + sw $0,64($fp) +- addiu $4,$fp,24 ++ lw $25,0($5) ++ swc1 $f12,68($fp) ++ swc1 $f14,72($fp) + jal $25 +- lw $5,48($fp) ++ lw $4,48($fp) + .set noreorder + .set nomacro +- beq $5,$0,$L38 +- li $4,1 # 0x1 ++ beq $4,$0,$L1 ++ li $5,1 # 0x1 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $5,$4,$L39 +- li $4,2 # 0x2 ++ beq $4,$5,$L23 ++ li $5,2 # 0x2 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $5,$4,$L39 +- li $4,3 # 0x3 ++ beq $4,$5,$L23 ++ li $5,3 # 0x3 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $5,$4,$L45 +- li $4,4 # 0x4 ++ beq $4,$5,$L29 ++ li $5,4 # 0x4 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $5,$4,$L46 +- li $4,5 # 0x5 ++ beq $4,$5,$L30 ++ li $5,5 # 0x5 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $5,$4,$L47 +- li $4,6 # 0x6 ++ beq $4,$5,$L31 ++ li $5,6 # 0x6 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $5,$4,$L43 +- li $4,7 # 0x7 ++ beq $4,$5,$L27 ++ li $5,7 # 0x7 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $5,$4,$L43 +- li $4,8 # 0x8 ++ beq $4,$5,$L27 ++ li $5,8 # 0x8 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $5,$4,$L43 +- li $4,9 # 0x9 ++ beq $4,$5,$L27 ++ li $5,9 # 0x9 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $5,$4,$L43 +- addiu $4,$5,-10 ++ beq $4,$5,$L27 ++ addiu $5,$4,-10 + .set macro + .set reorder + +- sltu $4,$4,2 ++ sltu $5,$5,2 + .set noreorder + .set nomacro +- bne $4,$0,$L48 +- li $4,12 # 0xc ++ bne $5,$0,$L32 ++ li $5,12 # 0xc + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $5,$4,$L49 +- li $4,13 # 0xd ++ beq $4,$5,$L33 ++ li $5,13 # 0xd + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $5,$4,$L50 +- li $4,14 # 0xe ++ beq $4,$5,$L34 ++ li $5,14 # 0xe + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $5,$4,$L43 +- li $4,15 # 0xf ++ beq $4,$5,$L27 ++ li $5,15 # 0xf + .set macro + .set reorder + +- bne $5,$4,$L38 ++ .set noreorder ++ .set nomacro ++ bne $4,$5,$L1 + lw $4,24($fp) ++ .set macro ++ .set reorder ++ + andi $4,$4,0x2 + .set noreorder + .set nomacro +- beq $4,$0,$L31 +- li $4,1 # 0x1 ++ beq $4,$0,$L16 ++ lw $4,52($fp) + .set macro + .set reorder + +- lw $5,52($fp) ++ li $5,1 # 0x1 + .set noreorder + .set nomacro +- beq $5,$4,$L51 +- li $4,2 # 0x2 ++ beq $4,$5,$L35 ++ li $5,2 # 0x2 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $5,$4,$L52 +- li $4,4 # 0x4 ++ beq $4,$5,$L36 ++ li $5,4 # 0x4 + .set macro + .set reorder + +- bne $5,$4,$L38 +- lw $4,44($fp) +- lw $2,0($4) +-$L38: ++ bne $4,$5,$L1 ++ lw $2,44($fp) ++ lw $2,0($2) ++$L1: + move $sp,$fp +-$L53: +- lw $31,100($sp) ++ lw $31,100($fp) + lw $fp,96($sp) + .set noreorder + .set nomacro +@@ -182,7 +189,7 @@ $L53: + .set macro + .set reorder + +-$L39: ++$L23: + move $sp,$fp + lb $2,32($fp) + lw $31,100($sp) +@@ -194,99 +201,89 @@ $L39: + .set macro + .set reorder + +-$L46: +- lh $2,32($fp) ++$L29: + .set noreorder + .set nomacro +- b $L53 +- move $sp,$fp ++ b $L1 ++ lbu $2,32($fp) + .set macro + .set reorder + +-$L43: +- lw $2,32($fp) ++$L27: + .set noreorder + .set nomacro +- b $L53 +- move $sp,$fp ++ b $L1 ++ lw $2,32($fp) + .set macro + .set reorder + +-$L45: +- lbu $2,32($fp) ++$L30: + .set noreorder + .set nomacro +- b $L53 +- move $sp,$fp ++ b $L1 ++ lh $2,32($fp) + .set macro + .set reorder + +-$L47: +- lhu $2,32($fp) ++$L31: + .set noreorder + .set nomacro +- b $L53 +- move $sp,$fp ++ b $L1 ++ lhu $2,32($fp) + .set macro + .set reorder + +-$L49: +- lwc1 $f0,32($fp) ++$L32: ++ lw $2,32($fp) + .set noreorder + .set nomacro +- b $L53 +- move $sp,$fp ++ b $L1 ++ lw $3,36($fp) + .set macro + .set reorder + +-$L48: +- lw $2,32($fp) +- lw $3,36($fp) ++$L33: + .set noreorder + .set nomacro +- b $L53 +- move $sp,$fp ++ b $L1 ++ lwc1 $f0,32($fp) + .set macro + .set reorder + +-$L50: +- lwc1 $f0,36($fp) +- lwc1 $f1,32($fp) ++$L34: + .set noreorder + .set nomacro +- b $L53 +- move $sp,$fp ++ b $L1 ++ ldc1 $f0,32($fp) + .set macro + .set reorder + +-$L31: +- lw $2,44($fp) ++$L16: + .set noreorder + .set nomacro +- b $L53 +- move $sp,$fp ++ b $L1 ++ lw $2,44($fp) + .set macro + .set reorder + +-$L51: +- lw $4,44($fp) +- lbu $2,0($4) ++$L35: ++ lw $2,44($fp) + .set noreorder + .set nomacro +- b $L53 +- move $sp,$fp ++ b $L1 ++ lbu $2,0($2) + .set macro + .set reorder + +-$L52: +- lw $4,44($fp) +- lhu $2,0($4) ++$L36: ++ lw $2,44($fp) + .set noreorder + .set nomacro +- b $L53 +- move $sp,$fp ++ b $L1 ++ lhu $2,0($2) + .set macro + .set reorder + + .end vacall_receiver +- .ident "GCC: (GNU) 4.0.2" ++ .size vacall_receiver, .-vacall_receiver ++ .ident "GCC: (Debian 7.2.0-11) 7.2.0" +--- a/vacall/vacall-mipseb-macro.S ++++ b/vacall/vacall-mipseb-macro.S +@@ -1,8 +1,13 @@ + #include "asm-mips.h" + .file 1 "vacall-mips.c" ++ .nan legacy ++ .module fp=xx ++ .module nooddspreg + .text + .align 2 + .globl vacall_receiver ++ .set nomips16 ++ .set nomicromips + .ent vacall_receiver + DECLARE_FUNCTION(vacall_receiver) + vacall_receiver: +@@ -16,162 +21,164 @@ vacall_receiver: + sw $fp,96($sp) + move $fp,$sp + sw $31,100($sp) +- .cprestore 16 +- sw $4,104($fp) +- la $8,vacall_function +- addiu $4,$fp,120 +- sw $4,56($fp) +- lw $25,0($8) +- addiu $4,$fp,104 + sw $5,108($fp) +- sw $4,40($fp) ++ addiu $5,$fp,104 ++ sw $4,104($fp) ++ addiu $4,$fp,24 ++ sw $5,40($fp) ++ addiu $5,$fp,120 ++ sdc1 $f12,80($fp) ++ sw $5,56($fp) ++ la $5,vacall_function ++ sdc1 $f14,88($fp) ++ .cprestore 16 + sw $6,112($fp) + sw $7,116($fp) +- swc1 $f12,84($fp) +- swc1 $f13,80($fp) +- swc1 $f14,92($fp) +- swc1 $f15,88($fp) +- swc1 $f12,68($fp) +- swc1 $f14,72($fp) + sw $0,24($fp) + sw $0,44($fp) + sw $0,48($fp) + sw $0,60($fp) + sw $0,64($fp) +- addiu $4,$fp,24 ++ lw $25,0($5) ++ swc1 $f12,68($fp) ++ swc1 $f14,72($fp) + jal $25 +- lw $5,48($fp) ++ lw $4,48($fp) + .set noreorder + .set nomacro +- beq $5,$0,$L38 +- li $4,1 ++ beq $4,$0,$L1 ++ li $5,1 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $5,$4,$L39 +- li $4,2 ++ beq $4,$5,$L23 ++ li $5,2 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $5,$4,$L39 +- li $4,3 ++ beq $4,$5,$L23 ++ li $5,3 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $5,$4,$L45 +- li $4,4 ++ beq $4,$5,$L29 ++ li $5,4 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $5,$4,$L46 +- li $4,5 ++ beq $4,$5,$L30 ++ li $5,5 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $5,$4,$L47 +- li $4,6 ++ beq $4,$5,$L31 ++ li $5,6 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $5,$4,$L43 +- li $4,7 ++ beq $4,$5,$L27 ++ li $5,7 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $5,$4,$L43 +- li $4,8 ++ beq $4,$5,$L27 ++ li $5,8 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $5,$4,$L43 +- li $4,9 ++ beq $4,$5,$L27 ++ li $5,9 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $5,$4,$L43 +- addiu $4,$5,-10 ++ beq $4,$5,$L27 ++ addiu $5,$4,-10 + .set macro + .set reorder + +- sltu $4,$4,2 ++ sltu $5,$5,2 + .set noreorder + .set nomacro +- bne $4,$0,$L48 +- li $4,12 ++ bne $5,$0,$L32 ++ li $5,12 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $5,$4,$L49 +- li $4,13 ++ beq $4,$5,$L33 ++ li $5,13 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $5,$4,$L50 +- li $4,14 ++ beq $4,$5,$L34 ++ li $5,14 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $5,$4,$L43 +- li $4,15 ++ beq $4,$5,$L27 ++ li $5,15 + .set macro + .set reorder + +- bne $5,$4,$L38 ++ .set noreorder ++ .set nomacro ++ bne $4,$5,$L1 + lw $4,24($fp) ++ .set macro ++ .set reorder ++ + andi $4,$4,0x2 + .set noreorder + .set nomacro +- beq $4,$0,$L31 +- li $4,1 ++ beq $4,$0,$L16 ++ lw $4,52($fp) + .set macro + .set reorder + +- lw $5,52($fp) ++ li $5,1 + .set noreorder + .set nomacro +- beq $5,$4,$L51 +- li $4,2 ++ beq $4,$5,$L35 ++ li $5,2 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $5,$4,$L52 +- li $4,4 ++ beq $4,$5,$L36 ++ li $5,4 + .set macro + .set reorder + +- bne $5,$4,$L38 +- lw $4,44($fp) +- lw $2,0($4) +-$L38: ++ bne $4,$5,$L1 ++ lw $2,44($fp) ++ lw $2,0($2) ++$L1: + move $sp,$fp +-$L53: +- lw $31,100($sp) ++ lw $31,100($fp) + lw $fp,96($sp) + .set noreorder + .set nomacro +@@ -180,7 +187,7 @@ $L53: + .set macro + .set reorder + +-$L39: ++$L23: + move $sp,$fp + lb $2,32($fp) + lw $31,100($sp) +@@ -192,98 +199,88 @@ $L39: + .set macro + .set reorder + +-$L46: +- lh $2,32($fp) ++$L29: + .set noreorder + .set nomacro +- b $L53 +- move $sp,$fp ++ b $L1 ++ lbu $2,32($fp) + .set macro + .set reorder + +-$L43: +- lw $2,32($fp) ++$L27: + .set noreorder + .set nomacro +- b $L53 +- move $sp,$fp ++ b $L1 ++ lw $2,32($fp) + .set macro + .set reorder + +-$L45: +- lbu $2,32($fp) ++$L30: + .set noreorder + .set nomacro +- b $L53 +- move $sp,$fp ++ b $L1 ++ lh $2,32($fp) + .set macro + .set reorder + +-$L47: +- lhu $2,32($fp) ++$L31: + .set noreorder + .set nomacro +- b $L53 +- move $sp,$fp ++ b $L1 ++ lhu $2,32($fp) + .set macro + .set reorder + +-$L49: +- lwc1 $f0,32($fp) ++$L32: ++ lw $2,32($fp) + .set noreorder + .set nomacro +- b $L53 +- move $sp,$fp ++ b $L1 ++ lw $3,36($fp) + .set macro + .set reorder + +-$L48: +- lw $2,32($fp) +- lw $3,36($fp) ++$L33: + .set noreorder + .set nomacro +- b $L53 +- move $sp,$fp ++ b $L1 ++ lwc1 $f0,32($fp) + .set macro + .set reorder + +-$L50: +- lwc1 $f0,36($fp) +- lwc1 $f1,32($fp) ++$L34: + .set noreorder + .set nomacro +- b $L53 +- move $sp,$fp ++ b $L1 ++ ldc1 $f0,32($fp) + .set macro + .set reorder + +-$L31: +- lw $2,44($fp) ++$L16: + .set noreorder + .set nomacro +- b $L53 +- move $sp,$fp ++ b $L1 ++ lw $2,44($fp) + .set macro + .set reorder + +-$L51: +- lw $4,44($fp) +- lbu $2,0($4) ++$L35: ++ lw $2,44($fp) + .set noreorder + .set nomacro +- b $L53 +- move $sp,$fp ++ b $L1 ++ lbu $2,0($2) + .set macro + .set reorder + +-$L52: +- lw $4,44($fp) +- lhu $2,0($4) ++$L36: ++ lw $2,44($fp) + .set noreorder + .set nomacro +- b $L53 +- move $sp,$fp ++ b $L1 ++ lhu $2,0($2) + .set macro + .set reorder + + .end vacall_receiver ++ .size vacall_receiver, .-vacall_receiver +--- a/vacall/vacall-mipsel-linux.s ++++ b/vacall/vacall-mipsel-linux.s +@@ -1,10 +1,15 @@ + .file 1 "vacall-mips.c" + .section .mdebug.abi32 + .previous ++ .nan legacy ++ .module fp=xx ++ .module nooddspreg + .abicalls + .text + .align 2 + .globl vacall_receiver ++ .set nomips16 ++ .set nomicromips + .ent vacall_receiver + .type vacall_receiver, @function + vacall_receiver: +@@ -18,162 +23,164 @@ vacall_receiver: + sw $fp,96($sp) + move $fp,$sp + sw $31,100($sp) +- .cprestore 16 +- sw $4,104($fp) +- la $8,vacall_function +- addiu $4,$fp,120 +- sw $4,56($fp) +- lw $25,0($8) +- addiu $4,$fp,104 + sw $5,108($fp) +- sw $4,40($fp) ++ addiu $5,$fp,104 ++ sw $4,104($fp) ++ addiu $4,$fp,24 ++ sw $5,40($fp) ++ addiu $5,$fp,120 ++ sdc1 $f12,80($fp) ++ sw $5,56($fp) ++ la $5,vacall_function ++ sdc1 $f14,88($fp) ++ .cprestore 16 + sw $6,112($fp) + sw $7,116($fp) +- swc1 $f12,80($fp) +- swc1 $f13,84($fp) +- swc1 $f14,88($fp) +- swc1 $f15,92($fp) +- swc1 $f12,68($fp) +- swc1 $f14,72($fp) + sw $0,24($fp) + sw $0,44($fp) + sw $0,48($fp) + sw $0,60($fp) + sw $0,64($fp) +- addiu $4,$fp,24 ++ lw $25,0($5) ++ swc1 $f12,68($fp) ++ swc1 $f14,72($fp) + jal $25 +- lw $5,48($fp) ++ lw $4,48($fp) + .set noreorder + .set nomacro +- beq $5,$0,$L38 +- li $4,1 # 0x1 ++ beq $4,$0,$L1 ++ li $5,1 # 0x1 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $5,$4,$L39 +- li $4,2 # 0x2 ++ beq $4,$5,$L23 ++ li $5,2 # 0x2 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $5,$4,$L39 +- li $4,3 # 0x3 ++ beq $4,$5,$L23 ++ li $5,3 # 0x3 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $5,$4,$L45 +- li $4,4 # 0x4 ++ beq $4,$5,$L29 ++ li $5,4 # 0x4 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $5,$4,$L46 +- li $4,5 # 0x5 ++ beq $4,$5,$L30 ++ li $5,5 # 0x5 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $5,$4,$L47 +- li $4,6 # 0x6 ++ beq $4,$5,$L31 ++ li $5,6 # 0x6 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $5,$4,$L43 +- li $4,7 # 0x7 ++ beq $4,$5,$L27 ++ li $5,7 # 0x7 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $5,$4,$L43 +- li $4,8 # 0x8 ++ beq $4,$5,$L27 ++ li $5,8 # 0x8 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $5,$4,$L43 +- li $4,9 # 0x9 ++ beq $4,$5,$L27 ++ li $5,9 # 0x9 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $5,$4,$L43 +- addiu $4,$5,-10 ++ beq $4,$5,$L27 ++ addiu $5,$4,-10 + .set macro + .set reorder + +- sltu $4,$4,2 ++ sltu $5,$5,2 + .set noreorder + .set nomacro +- bne $4,$0,$L48 +- li $4,12 # 0xc ++ bne $5,$0,$L32 ++ li $5,12 # 0xc + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $5,$4,$L49 +- li $4,13 # 0xd ++ beq $4,$5,$L33 ++ li $5,13 # 0xd + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $5,$4,$L50 +- li $4,14 # 0xe ++ beq $4,$5,$L34 ++ li $5,14 # 0xe + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $5,$4,$L43 +- li $4,15 # 0xf ++ beq $4,$5,$L27 ++ li $5,15 # 0xf + .set macro + .set reorder + +- bne $5,$4,$L38 ++ .set noreorder ++ .set nomacro ++ bne $4,$5,$L1 + lw $4,24($fp) ++ .set macro ++ .set reorder ++ + andi $4,$4,0x2 + .set noreorder + .set nomacro +- beq $4,$0,$L31 +- li $4,1 # 0x1 ++ beq $4,$0,$L16 ++ lw $4,52($fp) + .set macro + .set reorder + +- lw $5,52($fp) ++ li $5,1 # 0x1 + .set noreorder + .set nomacro +- beq $5,$4,$L51 +- li $4,2 # 0x2 ++ beq $4,$5,$L35 ++ li $5,2 # 0x2 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $5,$4,$L52 +- li $4,4 # 0x4 ++ beq $4,$5,$L36 ++ li $5,4 # 0x4 + .set macro + .set reorder + +- bne $5,$4,$L38 +- lw $4,44($fp) +- lw $2,0($4) +-$L38: ++ bne $4,$5,$L1 ++ lw $2,44($fp) ++ lw $2,0($2) ++$L1: + move $sp,$fp +-$L53: +- lw $31,100($sp) ++ lw $31,100($fp) + lw $fp,96($sp) + .set noreorder + .set nomacro +@@ -182,7 +189,7 @@ $L53: + .set macro + .set reorder + +-$L39: ++$L23: + move $sp,$fp + lb $2,32($fp) + lw $31,100($sp) +@@ -194,99 +201,89 @@ $L39: + .set macro + .set reorder + +-$L46: +- lh $2,32($fp) ++$L29: + .set noreorder + .set nomacro +- b $L53 +- move $sp,$fp ++ b $L1 ++ lbu $2,32($fp) + .set macro + .set reorder + +-$L43: +- lw $2,32($fp) ++$L27: + .set noreorder + .set nomacro +- b $L53 +- move $sp,$fp ++ b $L1 ++ lw $2,32($fp) + .set macro + .set reorder + +-$L45: +- lbu $2,32($fp) ++$L30: + .set noreorder + .set nomacro +- b $L53 +- move $sp,$fp ++ b $L1 ++ lh $2,32($fp) + .set macro + .set reorder + +-$L47: +- lhu $2,32($fp) ++$L31: + .set noreorder + .set nomacro +- b $L53 +- move $sp,$fp ++ b $L1 ++ lhu $2,32($fp) + .set macro + .set reorder + +-$L49: +- lwc1 $f0,32($fp) ++$L32: ++ lw $2,32($fp) + .set noreorder + .set nomacro +- b $L53 +- move $sp,$fp ++ b $L1 ++ lw $3,36($fp) + .set macro + .set reorder + +-$L48: +- lw $2,32($fp) +- lw $3,36($fp) ++$L33: + .set noreorder + .set nomacro +- b $L53 +- move $sp,$fp ++ b $L1 ++ lwc1 $f0,32($fp) + .set macro + .set reorder + +-$L50: +- lwc1 $f0,32($fp) +- lwc1 $f1,36($fp) ++$L34: + .set noreorder + .set nomacro +- b $L53 +- move $sp,$fp ++ b $L1 ++ ldc1 $f0,32($fp) + .set macro + .set reorder + +-$L31: +- lw $2,44($fp) ++$L16: + .set noreorder + .set nomacro +- b $L53 +- move $sp,$fp ++ b $L1 ++ lw $2,44($fp) + .set macro + .set reorder + +-$L51: +- lw $4,44($fp) +- lbu $2,0($4) ++$L35: ++ lw $2,44($fp) + .set noreorder + .set nomacro +- b $L53 +- move $sp,$fp ++ b $L1 ++ lbu $2,0($2) + .set macro + .set reorder + +-$L52: +- lw $4,44($fp) +- lhu $2,0($4) ++$L36: ++ lw $2,44($fp) + .set noreorder + .set nomacro +- b $L53 +- move $sp,$fp ++ b $L1 ++ lhu $2,0($2) + .set macro + .set reorder + + .end vacall_receiver +- .ident "GCC: (GNU) 4.0.2" ++ .size vacall_receiver, .-vacall_receiver ++ .ident "GCC: (Debian 7.2.0-11) 7.2.0" +--- a/vacall/vacall-mipsel-macro.S ++++ b/vacall/vacall-mipsel-macro.S +@@ -1,8 +1,13 @@ + #include "asm-mips.h" + .file 1 "vacall-mips.c" ++ .nan legacy ++ .module fp=xx ++ .module nooddspreg + .text + .align 2 + .globl vacall_receiver ++ .set nomips16 ++ .set nomicromips + .ent vacall_receiver + DECLARE_FUNCTION(vacall_receiver) + vacall_receiver: +@@ -16,162 +21,164 @@ vacall_receiver: + sw $fp,96($sp) + move $fp,$sp + sw $31,100($sp) +- .cprestore 16 +- sw $4,104($fp) +- la $8,vacall_function +- addiu $4,$fp,120 +- sw $4,56($fp) +- lw $25,0($8) +- addiu $4,$fp,104 + sw $5,108($fp) +- sw $4,40($fp) ++ addiu $5,$fp,104 ++ sw $4,104($fp) ++ addiu $4,$fp,24 ++ sw $5,40($fp) ++ addiu $5,$fp,120 ++ sdc1 $f12,80($fp) ++ sw $5,56($fp) ++ la $5,vacall_function ++ sdc1 $f14,88($fp) ++ .cprestore 16 + sw $6,112($fp) + sw $7,116($fp) +- swc1 $f12,80($fp) +- swc1 $f13,84($fp) +- swc1 $f14,88($fp) +- swc1 $f15,92($fp) +- swc1 $f12,68($fp) +- swc1 $f14,72($fp) + sw $0,24($fp) + sw $0,44($fp) + sw $0,48($fp) + sw $0,60($fp) + sw $0,64($fp) +- addiu $4,$fp,24 ++ lw $25,0($5) ++ swc1 $f12,68($fp) ++ swc1 $f14,72($fp) + jal $25 +- lw $5,48($fp) ++ lw $4,48($fp) + .set noreorder + .set nomacro +- beq $5,$0,$L38 +- li $4,1 ++ beq $4,$0,$L1 ++ li $5,1 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $5,$4,$L39 +- li $4,2 ++ beq $4,$5,$L23 ++ li $5,2 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $5,$4,$L39 +- li $4,3 ++ beq $4,$5,$L23 ++ li $5,3 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $5,$4,$L45 +- li $4,4 ++ beq $4,$5,$L29 ++ li $5,4 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $5,$4,$L46 +- li $4,5 ++ beq $4,$5,$L30 ++ li $5,5 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $5,$4,$L47 +- li $4,6 ++ beq $4,$5,$L31 ++ li $5,6 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $5,$4,$L43 +- li $4,7 ++ beq $4,$5,$L27 ++ li $5,7 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $5,$4,$L43 +- li $4,8 ++ beq $4,$5,$L27 ++ li $5,8 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $5,$4,$L43 +- li $4,9 ++ beq $4,$5,$L27 ++ li $5,9 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $5,$4,$L43 +- addiu $4,$5,-10 ++ beq $4,$5,$L27 ++ addiu $5,$4,-10 + .set macro + .set reorder + +- sltu $4,$4,2 ++ sltu $5,$5,2 + .set noreorder + .set nomacro +- bne $4,$0,$L48 +- li $4,12 ++ bne $5,$0,$L32 ++ li $5,12 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $5,$4,$L49 +- li $4,13 ++ beq $4,$5,$L33 ++ li $5,13 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $5,$4,$L50 +- li $4,14 ++ beq $4,$5,$L34 ++ li $5,14 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $5,$4,$L43 +- li $4,15 ++ beq $4,$5,$L27 ++ li $5,15 + .set macro + .set reorder + +- bne $5,$4,$L38 ++ .set noreorder ++ .set nomacro ++ bne $4,$5,$L1 + lw $4,24($fp) ++ .set macro ++ .set reorder ++ + andi $4,$4,0x2 + .set noreorder + .set nomacro +- beq $4,$0,$L31 +- li $4,1 ++ beq $4,$0,$L16 ++ lw $4,52($fp) + .set macro + .set reorder + +- lw $5,52($fp) ++ li $5,1 + .set noreorder + .set nomacro +- beq $5,$4,$L51 +- li $4,2 ++ beq $4,$5,$L35 ++ li $5,2 + .set macro + .set reorder + + .set noreorder + .set nomacro +- beq $5,$4,$L52 +- li $4,4 ++ beq $4,$5,$L36 ++ li $5,4 + .set macro + .set reorder + +- bne $5,$4,$L38 +- lw $4,44($fp) +- lw $2,0($4) +-$L38: ++ bne $4,$5,$L1 ++ lw $2,44($fp) ++ lw $2,0($2) ++$L1: + move $sp,$fp +-$L53: +- lw $31,100($sp) ++ lw $31,100($fp) + lw $fp,96($sp) + .set noreorder + .set nomacro +@@ -180,7 +187,7 @@ $L53: + .set macro + .set reorder + +-$L39: ++$L23: + move $sp,$fp + lb $2,32($fp) + lw $31,100($sp) +@@ -192,98 +199,88 @@ $L39: + .set macro + .set reorder + +-$L46: +- lh $2,32($fp) ++$L29: + .set noreorder + .set nomacro +- b $L53 +- move $sp,$fp ++ b $L1 ++ lbu $2,32($fp) + .set macro + .set reorder + +-$L43: +- lw $2,32($fp) ++$L27: + .set noreorder + .set nomacro +- b $L53 +- move $sp,$fp ++ b $L1 ++ lw $2,32($fp) + .set macro + .set reorder + +-$L45: +- lbu $2,32($fp) ++$L30: + .set noreorder + .set nomacro +- b $L53 +- move $sp,$fp ++ b $L1 ++ lh $2,32($fp) + .set macro + .set reorder + +-$L47: +- lhu $2,32($fp) ++$L31: + .set noreorder + .set nomacro +- b $L53 +- move $sp,$fp ++ b $L1 ++ lhu $2,32($fp) + .set macro + .set reorder + +-$L49: +- lwc1 $f0,32($fp) ++$L32: ++ lw $2,32($fp) + .set noreorder + .set nomacro +- b $L53 +- move $sp,$fp ++ b $L1 ++ lw $3,36($fp) + .set macro + .set reorder + +-$L48: +- lw $2,32($fp) +- lw $3,36($fp) ++$L33: + .set noreorder + .set nomacro +- b $L53 +- move $sp,$fp ++ b $L1 ++ lwc1 $f0,32($fp) + .set macro + .set reorder + +-$L50: +- lwc1 $f0,32($fp) +- lwc1 $f1,36($fp) ++$L34: + .set noreorder + .set nomacro +- b $L53 +- move $sp,$fp ++ b $L1 ++ ldc1 $f0,32($fp) + .set macro + .set reorder + +-$L31: +- lw $2,44($fp) ++$L16: + .set noreorder + .set nomacro +- b $L53 +- move $sp,$fp ++ b $L1 ++ lw $2,44($fp) + .set macro + .set reorder + +-$L51: +- lw $4,44($fp) +- lbu $2,0($4) ++$L35: ++ lw $2,44($fp) + .set noreorder + .set nomacro +- b $L53 +- move $sp,$fp ++ b $L1 ++ lbu $2,0($2) + .set macro + .set reorder + +-$L52: +- lw $4,44($fp) +- lhu $2,0($4) ++$L36: ++ lw $2,44($fp) + .set noreorder + .set nomacro +- b $L53 +- move $sp,$fp ++ b $L1 ++ lhu $2,0($2) + .set macro + .set reorder + + .end vacall_receiver ++ .size vacall_receiver, .-vacall_receiver diff --git a/patches/series b/patches/series new file mode 100644 index 0000000..1038e07 --- /dev/null +++ b/patches/series @@ -0,0 +1 @@ +mips-fpxx.patch diff --git a/rules b/rules new file mode 100755 index 0000000..2f191c8 --- /dev/null +++ b/rules @@ -0,0 +1,8 @@ +#!/usr/bin/make -f + +include /usr/share/dpkg/default.mk + +export ACLOCAL = aclocal -I$(CURDIR)/m4 -I$(CURDIR)/gnulib-m4 + +%: + dh $@ --no-parallel diff --git a/source/format b/source/format new file mode 100644 index 0000000..163aaf8 --- /dev/null +++ b/source/format @@ -0,0 +1 @@ +3.0 (quilt) diff --git a/upstream/signing-key.asc b/upstream/signing-key.asc new file mode 100644 index 0000000..814142b --- /dev/null +++ b/upstream/signing-key.asc @@ -0,0 +1,53 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- + +mQINBFJQWp0BEADquWF30FIja/DgTROcki+lIhbtxhm7eagnA2+p+c3G6D4AwhWW +1vOgfFNiR+MyFmF1oEanNyJJ1OpiH0EUNTVBH7TNH8XAx9lSuUOAoHEVzKfuKjow +PgbbVMVKHHoUx6XzHM4CUj4E2apmgMdH62/brNtFvElGjXEUOFKrvI3ucVUKJWw0 +8lwMhZoybtvwsojROcitePmoaQRfwJfMqIl/t0LsRD0bqfajD7AczptdYJgmJ/04 +UDCTI51p1VKYkLqMuqnNq8nnrX11AqKf9K31XFtZk8XhqL2VsAM5Jw8zAFkXJ9Mx +DxhIH/LWs8i3DnS2cjjcN7oEPsLa37bDZHu9S6vGq6HzIRtEVEhepDDcnTbZb45Q +z5RWOHu3fsTZj+eHQerHxGtoaYuk44pxJB48dca77fAOPlQkvSQxhy6HKXVHfwmh +KCc5NpDu4/hk9Vi8eqDvCPXvdBQMZZXHxRBJJbhT8o6k/TawepMnWSOI/Y2iZAwr +Z3hX9bvcdY5+urqlFtjKG+KWkDkq5WcfRxsBlY78nfxkhlwq61zBemTscjZ1HVXW +EZywklay1vKS+d3/F3elgBVr94ta0SHo7OPBG/gOxiAMbwiLaWE0Hg6Ycs8exT8t +NTv/ZG5wbEWqBuzHo9mL9/j3tOQLNoVlYZ1SYpbhDVEkDo6uBXe10ngt4QARAQAB +tDhCcnVubyBIYWlibGUgKE9wZW4gU291cmNlIERldmVsb3BtZW50KSA8YnJ1bm9A +Y2xpc3Aub3JnPokCPgQTAQIAKAUCUlBanQIbAwUJC0c1AAYLCQgHAwIGFQgCCQoL +BBYCAwECHgECF4AACgkQT0lKlC5GFsI3YBAAlCcuYgNDi6EmuoMBId2cXLX8uHoD +BlB/T9c58EDZrzmiDu62zVtXTeK5ML8k74ZkzqNufM7XjinWcwhr/TMfL6l+imA3 +hGc5ZKKtACdLywJU2WJzVaFNN7249Sx+/c6DqhpDHVAPM0grdfdT+9AJPPcVj3lo +p5dGIK8zRByEqI7FT2YhxbGuhqqW2ufKe85HdgRSK9Od8K9DMXjW4XY0xX9+Ru9M +CMApIog2zruiTmVijack9jndcSBIuQRyrwsgLb3zoKsLWP0wS9czSdJD6uDT3nvd +sIAJ+gQM507y5p8gBks71J3MkiXnV82MBQIil9xLbqui22bN2VcPnZaREqJ8LWZM +2BTNm1NHt/epU2kxGyy4Vxc41xi52b5KqyOkUAiSRKvDb6pNorYaAgTeHc0w/nTd +QJ2IKSvRyDwCNvj9H4S0HabAN+mh5EbgIKlVKcWPxlhMG6rWNVAHtWUjj+/RtC17 +xhHptyVt2/N3CooixOm1bQK2l5WxxdiAxjI4xOKCSh2goKhXS+Jy0QSYUllROxlh +BpNfQ7TAIWQC81Y2jEyMpaCkgaXGFDK5fE9U5GPrKMbLCIIsOOeXU6h1AIwjthlr +EaOj6zOMBTS1P35t+NqZlyVP7qEgFCJM4OqAWRVaqsmTQJwJeski/c81XWdsCZ8T +eD3PYKd5uQ4CBBCIRgQQEQIABgUCUlBbTwAKCRDHGkxl8Fmx0d9/AJwNJOK2oZVq +/LJoxrUmG6cMDSxbbQCbBw8Y7qUqQTvp7ItuTbs90pNSdfy5Ag0EUlBanQEQANJJ +rOnwJYaX6jC/EgQ1LOuB5th5UkXFeGNMl+5kgsgcBJUPG7x3IpRUmSr1eW7D0/1E +88UWB1IFJtpYEd5g7VDQIdY2Abb4fMRGBn5DI20ht0pD1O+ypIVIu9VRq1wWWRFm +TfDLCPSPa1ahy/NCXYiXK/behxP6kJvVXhdt+XzEJ31rz040l5dFgxokWNdV7/gt +hNcazSJrTVBF7uK4CHLcfISKJdM8Xq/CLuKf8Qm9V/DXpiKSswIu6SpQCkuxaDVz +B8/50HvlCeGZHbxfEy8hCaOjoUPGkVEwM6XzU5cn4A/LbLBcTJX6cBV0RiqdJTZd +yDDa9YeRX4e4Ks5/i47fGH9Im27ddVZPkQerYmok/Y11GNA/jpgijb/HckMa39Xk +gWHfKjZf2XrTTnjDH4K8Xj+LaWSIohjcHZ5Vjqou40BAqOPniot+h9PFPFsAtYBs +PJ2nq4yGKBci8+srWj7jAH8LCXXA6NwZmqEvW+xsCTKtr5RqGOSQaF8QH6Y3RE3X +QBGR3JTQFYe9+EYcqk8YYg6Yh4iuNWDDtGeCpZ2B7xPEVik17oco4nEHXnyzXY9N +4LKXS+TZzUCM9QNeQ3HYVkLQ2thSZlBLIfeFbiuvVuzsdkjmCZloYApYUlZqkCPJ +K2YfOBAgnEKfG6RNrkauwQBfrki+LyCjhnLH/2AxABEBAAGJAiUEGAECAA8FAlJQ +Wp0CGwwFCQtHNQAACgkQT0lKlC5GFsJeQhAAv9dRPOoGmHO6UVzjazkZxDSlsrnI +XqU2Jz9KP4Etw5FFDhWakdBgSwYEpJWuGXcGEZqlSIHsNeVH1lS9udCQC/yGmvX5 +xYChJMiMvyROjZhVD7tfVykGJlChD0xLVvGy1MIWY5cR6L1ofFzv6AB1jgEmCwGa +dQM/22/qJHuhHXO0hwFYKOYsLxNcM8kh4vdg6f/0VjAGSeb7Ih5a6PN/xAImSV/c +VGOVUMBnCWFFadqZAZwjEWr7fCh2f606vT9Gvnikggdr0TRRdMOhVhaKAWx7RBQz +hJ19PE8ekDOxOHpYpFSoEN5kVrmoNgIfsuKTXGLYMYXEu43HiwkajEYV01XIFNPb +110x8akbZ7h8N7cd84YNd/iqOKiCDuNTlD6C+YHjUXYcJqWtWjp94dFQdM8+VV0c +Iw6qZ7V7/WK+/13/I5K9JgnbKBrcnHtvU8w7sclfGO3AiDDG9vOC/2yTd3i85mPs +/5+hhXvpfMmGt2G4B4hrclxgEsNP2OFDVxYJVWNhV1NrXfCDOxHWG06SDaNlh8vu +3FfFRPJ4W0YIZSwIrnM5WBjdGgEb1kWqapJ8bIJImCim3NNAhfYD3CIQObORq4ZV +1Fqf+rBhagh56auelseH3mt9vqDRFRsKHPYC0NakdjPzojRiUSuvJdkopUeeAJrQ +fBVUDvSsJHDvpaM= +=BuIp +-----END PGP PUBLIC KEY BLOCK----- diff --git a/watch b/watch new file mode 100644 index 0000000..b179ee2 --- /dev/null +++ b/watch @@ -0,0 +1,2 @@ +version=4 +opts=pgpsigurlmangle=s/$/.sig/ https://ftpmirror.gnu.org/gnu/libffcall/libffcall-(.*).tar.gz -- 2.30.2