diff packages/hal/powerpc/arch/current/src/vectors.S @ 101:c37d3a9e1b28 ecos-sw-2000-06-16

Merge from eCos master repository on 2000-06-16-07:47:03-BST
author jlarmour
date Fri, 16 Jun 2000 16:43:59 +0000
parents 6736c52df507
children 5a0cc6c243a9
line wrap: on
line diff
--- a/packages/hal/powerpc/arch/current/src/vectors.S
+++ b/packages/hal/powerpc/arch/current/src/vectors.S
@@ -347,6 +347,11 @@ 2:
         # Variant HALs may need to do something special before we continue
         bl      hal_variant_init
 
+#ifdef CYGSEM_HAL_VIRTUAL_VECTOR_SUPPORT // this _check_ should go away
+        # Platform initialization
+        bl      hal_platform_init
+#endif
+        
         # MMU and cache are controlled by the same option since caching
         # on the PPC does not make sense without the MMU to mark regions
         # which should not be cached.
@@ -373,7 +378,14 @@ 2:
 #ifdef CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
         bl      initialize_stub
 #endif
-
+#ifdef CYGSEM_HAL_VIRTUAL_VECTOR_SUPPORT // this _check_ should go away
+#if defined(CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT) \
+    || defined(CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT)
+        .extern hal_ctrlc_isr_init
+        bl     hal_ctrlc_isr_init
+#endif
+#endif
+        
         bl      cyg_start                       # call cyg_start
 9:      
         b       9b              # if we return, loop
@@ -645,6 +657,7 @@ 2:      stwu    r14,-4(sp)              
 
         hal_intc_decode r15,r14                # get table index
 
+#ifndef CYGSEM_HAL_VIRTUAL_VECTOR_SUPPORT  // this should go away
 #ifdef CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT
         .extern cyg_hal_gdb_isr
         lwz     r3,CYGARC_PPCREG_PC(r14)        # for serial receive irq.
@@ -655,6 +668,21 @@ 2:      stwu    r14,-4(sp)              
 1:
 #endif
 
+#else // the below should remain        
+
+#if defined(CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT) \
+    || defined(CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT)
+	# If we are supporting Ctrl-C interrupts from GDB, we must squirrel
+	# away a pointer to the save interrupt state here so that we can
+	# plant a breakpoint at some later time.
+	
+	.extern	hal_saved_interrupt_state
+	lwi	r3,hal_saved_interrupt_state
+	stw	r14,0(r3)
+	
+#endif
+#endif // CYGSEM_HAL_VIRTUAL_VECTOR_SUPPORT
+
 #ifdef CYGSEM_HAL_COMMON_INTERRUPTS_ALLOW_NESTING
 
 #ifdef CYGPKG_HAL_POWERPC_MPC8xx
@@ -679,11 +707,13 @@ 1:
 
         bctrl                                   # branch to ctr reg and link
 
+#ifndef CYGSEM_HAL_VIRTUAL_VECTOR_SUPPORT  // this should go away
 #ifdef CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT
         # If interrupt was caused by GDB, the ISR call above
         # is skipped by jumping here.
 2:
 #endif
+#endif
         
 #ifdef CYGIMP_HAL_COMMON_INTERRUPTS_USE_INTERRUPT_STACK