summaryrefslogtreecommitdiffstats
path: root/c/src/exec/score/cpu/m68k
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>2001-01-03 16:36:23 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>2001-01-03 16:36:23 +0000
commitfe7acdcf8b56a38212a7212493b4e07a70914d0f (patch)
tree9bd123ee54ad23b7ee3ce7455d7a35514828445a /c/src/exec/score/cpu/m68k
parent2001-01-03 Joel Sherrill <joel@OARcorp.com> (diff)
downloadrtems-fe7acdcf8b56a38212a7212493b4e07a70914d0f.tar.bz2
2001-01-03 Joel Sherrill <joel@OARcorp.com>
* rtems/score/cpu.h: Added _CPU_Initialize_vectors(). * cpu_asm.S: Modify to properly dereference _ISR_Vector_table now that it is dynamically allocated.
Diffstat (limited to 'c/src/exec/score/cpu/m68k')
-rw-r--r--c/src/exec/score/cpu/m68k/ChangeLog6
-rw-r--r--c/src/exec/score/cpu/m68k/cpu_asm.S4
-rw-r--r--c/src/exec/score/cpu/m68k/rtems/score/cpu.h3
3 files changed, 11 insertions, 2 deletions
diff --git a/c/src/exec/score/cpu/m68k/ChangeLog b/c/src/exec/score/cpu/m68k/ChangeLog
index 533d182258..13ec23bbf5 100644
--- a/c/src/exec/score/cpu/m68k/ChangeLog
+++ b/c/src/exec/score/cpu/m68k/ChangeLog
@@ -1,3 +1,9 @@
+2001-01-03 Joel Sherrill <joel@OARcorp.com>
+
+ * rtems/score/cpu.h: Added _CPU_Initialize_vectors().
+ * cpu_asm.S: Modify to properly dereference _ISR_Vector_table
+ now that it is dynamically allocated.
+
2000-12-19 Joel Sherrill <joel@OARcorp.com>
* cpu.c: Do not read or write raw interrupt vector table if
diff --git a/c/src/exec/score/cpu/m68k/cpu_asm.S b/c/src/exec/score/cpu/m68k/cpu_asm.S
index 3d663372a0..5f29d67469 100644
--- a/c/src/exec/score/cpu/m68k/cpu_asm.S
+++ b/c/src/exec/score/cpu/m68k/cpu_asm.S
@@ -177,10 +177,10 @@ SYM (_ISR_Handler):
addql #1,SYM (_ISR_Nest_level) | one nest level deeper
#endif /* CPU_HAS_SOFTWARE_INTERRUPT_STACK == 1 */
+ movel SYM (_ISR_Vector_table),a0 | a0= base of RTEMS table
#if ( M68K_HAS_PREINDEXING == 1 )
- movel @( SYM (_ISR_Vector_table),d0:w:1),a0| fetch the ISR
+ movel (a0,d0:w:1),a0 | a0 = address of user routine
#else
- movel # SYM (_ISR_Vector_table),a0 | a0 = base of RTEMS table
addal d0,a0 | a0 = address of vector
movel (a0),a0 | a0 = address of user routine
#endif
diff --git a/c/src/exec/score/cpu/m68k/rtems/score/cpu.h b/c/src/exec/score/cpu/m68k/rtems/score/cpu.h
index 2353332620..c1d3f6ac58 100644
--- a/c/src/exec/score/cpu/m68k/rtems/score/cpu.h
+++ b/c/src/exec/score/cpu/m68k/rtems/score/cpu.h
@@ -309,12 +309,15 @@ SCORE_EXTERN _CPU_ISR_handler_entry _CPU_ISR_jump_table[256];
* ISR handler macros
*
* These macros perform the following functions:
+ * + initialize the RTEMS vector table
* + disable all maskable CPU interrupts
* + restore previous interrupt level (enable)
* + temporarily restore interrupts (flash)
* + set a particular level
*/
+#define _CPU_Initialize_vectors()
+
#define _CPU_ISR_Disable( _level ) \
m68k_disable_interrupts( _level )