diff options
author | marcel <marcel@FreeBSD.org> | 2003-09-19 22:54:05 +0000 |
---|---|---|
committer | marcel <marcel@FreeBSD.org> | 2003-09-19 22:54:05 +0000 |
commit | ef50cc82f8780674002e084e82833804e2957397 (patch) | |
tree | c734396c0848a768c2ab5144fbb4b39dac321de4 /lib | |
parent | 901f7b2cb79afe6f5a842dc09d70124cbe1cb852 (diff) | |
download | FreeBSD-src-ef50cc82f8780674002e084e82833804e2957397.zip FreeBSD-src-ef50cc82f8780674002e084e82833804e2957397.tar.gz |
Stop using the setcontext() syscall to restore an async context.
Instead use the break instruction with an immediate specially
created for us.
Diffstat (limited to 'lib')
-rw-r--r-- | lib/libkse/arch/ia64/ia64/context.S | 10 | ||||
-rw-r--r-- | lib/libpthread/arch/ia64/ia64/context.S | 10 |
2 files changed, 10 insertions, 10 deletions
diff --git a/lib/libkse/arch/ia64/ia64/context.S b/lib/libkse/arch/ia64/ia64/context.S index 49fe42e..9411293 100644 --- a/lib/libkse/arch/ia64/ia64/context.S +++ b/lib/libkse/arch/ia64/ia64/context.S @@ -339,13 +339,13 @@ ENTRY(_ia64_save_context, 1) END(_ia64_save_context) /* - * void _ia64_break_setcontext(ucontext_t *ucp); + * void _ia64_break_setcontext(mcontext_t *mc); */ ENTRY(_ia64_break_setcontext, 1) -{ .mib - mov r15=SYS_setcontext - break 0x100000 - br.ret.sptk rp +{ .mmi + mov r8=r32 + break 0x180000 + nop 0 ;; } END(_ia64_break_setcontext) diff --git a/lib/libpthread/arch/ia64/ia64/context.S b/lib/libpthread/arch/ia64/ia64/context.S index 49fe42e..9411293 100644 --- a/lib/libpthread/arch/ia64/ia64/context.S +++ b/lib/libpthread/arch/ia64/ia64/context.S @@ -339,13 +339,13 @@ ENTRY(_ia64_save_context, 1) END(_ia64_save_context) /* - * void _ia64_break_setcontext(ucontext_t *ucp); + * void _ia64_break_setcontext(mcontext_t *mc); */ ENTRY(_ia64_break_setcontext, 1) -{ .mib - mov r15=SYS_setcontext - break 0x100000 - br.ret.sptk rp +{ .mmi + mov r8=r32 + break 0x180000 + nop 0 ;; } END(_ia64_break_setcontext) |