All application binaries in this release are unsqueezed, which should help with running the build tools on an a9home – this is because the version of RISC OS 6 in that machine faults the (correct) squeeze header created by the latest version of the RISC OS
!Squeeze application, as found on the Tools CD.
This is a command line utility which annotates any supplied ARM code sequence (in UAL format) to display scheduling conflicts, pipeline stall cycles, etc. that would be experienced if the code were to be executed on an ARM Cortex A8 CPU.
This is a RISC OS command line tool, also with a graphical user interface, intended for building self-extracting archives. You can turn an application or directory into a single, compressed file which, when run on RISC OS, will decompress itself back into the original structure.
A RISC OS graphical front end tool intended for extracting the compressed archives (which are usually in
*.tar.bz2 format) downloaded from the ROOL web site.
A graphical application for constructing an SD card image containing the RISC OS ROM image suitable for booting a number of ARMv7 systems (e.g. the Beagle Board and Touch Book).
closed/RiscOS/Tools/Sources/cc 5.68 → 5.69
Mainly a bug fix release, but also added first-pass Cortex-A8 scheduling.
See the CC 569 changes page.
Cross- and native-compiling versions verified against various test cases, but not yet exercised on a full build.
closed/RiscOS/Tools/Sources/decaof 5.13 → 5.14
Mostly a bug fix release.
No local changes to component, but several notable changes in the CLX disassembler will be present in new binaries, including:
Verified using various test cases supplied by Terje Slettebo.
castle/RiscOS/Tools/Sources/squeeze 5.09 → 5.10
Data corruption bug fix.
The code was continuing to reference a couple of data blocks after they had been freed, leading to corrupted output files that failed with undefined instruction errors. Potentially could have affected RISC OS, but this was first noticed on Linux where the failure seems to happen every time.
Verified that it now produces correct executables.
castle/RiscOS/Sources/Lib/RISC_OSLib 5.55 → 5.56
Improve safety & reliability of callback handling in SharedCLibrary.
kernel.s.k_body now ensures that the stored ‘sp’ and ‘sl’ values are word-aligned before attempting to read from ‘sl’ to verify that it points to a stack chunk. This avoids an exception being triggered in certain situations when alignment exceptions are turned on and a piece of hand-written assembler is using the sl register to store data.
Further checks should be added to check that ‘fp’ is valid before calling
_kernel_unwind currently only performs minimal checks that are not always sufficient.
Tested on rev C2 beagleboard with KinoAmp pre-release.
castle/RiscOS/Sources/Programmer/Debugger 1.79 → 1.81
Fix code to be fully aware of 64bit parameter flags, fix accidental alignment exceptions on ARMv6 and v7.
s/Debugger – All code which calls
ReadParm, etc. now correctly sets r10 to the correct value depending on whether they want to parse 64bit numbers or not. This was the cause of
*InitStore malfunctioning and (presumably) trashing whatever R11 pointed to (bug #232).
MemoryHeader causing an unintentional alignment exception when testing if rotated or unaligned loads are in use. The CP15 registers are now interrogated instead.
Tested on rev C2 beagleoard.
*Memory with unaligned addresses no longer aborts, and <val> now uses the correct value, and seems to no longer trash memory. Fixes bug #232.
Rework @MemoryI@ implementation to avoid alignment faults during Thumb disassembly on ARMv6+*
s/Debugger – Reworked MemoryI_Code:
*memoryicode could also be made a bit nicer if we don’t mind thumb disassembly failing if attempted on a CPU that can’t (reliably) LDRH.
castle/RiscOS/Sources/Programmer/HdrSrc 1.70 → 1.73
Added install rule.
This is only intended for use when building the disc image for the C/C++ CD.
Added FRAMLDR/FRAMSTR macros.
These macros allow easy access to registers pushed on the stack during the Entry macro.
This is simpler than the previous method of “
LDR r1, [sp, #proc_localstack + 1*4]” because the new macros will calculate the correct offset even if non-continuous regs are used, and will also trap attempts to access regs that weren’t pushed onto the stack.
The FRAMSTR macro can be used to alter the values that will be returned on EXIT.
Tested by looking at produced code in Zap.
Changes by James Lampard.
Bring trunk HdrSrc.hdr.Macros in line with Cortex version.
Add LDHA, LDSHA macros to HdrSrc (trunk branch).
Add two new macros to allow the loading of (un)signed halfwords from an array of halfwords, i.e. “
LDR(S)H $dest, [$array, $index, LSL #1]”. These shared macros help tidy up some code in the International & FontManager modules, code which needed to be changed to get the NoUnaligned build option working correctly.
Tested on rev C2 beagleboard, with and without NoUnaligned. Macros are untested for the situation where unaligned loads are supported but LDRH is not; however the code produced should be identical to the code that the International & FontManager modules originally used.
castle/RiscOS/Sources/Utilities/Patches/CallASWI 0.04 → 0.05
Change bad platform features error code to be non zero.
Mirrors change in Kernel-5_35-4_79_2_99, the non-internationalised error text is used because the ROM messages file wouldn’t contain the error text for a SWI that wasn’t implemented of course.
mixed/RiscOS/Sources/HWSupport/FPASC 4.27 → 4.28
FPEmulator post-indexed load via r13 in non-USR modes fix.
This change fixes ticket #225 (post-indexed LDFD via r13 sometimes reading corrupted values).