-
Jeffrey Lee authored
Detail: s/TickEvents: - Change initial TickNodeLeft check in ProcessTickEventChain to exit on HI rather than NE. This fixes a case where the ticker event chain can become corrupted if ProcessTickEventChain is re-entered while in the middle of processing multiple nodes which are due to fire at the same time (after initial node is removed from the list, head node will be left with a TickNodeLeft value of 0) - Move "IRQ's off again" PSR write to be after the 10 label, to ensure that IRQs are off before we examine/process the next node (naughty CallEvery may have exited with IRQs enabled) - Stop using crusty old WritePSRc macro (currently generates 4 instructions for something that should be 1) - Also get rid of ARM2-era NOPs - Optimise CallEvery check to be MOVS rather than LDR + CMP Admin: Tested on Pandaboard Should fix problem reported on forums with apparent wrap-around of TickNodeLeft value of first node: https://www.riscosopen.org/forum/forums/5/topics/3544 May also fix other ticker corruption problems: https://www.riscosopen.org/forum/forums/4/topics/2708 Version 5.35, 4.79.2.278. Tagged as 'Kernel-5_35-4_79_2_278'
cbfc4ff1