diff options
author | Khem Raj <kraj@mvista.com> | 2006-08-31 19:49:16 +0000 |
---|---|---|
committer | Khem Raj <kraj@mvista.com> | 2006-08-31 19:49:16 +0000 |
commit | 84211be0889a59d7188645aefb5325ddfd642627 (patch) | |
tree | 0519bfa28d66c66774d5e70a05daae32f7bbe473 /libc/sysdeps/linux/arm/setjmp.S | |
parent | 967639a59cfbcdecc1a93d6e28a77fdd88e893cf (diff) |
Fix from Joseph Myers: Save and restore iWMMXt registers in ARM setjmp/longjmp
Diffstat (limited to 'libc/sysdeps/linux/arm/setjmp.S')
-rw-r--r-- | libc/sysdeps/linux/arm/setjmp.S | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/libc/sysdeps/linux/arm/setjmp.S b/libc/sysdeps/linux/arm/setjmp.S index ceea96a40..8d15b8324 100644 --- a/libc/sysdeps/linux/arm/setjmp.S +++ b/libc/sysdeps/linux/arm/setjmp.S @@ -53,6 +53,16 @@ __sigsetjmp: sfmea f4, 4, [ip]! # endif #endif +#ifdef __IWMMXT__ + /* Save the call-preserved iWMMXt registers. */ + /* Following instructions are wstrd wr10, [ip], #8 (etc.) */ + stcl p1, cr10, [r12], #8 + stcl p1, cr11, [r12], #8 + stcl p1, cr12, [r12], #8 + stcl p1, cr13, [r12], #8 + stcl p1, cr14, [r12], #8 + stcl p1, cr15, [r12], #8 +#endif /* Make a tail call to __sigjmp_save; it takes the same args. */ #ifdef __PIC__ |