summaryrefslogtreecommitdiff
path: root/nuttx/arch/arm/src/common/up_doirq.c
diff options
context:
space:
mode:
Diffstat (limited to 'nuttx/arch/arm/src/common/up_doirq.c')
-rw-r--r--nuttx/arch/arm/src/common/up_doirq.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/nuttx/arch/arm/src/common/up_doirq.c b/nuttx/arch/arm/src/common/up_doirq.c
index b863ec0c5..861f5f3d8 100644
--- a/nuttx/arch/arm/src/common/up_doirq.c
+++ b/nuttx/arch/arm/src/common/up_doirq.c
@@ -66,7 +66,11 @@
* Public Functions
****************************************************************************/
-uint32 *up_doirq(int irq, uint32* regs)
+#ifdef __thumb2__
+uint32 *up_doirq(int irq, uint32 *regs)
+#else
+void up_doirq(int irq, uint32 *regs)
+#endif
{
up_ledon(LED_INIRQ);
#ifdef CONFIG_SUPPRESS_INTERRUPTS
@@ -94,8 +98,9 @@ uint32 *up_doirq(int irq, uint32* regs)
* of context switching for te particular chip.
*/
+#ifdef __thumb2__
regs = current_regs;
-
+#endif
/* Indicate that we are no long in an interrupt handler */
current_regs = NULL;
@@ -108,5 +113,7 @@ uint32 *up_doirq(int irq, uint32* regs)
}
up_ledoff(LED_INIRQ);
#endif
+#ifdef __thumb2__
return regs;
+#endif
}