From eacb6bcea7196699d2b9dfe29a07d237059360ac Mon Sep 17 00:00:00 2001 From: David McCullough Date: Mon, 17 Feb 2003 12:20:42 +0000 Subject: If floating point was enabled, setjmp would write to memory well past the end of the buffer. --- libc/sysdeps/linux/sh/setjmp.S | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'libc/sysdeps/linux') diff --git a/libc/sysdeps/linux/sh/setjmp.S b/libc/sysdeps/linux/sh/setjmp.S index c9fa3b1fb..7d70fba76 100644 --- a/libc/sysdeps/linux/sh/setjmp.S +++ b/libc/sysdeps/linux/sh/setjmp.S @@ -53,17 +53,18 @@ setjmp: .globl __sigsetjmp; __sigsetjmp: mov r0, r1 + nop /* align this guy */ __sigsetjmp_intern: /* Save registers */ #if defined __UCLIBC_HAS_FLOATS__ && ! defined __UCLIBC_HAS_SOFT_FLOAT__ - add #(JB_SIZE*4), r4 + add #(JB_SIZE), r4 fmov.s fr15, @-r4 fmov.s fr14, @-r4 fmov.s fr13, @-r4 fmov.s fr12, @-r4 sts.l fpscr, @-r4 #else - add #(JB_SIZE-5*4), r4 /* this code doesn't do FP yet */ + add #(JB_SIZE-(5*4)), r4 /* this code doesn't do FP yet */ #endif stc.l gbr, @-r4 sts.l pr, @-r4 -- cgit v1.2.3