From 3f07d71805fb486b991bbe36dfafc501159fa3d8 Mon Sep 17 00:00:00 2001 From: Hirokazu Takata Date: Thu, 10 May 2007 22:22:25 -0700 Subject: [PATCH] --- yaml --- r: 55889 b: refs/heads/master c: 43c09ce7927912c7867617cba0a265beea38a154 h: refs/heads/master i: 55887: e0d494929a32ebbdbb988c3fd3759d8c7a10c342 v: v3 --- [refs] | 2 +- trunk/arch/m32r/Kconfig | 4 ++++ trunk/include/asm-m32r/system.h | 11 +++++++++++ 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 0e4dad0d18a8..0650f9055967 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 44316634460a6b368ad3160da6cba3b4725a1433 +refs/heads/master: 43c09ce7927912c7867617cba0a265beea38a154 diff --git a/trunk/arch/m32r/Kconfig b/trunk/arch/m32r/Kconfig index 9740d6b8ae11..c3bb8a755b00 100644 --- a/trunk/arch/m32r/Kconfig +++ b/trunk/arch/m32r/Kconfig @@ -241,6 +241,10 @@ config GENERIC_CALIBRATE_DELAY bool default y +config SCHED_NO_NO_OMIT_FRAME_POINTER + bool + default y + config PREEMPT bool "Preemptible Kernel" help diff --git a/trunk/include/asm-m32r/system.h b/trunk/include/asm-m32r/system.h index f62f5c9abba6..b291b2f72954 100644 --- a/trunk/include/asm-m32r/system.h +++ b/trunk/include/asm-m32r/system.h @@ -21,12 +21,22 @@ * `next' and `prev' should be struct task_struct, but it isn't always defined */ +#if defined(CONFIG_FRAME_POINTER) || \ + !defined(CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER) +#define M32R_PUSH_FP " push fp\n" +#define M32R_POP_FP " pop fp\n" +#else +#define M32R_PUSH_FP "" +#define M32R_POP_FP "" +#endif + #define switch_to(prev, next, last) do { \ __asm__ __volatile__ ( \ " seth lr, #high(1f) \n" \ " or3 lr, lr, #low(1f) \n" \ " st lr, @%4 ; store old LR \n" \ " ld lr, @%5 ; load new LR \n" \ + M32R_PUSH_FP \ " st sp, @%2 ; store old SP \n" \ " ld sp, @%3 ; load new SP \n" \ " push %1 ; store `prev' on new stack \n" \ @@ -34,6 +44,7 @@ " .fillinsn \n" \ "1: \n" \ " pop %0 ; restore `__last' from new stack \n" \ + M32R_POP_FP \ : "=r" (last) \ : "0" (prev), \ "r" (&(prev->thread.sp)), "r" (&(next->thread.sp)), \