Module Name: src
Committed By: nakayama
Date: Sat Mar 3 03:17:32 UTC 2012
Modified Files:
src/sys/arch/sparc64/sparc64: locore.s
Log Message:
Fix the root cause of the hack "disable optimizations for uvm_bio.c
on 32 bit kernels".
gcc converts a division in the calculation of UBC_UMAP_ADDR macro
to multiplication (smul or combination of add/sll), and the
register of its result contains a garbage in upper 32 bits (the
upper 32 bits of smul/add/sll's result isn't zero cleared).
Then it passes to pseg_get{,_real} through pmap_extract without the
zero clear of upper 32 bits in the optimization case. So the
result of pseg_get and pmap_extact sometimes gets screwed up.
To generate a diff of this commit:
cvs rdiff -u -r1.339 -r1.340 src/sys/arch/sparc64/sparc64/locore.s
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.