summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTill Straumann <strauman@slac.stanford.edu>2009-10-29 15:53:31 +0000
committerTill Straumann <strauman@slac.stanford.edu>2009-10-29 15:53:31 +0000
commit1fe3e3cf2581411fba7379fc1275ebb29b37e094 (patch)
tree1918dc3b1666337a523fe658629fbed9e42b2440
parentAdded block02, block03 and block04 (diff)
downloadrtems-1fe3e3cf2581411fba7379fc1275ebb29b37e094.tar.bz2
2009-10-29 Till Straumann <strauman@slac.stanford.edu>
* shared/irq/irq_asm.S, shared/irq/irq.c: removed (fake) exception frame argument to _ThreadProcessSignalsFromIrq(). This has never been used and removing it simplifies the assembly code.
-rw-r--r--c/src/lib/libbsp/i386/ChangeLog7
-rw-r--r--c/src/lib/libbsp/i386/shared/irq/irq.c2
-rw-r--r--c/src/lib/libbsp/i386/shared/irq/irq_asm.S15
3 files changed, 10 insertions, 14 deletions
diff --git a/c/src/lib/libbsp/i386/ChangeLog b/c/src/lib/libbsp/i386/ChangeLog
index b84e14625f..08aab884cd 100644
--- a/c/src/lib/libbsp/i386/ChangeLog
+++ b/c/src/lib/libbsp/i386/ChangeLog
@@ -1,3 +1,10 @@
+2009-10-29 Till Straumann <strauman@slac.stanford.edu>
+
+ * shared/irq/irq_asm.S, shared/irq/irq.c: removed
+ (fake) exception frame argument to _ThreadProcessSignalsFromIrq().
+ This has never been used and removing it simplifies the assembly
+ code.
+
2009-10-28 Till Straumann <strauman@slac.stanford.edu>
* shared/irq/irq_asm.S: Make sure stack is aligned to
diff --git a/c/src/lib/libbsp/i386/shared/irq/irq.c b/c/src/lib/libbsp/i386/shared/irq/irq.c
index 5e546a3309..450ff35848 100644
--- a/c/src/lib/libbsp/i386/shared/irq/irq.c
+++ b/c/src/lib/libbsp/i386/shared/irq/irq.c
@@ -231,7 +231,7 @@ void C_dispatch_isr(int vector)
bsp_interrupt_handler_dispatch(vector);
}
-void _ThreadProcessSignalsFromIrq (CPU_Exception_frame* ctx)
+void _ThreadProcessSignalsFromIrq (void)
{
/*
* Process pending signals that have not already been
diff --git a/c/src/lib/libbsp/i386/shared/irq/irq_asm.S b/c/src/lib/libbsp/i386/shared/irq/irq_asm.S
index d39ff81e72..325251aa15 100644
--- a/c/src/lib/libbsp/i386/shared/irq/irq_asm.S
+++ b/c/src/lib/libbsp/i386/shared/irq/irq_asm.S
@@ -170,20 +170,9 @@ nested:
* exceptions. This makes sense because Signal is a software
* exception.
*/
- popl edx
- popl ecx
- popl eax
-
- pushl $0 # fake fault code
- pushl $0 # fake exception number
-
- pusha
- pushl esp
call _ThreadProcessSignalsFromIrq
- addl $4, esp
- popa
- addl $8, esp
- iret
+
+ jmp .exit
.schedule:
/*