From f1b16e9f6874166503e22f606a7f2cb023ce0046 Mon Sep 17 00:00:00 2001 From: Kevin Bracey <kbracey@gitlab.riscosopen.org> Date: Thu, 20 Apr 2000 14:57:28 +0000 Subject: [PATCH] OS_CallASWI and OS_CallASWIR12 sped up by 4-6 cycles (depending on which ARM). Some POST changes which got lost recommitted. Version 5.24. Not tagged --- TestSrc/Begin | 9 ++++++--- VersionASM | 2 +- VersionNum | 4 ++-- s/Kernel | 12 +++++------- 4 files changed, 14 insertions(+), 13 deletions(-) diff --git a/TestSrc/Begin b/TestSrc/Begin index 9768f76a..992cf15b 100644 --- a/TestSrc/Begin +++ b/TestSrc/Begin @@ -92,6 +92,9 @@ ; 19 Jun 97 BAR 2.25 Remove un-necessary mov r13,r14's ; When completed flashing LED's restore the ; faultcode flag from fiq_regs. +; 04 Apr 00 KJB 2.30 Converted to run in 32-bit mode always. +; ShowIOMDRegs set to FALSE (request from +; Tom Clay) ; ;------------------------------------------------------------------------ ; @@ -104,8 +107,8 @@ TS_STATUS * "R" ; Medusa POST version 2.0x ; -TS_RELEASE * 22 -TS_CHANGES * 4 +TS_RELEASE * 23 +TS_CHANGES * 0 GBLL POSTenabled @@ -115,7 +118,7 @@ POSTenabled SETL {TRUE} ; don't permit POST for ordinary startup AlwaysShortPOST SETL {TRUE} :LAND: STB ; always do a short POST GBLL ShowIOMDRegs -ShowIOMDRegs SETL (IO_Type = "IOMD") :LAND: {TRUE} :LAND: STB ; show IOMD regs +ShowIOMDRegs SETL (IO_Type = "IOMD") :LAND: {FALSE} :LAND: STB ; show IOMD regs GBLL DontShowProgressColours DontShowProgressColours SETL {TRUE} :LAND: STB ; Do not show the progress colour screens. diff --git a/VersionASM b/VersionASM index 9e603274..de1e017f 100644 --- a/VersionASM +++ b/VersionASM @@ -9,6 +9,6 @@ Module_MajorVersion SETS "5.24" Module_Version SETA 524 Module_MinorVersion SETS "" -Module_Date SETS "17 Apr 2000" +Module_Date SETS "20 Apr 2000" Module_FullVersion SETS "5.24" END diff --git a/VersionNum b/VersionNum index d7a6f553..f687d014 100644 --- a/VersionNum +++ b/VersionNum @@ -5,11 +5,11 @@ */ #define Module_MajorVersion_CMHG 5.24 #define Module_MinorVersion_CMHG -#define Module_Date_CMHG 17 Apr 2000 +#define Module_Date_CMHG 20 Apr 2000 #define Module_MajorVersion "5.24" #define Module_Version 524 #define Module_MinorVersion "" -#define Module_Date "17 Apr 2000" +#define Module_Date "20 Apr 2000" #define Module_FullVersion "5.24" diff --git a/s/Kernel b/s/Kernel index c5e2ed81..b2506227 100644 --- a/s/Kernel +++ b/s/Kernel @@ -463,17 +463,17 @@ SVC * {PC}-SWIRelocation Push "r11,r14" ; push SWI number and return address -SVC_CallASWI * {PC}-SWIRelocation ; CallASWI,CallASWIR12 re-entry point - - BICS r11, r11, #Auto_Error_SWI_bit - BEQ SWIWriteC + SWIRelocation - AND r10, r12, #I32_bit+F32_bit ORR r10, r10, #SVC2632 ; set IFTMMMMM = IF0x0011 msr ,CPSR_c, r10 ; restore caller's IRQ state BIC r14, r12, #V_bit ; clear V (some SWIs need original PSR in r12) +SVC_CallASWI * {PC}-SWIRelocation ; CallASWI,CallASWIR12 re-entry point + + BICS r11, r11, #Auto_Error_SWI_bit + BEQ SWIWriteC + SWIRelocation + CMP r11, #OS_WriteI LDRLO pc, [pc, r11, LSL #2] @@ -895,13 +895,11 @@ process_callback_chain ROUT ; SWI OS_WriteC ; In r11 = 0 (look, up there ^) ! -; r12 = SPSR SWIWriteC ROUT msr ,CPSR_c, #SVC2632 ; enable interrupts - BIC lr, r12, #V_bit ; clear caller's V cos we didn't before STR lr, [sp, #-4]! LDR r11, [r11, #VecPtrTab+WrchV*4] ; load top node pointer -- GitLab