diff options
author | Linus Nielsen Feltzing <linus@haxx.se> | 2004-10-13 11:32:26 +0000 |
---|---|---|
committer | Linus Nielsen Feltzing <linus@haxx.se> | 2004-10-13 11:32:26 +0000 |
commit | 5e54aa956fb9188b78717d88fca72bd11eaa4a6b (patch) | |
tree | 0a5ab6804677fe6d5445ef69524f4ac7e4806684 | |
parent | b03ff1e1726ba35d0e8be8cc7a87163aa0b6cff5 (diff) | |
download | rockbox-5e54aa956fb9188b78717d88fca72bd11eaa4a6b.tar.gz rockbox-5e54aa956fb9188b78717d88fca72bd11eaa4a6b.zip |
MACH, MACL and SR are no longer part of the SH1 thread context
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@5268 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r-- | firmware/thread.c | 12 |
1 files changed, 1 insertions, 11 deletions
diff --git a/firmware/thread.c b/firmware/thread.c index df90c7ac2f..e44db5706d 100644 --- a/firmware/thread.c +++ b/firmware/thread.c | |||
@@ -26,9 +26,6 @@ struct regs | |||
26 | { | 26 | { |
27 | unsigned int r[7]; /* Registers r8 thru r14 */ | 27 | unsigned int r[7]; /* Registers r8 thru r14 */ |
28 | void *sp; /* Stack pointer (r15) */ | 28 | void *sp; /* Stack pointer (r15) */ |
29 | unsigned int mach; | ||
30 | unsigned int macl; | ||
31 | unsigned int sr; /* Status register */ | ||
32 | void* pr; /* Procedure register */ | 29 | void* pr; /* Procedure register */ |
33 | }; | 30 | }; |
34 | 31 | ||
@@ -52,11 +49,8 @@ void switch_thread(void) __attribute__ ((section(".icode"))); | |||
52 | */ | 49 | */ |
53 | static inline void store_context(void* addr) | 50 | static inline void store_context(void* addr) |
54 | { | 51 | { |
55 | asm volatile ("add #48, %0\n\t" | 52 | asm volatile ("add #36, %0\n\t" |
56 | "sts.l pr, @-%0\n\t" | 53 | "sts.l pr, @-%0\n\t" |
57 | "stc.l sr, @-%0\n\t" | ||
58 | "sts.l macl,@-%0\n\t" | ||
59 | "sts.l mach,@-%0\n\t" | ||
60 | "mov.l r15, @-%0\n\t" | 54 | "mov.l r15, @-%0\n\t" |
61 | "mov.l r14, @-%0\n\t" | 55 | "mov.l r14, @-%0\n\t" |
62 | "mov.l r13, @-%0\n\t" | 56 | "mov.l r13, @-%0\n\t" |
@@ -81,9 +75,6 @@ static inline void load_context(const void* addr) | |||
81 | "mov.l @%0+,r13\n\t" | 75 | "mov.l @%0+,r13\n\t" |
82 | "mov.l @%0+,r14\n\t" | 76 | "mov.l @%0+,r14\n\t" |
83 | "mov.l @%0+,r15\n\t" | 77 | "mov.l @%0+,r15\n\t" |
84 | "lds.l @%0+,mach\n\t" | ||
85 | "lds.l @%0+,macl\n\t" | ||
86 | "ldc.l @%0+,sr\n\t" | ||
87 | "mov.l @%0,%0\n\t" | 78 | "mov.l @%0,%0\n\t" |
88 | "lds %0,pr\n\t" | 79 | "lds %0,pr\n\t" |
89 | "mov.l %0, @(0, r15)" : "+r" (addr)); | 80 | "mov.l %0, @(0, r15)" : "+r" (addr)); |
@@ -170,7 +161,6 @@ int create_thread(void* function, void* stack, int stack_size, | |||
170 | /* Subtract 4 to leave room for the PR push in load_context() | 161 | /* Subtract 4 to leave room for the PR push in load_context() |
171 | Align it on an even 32 bit boundary */ | 162 | Align it on an even 32 bit boundary */ |
172 | regs->sp = (void*)(((unsigned int)stack + stack_size - 4) & ~3); | 163 | regs->sp = (void*)(((unsigned int)stack + stack_size - 4) & ~3); |
173 | regs->sr = 0; | ||
174 | regs->pr = function; | 164 | regs->pr = function; |
175 | 165 | ||
176 | wake_up_thread(); | 166 | wake_up_thread(); |