diff --git a/src/lisp/os-common.c b/src/lisp/os-common.c
index 2ba4bfd8133272a8955b492d31d1c0dddbb8fdd4..90458c9509ed1e1897db74cd9d493ee108a9150f 100755
--- a/src/lisp/os-common.c
+++ b/src/lisp/os-common.c
@@ -542,3 +542,19 @@ os_guard_control_stack(int zone, int guard)
 }
 
 #endif /* not RED_ZONE_HIT */
+
+
+/* Simple interface to __ieee754_rem_pio2 */
+int ieee754_rem_pio2(double x, double *y0, double *y1)
+{
+  extern int __ieee754_rem_pio2(double x, double *y);
+
+  double y[2];
+  int n;
+
+  n = __ieee754_rem_pio2(x, y);
+  *y0 = y[0];
+  *y1 = y[1];
+
+  return n;
+}
diff --git a/src/lisp/ppc-arch.c b/src/lisp/ppc-arch.c
index 6c2ef6b663025e1164d9c8c7a62202118458d352..c46b99c8008f5c5ac21a4a507fe27c7e63d01f2a 100644
--- a/src/lisp/ppc-arch.c
+++ b/src/lisp/ppc-arch.c
@@ -723,17 +723,3 @@ arch_linkage_entry(unsigned long retaddr)
 	/ LinkageEntrySize;
 }
 #endif
-
-int ieee754_rem_pio2(double x, double *y0, double *y1)
-{
-  extern int __ieee754_rem_pio2(double x, double *y);
-
-  double y[2];
-  int n;
-
-  n = __ieee754_rem_pio2(x, y);
-  *y0 = y[0];
-  *y1 = y[1];
-
-  return n;
-}
diff --git a/src/lisp/x86-arch.c b/src/lisp/x86-arch.c
index 56703348fd1a87b3f01edafd7374b52e85224813..c694ceae943f13a3ac15570dac88c443f66b2e96 100644
--- a/src/lisp/x86-arch.c
+++ b/src/lisp/x86-arch.c
@@ -521,19 +521,3 @@ arch_linkage_entry(unsigned long retaddr)
     return ((retaddr - 5) - FOREIGN_LINKAGE_SPACE_START) / LinkageEntrySize;
 }
 #endif /* LINKAGE_TABLE */
-
-int ieee754_rem_pio2(double x, double *y0, double *y1)
-{
-  extern int __ieee754_rem_pio2(double x, double *y);
-
-  double y[2];
-  int n;
-
-  n = __ieee754_rem_pio2(x, y);
-  *y0 = y[0];
-  *y1 = y[1];
-
-  return n;
-}
-
-