aboutsummaryrefslogtreecommitdiffstats
path: root/os/rt/ports/e200/chcore.h
diff options
context:
space:
mode:
Diffstat (limited to 'os/rt/ports/e200/chcore.h')
-rw-r--r--os/rt/ports/e200/chcore.h19
1 files changed, 12 insertions, 7 deletions
diff --git a/os/rt/ports/e200/chcore.h b/os/rt/ports/e200/chcore.h
index 67da6c67d..63d566df2 100644
--- a/os/rt/ports/e200/chcore.h
+++ b/os/rt/ports/e200/chcore.h
@@ -59,7 +59,7 @@
#if defined(__GNUC__) || defined(__DOXYGEN__)
#define PORT_COMPILER_NAME "GCC " __VERSION__
-#elif defined(__CWCC__)
+#elif defined(__MWERKS__)
#define PORT_COMPILER_NAME "CW " __VERSION__
#else
@@ -425,12 +425,17 @@ static inline void port_init(void) {
port_write_spr(272, n);
#if PPC_SUPPORTS_IVORS
- /* The CPU supports IVOR registers, the kernel requires IVOR4 and IVOR10
- and the initialization is performed here.*/
- asm volatile ("li %%r3, _IVOR4@l \t\n"
- "mtIVOR4 %%r3 \t\n"
- "li %%r3, _IVOR10@l \t\n"
- "mtIVOR10 %%r3" : : : "r3", "memory");
+ {
+ /* The CPU supports IVOR registers, the kernel requires IVOR4 and IVOR10
+ and the initialization is performed here.*/
+ extern void _IVOR4(void);
+ port_write_spr(404, _IVOR4);
+
+#if PPC_SUPPORTS_DECREMENTER
+ extern void _IVOR10(void);
+ port_write_spr(410, _IVOR10);
+#endif
+ }
#endif
/* INTC initialization, software vector mode, 4 bytes vectors, starting