git://git.onelab.eu
/
linux-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
linux 2.6.16.38 w/ vs2.0.3-rc1
[linux-2.6.git]
/
arch
/
ia64
/
kernel
/
mca_asm.S
diff --git
a/arch/ia64/kernel/mca_asm.S
b/arch/ia64/kernel/mca_asm.S
index
9604749
..
60a464b
100644
(file)
--- a/
arch/ia64/kernel/mca_asm.S
+++ b/
arch/ia64/kernel/mca_asm.S
@@
-19,6
+19,7
@@
// 12/08/05 Keith Owens <kaos@sgi.com>
// Use per cpu MCA/INIT stacks for all data.
//
// 12/08/05 Keith Owens <kaos@sgi.com>
// Use per cpu MCA/INIT stacks for all data.
//
+#include <linux/config.h>
#include <linux/threads.h>
#include <asm/asmmacro.h>
#include <linux/threads.h>
#include <asm/asmmacro.h>
@@
-158,7
+159,7
@@
ia64_os_mca_spin:
GET_IA64_MCA_DATA(r2)
// Using MCA stack, struct ia64_sal_os_state, variable proc_state_param
;;
GET_IA64_MCA_DATA(r2)
// Using MCA stack, struct ia64_sal_os_state, variable proc_state_param
;;
- add r3=IA64_MCA_CPU_MCA_STACK_OFFSET+MCA_SOS_OFFSET+
SOS(PROC_STATE_PARAM)
, r2
+ add r3=IA64_MCA_CPU_MCA_STACK_OFFSET+MCA_SOS_OFFSET+
IA64_SAL_OS_STATE_PROC_STATE_PARAM_OFFSET
, r2
;;
ld8 r18=[r3] // Get processor state parameter on existing PALE_CHECK.
;;
;;
ld8 r18=[r3] // Get processor state parameter on existing PALE_CHECK.
;;
@@
-478,11
+479,9
@@
ia64_state_save:
st8 [temp2]=r11,16 // rv_rc
mov r11=cr.iipa
;;
st8 [temp2]=r11,16 // rv_rc
mov r11=cr.iipa
;;
- st8 [temp1]=r18
// proc_state_param
- st8 [temp2]=r19
// monarch
+ st8 [temp1]=r18
,16
// proc_state_param
+ st8 [temp2]=r19
,16
// monarch
mov r6=IA64_KR(CURRENT)
mov r6=IA64_KR(CURRENT)
- add temp1=SOS(SAL_RA), regs
- add temp2=SOS(SAL_GP), regs
;;
st8 [temp1]=r12,16 // sal_ra
st8 [temp2]=r10,16 // sal_gp
;;
st8 [temp1]=r12,16 // sal_ra
st8 [temp2]=r10,16 // sal_gp
@@
-504,14
+503,12
@@
ia64_state_save:
st8 [temp2]=r11,16 // cr.iipa
mov r12=cr.iim
;;
st8 [temp2]=r11,16 // cr.iipa
mov r12=cr.iim
;;
- st8 [temp1]=r12
// cr.iim
+ st8 [temp1]=r12
,16
// cr.iim
(p1) mov r12=IA64_MCA_COLD_BOOT
(p2) mov r12=IA64_INIT_WARM_BOOT
mov r6=cr.iha
(p1) mov r12=IA64_MCA_COLD_BOOT
(p2) mov r12=IA64_INIT_WARM_BOOT
mov r6=cr.iha
- add temp1=SOS(OS_STATUS), regs
;;
;;
- st8 [temp2]=r6 // cr.iha
- add temp2=SOS(CONTEXT), regs
+ st8 [temp2]=r6,16 // cr.iha
st8 [temp1]=r12 // os_status, default is cold boot
mov r6=IA64_MCA_SAME_CONTEXT
;;
st8 [temp1]=r12 // os_status, default is cold boot
mov r6=IA64_MCA_SAME_CONTEXT
;;
@@
-823,14
+820,14
@@
ia64_state_restore:
// Restore the SAL to OS state. The previous code left regs at pt_regs.
add regs=MCA_SOS_OFFSET-MCA_PT_REGS_OFFSET, regs
;;
// Restore the SAL to OS state. The previous code left regs at pt_regs.
add regs=MCA_SOS_OFFSET-MCA_PT_REGS_OFFSET, regs
;;
- add temp1=
SOS(SAL_RA)
, regs
- add temp2=
SOS(SAL_GP)
, regs
+ add temp1=
IA64_SAL_OS_STATE_COMMON_OFFSET
, regs
+ add temp2=
IA64_SAL_OS_STATE_COMMON_OFFSET+8
, regs
;;
ld8 r12=[temp1],16 // sal_ra
ld8 r9=[temp2],16 // sal_gp
;;
ld8 r22=[temp1],16 // pal_min_state, virtual
;;
ld8 r12=[temp1],16 // sal_ra
ld8 r9=[temp2],16 // sal_gp
;;
ld8 r22=[temp1],16 // pal_min_state, virtual
- ld8 r
13
=[temp2],16 // prev_IA64_KR_CURRENT
+ ld8 r
21
=[temp2],16 // prev_IA64_KR_CURRENT
;;
ld8 r16=[temp1],16 // prev_IA64_KR_CURRENT_STACK
ld8 r20=[temp2],16 // prev_task
;;
ld8 r16=[temp1],16 // prev_IA64_KR_CURRENT_STACK
ld8 r20=[temp2],16 // prev_task
@@
-845,15
+842,13
@@
ia64_state_restore:
;;
mov cr.itir=temp3
mov cr.iipa=temp4
;;
mov cr.itir=temp3
mov cr.iipa=temp4
- ld8 temp3=[temp1] // cr.iim
- ld8 temp4=[temp2] // cr.iha
- add temp1=SOS(OS_STATUS), regs
- add temp2=SOS(CONTEXT), regs
+ ld8 temp3=[temp1],16 // cr.iim
+ ld8 temp4=[temp2],16 // cr.iha
;;
mov cr.iim=temp3
mov cr.iha=temp4
dep r22=0,r22,62,1 // pal_min_state, physical, uncached
;;
mov cr.iim=temp3
mov cr.iha=temp4
dep r22=0,r22,62,1 // pal_min_state, physical, uncached
- mov IA64_KR(CURRENT)=r
13
+ mov IA64_KR(CURRENT)=r
21
ld8 r8=[temp1] // os_status
ld8 r10=[temp2] // context
ld8 r8=[temp1] // os_status
ld8 r10=[temp2] // context
@@
-861,7
+856,7
@@
ia64_state_restore:
* avoid any dependencies on the algorithm in ia64_switch_to(), just
* purge any existing CURRENT_STACK mapping and insert the new one.
*
* avoid any dependencies on the algorithm in ia64_switch_to(), just
* purge any existing CURRENT_STACK mapping and insert the new one.
*
- * r16 contains prev_IA64_KR_CURRENT_STACK, r
13
contains
+ * r16 contains prev_IA64_KR_CURRENT_STACK, r
21
contains
* prev_IA64_KR_CURRENT, these values may have been changed by the C
* code. Do not use r8, r9, r10, r22, they contain values ready for
* the return to SAL.
* prev_IA64_KR_CURRENT, these values may have been changed by the C
* code. Do not use r8, r9, r10, r22, they contain values ready for
* the return to SAL.
@@
-878,7
+873,7
@@
ia64_state_restore:
;;
srlz.d
;;
srlz.d
- extr.u r19=r
13,61,3 // r13
= prev_IA64_KR_CURRENT
+ extr.u r19=r
21,61,3 // r21
= prev_IA64_KR_CURRENT
shl r20=r16,IA64_GRANULE_SHIFT // r16 = prev_IA64_KR_CURRENT_STACK
movl r21=PAGE_KERNEL // page properties
;;
shl r20=r16,IA64_GRANULE_SHIFT // r16 = prev_IA64_KR_CURRENT_STACK
movl r21=PAGE_KERNEL // page properties
;;
@@
-888,7
+883,7
@@
ia64_state_restore:
(p6) br.spnt 1f // the dreaded cpu 0 idle task in region 5:(
;;
mov cr.itir=r18
(p6) br.spnt 1f // the dreaded cpu 0 idle task in region 5:(
;;
mov cr.itir=r18
- mov cr.ifa=r
13
+ mov cr.ifa=r
21
mov r20=IA64_TR_CURRENT_STACK
;;
itr.d dtr[r20]=r21
mov r20=IA64_TR_CURRENT_STACK
;;
itr.d dtr[r20]=r21
@@
-921,7
+916,7
@@
ia64_state_restore:
ia64_new_stack:
add regs=MCA_PT_REGS_OFFSET, r3
ia64_new_stack:
add regs=MCA_PT_REGS_OFFSET, r3
- add temp2=MCA_SOS_OFFSET+
SOS(PAL_MIN_STATE)
, r3
+ add temp2=MCA_SOS_OFFSET+
IA64_SAL_OS_STATE_PAL_MIN_STATE_OFFSET
, r3
mov b0=r2 // save return address
GET_IA64_MCA_DATA(temp1)
invala
mov b0=r2 // save return address
GET_IA64_MCA_DATA(temp1)
invala
@@
-1025,7
+1020,7
@@
ia64_old_stack:
ia64_set_kernel_registers:
add temp3=MCA_SP_OFFSET, r3
ia64_set_kernel_registers:
add temp3=MCA_SP_OFFSET, r3
- add temp4=MCA_SOS_OFFSET+
SOS(OS_GP)
, r3
+ add temp4=MCA_SOS_OFFSET+
IA64_SAL_OS_STATE_OS_GP_OFFSET
, r3
mov b0=r2 // save return address
GET_IA64_MCA_DATA(temp1)
;;
mov b0=r2 // save return address
GET_IA64_MCA_DATA(temp1)
;;