Roland McGrath
8548d4c084
Use spin lock operations on sigstate lock.
...
Don't expect _hurd_self_sigstate to lock it.
1995-02-07 04:25:56 +00:00
Roland McGrath
14b832adfd
(_hurd_setup_sighandler): Use `long int' for sigcode.
...
Use explicit register numbers instead of names.
(_hurdsig_rcv_interrupted_p): Use _hurdsig_catch_fault.
1995-02-03 23:20:27 +00:00
Roland McGrath
37da91a00d
Use `long int' for sigcode.
1995-02-03 23:15:48 +00:00
Roland McGrath
1cec31f4d4
Converted to use weak aliases with macros from libc-symbols.h.
1995-01-21 15:40:54 +00:00
Roland McGrath
ca194bd9da
(_hurd_setup_sighandler): Remove A macro; just use `asm volatile' with
...
proper quotes in each line.
1994-12-15 00:12:48 +00:00
Roland McGrath
33aa4240f6
(CALL_WITH_SP): Put parens around jmp target register.
1994-12-15 00:09:43 +00:00
Roland McGrath
edae2ab8af
Use `long int' for sigcode values.
...
Use _hurdsig_catch_fault.
Pass address of __sigreturn in $27, SCP value in $25.
In trampoline code, use those regs.
1994-12-12 06:43:12 +00:00
Roland McGrath
94cd6ef1f8
Use asms instead of global register vars to restore FP regs.
...
Fix typo in REI invocation.
1994-12-12 06:41:03 +00:00
Roland McGrath
d61ce4f4b8
Include <mach/machine/alpha_instruction.h> to define op_chmk.
1994-12-10 05:17:13 +00:00
Roland McGrath
25e6db514e
Use `long int' for sigcode values.
1994-12-10 04:41:06 +00:00
Roland McGrath
d73a59163e
(ENTRY): New macro.
1994-12-09 20:00:58 +00:00
Roland McGrath
60bbd54df8
(START_MACHDEP): Add missing backslashes.
...
(CALL_WITH_SP): Cast FN to long int.
1994-12-09 05:47:43 +00:00
Roland McGrath
8b0538623b
(struct machine_thread_all_state): New member `exc'.
1994-12-09 05:42:09 +00:00
Roland McGrath
946b6e002a
Remove ".set noreorder" et al; GCC already emits them.
...
Fix register constraints in asms.
Set RTN in C, not asm.
1994-12-09 05:05:05 +00:00
Roland McGrath
157aaa4ee6
Remove ".set noreorder" et al; GCC already emits them.
1994-12-09 03:42:31 +00:00
Roland McGrath
a11dbdebf0
Rename variable `sp' to avoid conflict with #define in <mach/alpha/asm.h>.
1994-12-08 19:45:02 +00:00
Roland McGrath
89347dc3e9
Remove unused variable.
1994-12-08 19:43:43 +00:00
Roland McGrath
5a8d8a2049
Initial revision
1994-12-07 20:02:38 +00:00
Roland McGrath
ccd1325bd5
Use ENV[0].__jmpbuf[0].
1994-12-05 17:57:43 +00:00
Roland McGrath
69edd206e9
Use ENV[0].__jmpbuf.
1994-12-05 17:55:41 +00:00
Roland McGrath
5c87d70ba0
Set up frame for `rei' to restore on user stack, aligned to an 8-word
...
boundary and with a PS value that restores user's stack alignment.
1994-12-03 14:00:08 +00:00
Roland McGrath
39edbfd9c8
(sigcontext
...
): Fixed typo.
1994-12-03 13:57:03 +00:00
Roland McGrath
239291e1db
(struct sigcontext): Use __sigset_t' instead of
sigset_t' for `sc_mask'.
1994-11-22 22:29:25 +00:00
Roland McGrath
cef89fdba9
Initial revision
1994-11-15 10:39:12 +00:00
Roland McGrath
8e576015fb
entered into RCS
1994-11-15 06:48:25 +00:00
Roland McGrath
7d99e5148d
entered into RCS
1994-11-10 09:58:40 +00:00
Roland McGrath
18b0df639c
Formerly ./mach/hurd/alpha/trampoline.c.~2~
1994-11-10 09:29:41 +00:00
Roland McGrath
9bcfb9b9bc
Initial revision
1994-11-10 04:41:19 +00:00
Roland McGrath
0d92fbeca7
entered into RCS
1994-11-10 04:35:29 +00:00
Roland McGrath
1db9e43738
Initial revision
1994-11-09 12:23:25 +00:00
Roland McGrath
eacddc0a20
entered into RCS
1994-11-08 23:34:47 +00:00
Roland McGrath
72dd53ade3
Initial revision
1994-11-08 23:32:22 +00:00
Roland McGrath
2131138c90
entered into RCS
1994-11-08 22:33:29 +00:00
Roland McGrath
7704bac4de
Restore FPU state. Code from kkojima.
1994-09-03 02:31:57 +00:00
Roland McGrath
3635a08757
Initial revision
1994-08-30 12:38:38 +00:00
Roland McGrath
1e5c57652a
(SYSRETURN): New macro.
1994-08-22 19:00:39 +00:00
Roland McGrath
92ae11d456
(__sigreturn): Arg is not const.
...
After restoring SCP->sc_mask, check for pending signals (newly unblocked);
if any, set SS->context to SCP, clear SS->intr_port, and send sig_post
to the signal thread to deliver the pending signals.
Don't write $1 value into the user stack. Instead, write it into the word
just past SCP->sc_pc; then point $1 at SCP->sc_pc and use `op_sigreturn'
pseudo-instruction to restore the PC and $1 from that.
1994-08-22 09:06:46 +00:00
Roland McGrath
62833ce689
Include "thread_state.h" instead of <mach/thread_status.h>.
...
(struct mach_msg_trap_args): New type.
(trampoline): Function removed.
(_hurd_setup_sighandler): Take struct hurd_sigstate * arg instead of FLAGS
and SIGALTSTACK args; take new flag arg RPC_WAIT; use struct
machine_thread_all_state * for STATE arg.
New declared labels `trampoline', `rpc_wait_trampoline' mark asm code at
end of function (after return).
Add another struct sigcontext * to STACKFRAME after the first one, for the
arg to __sigreturn.
If SS->context is set, fill registers in SCP from that instead of STATE,
and reset SS->INTR_PORT from it.
If RPC_WAIT is set, set up to use rpc_wait_trampoline and frob args to
mach_msg_trap syscall in progress so that it will retry the receive
operation (but not resend!).
{rpc_wait_trampoline, trampoline}: New trampoline code.
(_hurd_rcv_interrupted_p): New function.
1994-08-22 05:02:49 +00:00
Roland McGrath
817a880cc1
Don't #include <mach/thread_status.h>.
1994-08-16 06:06:18 +00:00
Roland McGrath
275f772878
Add #include_next <thread_state.h> at end.
1994-08-16 06:04:07 +00:00
Roland McGrath
cd582f3e94
(sc_mips_thread_state, sc_mips_exc_state, sc_mips_float_state): New macros,
...
marking members that correspond to thread_state.h structs.
1994-08-16 05:58:17 +00:00
Roland McGrath
2a1ec466ab
(struct sigcontext): Renamed member sc_err' to
sc_error'.
1994-08-11 00:26:03 +00:00
Roland McGrath
b87619900a
(_hurd_exception2signal): Take new arg `int *error'; set it.
1994-08-08 22:54:44 +00:00
Roland McGrath
bd2a5f499d
(struct sigcontext): Added member `sc_err'.
1994-08-08 07:58:38 +00:00
Roland McGrath
c693c1caaf
(struct machine_thread_all_state): New type.
1994-08-08 07:39:58 +00:00
Roland McGrath
d85eb528c4
Rearranged structure so machine-dependent portion is laid out like `struct
...
mips_thread_state; struct mips_exc_state; struct mips_float_state;'.
1994-08-03 16:32:47 +00:00
Roland McGrath
b8f04323dc
Compare *reply_port to MACH_PORT_NULL, not implicit zero.
...
(restore_gpr): Use N-1 as subscript into sc_gpr (sc_gpr[0] => $1).
Before general regs, restore from sc_mdlo and sc_mdhi.
Don't treat sp, fp specially; use restore_gpr for them too.
For final return, store user $1 value beyond top of user stack ahead of
time; Then use $1 to hold the user PC, and restore it from the stack in the
delay slot.
1994-08-03 06:45:59 +00:00
Roland McGrath
8d2f85c668
(_hurd_setup_sighandler): Copy TS to SCP all at once.
1994-08-03 01:38:43 +00:00
Roland McGrath
b6cc520764
(struct sigcontext): sc_gpr has 31 elts; sc_gpr, sc_pc, sc_mdlo, sc_mdhi
...
are arranged in that order to mimic struct mips_thread_state.
1994-08-03 01:36:31 +00:00
Roland McGrath
c1eb1d76e2
(_hurd_setup_sighandler): Save mdlo and mdhi.
1994-08-02 00:15:34 +00:00
Roland McGrath
e0ec2e47de
(struct sigcontext): Add members sc_mdlo, sc_mdhi.
1994-08-02 00:12:17 +00:00
Roland McGrath
6adee8d53b
Rename variable AT (which is the register's name) to SCPREG.
...
Fix some SCP references in register loads to use SCPREG instead.
Load SCPREG->sc_pc into $24 and jump to it, restoring $at in the delay slot.
This still leaves $24 clobbered.
1994-07-29 16:39:58 +00:00
Roland McGrath
3844669a62
Use `unsigned int' consistently for port names.
1994-07-29 15:53:52 +00:00
Roland McGrath
840c5e79e3
Don't set up args on the stack; pass them in registers.
1994-07-29 15:46:10 +00:00
Roland McGrath
76657427f5
entered into RCS
1994-07-09 07:24:37 +00:00
Roland McGrath
c4a19f6a24
Initial revision
1994-07-09 07:12:44 +00:00