Module Name: src Committed By: bouyer Date: Sat Mar 17 18:46:30 UTC 2012
Modified Files: src/doc [netbsd-5-1]: HACKS src/sys/arch/sparc64/conf [netbsd-5-1]: Makefile.sparc64 files.sparc64 src/sys/arch/sparc64/sparc64 [netbsd-5-1]: locore.s Log Message: Pull up following revision(s) (requested by nakayama in ticket #1736): sys/arch/sparc64/conf/Makefile.sparc64: revision 1.71 doc/HACKS: revision 1.123 sys/arch/sparc64/conf/files.sparc64: revision 1.138 sys/arch/sparc64/sparc64/locore.s: revision 1.340 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. The hack has been resolved in the revision 1.340 of sys/arch/sparc64/sparc64/locore.s. To generate a diff of this commit: cvs rdiff -u -r1.110.2.2 -r1.110.2.2.6.1 src/doc/HACKS cvs rdiff -u -r1.67.4.1 -r1.67.4.1.2.1 \ src/sys/arch/sparc64/conf/Makefile.sparc64 cvs rdiff -u -r1.118.20.1 -r1.118.20.1.2.1 \ src/sys/arch/sparc64/conf/files.sparc64 cvs rdiff -u -r1.286.2.2 -r1.286.2.2.2.1 \ 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.