This is the mail archive of the ecos-patches@sources.redhat.com mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: thumb support


Jonathan Larmour wrote:
Daniel Néri wrote:

In vectors.S, there is a call to hal_spurious_IRQ that is (still) not
thumb-aware. Proposed fix below.


Applied, thanks. I had a third party report that it fixed things too.

Actually, just thinking about it, we should probably endeavour not to lengthen the interrupt path, so I also checked in the attached patch.


Jifl
--
eCosCentric    http://www.eCosCentric.com/    The eCos and RedBoot experts
--[ "You can complain because roses have thorns, or you ]--
--[  can rejoice because thorns have roses." -Lincoln   ]-- Opinions==mine
Index: ChangeLog
===================================================================
RCS file: /cvs/ecos/ecos/packages/hal/arm/arch/current/ChangeLog,v
retrieving revision 1.88
diff -u -5 -p -r1.88 ChangeLog
--- ChangeLog	30 Apr 2003 13:35:06 -0000	1.88
+++ ChangeLog	30 Apr 2003 13:40:49 -0000
@@ -1,5 +1,10 @@
+2003-04-30  Jonathan Larmour  <jifl@eCosCentric.com>
+
+	* src/vectors.S (handle_IRQ_or_FIQ): Tweak below to be conditional on
+	__thumb__.
+
 2003-04-26  Daniel Néri  <daniel.neri@sigicom.se>
 
 	* vectors.S (handle_IRQ_or_FIQ):
 	Use thumb-aware call to hal_spurious_IRQ.
 
Index: src/vectors.S
===================================================================
RCS file: /cvs/ecos/ecos/packages/hal/arm/arch/current/src/vectors.S,v
retrieving revision 1.49
diff -u -5 -p -r1.49 vectors.S
--- src/vectors.S	30 Apr 2003 13:35:06 -0000	1.49
+++ src/vectors.S	30 Apr 2003 13:40:50 -0000
@@ -804,13 +804,17 @@ handle_IRQ_or_FIQ:
 
         cmp     r0,#CYGNUM_HAL_INTERRUPT_NONE   // spurious interrupt
         bne     10f
 #ifndef CYGIMP_HAL_COMMON_INTERRUPTS_IGNORE_SPURIOUS
         mov     r0,v6                   // register frame
+# ifdef __thumb__
         ldr     r1,=hal_spurious_IRQ
         mov     lr,pc
         bx      r1
+# else
+        bl      hal_spurious_IRQ
+# endif
 #endif // CYGIMP_HAL_COMMON_INTERRUPTS_IGNORE_SPURIOUS
         b       spurious_IRQ
         
 10:     ldr     r1,.hal_interrupt_data
         ldr     r1,[r1,v1,lsl #2]       // handler data

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]