From d2c730f846fa3f1683426669c040384068dd2bd2 Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Thu, 12 Mar 2009 14:18:21 +0000 Subject: 2009-03-12 Joel Sherrill PR 1385/cpukit * startup/exception.S: When the type rtems_boolean was switched to the C99 bool, the size changed from 4 bytes to 1 byte. The interrupt dispatching code accesses two boolean variables for scheduling purposes and the assembly implementations of this code did not get updated. --- c/src/lib/libbsp/mips/hurricane/ChangeLog | 9 +++++++++ c/src/lib/libbsp/mips/hurricane/startup/exception.S | 11 ++++++----- c/src/lib/libbsp/mips/rbtx4925/ChangeLog | 9 +++++++++ c/src/lib/libbsp/mips/rbtx4925/startup/exception.S | 10 +++++----- c/src/lib/libbsp/mips/rbtx4938/ChangeLog | 9 +++++++++ c/src/lib/libbsp/mips/rbtx4938/startup/exception.S | 10 +++++----- 6 files changed, 43 insertions(+), 15 deletions(-) diff --git a/c/src/lib/libbsp/mips/hurricane/ChangeLog b/c/src/lib/libbsp/mips/hurricane/ChangeLog index c20899ec15..c640cd3099 100644 --- a/c/src/lib/libbsp/mips/hurricane/ChangeLog +++ b/c/src/lib/libbsp/mips/hurricane/ChangeLog @@ -1,3 +1,12 @@ +2009-03-12 Joel Sherrill + + PR 1385/cpukit + * startup/exception.S: When the type rtems_boolean was switched to the + C99 bool, the size changed from 4 bytes to 1 byte. The interrupt + dispatching code accesses two boolean variables for scheduling + purposes and the assembly implementations of this code did not get + updated. + 2008-12-04 Joel Sherrill * bsp_specs: Move -e start from *link to *startfile to avoid warning diff --git a/c/src/lib/libbsp/mips/hurricane/startup/exception.S b/c/src/lib/libbsp/mips/hurricane/startup/exception.S index 2a3f4b187e..bb9e01d004 100644 --- a/c/src/lib/libbsp/mips/hurricane/startup/exception.S +++ b/c/src/lib/libbsp/mips/hurricane/startup/exception.S @@ -97,8 +97,8 @@ name:; \ EXTERN(_ISR_Nest_level, 4) EXTERN(_Thread_Dispatch_disable_level,4) -EXTERN(_Context_Switch_necessary,4) -EXTERN(_ISR_Signals_to_thread_executing,4) +EXTERN(_Context_Switch_necessary,1) +EXTERN(_ISR_Signals_to_thread_executing,1) .extern _Thread_Dispatch .extern _ISR_Vector_table @@ -281,10 +281,10 @@ _ISR_Handler_cleanup: * if ( !_Context_Switch_necessary && !_ISR_Signals_to_thread_executing ) * goto the label "exit interrupt (simple case)" */ - lw t0,_Context_Switch_necessary - lw t1,_ISR_Signals_to_thread_executing + lb t0,_Context_Switch_necessary + lb t1,_ISR_Signals_to_thread_executing NOP - or t0,t0,t1 + or t0,t0,t1 beq t0,zero,_ISR_Handler_exit NOP @@ -416,6 +416,7 @@ USC_isr: sll k0,(31-21) /* test bit 21 (HBI) */ bgez k0,USC_isr2 /* branch if not a heartbeat interrupt */ + NOP /* clear the heartbeat interrupt */ la k0,INT_STAT diff --git a/c/src/lib/libbsp/mips/rbtx4925/ChangeLog b/c/src/lib/libbsp/mips/rbtx4925/ChangeLog index 24c442c49a..dc580618e1 100644 --- a/c/src/lib/libbsp/mips/rbtx4925/ChangeLog +++ b/c/src/lib/libbsp/mips/rbtx4925/ChangeLog @@ -1,3 +1,12 @@ +2009-03-12 Joel Sherrill + + PR 1385/cpukit + * startup/exception.S: When the type rtems_boolean was switched to the + C99 bool, the size changed from 4 bytes to 1 byte. The interrupt + dispatching code accesses two boolean variables for scheduling + purposes and the assembly implementations of this code did not get + updated. + 2008-12-04 Joel Sherrill * bsp_specs: Move -e start from *link to *startfile to avoid warning diff --git a/c/src/lib/libbsp/mips/rbtx4925/startup/exception.S b/c/src/lib/libbsp/mips/rbtx4925/startup/exception.S index c1fb921a70..7efe6c5583 100644 --- a/c/src/lib/libbsp/mips/rbtx4925/startup/exception.S +++ b/c/src/lib/libbsp/mips/rbtx4925/startup/exception.S @@ -96,8 +96,8 @@ name:; \ EXTERN(_ISR_Nest_level, 4) EXTERN(_Thread_Dispatch_disable_level,4) -EXTERN(_Context_Switch_necessary,4) -EXTERN(_ISR_Signals_to_thread_executing,4) +EXTERN(_Context_Switch_necessary,1) +EXTERN(_ISR_Signals_to_thread_executing,1) .extern _Thread_Dispatch .extern _ISR_Vector_table @@ -321,10 +321,10 @@ _ISR_Handler_cleanup: * if ( !_Context_Switch_necessary && !_ISR_Signals_to_thread_executing ) * goto the label "exit interrupt (simple case)" */ - lw t0,_Context_Switch_necessary - lw t1,_ISR_Signals_to_thread_executing + lb t0,_Context_Switch_necessary + lb t1,_ISR_Signals_to_thread_executing NOP - or t0,t0,t1 + or t0,t0,t1 beq t0,zero,_ISR_Handler_exit NOP diff --git a/c/src/lib/libbsp/mips/rbtx4938/ChangeLog b/c/src/lib/libbsp/mips/rbtx4938/ChangeLog index f98ce7b285..72759c0cea 100644 --- a/c/src/lib/libbsp/mips/rbtx4938/ChangeLog +++ b/c/src/lib/libbsp/mips/rbtx4938/ChangeLog @@ -1,3 +1,12 @@ +2009-03-12 Joel Sherrill + + PR 1385/cpukit + * startup/exception.S: When the type rtems_boolean was switched to the + C99 bool, the size changed from 4 bytes to 1 byte. The interrupt + dispatching code accesses two boolean variables for scheduling + purposes and the assembly implementations of this code did not get + updated. + 2008-12-04 Joel Sherrill * bsp_specs: Move -e start from *link to *startfile to avoid warning diff --git a/c/src/lib/libbsp/mips/rbtx4938/startup/exception.S b/c/src/lib/libbsp/mips/rbtx4938/startup/exception.S index d09d66e222..89b1061668 100644 --- a/c/src/lib/libbsp/mips/rbtx4938/startup/exception.S +++ b/c/src/lib/libbsp/mips/rbtx4938/startup/exception.S @@ -96,8 +96,8 @@ name:; \ EXTERN(_ISR_Nest_level, 4) EXTERN(_Thread_Dispatch_disable_level,4) -EXTERN(_Context_Switch_necessary,4) -EXTERN(_ISR_Signals_to_thread_executing,4) +EXTERN(_Context_Switch_necessary,1) +EXTERN(_ISR_Signals_to_thread_executing,1) .extern _Thread_Dispatch .extern _ISR_Vector_table @@ -321,10 +321,10 @@ _ISR_Handler_cleanup: * if ( !_Context_Switch_necessary && !_ISR_Signals_to_thread_executing ) * goto the label "exit interrupt (simple case)" */ - lw t0,_Context_Switch_necessary - lw t1,_ISR_Signals_to_thread_executing + lb t0,_Context_Switch_necessary + lb t1,_ISR_Signals_to_thread_executing NOP - or t0,t0,t1 + or t0,t0,t1 beq t0,zero,_ISR_Handler_exit NOP -- cgit v1.2.3