projects
/
bertos.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Move map definition in correct place.
[bertos.git]
/
bertos
/
cpu
/
frame.h
diff --git
a/bertos/cpu/frame.h
b/bertos/cpu/frame.h
index 2a9680a2a7e64231ca89ae4c35645ddc652ec52a..1a80fa1da21fa2faf415391212835573a99608ea 100644
(file)
--- a/
bertos/cpu/frame.h
+++ b/
bertos/cpu/frame.h
@@
-58,7
+58,7
@@
#elif CPU_ARM
#elif CPU_ARM
- #define CPU_SAVED_REGS_CNT
9
+ #define CPU_SAVED_REGS_CNT
10
#define CPU_STACK_GROWS_UPWARD 0
#define CPU_SP_ON_EMPTY_SLOT 0
#define CPU_STACK_GROWS_UPWARD 0
#define CPU_SP_ON_EMPTY_SLOT 0
@@
-74,7
+74,14
@@
* - ARM state.
* - CPU in Supervisor Mode (SVC).
*/
* - ARM state.
* - CPU in Supervisor Mode (SVC).
*/
- #define CPU_REG_INIT_VALUE(reg) (reg == (CPU_SAVED_REGS_CNT - 1) ? 0x13 : 0)
+ #define CPU_REG_INIT_VALUE(reg) \
+ ({ int a = 0; \
+ if(reg == 0) \
+ a = (int)proc_exit; \
+ else if(reg == (CPU_SAVED_REGS_CNT - 1)) \
+ a = 0x13; \
+ a; \
+ })
#elif CPU_PPC
#elif CPU_PPC
@@
-226,7
+233,7
@@
* in hosted environments such as emulators.
*/
#ifndef CPU_IDLE
* in hosted environments such as emulators.
*/
#ifndef CPU_IDLE
- #if defined(ARCH_
EMUL) && (ARCH & ARCH_EMUL
)
+ #if defined(ARCH_
QT) && (ARCH & ARCH_QT
)
/* This emulator hook should yield the CPU to the host. */
EXTERN_C_BEGIN
void emul_idle(void);
/* This emulator hook should yield the CPU to the host. */
EXTERN_C_BEGIN
void emul_idle(void);