Source-Changes archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
CVS commit: src/sys/arch/arm/arm32
Module Name: src
Committed By: chris
Date: Sun Jan 13 02:43:54 UTC 2008
Modified Files:
src/sys/arch/arm/arm32: cpuswitch.S
Log Message:
Take a micro-optimization from FreeBSD/arm.
When switching from SVC32->UND32 to read/write R13_und we don't need to clear
the mode bits as:
PSR_SVC32_MODE | PSR_UND32_MODE = PSR_UND32_MODE
While reading the code I also noted that interrupts are enabled for most of
the function as pmap_switch returns with interrupts in the state they are on
entry. This appears to be different to what the code after pmap_switch
expects, in that the behaviour suggests they should be disabled.
Because of this I've made the writing of R13_und explicitly disable.
interupts as part of the mode switch.
This also means that the IRQenableALL call is now redundant as the
interrupts are already enabled.
XXX: it's not clear if arm_fpe_core_changecontext should be called with
interrupts disabled.
Remove unused items: IRQdisableALL, IRQenableALL & Lcpufuncs.
Tested on cats. lmbench shows no performance change.
To generate a diff of this commit:
cvs rdiff -r1.52 -r1.53 src/sys/arch/arm/arm32/cpuswitch.S
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Home |
Main Index |
Thread Index |
Old Index