Commit 10f2014b authored by Richard Henderson's avatar Richard Henderson

[ALPHA] Fix switch_to semantics wrt LAST.

parent 4a93eb24
...@@ -582,6 +582,7 @@ alpha_switch_to: ...@@ -582,6 +582,7 @@ alpha_switch_to:
lda $8, 0x3fff lda $8, 0x3fff
bsr $1, undo_switch_stack bsr $1, undo_switch_stack
bic $sp, $8, $8 bic $sp, $8, $8
mov $17, $0
ret ret
.end alpha_switch_to .end alpha_switch_to
......
...@@ -131,17 +131,14 @@ struct el_common_EV6_mcheck { ...@@ -131,17 +131,14 @@ struct el_common_EV6_mcheck {
extern void halt(void) __attribute__((noreturn)); extern void halt(void) __attribute__((noreturn));
#define __halt() __asm__ __volatile__ ("call_pal %0 #halt" : : "i" (PAL_halt)) #define __halt() __asm__ __volatile__ ("call_pal %0 #halt" : : "i" (PAL_halt))
#define prepare_arch_schedule(prev) do { } while(0) #define switch_to(P,N,L) \
#define finish_arch_schedule(prev) do { } while(0) do { \
(L) = alpha_switch_to(virt_to_phys(&(N)->thread_info->pcb), (P)); \
#define switch_to(prev,next,last) \
do { \
alpha_switch_to(virt_to_phys(&(next)->thread_info->pcb), (prev)); \
check_mmu_context(); \ check_mmu_context(); \
} while (0) } while (0)
struct task_struct; struct task_struct;
extern void alpha_switch_to(unsigned long, struct task_struct*); extern struct task_struct *alpha_switch_to(unsigned long, struct task_struct*);
#define mb() \ #define mb() \
__asm__ __volatile__("mb": : :"memory") __asm__ __volatile__("mb": : :"memory")
......
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