about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--sysdeps/sparc/sparc-ifunc.h10
2 files changed, 7 insertions, 8 deletions
diff --git a/ChangeLog b/ChangeLog
index 87e4067b3a..f8e097e17f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2017-09-26  Joseph Myers  <joseph@codesourcery.com>
+
+	* sysdeps/sparc/sparc-ifunc.h [!__ASSEMBLER__] (sparc_libm_ifunc):
+	Define using __ifunc.
+
 2017-09-26  Tulio Magno Quites Machado Filho  <tuliom@linux.vnet.ibm.com>
 
 	* sysdeps/powerpc/fpu/libm-test-ulps: Regenerate expf() and
diff --git a/sysdeps/sparc/sparc-ifunc.h b/sysdeps/sparc/sparc-ifunc.h
index 8cc86ff5e1..4b1ea00bde 100644
--- a/sysdeps/sparc/sparc-ifunc.h
+++ b/sysdeps/sparc/sparc-ifunc.h
@@ -162,14 +162,8 @@ END (__##name)
 
 #else	/* __ASSEMBLER__ */
 
-# define sparc_libm_ifunc(name, expr)					\
-  extern void *name##_ifunc (int) __asm__ (#name);			\
-  void *name##_ifunc (int hwcap)					\
-  {									\
-    __typeof (name) *res = expr;					\
-    return res;								\
-  }									\
-  __asm__ (".type " #name ", %gnu_indirect_function");
+# define sparc_libm_ifunc(name, expr)				\
+  __ifunc (name, name, expr, int hwcap, libm_ifunc_init)
 
 # define sparc_libc_ifunc(name, expr) sparc_libm_ifunc (name, expr)