mirror of git://sourceware.org/git/glibc.git
hppa: Fix _FPU_GETCW and _FPU_SETCW.
The following patch fixes both _FPU_GETCW and _FPU_SETCW for hppa. The initial implementation was flawed and not well tested. We failed to set cw, and passed in the value of a register to fldd. This patch fixes both of those errors and allows the libm tests to pass without failure. Signed-off-by: Guy Martin <gmsoft@tuxicoman.be> Signed-off-by: Carlos O'Donell <carlos@redhat.com> --- 2013-05-15 Guy Martin <gmsoft@tuxicoman.be> Carlos O'Donell <carlos@redhat.com> [BZ# 15000] * ports/sysdeps/hppa/fpu/fpu_control.h (_FPU_GETCW): Set cw. (_FPU_SETCW): Pass address to fldd.
This commit is contained in:
parent
7abeee129e
commit
b7f7d28b61
12
NEWS
12
NEWS
|
@ -12,12 +12,12 @@ 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, 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.
|
||||
14964, 14981, 14982, 14985, 14994, 14996, 15000, 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,10 @@
|
|||
2013-05-15 Guy Martin <gmsoft@tuxicoman.be>
|
||||
Carlos O'Donell <carlos@redhat.com>
|
||||
|
||||
[BZ# 15000]
|
||||
* ports/sysdeps/hppa/fpu/fpu_control.h (_FPU_GETCW): Set cw.
|
||||
(_FPU_SETCW): Pass address to fldd.
|
||||
|
||||
2013-04-02 Thomas Schwinge <thomas@codesourcery.com>
|
||||
|
||||
* sysdeps/hppa/math_private.h: New file.
|
||||
|
|
|
@ -49,7 +49,7 @@ typedef unsigned int fpu_control_t;
|
|||
__asm__ ("fstd %%fr0,0(%1)\n\t" \
|
||||
"fldd 0(%1),%%fr0\n\t" \
|
||||
: "=m" (__fullfp.__fpreg) : "r" (&__fullfp.__fpreg) : "%r0"); \
|
||||
__fullfp.__halfreg[0]; \
|
||||
cw = __fullfp.__halfreg[0]; \
|
||||
})
|
||||
|
||||
#define _FPU_SETCW(cw) \
|
||||
|
@ -57,7 +57,7 @@ typedef unsigned int fpu_control_t;
|
|||
union { __extension__ unsigned long long __fpreg; unsigned int __halfreg[2]; } __fullfp; \
|
||||
__fullfp.__halfreg[0] = cw; \
|
||||
__asm__ ("fldd 0(%1),%%fr0\n\t" \
|
||||
: : "m" (__fullfp.__fpreg), "r" (__fullfp.__fpreg) : "%r0" ); \
|
||||
: : "m" (__fullfp.__fpreg), "r" (&__fullfp.__fpreg) : "%r0" ); \
|
||||
})
|
||||
|
||||
/* Default control word set at startup. */
|
||||
|
|
Loading…
Reference in New Issue