diff options
author | Till Straumann <strauman@slac.stanford.edu> | 2005-11-30 02:21:11 +0000 |
---|---|---|
committer | Till Straumann <strauman@slac.stanford.edu> | 2005-11-30 02:21:11 +0000 |
commit | 5b8eb3f08d8d8542d05695f977150c0da3d7fb14 (patch) | |
tree | 2187d9bda26bef8cca67e6b6af2db3827977749a /c | |
parent | 2005-11-29 Till Straumann <strauman@slac.stanford.edu> (diff) | |
download | rtems-5b8eb3f08d8d8542d05695f977150c0da3d7fb14.tar.bz2 |
2005-11-29 Till Straumann <strauman@slac.stanford.edu>
* shared/irq/irq_asm.S, shared/vectors/vectors.S: Clear
CR[6] before invoking high-level handler to make sure no
varargs fn callee assumes there are FP arguments.
Diffstat (limited to 'c')
-rw-r--r-- | c/src/lib/libbsp/powerpc/ChangeLog | 5 | ||||
-rw-r--r-- | c/src/lib/libbsp/powerpc/shared/irq/irq_asm.S | 2 | ||||
-rw-r--r-- | c/src/lib/libbsp/powerpc/shared/vectors/vectors.S | 2 |
3 files changed, 9 insertions, 0 deletions
diff --git a/c/src/lib/libbsp/powerpc/ChangeLog b/c/src/lib/libbsp/powerpc/ChangeLog index 9b1b30bc95..d1351984fa 100644 --- a/c/src/lib/libbsp/powerpc/ChangeLog +++ b/c/src/lib/libbsp/powerpc/ChangeLog @@ -1,4 +1,9 @@ 2005-11-29 Till Straumann <strauman@slac.stanford.edu> + * shared/irq/irq_asm.S, shared/vectors/vectors.S: Clear + CR[6] before invoking high-level handler to make sure no + varargs fn callee assumes there are FP arguments. + +2005-11-29 Till Straumann <strauman@slac.stanford.edu> * shared/irq/irq.c: Fixed incorrect removal of first shared interrupt in chain. diff --git a/c/src/lib/libbsp/powerpc/shared/irq/irq_asm.S b/c/src/lib/libbsp/powerpc/shared/irq/irq_asm.S index bc5194bd1f..be3f92c1f5 100644 --- a/c/src/lib/libbsp/powerpc/shared/irq/irq_asm.S +++ b/c/src/lib/libbsp/powerpc/shared/irq/irq_asm.S @@ -192,6 +192,8 @@ nested: * in case... */ addi r3, r14, 0x8 + /* clear CR[6] to make sure no varargs fn callee assumes there are FP args passed */ + crxor 6,6,6 bl C_dispatch_irq_handler /* C_dispatch_irq_handler(cpu_interrupt_frame* r3, vector r4) */ /* * start decrementing nesting level. Note : do not test result against 0 diff --git a/c/src/lib/libbsp/powerpc/shared/vectors/vectors.S b/c/src/lib/libbsp/powerpc/shared/vectors/vectors.S index 6eee3f7136..8dba3a3926 100644 --- a/c/src/lib/libbsp/powerpc/shared/vectors/vectors.S +++ b/c/src/lib/libbsp/powerpc/shared/vectors/vectors.S @@ -112,6 +112,8 @@ SYM (push_normalized_frame): * store the execption frame address in r3 (first param) */ addi r3, r1, 0x8 + /* clear CR[6] to make sure no varargs fn callee assumes there are FP args passed */ + crxor 6,6,6 /* * globalExceptHdl(r3) */ |