Made stuff work on SPARC HW
authorAndrew Waterman <waterman@s143.Millennium.Berkeley.EDU>
Sun, 2 May 2010 03:31:22 +0000 (20:31 -0700)
committerKevin Klues <klueska@cs.berkeley.edu>
Thu, 3 Nov 2011 00:35:46 +0000 (17:35 -0700)
commitbf64f87beac224aa9a0cb255d232bd20c5a024b0
tree6efa0270c1d280ba35ff9aa646ae73e57ca896a3
parentb0ac924ef0cf576dcd20e944cb056d8ee5539e26
Made stuff work on SPARC HW

Three issues:

1) Not HW related, but need 96 bytes on stack before TF.  This
   is because bytes 64-96 are reserved for spilling the args of
   a variadic function.  So if your ISR called printk immediately,
   it would trash the user's trap frame.

2) An MMU bug spuriously set the FSR, causing the spill/fill handlers
   to have false-positive stack-fucks.  Fixed by clearing FSR before
   doing spill/fill.

3) GLIBC doesn't use FLUSHes in all necessary places in the RTLD.
   Added them in.
kern/arch/sparc/spillfill.S
kern/arch/sparc/trap_entry.S
kern/include/elf.h
kern/src/elf.c
tools/compilers/gcc-glibc/glibc-2.11.1-ros/sysdeps/sparc/sparc32/dl-machine.h