Commit 3bdedb22 authored by Robert Sprowson's avatar Robert Sprowson Committed by ROOL
Browse files

Flush the I cache before jumping to decompressor

xpand pokes LDR_PC_R8_MINUS4 into the loaded AIF then jumps into it.
Flush the decompressor before doing so - this is also needed because wf_load() was used to load the AIF in the first place, and it doesn't flush the cache either.

Version 5.16. Tagged as 'xpand-5_16'
parent cf66486f
/* (5.15)
/* (5.16)
*
* This file is automatically maintained by srccommit, do not edit manually.
*
*/
#define Module_MajorVersion_CMHG 5.15
#define Module_MajorVersion_CMHG 5.16
#define Module_MinorVersion_CMHG
#define Module_Date_CMHG 25 Jul 2020
#define Module_Date_CMHG 06 Jul 2022
#define Module_MajorVersion "5.15"
#define Module_Version 515
#define Module_MajorVersion "5.16"
#define Module_Version 516
#define Module_MinorVersion ""
#define Module_Date "25 Jul 2020"
#define Module_Date "06 Jul 2022"
#define Module_ApplicationDate "25-Jul-20"
#define Module_ApplicationDate "06-Jul-22"
#define Module_ComponentName "xpand"
#define Module_FullVersion "5.15"
#define Module_HelpVersion "5.15 (25 Jul 2020)"
#define Module_LibraryVersionInfo "5:15"
#define Module_FullVersion "5.16"
#define Module_HelpVersion "5.16 (06 Jul 2022)"
#define Module_LibraryVersionInfo "5:16"
......@@ -270,6 +270,13 @@ static int xpand(char *in, char *out)
}
*lastw = LDR_PC_R8_MINUS4;
*ws = (int)(&asmcall_exit);
#ifdef __riscos
/* Flush before asmcall'ing into hdr below */
_swix(OS_SynchroniseCodeAreas, _INR(0,2), 1, hdr /* Start of AIF */,
(char *)hdr + sizeof(aifhdr) - sizeof(word));
_swix(OS_SynchroniseCodeAreas, _INR(0,2), 1, h + 1 /* Start of decompress code */,
lastw /* Inclusive */);
#endif
asmcall_call((func *)hdr, 0, 0, 0);
/*
* Just have to save it again.
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment