This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

MIPS SIZE_TYPE and PTRDIFF_TYPE revamp


I've run into situations in which SIZE_TYPE and PTRDIFF_TYPE were
multiply-defined (for example, -mabi=eabi -mgp32 -mlong64).  While
fixing that, I studied the rules that determine which type should be
used, documented them, and implemented simpler rules than those that
were in place that attained the intended effect while removing the
rules.  I've been using these for a while in a Red Hat-internal MIPS
port that builds multilibs with all ABIs, and many combinations of gp
and long sizes.  Eric Christopher approved this, so I'm checking it
in.

Index: gcc/ChangeLog
from  Alexandre Oliva  <aoliva@redhat.com>

	* config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Simplify.

Index: gcc/config/mips/mips.h
===================================================================
RCS file: /cvs/gcc/egcs/gcc/config/mips/mips.h,v
retrieving revision 1.159
diff -u -p -c -r1.159 mips.h
*** gcc/config/mips/mips.h 2002/03/03 21:10:01 1.159
--- gcc/config/mips/mips.h 2002/03/08 05:16:10
*************** extern int mips_abi;
*** 1021,1026 ****
--- 1021,1046 ----
  
  #ifndef SUBTARGET_CPP_SIZE_SPEC
  
+ /* Rules for SIZE_TYPE and PTRDIFF_TYPE are:
+ 
+    both gp64 and long64 (not the options, but the corresponding flags,
+    so defaults came into play) are required in order to have `long' in
+    SIZE_TYPE and PTRDIFF_TYPE.
+ 
+    on eabi, -mips1, -mips2 and -mips32 disable gp64, whereas mips3,
+    -mips4, -mips5 and -mips64 enable it.
+ 
+    on other ABIs, -mips* options do not affect gp32/64, but the
+    default ISA affects the default gp size.
+ 
+    -mgp32 disables gp64, whereas -mgp64 enables it.
+ 
+    on eabi, gp64 implies long64.
+ 
+    -mlong64, and -mabi=64 are the only other ways to enable long64.
+ 
+ */
+ 
  #if MIPS_ISA_DEFAULT != 3 && MIPS_ISA_DEFAULT != 4 && MIPS_ISA_DEFAULT != 5 && MIPS_ISA_DEFAULT != 64
  
  /* 32-bit cases first.  */
*************** extern int mips_abi;
*** 1028,1044 ****
  #if MIPS_ABI_DEFAULT == ABI_EABI
  #define SUBTARGET_CPP_SIZE_SPEC "\
  %{mabi=eabi|!mabi=*:\
!   %{mips1|mips2|mips32|mlong32|mgp32:%{!mips3:%{!mips4:%{!mips5:%{!mips64:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int}}}}} \
!   %{mlong64:\
!     %{mgp64:-D__SIZE_TYPE__=long\\ unsigned\\ int -D__PTRDIFF_TYPE__=long\\ int} \
!     %{!mgp64:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int}}\
!   %{mips3|mips4|mips5|mips64:-D__SIZE_TYPE__=long\\ unsigned\\ int -D__PTRDIFF_TYPE__=long\\ int}} \
!   %{!mips1:%{!mips2:%{!mips3:%{!mips4:%{!mips5:%{!mips32:%{!mips64:%{!mlong32:%{!mlong64:%{!mgp32:%{!mgp64:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int}}}}}}}}}}}\
! %{mabi=o64:\
!  %{mlong64:\
!    %{!mgp32:-D__SIZE_TYPE__=long\\ unsigned\\ int -D__PTRDIFF_TYPE__=long\\ int} \
!    %{mgp32:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int}} \
!  %{!mlong64:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int}} \
  %{mabi=32:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int} \
  "
  #endif
--- 1048,1063 ----
  #if MIPS_ABI_DEFAULT == ABI_EABI
  #define SUBTARGET_CPP_SIZE_SPEC "\
  %{mabi=eabi|!mabi=*:\
!   %{mips1|mips2|mips32|mgp32|mlong32: \
!     -D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int} \
!   %{!mips1:%{!mips2:%{!mips32:%{!mgp32:%{!mlong32: \
!     %{mips3|mips4|mips5|mips64|mgp64: \
!       -D__SIZE_TYPE__=long\\ unsigned\\ int -D__PTRDIFF_TYPE__=long\\ int} \
!     %{!mips3:%{!mips4:%{!mips5:%{!mips64:%{!mgp64: \
!       -D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int}}}}}}}}}}} \
! %{mabi=o64:\
!  %{!mgp64|!-mlong64:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int} \
!  %{mgp64:%{mlong64:-D__SIZE_TYPE__=long\\ unsigned\\ int -D__PTRDIFF_TYPE__=long\\ int}}} \
  %{mabi=32:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int} \
  "
  #endif
*************** extern int mips_abi;
*** 1046,1100 ****
  #if MIPS_ABI_DEFAULT == ABI_O64
  #define SUBTARGET_CPP_SIZE_SPEC "\
  %{mabi=eabi:\
!   %{mips1|mips2|mips32|mlong32|mgp32:%{!mips3:%{!mips4:%{!mips5:%{!mips64:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int}}}}} \
!   %{mlong64:\
!     %{mgp64:-D__SIZE_TYPE__=long\\ unsigned\\ int -D__PTRDIFF_TYPE__=long\\ int} \
!     %{!mgp64:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int}}\
!   %{mips3|mips4|mips5|mips64:-D__SIZE_TYPE__=long\\ unsigned\\ int -D__PTRDIFF_TYPE__=long\\ int}} \
!   %{!mips1:%{!mips2:%{!mips3:%{!mips4:%{!mips5:%{!mips32:%{!mips64:%{!mlong32:%{!mlong64:%{!mgp32:%{!mgp64:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int}}}}}}}}}}}\
  %{mabi=o64|!mabi=*:\
!  %{mlong64:\
!    %{!mgp32:-D__SIZE_TYPE__=long\\ unsigned\\ int -D__PTRDIFF_TYPE__=long\\ int} \
!    %{mgp32:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int}} \
!  %{!mlong64:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int}} \
! %{mabi=32:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int}\
  "
  #endif
  
  #if MIPS_ABI_DEFAULT == ABI_32
  #define SUBTARGET_CPP_SIZE_SPEC "\
  %{mabi=eabi:\
!   %{mips1|mips2|mips32|mlong32|mgp32:%{!mips3:%{!mips4:%{!mips5:%{!mips64:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int}}}}} \
!   %{mlong64:\
!     %{mgp64:-D__SIZE_TYPE__=long\\ unsigned\\ int -D__PTRDIFF_TYPE__=long\\ int} \
!     %{!mgp64:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int}}\
!   %{mips3|mips4|mips5|mips64:-D__SIZE_TYPE__=long\\ unsigned\\ int -D__PTRDIFF_TYPE__=long\\ int}} \
!   %{!mips1:%{!mips2:%{!mips3:%{!mips4:%{!mips5:%{!mips32:%{!mips64:%{!mlong32:%{!mlong64:%{!mgp32:%{!mgp64:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int}}}}}}}}}}}\
! %{mabi=o64:\
!  %{mlong64:\
!    %{!mgp32:-D__SIZE_TYPE__=long\\ unsigned\\ int -D__PTRDIFF_TYPE__=long\\ int} \
!    %{mgp32:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int}} \
!  %{!mlong64:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int}} \
! %{mabi=32|!mabi=*:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int}\
  "
  #endif
  
  #if MIPS_ABI_DEFAULT == ABI_MEABI
  #define SUBTARGET_CPP_SIZE_SPEC "\
  %{mabi=eabi:\
!   %{mips1|mips2|mips32|mlong32|mgp32:%{!mips3:%{!mips4:%{!mips5:%{!mips64:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int}}}}} \
!   %{mlong64:\
!     %{mgp64:-D__SIZE_TYPE__=long\\ unsigned\\ int -D__PTRDIFF_TYPE__=long\\ int} \
!     %{!mgp64:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int}}\
!   %{mips3|mips4|mips5|mips64:-D__SIZE_TYPE__=long\\ unsigned\\ int -D__PTRDIFF_TYPE__=long\\ int}} \
!   %{!mips1:%{!mips2:%{!mips3:%{!mips4:%{!mips5:%{!mips32:%{!mips64:%{!mlong32:%{!mlong64:%{!mgp32:%{!mgp64:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int}}}}}}}}}}}\
! %{mabi=o64:\
!  %{mlong64:\
!    %{!mgp32:-D__SIZE_TYPE__=long\\ unsigned\\ int -D__PTRDIFF_TYPE__=long\\ int} \
!    %{mgp32:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int}} \
!  %{!mlong64:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int}} \
! %{mabi=32:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int}\
! %{mabi=meabi|!mabi=*:\
    %{mips3|mips4|mips5|mips64|mlong64:-D__SIZE_TYPE__=long\\ unsigned\\ int -D__PTRDIFF_TYPE__=long\\ int} \
    %{!mips3:%{!mips4:%{!mips5:%{!mips64:%{!mlong64:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int}}}}}} \
  "
--- 1065,1116 ----
  #if MIPS_ABI_DEFAULT == ABI_O64
  #define SUBTARGET_CPP_SIZE_SPEC "\
  %{mabi=eabi:\
!   %{mips1|mips2|mips32|mgp32|mlong32: \
!     -D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int} \
!   %{!mips1:%{!mips2:%{!mips32:%{!mgp32:%{!mlong32: \
!     %{mips3|mips4|mips5|mips64|mgp64: \
!       -D__SIZE_TYPE__=long\\ unsigned\\ int -D__PTRDIFF_TYPE__=long\\ int} \
!     %{!mips3:%{!mips4:%{!mips5:%{!mips64:%{!mgp64: \
!       -D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int}}}}}}}}}}} \
  %{mabi=o64|!mabi=*:\
!  %{!mgp64|!-mlong64:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int} \
!  %{mgp64:%{mlong64:-D__SIZE_TYPE__=long\\ unsigned\\ int -D__PTRDIFF_TYPE__=long\\ int}}} \
! %{mabi=32:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int} \
  "
  #endif
  
  #if MIPS_ABI_DEFAULT == ABI_32
  #define SUBTARGET_CPP_SIZE_SPEC "\
  %{mabi=eabi:\
!   %{mips1|mips2|mips32|mgp32|mlong32: \
!     -D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int} \
!   %{!mips1:%{!mips2:%{!mips32:%{!mgp32:%{!mlong32: \
!     %{mips3|mips4|mips5|mips64|mgp64: \
!       -D__SIZE_TYPE__=long\\ unsigned\\ int -D__PTRDIFF_TYPE__=long\\ int} \
!     %{!mips3:%{!mips4:%{!mips5:%{!mips64:%{!mgp64: \
!       -D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int}}}}}}}}}}} \
! %{mabi=o64:\
!  %{!mgp64|!-mlong64:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int} \
!  %{mgp64:%{mlong64:-D__SIZE_TYPE__=long\\ unsigned\\ int -D__PTRDIFF_TYPE__=long\\ int}}} \
! %{mabi=32|!mabi=*:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int} \
  "
  #endif
  
  #if MIPS_ABI_DEFAULT == ABI_MEABI
  #define SUBTARGET_CPP_SIZE_SPEC "\
  %{mabi=eabi:\
!   %{mips1|mips2|mips32|mgp32|mlong32: \
!     -D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int} \
!   %{!mips1:%{!mips2:%{!mips32:%{!mgp32:%{!mlong32: \
!     %{mips3|mips4|mips5|mips64|mgp64: \
!       -D__SIZE_TYPE__=long\\ unsigned\\ int -D__PTRDIFF_TYPE__=long\\ int} \
!     %{!mips3:%{!mips4:%{!mips5:%{!mips64:%{!mgp64: \
!       -D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int}}}}}}}}}}} \
! %{mabi=o64:\
!  %{!mgp64|!-mlong64:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int} \
!  %{mgp64:%{mlong64:-D__SIZE_TYPE__=long\\ unsigned\\ int -D__PTRDIFF_TYPE__=long\\ int}}} \
! %{mabi=32|!mabi=*:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int} \
! %{mabi=meabi|!mabi=*: \
    %{mips3|mips4|mips5|mips64|mlong64:-D__SIZE_TYPE__=long\\ unsigned\\ int -D__PTRDIFF_TYPE__=long\\ int} \
    %{!mips3:%{!mips4:%{!mips5:%{!mips64:%{!mlong64:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int}}}}}} \
  "
*************** extern int mips_abi;
*** 1103,1124 ****
  #else
  
  /* 64-bit default ISA.  */
- 
  #if MIPS_ABI_DEFAULT == ABI_EABI
  #define SUBTARGET_CPP_SIZE_SPEC "\
  %{mabi=eabi|!mabi=*: \
!   %{mips1|mips2|mips32:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int} \
!   %{mlong32:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int} \
!   %{mlong64:-D__SIZE_TYPE__=long\\ unsigned\\ int -D__PTRDIFF_TYPE__=long\\ int} \
!   %{mgp32:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int} \
!   %{mips3|mips4|mips5|mips64:%{!mips1:%{!mips2:%{!mips32:-D__SIZE_TYPE__=long\\ unsigned\\ int -D__PTRDIFF_TYPE__=long\\ int}}}}\
!   %{!mips1:%{!mips2:%{!mips3:%{!mips4:%{!mips5:%{!mips32:%{!mips64:%{!mlong32:%{!mlong64:%{!mgp32:%{!mgp64:-D__SIZE_TYPE__=long\\ unsigned\\ int -D__PTRDIFF_TYPE__=long\\ int}}}}}}}}}}}\
!   %{mgp64:%{!mlong32:-D__SIZE_TYPE__=long\\ unsigned\\ int -D__PTRDIFF_TYPE__=long\\ int}}}\
! %{mabi=o64:\
!  %{mlong64:\
!    %{!mgp32:-D__SIZE_TYPE__=long\\ unsigned\\ int -D__PTRDIFF_TYPE__=long\\ int} \
!    %{mgp32:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int}} \
!  %{!mlong64:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int}} \
  %{mabi=32:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int} \
  "
  #endif
--- 1119,1134 ----
  #else
  
  /* 64-bit default ISA.  */
  #if MIPS_ABI_DEFAULT == ABI_EABI
  #define SUBTARGET_CPP_SIZE_SPEC "\
  %{mabi=eabi|!mabi=*: \
!   %{mips1|mips2|mips32|mgp32|mlong32: \
!     -D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int} \
!   %{!mips1:%{!mips2:%{!mips32:%{!mgp32:%{!mlong32: \
!     -D__SIZE_TYPE__=long\\ unsigned\\ int -D__PTRDIFF_TYPE__=long\\ int}}}}}} \
! %{mabi=o64:\
!  %{mgp32|!-mlong64:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int} \
!  %{!mgp32:%{mlong64:-D__SIZE_TYPE__=long\\ unsigned\\ int -D__PTRDIFF_TYPE__=long\\ int}}} \
  %{mabi=32:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int} \
  "
  #endif
*************** extern int mips_abi;
*** 1126,1182 ****
  #if MIPS_ABI_DEFAULT == ABI_O64
  #define SUBTARGET_CPP_SIZE_SPEC "\
  %{mabi=eabi: \
!   %{mips1|mips2|mips32:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int} \
!   %{mlong32:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int} \
!   %{mlong64:-D__SIZE_TYPE__=long\\ unsigned\\ int -D__PTRDIFF_TYPE__=long\\ int} \
!   %{mgp32:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int} \
!   %{mips3|mips4|mips5|mips64:%{!mips1:%{!mips2:%{!mips32:-D__SIZE_TYPE__=long\\ unsigned\\ int -D__PTRDIFF_TYPE__=long\\ int}}}}\
!   %{!mips1:%{!mips2:%{!mips3:%{!mips4:%{!mips5:%{!mips32:%{!mips64:%{!mlong32:%{!mlong64:%{!mgp32:%{!mgp64:-D__SIZE_TYPE__=long\\ unsigned\\ int -D__PTRDIFF_TYPE__=long\\ int}}}}}}}}}}}\
!   %{mgp64:%{!mlong32:-D__SIZE_TYPE__=long\\ unsigned\\ int -D__PTRDIFF_TYPE__=long\\ int}}}\
  %{mabi=o64|!mabi=*:\
!  %{mlong64:\
!    %{!mgp32:-D__SIZE_TYPE__=long\\ unsigned\\ int -D__PTRDIFF_TYPE__=long\\ int} \
!    %{mgp32:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int}} \
!  %{!mlong64:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int}} \
! %{mabi=32:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int}\
  "
  #endif
  
  #if MIPS_ABI_DEFAULT == ABI_32
  #define SUBTARGET_CPP_SIZE_SPEC "\
  %{mabi=eabi:\
!   %{mips1|mips2|mips32:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int} \
!   %{mlong32:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int} \
!   %{mlong64:-D__SIZE_TYPE__=long\\ unsigned\\ int -D__PTRDIFF_TYPE__=long\\ int} \
!   %{mgp32:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int} \
!   %{mips3|mips4|mips5|mips64:%{!mips1:%{!mips2:%{!mips32:-D__SIZE_TYPE__=long\\ unsigned\\ int -D__PTRDIFF_TYPE__=long\\ int}}}}\
!   %{!mips1:%{!mips2:%{!mips3:%{!mips4:%{!mips5:%{!mips32:%{!mips64:%{!mlong32:%{!mlong64:%{!mgp32:%{!mgp64:-D__SIZE_TYPE__=long\\ unsigned\\ int -D__PTRDIFF_TYPE__=long\\ int}}}}}}}}}}}\
!   %{mgp64:%{!mlong32:-D__SIZE_TYPE__=long\\ unsigned\\ int -D__PTRDIFF_TYPE__=long\\ int}}}\
! %{mabi=o64:\
!  %{mlong64:\
!    %{!mgp32:-D__SIZE_TYPE__=long\\ unsigned\\ int -D__PTRDIFF_TYPE__=long\\ int} \
!    %{mgp32:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int}} \
!  %{!mlong64:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int}} \
! %{mabi=32|!mabi=*:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int}\
  "
  #endif
  
  #if MIPS_ABI_DEFAULT == ABI_MEABI
  #define SUBTARGET_CPP_SIZE_SPEC "\
  %{mabi=eabi:\
!   %{mips1|mips2|mips32:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int} \
!   %{mlong32:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int} \
!   %{mlong64:-D__SIZE_TYPE__=long\\ unsigned\\ int -D__PTRDIFF_TYPE__=long\\ int} \
!   %{mgp32:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int} \
!   %{mips3|mips4|mips5|mips64:%{!mips1:%{!mips2:%{!mips32:-D__SIZE_TYPE__=long\\ unsigned\\ int -D__PTRDIFF_TYPE__=long\\ int}}}}\
!   %{!mips1:%{!mips2:%{!mips3:%{!mips4:%{!mips5:%{!mips32:%{!mips64:%{!mlong32:%{!mlong64:%{!mgp32:%{!mgp64:-D__SIZE_TYPE__=long\\ unsigned\\ int -D__PTRDIFF_TYPE__=long\\ int}}}}}}}}}}}\
!   %{mgp64:%{!mlong32:-D__SIZE_TYPE__=long\\ unsigned\\ int -D__PTRDIFF_TYPE__=long\\ int}}}\
! %{mabi=o64:\
!  %{mlong64:\
!    %{!mgp32:-D__SIZE_TYPE__=long\\ unsigned\\ int -D__PTRDIFF_TYPE__=long\\ int} \
!    %{mgp32:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int}} \
!  %{!mlong64:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int}} \
! %{mabi=32:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int}\
  %{mabi=meabi|!mabi=*:\
    %{mips1|mips2|mips32|mlong32: -D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int} \
    %{!mips1:%{!mips2:%{!mips32:%{!mlong32:-D__SIZE_TYPE__=long\\ unsigned\\ int -D__PTRDIFF_TYPE__=long\\ int}}}}} \
--- 1136,1177 ----
  #if MIPS_ABI_DEFAULT == ABI_O64
  #define SUBTARGET_CPP_SIZE_SPEC "\
  %{mabi=eabi: \
!   %{mips1|mips2|mips32|mgp32|mlong32: \
!     -D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int} \
!   %{!mips1:%{!mips2:%{!mips32:%{!mgp32:%{!mlong32: \
!     -D__SIZE_TYPE__=long\\ unsigned\\ int -D__PTRDIFF_TYPE__=long\\ int}}}}}} \
  %{mabi=o64|!mabi=*:\
!  %{mgp32|!-mlong64:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int} \
!  %{!mgp32:%{mlong64:-D__SIZE_TYPE__=long\\ unsigned\\ int -D__PTRDIFF_TYPE__=long\\ int}}} \
! %{mabi=32:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int} \
  "
  #endif
  
  #if MIPS_ABI_DEFAULT == ABI_32
  #define SUBTARGET_CPP_SIZE_SPEC "\
  %{mabi=eabi:\
!   %{mips1|mips2|mips32|mgp32|mlong32: \
!     -D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int} \
!   %{!mips1:%{!mips2:%{!mips32:%{!mgp32:%{!mlong32: \
!     -D__SIZE_TYPE__=long\\ unsigned\\ int -D__PTRDIFF_TYPE__=long\\ int}}}}}} \
! %{mabi=o64:\
!  %{mgp32|!-mlong64:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int} \
!  %{!mgp32:%{mlong64:-D__SIZE_TYPE__=long\\ unsigned\\ int -D__PTRDIFF_TYPE__=long\\ int}}} \
! %{mabi=32|!mabi=*:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int} \
  "
  #endif
  
  #if MIPS_ABI_DEFAULT == ABI_MEABI
  #define SUBTARGET_CPP_SIZE_SPEC "\
  %{mabi=eabi:\
!   %{mips1|mips2|mips32|mgp32|mlong32: \
!     -D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int} \
!   %{!mips1:%{!mips2:%{!mips32:%{!mgp32:%{!mlong32: \
!     -D__SIZE_TYPE__=long\\ unsigned\\ int -D__PTRDIFF_TYPE__=long\\ int}}}}}} \
! %{mabi=o64:\
!  %{mgp32|!-mlong64:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int} \
!  %{!mgp32:%{mlong64:-D__SIZE_TYPE__=long\\ unsigned\\ int -D__PTRDIFF_TYPE__=long\\ int}}} \
! %{mabi=32|!mabi=*:-D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int} \
  %{mabi=meabi|!mabi=*:\
    %{mips1|mips2|mips32|mlong32: -D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int} \
    %{!mips1:%{!mips2:%{!mips32:%{!mlong32:-D__SIZE_TYPE__=long\\ unsigned\\ int -D__PTRDIFF_TYPE__=long\\ int}}}}} \

-- 
Alexandre Oliva   Enjoy Guarana', see http://www.ic.unicamp.br/~oliva/
Red Hat GCC Developer                  aoliva@{cygnus.com, redhat.com}
CS PhD student at IC-Unicamp        oliva@{lsd.ic.unicamp.br, gnu.org}
Free Software Evangelist                Professional serial bug killer

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]