Source-Changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

CVS commit: src/sys/arch/sparc64/sparc64



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.




Home | Main Index | Thread Index | Old Index