[L4alpha-cvscommit] CVS: L4Alpha/pal ipc.mar,1.18,1.19 thread.mar,1.10,1.11
Status: Beta
Brought to you by:
dpotts
|
From: Daniel P. <dp...@us...> - 2002-01-17 04:39:09
|
Update of /cvsroot/l4alpha/L4Alpha/pal
In directory usw-pr-cvs1:/tmp/cvs-serv11910
Modified Files:
ipc.mar thread.mar
Log Message:
Some 21264 fixes to reflect ex_regs changes. Namely unwinding registers on the stack.
Tested using L4Alpha-apps/exregs which tests normal aborts and POLLING threads in both UP and SMP systems.
Index: ipc.mar
===================================================================
RCS file: /cvsroot/l4alpha/L4Alpha/pal/ipc.mar,v
retrieving revision 1.18
retrieving revision 1.19
diff -C2 -d -r1.18 -r1.19
*** ipc.mar 2002/01/03 04:25:43 1.18
--- ipc.mar 2002/01/17 04:39:04 1.19
***************
*** 1005,1009 ****
NewCom2SerialPutChar ^x78,pp2,pp1 ; x
bis zero, #IPC_NOTEXIST, v0
! debug
full_close_frame
--- 1005,1009 ----
NewCom2SerialPutChar ^x78,pp2,pp1 ; x
bis zero, #IPC_NOTEXIST, v0
! ; debug
full_close_frame
***************
*** 1061,1064 ****
--- 1061,1071 ----
lda sp, <17 * 8>(sp)
.iff
+ .if df ev6
+ kernel kernel_ipc_polling_unstack
+ ipc_polling_unstack_ev6:
+ pop p_a0!p_a1!p_a2!p_a3
+ pop p_pp1
+ ret zero, (ra)
+ .iff
;; This should be the same as ipc_send_eq unstacking...
pop p_t0!p_t1!p_t2!p_t3!p_t4!p_t5!p_t6!p_t8!p_a4!p_a5!p_fp!p_v0
***************
*** 1067,1073 ****
ret zero, (ra)
.endc
!
;;; ABORT fail routine from ex_reg/remote_abort (reason is on stack).
ALIGN_FETCH_BLOCK
ipc_ret_fail:
--- 1074,1089 ----
ret zero, (ra)
.endc
! .endc
!
! .if df ev6
! mode_normal
! ALIGN_FETCH_BLOCK
! kernel_ipc_polling_unstack:
! pop p_t0!p_t1!p_t2!p_t3!p_t4!p_t5!p_t6!p_t8!p_a4!p_a5!p_fp!p_v0
! return ipc_polling_unstack_ev6
! .endc
;;; ABORT fail routine from ex_reg/remote_abort (reason is on stack).
+ mode_pal
ALIGN_FETCH_BLOCK
ipc_ret_fail:
***************
*** 1092,1096 ****
GET_16CONS v0, IPC_S_CANCELLED
! enable_int t0
full_close_frame
--- 1108,1112 ----
GET_16CONS v0, IPC_S_CANCELLED
! enable_int pp0
full_close_frame
***************
*** 1763,1767 ****
; which should not have been scratched (in their registers at this stage)
; so we unwind the stack.
! lda sp, <5*8>(sp)
bis zero, #IPC_NOTEXIST, v0
return_frame
--- 1779,1783 ----
; which should not have been scratched (in their registers at this stage)
; so we unwind the stack.
! lda sp, <5*8>(sp) ; pop p_pp1!p_v0!p_t0!p_t1!p_t2
bis zero, #IPC_NOTEXIST, v0
return_frame
***************
*** 1786,1789 ****
--- 1802,1806 ----
kernel kernel_deceit_check
+ mode_normal
ALIGN_FETCH_BLOCK
kernel_deceit_check:
***************
*** 1821,1824 ****
--- 1838,1842 ----
return ret_ipc_deceit_only
+ mode_pal
ALIGN_FETCH_BLOCK
ret_ipc_deceit_only:
Index: thread.mar
===================================================================
RCS file: /cvsroot/l4alpha/L4Alpha/pal/thread.mar,v
retrieving revision 1.10
retrieving revision 1.11
diff -C2 -d -r1.10 -r1.11
*** thread.mar 2002/01/02 05:47:48 1.10
--- thread.mar 2002/01/17 04:39:04 1.11
***************
*** 867,870 ****
--- 867,871 ----
;
;-
+ mode_normal
ALIGN_FETCH_BLOCK
remote_abort:
***************
*** 896,900 ****
bic t0, #TFS_POLLING, t1
IFZ t1
! ; kmsg <"Removing polling thread"<CR><LF>>
;; Thread is polling, so remove it from the other threads send root
--- 897,901 ----
bic t0, #TFS_POLLING, t1
IFZ t1
! kmsg <"Removing polling thread"<CR><LF>>
;; Thread is polling, so remove it from the other threads send root
|