Commit 8a6d5236 authored by Jeffrey Lee's avatar Jeffrey Lee
Browse files

Protect against StrongARM MSR bug & ARM2 "banked register after mode change" bug

Detail:
  kernel/s/k_body - NOP in Aborted2 is only needed if we're targeting StrongARM
  s/longlong - Make ReadCPUArch StrongARM & ARM2 safe
Admin:
  Tested in IOMD ROM softload


Version 5.67. Tagged as 'RISC_OSLib-5_67'
parent 59236321
......@@ -11,13 +11,13 @@
GBLS Module_HelpVersion
GBLS Module_ComponentName
GBLS Module_ComponentPath
Module_MajorVersion SETS "5.66"
Module_Version SETA 566
Module_MajorVersion SETS "5.67"
Module_Version SETA 567
Module_MinorVersion SETS ""
Module_Date SETS "04 Feb 2012"
Module_ApplicationDate SETS "04-Feb-12"
Module_Date SETS "16 Feb 2012"
Module_ApplicationDate SETS "16-Feb-12"
Module_ComponentName SETS "RISC_OSLib"
Module_ComponentPath SETS "castle/RiscOS/Sources/Lib/RISC_OSLib"
Module_FullVersion SETS "5.66"
Module_HelpVersion SETS "5.66 (04 Feb 2012)"
Module_FullVersion SETS "5.67"
Module_HelpVersion SETS "5.67 (16 Feb 2012)"
END
/* (5.66)
/* (5.67)
*
* This file is automatically maintained by srccommit, do not edit manually.
* Last processed by srccommit version: 1.1.
*
*/
#define Module_MajorVersion_CMHG 5.66
#define Module_MajorVersion_CMHG 5.67
#define Module_MinorVersion_CMHG
#define Module_Date_CMHG 04 Feb 2012
#define Module_Date_CMHG 16 Feb 2012
#define Module_MajorVersion "5.66"
#define Module_Version 566
#define Module_MajorVersion "5.67"
#define Module_Version 567
#define Module_MinorVersion ""
#define Module_Date "04 Feb 2012"
#define Module_Date "16 Feb 2012"
#define Module_ApplicationDate "04-Feb-12"
#define Module_ApplicationDate "16-Feb-12"
#define Module_ComponentName "RISC_OSLib"
#define Module_ComponentPath "castle/RiscOS/Sources/Lib/RISC_OSLib"
#define Module_FullVersion "5.66"
#define Module_HelpVersion "5.66 (04 Feb 2012)"
#define Module_LibraryVersionInfo "5:66"
#define Module_FullVersion "5.67"
#define Module_HelpVersion "5.67 (16 Feb 2012)"
#define Module_LibraryVersionInfo "5:67"
......@@ -162,6 +162,8 @@ uwb_size # 0
[ DDE
GET Hdr:DDEUtils
]
GET Hdr:Machine.<Machine>
MACRO
CallClient $r
......@@ -857,7 +859,9 @@ Aborted2 Keep
TEQ pc, pc
LDREQ lr, [sp], #4 ; get back R14_svc
MSREQ CPSR_c, r3 ; back to original mode
[ StrongARM_MSR_bug
NOP ; avoid StrongARM bug
]
]
BVS NoFPEAbortSWI ; in case someone really does error
TEQ r0, #0 ; check for real "not FP abort" return
......
......@@ -109,8 +109,14 @@ ReadCPUArch
SWI XOS_LeaveOS
[ {CONFIG}=26
TEQVSP pc, #0
[ NoARMa
NOP
]
|
MSRVS CPSR_c, #0
MSRVS CPSR_c, #0 ; Assume OS_LeaveOS error means we're on a 26bit OS
[ StrongARM_MSR_bug
NOP
]
]
Pop "a1,pc"
......
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