💾 Archived View for cugi.ie › aminet › 1672869527.gmi captured on 2023-01-29 at 03:35:03. Gemini links have been rewritten to link to archived content
-=-=-=-=-=-=-
Author: thomas.richter at alumni.tu-berlin.de (Thomas Richter) Uploader: thomas richter alumni tu-berlin de (Thomas Richter) Type: util/boot Version: 41.1 Requires: util/libs/MMULib.lha Kickstart V37, MuLib 68040/68060 lib Architecture: m68k-amigaos >= 2.0.0 Date: 2023-01-04 Readme: http://aminet.net/util/boot/MuRedox.readme Downloads: 2382
http://aminet.net/util/boot/MuRedox.lha
------------------------------------------------------------------------------
MuRedox is a MuLib based "on the fly" speedup patch for 68040
and 68060 based Amiga boards. The 68040 and 68060 do not implement
all instructions of the MC 68K family. The unimplemented instructions -
mainly FPU instructions - generate an exception and need to be
emulated by the 68040 resp. 68060.library. This is the job of the so-
called "FPSP routines" (floating point support package) within the
CPU libraries. MuRedox detects these instructions as soon as they
generate the emulator exceptions, runs a "just-in-time" compiler
that generates a "stub replacement routine" for this specific
instruction and patches the replacement routine into the running
program. Hence, MuRedox replaces the overhead of the emulator
trap on the next use of the same instruction sequence.
Therefore, MuRedox requires:
- At least an 68040 or an 68060, from release 41.1 on a 68LC040
or 68LC060 is also sufficient.
- The mmu.library which is required to setup the special memory
mapping.
- For the 68040 or 68060, the fpsp.resource. This resource contains
the program code required for most unimplemented math functions.
This resource is made available by the mmu.library-based 68040 and
68060.library.
- For the 68LC040 or 68LC060, the ieee.resource. This resource provides
the FPU emulation code for FPU-less CPUs. It is created by SoftIEEE,
also found on Aminet.
Therefore, installation of the "MuLib" libraries is *required*.
Please see the "MMULib.lha" package on Aminet how to install them.
For LC processors, installation of "SoftIEEE" is also *required*.
You find it in the "SoftIEEE.lha" package on Aminet, along with
installation instructions.
------------------------------------------------------------------------------
History:
Release 41.2:
-------------
This release fixes two bugs: First, for word-sized FPU initiated branches,
the branch distance was not included correctly as part of the MuRedox cache
tag, thus erraneously substituting branches with wrong distance.
Second, the jitter created a register conflict on the fmove fp,<out>
instruction family such that the destination could not be reached correctly
under all circumstances.
Release 41.1:
-------------
This release of MuRedox now also supports SoftIEEE, and will replace all FPU
instructions on a 68LC040 and 68LC060 by corresponding calls into the
softieee.library. The old functionality, i.e. bypassing the FPSP emulation
on a full 68040 or 68060 continues to work as it used to be. The expected
speedup due to MuRedox on due to its "jitter" is approximately 3-fold.
To run MuRedox on an LC processor, you first need to run SoftIEEE to get the
FPU emulation functions loaded, and then MuRedox to start the jitter.
You should be aware of the following restrictions:
- MuRedox currently requires a 68040, 68060, 68LC040 or 68LC060 to operate,
even though SoftIEEE also supports FPU emulation on all other processors.
FPU emulation for 68020 and 68030 processors may follow later.
- MuRedox cannot replace 3 instructions: fsave, frestore and ftrapcc. fsave
and frestore take only 2 bytes, unlike all other FPU instructions,
unfortunately the call to the replacement function takes 4 bytes, so they
cannot be patched. However, these functions are used quite rarely, and the
only common point of use is the exec scheduler, which is already patched up
by SoftIEEE. ftrapcc cannot be replaced because it can issue an exception,
but this instruction is also quite rarely used.
- Unlike SoftIEEE, the replacement functions do generate exceptions if FPU
exceptions are enabled. That is, they will not call overflow/underflow/
branch-on-unordered and related FPU exception vectors if such exceptions are
enabled. SoftIEEE includes a full FPU emulation that includes generating such
exceptions. Exception generation would require an additional lengthly test
at the end of each floating point instruction which would slow down the
execution.
- MoRedox currently does not emulate the generation of the INEX1 flag when
converting from packed decimal correctly. Instead, if the conversion from
packed decimal is inaccurate, it sets the INEX2 flag. This flag is rarely
used and it makes quite likely no observable difference, but the issue
might be fixed in a later release. Note that SoftIEEE itself emulates
INEX1 and INEX2 correctly.
Release 40.7:
-------------
The emulation function for the 64-bit division instruction missing in the
68060 received a very minor improvement in case the divisor is larger than
16 bits.
Release 40.6:
-------------
MuRedox now also patches the fmovem.l #immed,<multiple control registers>
instruction which is unsupported on the 68060 - but probably so rarely used
that it hardly makes any difference. Though complete is complete....
------------------------------------------------------------------------------
Top reasons why not to use this program:
- It is a hack. MuRedox replaces program code on the fly, hoping that all
will go well. This need not to be the case - especially commercial
programs may keep a checksum over their code and may fail if their
code gets altered. MuRedox will perform such code modifications.
- MuRedox will therefore not work for all programs - some
incompatibilities should be expected.
If you need faster programs, you should rather:
- Ask the vendor for a 68060 or 68040 specific release of the program
that does not require the software emulated instructions of the 68040
resp. 68060. Typically, these versions will run faster than a
68020/68030 version with MuRedox, anyhow.
- Remember: Programs are made fast by fast and smart algorithms, not by
your favourite speedup-patch. MuRedox will give some speed impact,
in realistic situations in the range of about 10%. Specific bench-
marks may show more dramatic improvements, but they typically test
situations that are untypical in a real-life situation. Motorola
choose less frequently used instructions for software emulation in
first place, hence improvements are typically marginal.
------------------------------------------------------------------------------
The THOR-Software Licence (v3, January 2nd 2021)
This License applies to the computer programs known as "mmu.library",
"MuRedox", "FPSPSnoop" and the corresponding documentation, known as
".readme" files. The "Program", below, refers to such program. The "Archive"
refers to the package of distribution, as prepared by the author of the
Program, Thomas Richter. Each licensee is addressed as "you".
The Program and the data in the archive are freely distributable
under the restrictions stated below, but are also Copyright (c)
Thomas Richter.
Distribution of the Program, the Archive and the data in the Archive by a
commercial organization without written permission from the author to any
third party is prohibited if any payment is made in connection with such
distribution, whether directly (as in payment for a copy of the Program) or
indirectly (as in payment for some service related to the Program, or
payment for some product or service that includes a copy of the Program
"without charge"; these are only examples, and not an exhaustive
enumeration of prohibited activities).
However, the following methods of distribution involving payment shall not
in and of themselves be a violation of this restriction:
(i) Distributing the Program on a physical data carrier (e.g. CD-ROM,
DVD, USB-Stick, Disk...) provided that:
a) the Archive is reproduced entirely and verbatim on such data carrier,
including especially this licence agreement;
b) the data carrier is made available to the public for a nominal
fee only, i.e. for a fee that covers the costs of the data carrier,
and shipment of the data carrier;
c) a data carrier with the Program installed is made available to the
author for free except for shipment costs, and
d) provided further that all information on said data carrier is
redistributable for non-commercial purposes without charge.
Redistribution of a modified version of the Archive, the Program or the
contents of the Archive is prohibited in any way, by any organization,
regardless whether commercial or non-commercial. Everything must be kept
together, in original and unmodified form.
Limitations.
THE PROGRAM IS PROVIDED TO YOU "AS IS", WITHOUT WARRANTY. THERE IS NO
WARRANTY FOR THE PROGRAM, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. THE ENTIRE
RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD
THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY
SERVICING, REPAIR OR CORRECTION.
IF YOU DO NOT ACCEPT THIS LICENCE, YOU MUST DELETE THE PROGRAM, THE ARCHIVE
AND ALL DATA OF THIS ARCHIVE FROM YOUR STORAGE SYSTEM. YOU ACCEPT THIS
LICENCE BY USING OR REDISTRIBUTING THE PROGRAM.
______________________________________________________________________________
So long,
Thomas Richter (January 2023)
PERMISSION UID GID PACKED SIZE RATIO METHOD CRC STAMP NAME ---------- ----------- ------- ------- ------ ---------- ------------ ---------- [unknown] 279 628 44.4% -lh5- c910 Jan 3 19:54 MuRedox.info [unknown] 9102 16876 53.9% -lh5- 72b1 Jan 3 19:54 MuRedox/MuRedox [unknown] 3897 9173 42.5% -lh5- 432b Jan 3 19:54 MuRedox/MuRedox.readme [unknown] 265 628 42.2% -lh5- d2ce Aug 31 2001 MuRedox/EnvArc.info [unknown] 2021 6140 32.9% -lh5- 6c23 Mar 19 2022 MuRedox/EnvArc/MMU-Configuration [unknown] 2038 6318 32.3% -lh5- 06f2 Feb 26 2021 MuRedox/EnvArc/MMU-Configuration.P5 [unknown] 2039 6321 32.3% -lh5- 6837 Feb 26 2021 MuRedox/EnvArc/MMUConfiguration.ACA [unknown] 2027 6298 32.2% -lh5- d485 Feb 26 2021 MuRedox/EnvArc/MMUConfiguration.GVP [unknown] 272 628 43.3% -lh5- 189c Aug 31 2001 MuRedox/Libs.info [unknown] 23668 44040 53.7% -lh5- 54a9 Jul 22 2022 MuRedox/Libs/68040.library [unknown] 30713 65476 46.9% -lh5- 2970 Aug 17 19:01 MuRedox/Libs/68060.library [unknown] 10091 17300 58.3% -lh5- f992 Dec 29 13:24 MuRedox/Libs/disassembler.library [unknown] 26376 49016 53.8% -lh5- 2062 May 27 2022 MuRedox/Libs/mmu.library [unknown] 486 648 75.0% -lh5- aa96 Feb 18 2021 MuRedox/Libs/mmu/ACAInit [unknown] 275 328 83.8% -lh5- 54f9 Mar 10 2021 MuRedox/Libs/mmu/GVPInit [unknown] 1349 2120 63.6% -lh5- aeef Mar 10 2021 MuRedox/Libs/mmu/P5Init [unknown] 348 788 44.2% -lh5- 6c30 Aug 31 2001 MuRedox/MuTools.info [unknown] 9102 16876 53.9% -lh5- 72b1 Jan 3 21:23 MuRedox/MuTools/MuRedox [unknown] 12423 34818 35.7% -lh5- 38a8 Jan 3 22:24 MuRedox/MuTools/MuRedox.guide [unknown] 265 523 50.7% -lh5- e159 Aug 31 2001 MuRedox/MuTools/MuRedox.guide.info [unknown] 550 1083 50.8% -lh5- e738 Aug 31 2001 MuRedox/MuTools/MuRedox.info [unknown] 275 628 43.8% -lh5- 6a5a Aug 31 2001 MuRedox/Shell_Only.info [unknown] 3275 5996 54.6% -lh5- dfbf Aug 31 2001 MuRedox/Shell_Only/FPSPSnoop ---------- ----------- ------- ------- ------ ---------- ------------ ---------- Total 23 files 141136 292650 48.2% Jan 4 21:58
Aminet © 1992-2023 Urban Müller and the Aminet team. Aminet contact address: <aminet aminet net>