Commit 8f9e1467 authored by Russ Anderson's avatar Russ Anderson Committed by Tony Luck

[IA64] ar.fpsr not set on MCA/INIT kernel entry

When entering the kernel due to an MCA or INIT, ar.fpsr (ar40)
was not getting set to the kernel default value (remaining
at the user value).  The effect depends on the user setting 
of ar.fpsr.  In the test case, the effect was addresses 
printing with strange hex values.  

Setting ar.fpsr in ia64_set_kernel_registers sets it for both
the MCA and INIT paths.  The user value of ar.fpsr is correctly 
saved (in ia64_state_save) and restored (in ia64_state_restore).

Below is an example of output with very strange hex values.
Anyone know the value of hex 'g'?  :-)

Processes interrupted by INIT - 0 (cpu 14 task 0xdfffg55g7a4c6gA)

Signed-off-by: Russ Anderson (rja@sgi.com)
Signed-off-by: default avatarTony Luck <tony.luck@intel.com>
parent 43ed3baf
...@@ -1062,6 +1062,10 @@ ia64_set_kernel_registers: ...@@ -1062,6 +1062,10 @@ ia64_set_kernel_registers:
mov cr.itir=r18 mov cr.itir=r18
mov cr.ifa=r13 mov cr.ifa=r13
mov r20=IA64_TR_CURRENT_STACK mov r20=IA64_TR_CURRENT_STACK
movl r17=FPSR_DEFAULT
;;
mov.m ar.fpsr=r17 // set ar.fpsr to kernel default value
;; ;;
itr.d dtr[r20]=r21 itr.d dtr[r20]=r21
;; ;;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment