OSDN Git Service

(perform_*): Move to i386/perform.h.
authorjrv <jrv@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 8 Jan 1993 09:52:03 +0000 (09:52 +0000)
committerjrv <jrv@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 8 Jan 1993 09:52:03 +0000 (09:52 +0000)
Include i386/perform.h.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@3155 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/config/i386/386bsd.h
gcc/config/i386/mach.h
gcc/config/i386/osfrose.h

index a67415f..7fd674d 100644 (file)
@@ -5,6 +5,9 @@
 
 #include "i386/gstabs.h"
 
+/* Get perform_* macros to build libgcc.a.  */
+#include "i386/perform.h"
+
 #undef CPP_PREDEFINES
 #define CPP_PREDEFINES "-Dunix -Di386 -D____386BSD____ -D__386BSD__ -DBSD_NET2"
 
 #undef ASM_APP_OFF
 #define ASM_APP_OFF "#NO_APP\n"
 \f
-/* Defines to be able to build libgcc.a with GCC.
-   These are the same as in i386mach.h.  */
-
-/* It might seem that these are not important, since gcc 2 will never
-   call libgcc for these functions.  But programs might be linked with
-   code compiled by gcc 1, and then these will be used.  */
-
-/* The arg names used to be a and b, but `a' appears inside strings
-   and that confuses non-ANSI cpp.  */
-
-#define perform_udivsi3(arg0,arg1)                                     \
-{                                                                      \
-  register int dx asm("dx");                                           \
-  register int ax asm("ax");                                           \
-                                                                       \
-  dx = 0;                                                              \
-  ax = arg0;                                                           \
-  asm ("divl %3" : "=a" (ax), "=d" (dx) : "a" (ax), "g" (arg1), "d" (dx)); \
-  return ax;                                                           \
-}
-
-#define perform_divsi3(arg0,arg1)                                      \
-{                                                                      \
-  register int dx asm("dx");                                           \
-  register int ax asm("ax");                                           \
-                                                                       \
-  ax = arg0;                                                           \
-  asm ("cltd\n\tidivl %3" : "=a" (ax), "=d" (dx) : "a" (ax), "g" (arg1)); \
-  return ax;                                                           \
-}
-
-#define perform_umodsi3(arg0,arg1)                                     \
-{                                                                      \
-  register int dx asm("dx");                                           \
-  register int ax asm("ax");                                           \
-                                                                       \
-  dx = 0;                                                              \
-  ax = arg0;                                                           \
-  asm ("divl %3" : "=a" (ax), "=d" (dx) : "a" (ax), "g" (arg1), "d" (dx)); \
-  return dx;                                                           \
-}
-
-#define perform_modsi3(arg0,arg1)                                      \
-{                                                                      \
-  register int dx asm("dx");                                           \
-  register int ax asm("ax");                                           \
-                                                                       \
-  ax = arg0;                                                           \
-  asm ("cltd\n\tidivl %3" : "=a" (ax), "=d" (dx) : "a" (ax), "g" (arg1)); \
-  return dx;                                                           \
-}
-
-
-#define perform_fixdfsi(arg0)                                          \
-{                                                                      \
-  auto unsigned short ostatus;                                         \
-  auto unsigned short nstatus;                                         \
-  auto int ret;                                                                \
-  auto double tmp;                                                     \
-                                                                       \
-  &ostatus;                    /* guarantee these land in memory */    \
-  &nstatus;                                                            \
-  &ret;                                                                        \
-  &tmp;                                                                        \
-                                                                       \
-  asm volatile ("fnstcw %0" : "=m" (ostatus));                         \
-  nstatus = ostatus | 0x0c00;                                          \
-  asm volatile ("fldcw %0" : /* no outputs */ : "m" (nstatus));                \
-  tmp = arg0;                                                          \
-  asm volatile ("fldl %0" : /* no outputs */ : "m" (tmp));             \
-  asm volatile ("fistpl %0" : "=m" (ret));                             \
-  asm volatile ("fldcw %0" : /* no outputs */ : "m" (ostatus));                \
-                                                                       \
-  return ret;                                                          \
-}
-
 /* The following macros are stolen from i386v4.h */
 /* These have to be defined to get PIC code correct */
 
index 71a1331..964f451 100644 (file)
@@ -6,6 +6,9 @@
 
 #include "i386/gstabs.h"
 
+/* Get perform_* macros to build libgcc.a.  */
+#include "i386/perform.h"
+
 #undef CPP_PREDEFINES
 #define CPP_PREDEFINES "-Dunix -Di386 -DMACH"
 
 
 /* Make stddef.h agree with types.h.  */
 #define SIZE_TYPE "long int"
