Commit 8a9e694c authored by Ben Avison's avatar Ben Avison
Browse files

Fix bugs and inefficiencies revealed by unaligned data audit

Detail:
  s.PMF.i2cutils line 454: this LDR of byte values was harmless (bits 8
    upwards are discarded later) but slower than an LDRB on ARMv6 or later.
  s.PMF.i2cutils line 556: should have loaded RTCFitted using LDRB. Looks
    like effect would have been to reduce utilisation of CMOS cache.
  s.vdu.vduswis line 1500: mistakenly accessing ExternalFramestore using LDR.
    I don't think the intention was to prevent the screen DA being resized
    while screen memory was claimed, but that was the effect.
  s.vdu.vduwrch line 3106: this LDR of a 1-byte variable was harmless (only
    used for testing bit 4) but slower than an LDRB on ARMv6 or later.
  CPU version is no longer specified in the makefile - it's better to inherit
  it from the build environment now that we actually set it appropriately.
Admin:
  Built and briefly tested.

Version 5.35, 4.79.2.98.2.9. Tagged as 'Kernel-5_35-4_79_2_98_2_9'
parent 9d9aa41b
......@@ -40,7 +40,7 @@ RM = remove
WIPE = -wipe
CCFLAGS = -c -depend !Depend -IC:
ASFLAGS = -depend !Depend ${THROWBACK} -Stamp -quit -To $@ -From
ARMASMFLAGS = -depend !Depend -g ${THROWBACK} -cpu 5TE
ARMASMFLAGS = -depend !Depend -g ${THROWBACK}
CPFLAGS = ~cfr~v
WFLAGS = ~cfr~v
......
......@@ -13,11 +13,11 @@
GBLS Module_ComponentPath
Module_MajorVersion SETS "5.35"
Module_Version SETA 535
Module_MinorVersion SETS "4.79.2.98.2.8"
Module_Date SETS "17 May 2009"
Module_ApplicationDate SETS "17-May-09"
Module_MinorVersion SETS "4.79.2.98.2.9"
Module_Date SETS "16 Jun 2009"
Module_ApplicationDate SETS "16-Jun-09"
Module_ComponentName SETS "Kernel"
Module_ComponentPath SETS "castle/RiscOS/Sources/Kernel"
Module_FullVersion SETS "5.35 (4.79.2.98.2.8)"
Module_HelpVersion SETS "5.35 (17 May 2009) 4.79.2.98.2.8"
Module_FullVersion SETS "5.35 (4.79.2.98.2.9)"
Module_HelpVersion SETS "5.35 (16 Jun 2009) 4.79.2.98.2.9"
END
......@@ -5,19 +5,19 @@
*
*/
#define Module_MajorVersion_CMHG 5.35
#define Module_MinorVersion_CMHG 4.79.2.98.2.8
#define Module_Date_CMHG 17 May 2009
#define Module_MinorVersion_CMHG 4.79.2.98.2.9
#define Module_Date_CMHG 16 Jun 2009
#define Module_MajorVersion "5.35"
#define Module_Version 535
#define Module_MinorVersion "4.79.2.98.2.8"
#define Module_Date "17 May 2009"
#define Module_MinorVersion "4.79.2.98.2.9"
#define Module_Date "16 Jun 2009"
#define Module_ApplicationDate "17-May-09"
#define Module_ApplicationDate "16-Jun-09"
#define Module_ComponentName "Kernel"
#define Module_ComponentPath "castle/RiscOS/Sources/Kernel"
#define Module_FullVersion "5.35 (4.79.2.98.2.8)"
#define Module_HelpVersion "5.35 (17 May 2009) 4.79.2.98.2.8"
#define Module_FullVersion "5.35 (4.79.2.98.2.9)"
#define Module_HelpVersion "5.35 (16 Jun 2009) 4.79.2.98.2.9"
#define Module_LibraryVersionInfo "5:35"
......@@ -448,7 +448,7 @@ WriteSubBlock ROUT
SUB R2, R2, R5
16 SUBS R5, R5, #1 ; update checksum
LDRCS R14, [R1], #1
LDRCSB R14, [R1], #1
ADDCS R6, R6, R14
BCS %BT16
MOV R4, R6
......@@ -550,7 +550,7 @@ Read
[ E2ROMSupport
BHS %FT13
MOV R14, #0
LDR R14, [R14, #RTCFitted]
LDRB R14, [R14, #RTCFitted]
TEQ R14, #0
BNE %FT15
|
......
......@@ -1494,7 +1494,7 @@ InsertPages_ExternalFramestore
InsertRemovePagesCommon ROUT
VDWS WsPtr
LDR R1, [WsPtr, #ExternalFramestore]
LDRB R1, [WsPtr, #ExternalFramestore]
TEQ R1, #0
MOVNE PC, R14
......
......@@ -3100,7 +3100,7 @@ Page_ProcessCallbacksIdle
BLNE process_callback_chain
; Now they're dealt with, we have nothing else to do, so call Idle
[ StorkPowerSave
LDR R14, [r0, #PortableFlags]
LDRB R14, [r0, #PortableFlags]
TST R14, #PortableFeature_Idle
SWINE XPortable_Idle
]
......
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