diff options
Diffstat (limited to 'sysdeps/sparc')
-rw-r--r-- | sysdeps/sparc/configure | 2 | ||||
-rw-r--r-- | sysdeps/sparc/configure.ac (renamed from sysdeps/sparc/configure.in) | 0 | ||||
-rw-r--r-- | sysdeps/sparc/fpu/fegetround.c | 1 | ||||
-rw-r--r-- | sysdeps/sparc/fpu/libm-test-ulps | 125 | ||||
-rw-r--r-- | sysdeps/sparc/sparc32/fpu/s_fdim.S | 3 | ||||
-rw-r--r-- | sysdeps/sparc/sparc32/soft-fp/q_neg.c | 7 | ||||
-rw-r--r-- | sysdeps/sparc/sparc32/stackguard-macros.h | 3 | ||||
-rw-r--r-- | sysdeps/sparc/sparc64/multiarch/add_n.S | 2 | ||||
-rw-r--r-- | sysdeps/sparc/sparc64/multiarch/addmul_1.S | 2 | ||||
-rw-r--r-- | sysdeps/sparc/sparc64/multiarch/mul_1.S | 2 | ||||
-rw-r--r-- | sysdeps/sparc/sparc64/multiarch/sub_n.S | 2 | ||||
-rw-r--r-- | sysdeps/sparc/sparc64/multiarch/submul_1.S | 2 | ||||
-rw-r--r-- | sysdeps/sparc/sparc64/stackguard-macros.h | 3 |
13 files changed, 142 insertions, 12 deletions
diff --git a/sysdeps/sparc/configure b/sysdeps/sparc/configure index 63e02de4a6..90a86f6da3 100644 --- a/sysdeps/sparc/configure +++ b/sysdeps/sparc/configure @@ -1,4 +1,4 @@ -# This file is generated from configure.in by Autoconf. DO NOT EDIT! +# This file is generated from configure.ac by Autoconf. DO NOT EDIT! # Local configure fragment for sysdeps/sparc. # Check for support of VIS3 et al. instructions in the assembler. diff --git a/sysdeps/sparc/configure.in b/sysdeps/sparc/configure.ac index 982077c9b9..982077c9b9 100644 --- a/sysdeps/sparc/configure.in +++ b/sysdeps/sparc/configure.ac diff --git a/sysdeps/sparc/fpu/fegetround.c b/sysdeps/sparc/fpu/fegetround.c index c4987e8b3e..c2d5f5af03 100644 --- a/sysdeps/sparc/fpu/fegetround.c +++ b/sysdeps/sparc/fpu/fegetround.c @@ -27,3 +27,4 @@ fegetround (void) return tmp & __FE_ROUND_MASK; } +libm_hidden_def (fegetround) diff --git a/sysdeps/sparc/fpu/libm-test-ulps b/sysdeps/sparc/fpu/libm-test-ulps index cfc72a661c..ecb871d6ab 100644 --- a/sysdeps/sparc/fpu/libm-test-ulps +++ b/sysdeps/sparc/fpu/libm-test-ulps @@ -7505,6 +7505,34 @@ idouble: 1 Test "gamma (-0.5)": ildouble: 1 ldouble: 1 +Test "gamma (-0x1p-10)": +double: 1 +idouble: 1 +Test "gamma (-0x1p-15)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +Test "gamma (-0x1p-20)": +double: 1 +idouble: 1 +Test "gamma (-0x1p-25)": +ildouble: 1 +ldouble: 1 +Test "gamma (-0x1p-30)": +ildouble: 1 +ldouble: 1 +Test "gamma (-0x1p-40)": +ildouble: 1 +ldouble: 1 +Test "gamma (-0x1p-5)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "gamma (-0x1p-64)": +ildouble: 1 +ldouble: 1 Test "gamma (0.7)": double: 1 float: 1 @@ -7512,6 +7540,25 @@ idouble: 1 ifloat: 1 ildouble: 1 ldouble: 1 +Test "gamma (0x1p-10)": +float: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 +Test "gamma (0x1p-30)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "gamma (0x1p-5)": +ildouble: 1 +ldouble: 1 +Test "gamma (0x1p-60)": +ildouble: 1 +ldouble: 1 +Test "gamma (0x1p-70)": +ildouble: 1 +ldouble: 1 Test "gamma (1.2)": double: 1 float: 2 @@ -7725,6 +7772,17 @@ double: 2 float: 2 idouble: 2 ifloat: 2 +Test "jn (2, 0x1p1023)": +ildouble: 1 +ldouble: 1 +Test "jn (2, 0x1p127)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "jn (2, 0x1p16383)": +ildouble: 2 +ldouble: 2 Test "jn (2, 2.4048255576957729)": double: 2 float: 1 @@ -7802,6 +7860,34 @@ ldouble: 3 Test "lgamma (-0.5)": ildouble: 1 ldouble: 1 +Test "lgamma (-0x1p-10)": +double: 1 +idouble: 1 +Test "lgamma (-0x1p-15)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +Test "lgamma (-0x1p-20)": +double: 1 +idouble: 1 +Test "lgamma (-0x1p-25)": +ildouble: 1 +ldouble: 1 +Test "lgamma (-0x1p-30)": +ildouble: 1 +ldouble: 1 +Test "lgamma (-0x1p-40)": +ildouble: 1 +ldouble: 1 +Test "lgamma (-0x1p-5)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "lgamma (-0x1p-64)": +ildouble: 1 +ldouble: 1 Test "lgamma (0.7)": double: 1 float: 1 @@ -7809,6 +7895,25 @@ idouble: 1 ifloat: 1 ildouble: 1 ldouble: 1 +Test "lgamma (0x1p-10)": +float: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 +Test "lgamma (0x1p-30)": +double: 1 +idouble: 1 +ildouble: 1 +ldouble: 1 +Test "lgamma (0x1p-5)": +ildouble: 1 +ldouble: 1 +Test "lgamma (0x1p-60)": +ildouble: 1 +ldouble: 1 +Test "lgamma (0x1p-70)": +ildouble: 1 +ldouble: 1 Test "lgamma (1.2)": double: 1 float: 2 @@ -9239,7 +9344,9 @@ ildouble: 5 ldouble: 5 Test "yn (10, 1.0)": double: 1 +float: 2 idouble: 1 +ifloat: 2 ildouble: 1 ldouble: 1 Test "yn (10, 10.0)": @@ -9251,7 +9358,25 @@ ildouble: 2 ldouble: 2 Test "yn (10, 2.0)": double: 2 +float: 1 idouble: 2 +ifloat: 1 +ildouble: 2 +ldouble: 2 +Test "yn (2, 0x1.ffff62p+99)": +double: 1 +idouble: 1 +Test "yn (2, 0x1p1023)": +ildouble: 1 +ldouble: 1 +Test "yn (2, 0x1p127)": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +ildouble: 1 +ldouble: 1 +Test "yn (2, 0x1p16383)": ildouble: 2 ldouble: 2 Test "yn (3, 0.125)": diff --git a/sysdeps/sparc/sparc32/fpu/s_fdim.S b/sysdeps/sparc/sparc32/fpu/s_fdim.S index 2f0c5ce583..22f69ce519 100644 --- a/sysdeps/sparc/sparc32/fpu/s_fdim.S +++ b/sysdeps/sparc/sparc32/fpu/s_fdim.S @@ -30,7 +30,8 @@ ENTRY(__fdim) fbug 1f st %g0, [%sp + 76] ldd [%sp + 72], %f0 - fnegd %f0, %f2 + fnegs %f0, %f2 + fmovs %f1, %f3 1: retl fsubd %f0, %f2, %f0 END(__fdim) diff --git a/sysdeps/sparc/sparc32/soft-fp/q_neg.c b/sysdeps/sparc/sparc32/soft-fp/q_neg.c index 551c40887b..5e2449c916 100644 --- a/sysdeps/sparc/sparc32/soft-fp/q_neg.c +++ b/sysdeps/sparc/sparc32/soft-fp/q_neg.c @@ -24,7 +24,6 @@ long double _Q_neg(const long double a) { - FP_DECL_EX; long double c = a; #if (__BYTE_ORDER == __BIG_ENDIAN) @@ -36,11 +35,9 @@ long double _Q_neg(const long double a) #else FP_DECL_Q(A); FP_DECL_Q(C); - FP_UNPACK_Q(A, a); + FP_UNPACK_RAW_Q(A, a); FP_NEG_Q(C, A); - FP_PACK_Q(c, C); + FP_PACK_RAW_Q(c, C); #endif - FP_CLEAR_EXCEPTIONS; - FP_HANDLE_EXCEPTIONS; return c; } diff --git a/sysdeps/sparc/sparc32/stackguard-macros.h b/sysdeps/sparc/sparc32/stackguard-macros.h index c0b02b0bbd..1eef0f19f0 100644 --- a/sysdeps/sparc/sparc32/stackguard-macros.h +++ b/sysdeps/sparc/sparc32/stackguard-macros.h @@ -2,3 +2,6 @@ #define STACK_CHK_GUARD \ ({ uintptr_t x; asm ("ld [%%g7+0x14], %0" : "=r" (x)); x; }) + +#define POINTER_CHK_GUARD \ + ({ uintptr_t x; asm ("ld [%%g7+0x18], %0" : "=r" (x)); x; }) diff --git a/sysdeps/sparc/sparc64/multiarch/add_n.S b/sysdeps/sparc/sparc64/multiarch/add_n.S index 25cae3977a..22c6e583d0 100644 --- a/sysdeps/sparc/sparc64/multiarch/add_n.S +++ b/sysdeps/sparc/sparc64/multiarch/add_n.S @@ -42,7 +42,7 @@ ENTRY(__mpn_add_n) sethi %gdop_hix22(__mpn_add_n_generic), %o1 xor %o1, %gdop_lox10(__mpn_add_n_generic), %o1 # else - set __mpn_add_n_vis3, %o1 + set __mpn_add_n_generic, %o1 # endif 10: # ifdef SHARED diff --git a/sysdeps/sparc/sparc64/multiarch/addmul_1.S b/sysdeps/sparc/sparc64/multiarch/addmul_1.S index a1659e40e3..a65c934d9b 100644 --- a/sysdeps/sparc/sparc64/multiarch/addmul_1.S +++ b/sysdeps/sparc/sparc64/multiarch/addmul_1.S @@ -42,7 +42,7 @@ ENTRY(__mpn_addmul_1) sethi %gdop_hix22(__mpn_addmul_1_generic), %o1 xor %o1, %gdop_lox10(__mpn_addmul_1_generic), %o1 # else - set __mpn_addmul_1_vis3, %o1 + set __mpn_addmul_1_generic, %o1 # endif 10: # ifdef SHARED diff --git a/sysdeps/sparc/sparc64/multiarch/mul_1.S b/sysdeps/sparc/sparc64/multiarch/mul_1.S index 25f51bf810..811754ed8b 100644 --- a/sysdeps/sparc/sparc64/multiarch/mul_1.S +++ b/sysdeps/sparc/sparc64/multiarch/mul_1.S @@ -42,7 +42,7 @@ ENTRY(__mpn_mul_1) sethi %gdop_hix22(__mpn_mul_1_generic), %o1 xor %o1, %gdop_lox10(__mpn_mul_1_generic), %o1 # else - set __mpn_mul_1_vis3, %o1 + set __mpn_mul_1_generic, %o1 # endif 10: # ifdef SHARED diff --git a/sysdeps/sparc/sparc64/multiarch/sub_n.S b/sysdeps/sparc/sparc64/multiarch/sub_n.S index 5e15bea101..39637905f3 100644 --- a/sysdeps/sparc/sparc64/multiarch/sub_n.S +++ b/sysdeps/sparc/sparc64/multiarch/sub_n.S @@ -42,7 +42,7 @@ ENTRY(__mpn_sub_n) sethi %gdop_hix22(__mpn_sub_n_generic), %o1 xor %o1, %gdop_lox10(__mpn_sub_n_generic), %o1 # else - set __mpn_sub_n_vis3, %o1 + set __mpn_sub_n_generic, %o1 # endif 10: # ifdef SHARED diff --git a/sysdeps/sparc/sparc64/multiarch/submul_1.S b/sysdeps/sparc/sparc64/multiarch/submul_1.S index 68552e9af0..6c4c3a36cf 100644 --- a/sysdeps/sparc/sparc64/multiarch/submul_1.S +++ b/sysdeps/sparc/sparc64/multiarch/submul_1.S @@ -42,7 +42,7 @@ ENTRY(__mpn_submul_1) sethi %gdop_hix22(__mpn_submul_1_generic), %o1 xor %o1, %gdop_lox10(__mpn_submul_1_generic), %o1 # else - set __mpn_submul_1_vis3, %o1 + set __mpn_submul_1_generic, %o1 # endif 10: # ifdef SHARED diff --git a/sysdeps/sparc/sparc64/stackguard-macros.h b/sysdeps/sparc/sparc64/stackguard-macros.h index 80f063558a..cc0c12c041 100644 --- a/sysdeps/sparc/sparc64/stackguard-macros.h +++ b/sysdeps/sparc/sparc64/stackguard-macros.h @@ -2,3 +2,6 @@ #define STACK_CHK_GUARD \ ({ uintptr_t x; asm ("ldx [%%g7+0x28], %0" : "=r" (x)); x; }) + +#define POINTER_CHK_GUARD \ + ({ uintptr_t x; asm ("ldx [%%g7+0x30], %0" : "=r" (x)); x; }) |