mirror of
https://sourceware.org/git/glibc.git
synced 2025-01-10 11:20:10 +00:00
Stop ARM setjmp/longjmp saving/restoring fpscr (bug 14908).
This commit is contained in:
parent
2bcb36b265
commit
0175558aa0
14
NEWS
14
NEWS
@ -11,13 +11,13 @@ Version 2.18
|
||||
|
||||
2546, 2560, 5159, 6809, 10060, 10062, 10357, 11120, 11561, 12387, 12723,
|
||||
13550, 13889, 13951, 13988, 14142, 14176, 14200, 14280, 14293, 14317,
|
||||
14327, 14478, 14496, 14582, 14686, 14812, 14888, 14920, 14952, 14964,
|
||||
14981, 14982, 14985, 14994, 14996, 15003, 15006, 15007, 15020, 15023,
|
||||
15036, 15054, 15055, 15062, 15078, 15084, 15085, 15086, 15160, 15214,
|
||||
15221, 15232, 15234, 15283, 15285, 15287, 15304, 15305, 15307, 15309,
|
||||
15327, 15330, 15335, 15336, 15337, 15342, 15346, 15359, 15361, 15366,
|
||||
15380, 15394, 15395, 15405, 15406, 15409, 15416, 15418, 15419, 15423,
|
||||
15426, 15429, 15448.
|
||||
14327, 14478, 14496, 14582, 14686, 14812, 14888, 14908, 14920, 14952,
|
||||
14964, 14981, 14982, 14985, 14994, 14996, 15003, 15006, 15007, 15020,
|
||||
15023, 15036, 15054, 15055, 15062, 15078, 15084, 15085, 15086, 15160,
|
||||
15214, 15221, 15232, 15234, 15283, 15285, 15287, 15304, 15305, 15307,
|
||||
15309, 15327, 15330, 15335, 15336, 15337, 15342, 15346, 15359, 15361,
|
||||
15366, 15380, 15394, 15395, 15405, 15406, 15409, 15416, 15418, 15419,
|
||||
15423, 15426, 15429, 15448.
|
||||
|
||||
* CVE-2013-0242 Buffer overrun in regexp matcher has been fixed (Bugzilla
|
||||
#15078).
|
||||
|
@ -1,3 +1,11 @@
|
||||
2013-05-14 Joseph Myers <joseph@codesourcery.com>
|
||||
|
||||
[BZ #14908]
|
||||
* sysdeps/arm/setjmp.S (__sigsetjmp): Don't save fpscr.
|
||||
* sysdeps/arm/__longjmp.S (__longjmp): Don't restore fpscr.
|
||||
* sysdeps/arm/bits/setjmp.h (__jmp_buf): Don't mention fpscr in
|
||||
comment.
|
||||
|
||||
2013-05-13 Roland McGrath <roland@hack.frob.com>
|
||||
|
||||
* sysdeps/arm/armv7/multiarch/memcpy.S [__ARM_NEON__]: Don't define
|
||||
|
@ -83,11 +83,6 @@ ENTRY (__longjmp)
|
||||
/* Following instruction is vldmia ip!, {d8-d15}. */
|
||||
sfi_breg r12, \
|
||||
ldc p11, cr8, [\B], #64
|
||||
/* Restore the floating-point status register. */
|
||||
sfi_breg ip, \
|
||||
ldr a3, [\B], #4
|
||||
/* Following instruction is fmxr fpscr, a3. */
|
||||
mcr p10, 7, a3, cr1, cr0, 0
|
||||
.Lno_vfp:
|
||||
|
||||
#ifndef ARM_ASSUME_NO_IWMMXT
|
||||
|
@ -28,9 +28,9 @@
|
||||
/* The exact set of registers saved may depend on the particular core
|
||||
in use, as some coprocessor registers may need to be saved. The C
|
||||
Library ABI requires that the buffer be 8-byte aligned, and
|
||||
recommends that the buffer contain 64 words. The first 28 words
|
||||
are occupied by v1-v6, sl, fp, sp, pc, d8-d15, and fpscr. (Note
|
||||
that d8-15 require 17 words, due to the use of fstmx.) */
|
||||
recommends that the buffer contain 64 words. The first 27 words
|
||||
are occupied by v1-v6, sl, fp, sp, pc, and d8-d15. (Note that
|
||||
d8-15 require 17 words, due to the use of fstmx.) */
|
||||
typedef int __jmp_buf[64] __attribute__((__aligned__ (8)));
|
||||
#endif
|
||||
|
||||
|
@ -67,11 +67,6 @@ ENTRY (__sigsetjmp)
|
||||
/* Following instruction is vstmia ip!, {d8-d15}. */
|
||||
sfi_breg ip, \
|
||||
stc p11, cr8, [\B], #64
|
||||
/* Store the floating-point status register. */
|
||||
/* Following instruction is vmrs a4, fpscr. */
|
||||
mrc p10, 7, a4, cr1, cr0, 0
|
||||
sfi_breg ip, \
|
||||
str a4, [\B], #4
|
||||
.Lno_vfp:
|
||||
|
||||
#ifndef ARM_ASSUME_NO_IWMMXT
|
||||
|
Loading…
Reference in New Issue
Block a user