-\f
-/* Defines to be able to build libgcc.a with GCC.  */
-
-/* It might seem that these are not important, since gcc 2 will never
-   call libgcc for these functions.  But programs might be linked with
-   code compiled by gcc 1, and then these will be used.  */
-
-#define perform_udivsi3(a,b)                                           \
-{                                                                      \
-  register int dx asm("dx");                                           \
-  register int ax asm("ax");                                           \
-                                                                       \
-  dx = 0;                                                              \
-  ax = a;                                                              \
-  asm ("divl %3" : "=a" (ax), "=d" (dx) : "a" (ax), "g" (b), "d" (dx));        \
-  return ax;                                                           \
-}
-
-#define perform_divsi3(a,b)                                            \
-{                                                                      \
-  register int dx asm("dx");                                           \
-  register int ax asm("ax");                                           \
-                                                                       \
-  ax = a;                                                              \
-  asm ("cltd\n\tidivl %3" : "=a" (ax), "=d" (dx) : "a" (ax), "g" (b)); \
-  return ax;                                                           \
-}
-
-#define perform_umodsi3(a,b)                                           \
-{                                                                      \
-  register int dx asm("dx");                                           \
-  register int ax asm("ax");                                           \
-                                                                       \
-  dx = 0;                                                              \
-  ax = a;                                                              \
-  asm ("divl %3" : "=a" (ax), "=d" (dx) : "a" (ax), "g" (b), "d" (dx));        \
-  return dx;                                                           \
-}
-
-#define perform_modsi3(a,b)                                            \
-{                                                                      \
-  register int dx asm("dx");                                           \
-  register int ax asm("ax");                                           \
-                                                                       \
-  ax = a;                                                              \
-  asm ("cltd\n\tidivl %3" : "=a" (ax), "=d" (dx) : "a" (ax), "g" (b)); \
-  return dx;                                                           \
-}
-
-#define perform_fixdfsi(a)                                             \
-{                                                                      \
-  auto unsigned short ostatus;                                         \
-  auto unsigned short nstatus;                                         \
-  auto int ret;                                                                \
-  auto double tmp;                                                     \
-                                                                       \
-  &ostatus;                    /* guarantee these land in memory */    \
-  &nstatus;                                                            \
-  &ret;                                                                        \
-  &tmp;                                                                        \
-                                                                       \
-  asm volatile ("fnstcw %0" : "=m" (ostatus));                         \
-  nstatus = ostatus | 0x0c00;                                          \
-  asm volatile ("fldcw %0" : /* no outputs */ : "m" (nstatus));                \
-  tmp = a;                                                             \
-  asm volatile ("fldl %0" : /* no outputs */ : "m" (tmp));             \
-  asm volatile ("fistpl %0" : "=m" (ret));                             \
-  asm volatile ("fldcw %0" : /* no outputs */ : "m" (ostatus));                \
-                                                                       \
-  return ret;                                                          \
-}
index 3af233c..abd7d40 100644 (file)
@@ -24,6 +24,9 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
 #include "halfpic.h"
 #include "i386/gstabs.h"
 
+/* Get perform_* macros to build libgcc.a.  */
+#include "i386/perform.h"
+
 #define OSF_OS
 
 #undef  WORD_SWITCH_TAKES_ARG
@@ -372,76 +375,3 @@ while (0)
 
 /* Generate calls to memcpy, etc., not bcopy, etc. */
 #define TARGET_MEM_FUNCTIONS
-
-
-\f
-/* Defines to be able to build libgcc.a with GCC.  */
-
-/* It might seem that these are not important, since gcc 2 will never
-   call libgcc for these functions.  But programs might be linked with
-   code compiled by gcc 1, and then these will be used.  */
-
-#define perform_udivsi3(a,b)                                           \
-{                                                                      \
-  register int dx asm("dx");                                           \
-  register int ax asm("ax");                                           \
-                                                                       \
-  dx = 0;                                                              \
-  ax = a;                                                              \
-  asm ("divl %3" : "=a" (ax), "=d" (dx) : "a" (ax), "g" (b), "d" (dx));        \
-  return ax;                                                           \
-}
-
-#define perform_divsi3(a,b)                                            \
-{                                                                      \
-  register int dx asm("dx");                                           \
-  register int ax asm("ax");                                           \
-                                                                       \
-  ax = a;                                                              \
-  asm ("cltd\n\tidivl %3" : "=a" (ax), "=d" (dx) : "a" (ax), "g" (b)); \
-  return ax;                                                           \
-}
-
-#define perform_umodsi3(a,b)                                           \
-{                                                                      \
-  register int dx asm("dx");                                           \
-  register int ax asm("ax");                                           \
-                                                                       \
-  dx = 0;                                                              \
-  ax = a;                                                              \
-  asm ("divl %3" : "=a" (ax), "=d" (dx) : "a" (ax), "g" (b), "d" (dx));        \
-  return dx;                                                           \
-}
-
-#define perform_modsi3(a,b)                                            \
-{                                                                      \
-  register int dx asm("dx");                                           \
-  register int ax asm("ax");                                           \
-                                                                       \
-  ax = a;                                                              \
-  asm ("cltd\n\tidivl %3" : "=a" (ax), "=d" (dx) : "a" (ax), "g" (b)); \
-  return dx;                                                           \
-}
-
-#define perform_fixdfsi(a)                                             \
-{                                                                      \
-  auto unsigned short ostatus;                                         \
-  auto unsigned short nstatus;                                         \
-  auto int ret;                                                                \
-  auto double tmp;                                                     \
-                                                                       \
-  &ostatus;                    /* guarantee these land in memory */    \
-  &nstatus;                                                            \
-  &ret;                                                                        \
-  &tmp;                                                                        \
-                                                                       \
-  asm volatile ("fnstcw %0" : "=m" (ostatus));                         \
-  nstatus = ostatus | 0x0c00;                                          \
-  asm volatile ("fldcw %0" : /* no outputs */ : "m" (nstatus));                \
-  tmp = a;                                                             \
-  asm volatile ("fldl %0" : /* no outputs */ : "m" (tmp));             \
-  asm volatile ("fistpl %0" : "=m" (ret));                             \
-  asm volatile ("fldcw %0" : /* no outputs */ : "m" (ostatus));                \
-                                                                       \
-  return ret;                                                          \
-}