mirror of
https://github.com/RIOT-OS/RIOT.git
synced 2024-12-29 04:50:03 +01:00
Prevent the compiler to add an unwanted prologue in thread_yield()
This commit is contained in:
parent
cf683d9866
commit
3df5a2745f
@ -17,7 +17,10 @@ volatile int __inISR = 0;
|
||||
|
||||
char __isr_stack[MSP430_ISR_STACK_SIZE];
|
||||
|
||||
void thread_yield(void)
|
||||
/* we must prevent the compiler to generate a prologue or an epilogue
|
||||
for thread_yield(), since we rely on RETI instruction at the end
|
||||
of its execution, in inlined __restore_context() sub-function */
|
||||
__attribute__((naked)) void thread_yield(void)
|
||||
{
|
||||
__save_context();
|
||||
|
||||
@ -29,6 +32,8 @@ void thread_yield(void)
|
||||
sched_run();
|
||||
|
||||
__restore_context(irqen);
|
||||
|
||||
UNREACHABLE();
|
||||
}
|
||||
|
||||
NORETURN void cpu_switch_context_exit(void)
|
||||
|
Loading…
Reference in New Issue
Block a user