I haven't exactly done stress testing on it but it works for me, thanks.

I've been chasing a bug or two of my own, seem to have found one just
now.

        Danny

On Sun, 2006-12-03 at 13:08 +0000, Pedro Alves wrote:
> Danny Backx escreveu:
> > Pedro,
> >
> > The commit described below moves the _M_ARM definitions from gcc
> > internals into an include file.
> >
> > For the _M_ARM, this is clearly something that needed to be done : its
> > value depends on it, you cannot do this easily in the gcc internals.
> >
> > I am wondering why we would need to do this for the ARM macro though.
> >
> > The downside of this is that some sources need to either include winnt.h
> > or implement the same processing, none of which seems necessary.
> >
> > My feeling is to move the definition of ARM back into the gcc config,
> > but maybe I'm missing something ?
> >
> >   
> 
> Here is the patch that moves _M_ARM and ARM back into gcc builtins, and 
> adds _M_ARMT.
> _M_ARM and _M_ARMT will be defined to the arm arch being compiled to, 
> _M_ARMT will only be defined
> if the arm arch supports thumb, and ARM will be defined as empty. I 
> think this matches MSFT's tools behavior.
> 
> I've tested it manually using -march=armv4, -march=armv5, etc, and with 
> -mcpu=arm8, -mcpu=xscale, etc.
> I will commit it later if you confirm it works for you, or you can 
> commit it yourself if you want.
> 
> Cheers,
> Pedro Alves
> 
> plain text document attachment (marm.diff)
> Index: ChangeLog.ce
> ===================================================================
> --- ChangeLog.ce      (revision 830)
> +++ ChangeLog.ce      (working copy)
> @@ -1,3 +1,12 @@
> +2006-12-03  Pedro Alves  <[EMAIL PROTECTED]>
> +
> +     * config/arm/arm.c (arm_major_arch, arm_thumb_arch_p): New
> +     functions.
> +     * config/arm/arm-protos.h (arm_major_arch, arm_thumb_arch_p):
> +     Declare.
> +     * config/arm/wince-pe.h (TARGET_OS_CPP_BUILTINS): Add _M_ARM,
> +     _M_ARMT and ARM.
> +
>  2006-11-27  Pedro Alves  <[EMAIL PROTECTED]>
>  
>       * config/arm/mingw32.h (STARTFILE_SPEC): Add crt3.o and dllcrt3.o
> Index: config/arm/arm.c
> ===================================================================
> --- config/arm/arm.c  (revision 760)
> +++ config/arm/arm.c  (working copy)
> @@ -15529,4 +15529,28 @@
>      || lookup_attribute ("ms_struct", TYPE_ATTRIBUTES (record_type));
>  }
>  
> +int
> +arm_major_arch (void)
> +{
> +  if ((insn_flags & FL_FOR_ARCH6) == FL_FOR_ARCH6)
> +    return 6;
> +  else if ((insn_flags & FL_FOR_ARCH5) == FL_FOR_ARCH5)
> +    return 5;
> +  else if ((insn_flags & FL_FOR_ARCH4) == FL_FOR_ARCH4)
> +    return 4;
> +  else if ((insn_flags & FL_FOR_ARCH3) == FL_FOR_ARCH3)
> +    return 3;
> +  else if ((insn_flags & FL_FOR_ARCH2) == FL_FOR_ARCH2)
> +    return 2;
> +
> +  /* This should gives us a nice ICE somewhere.  */
> +  return -1;
> +}
> +
> +bool
> +arm_thumb_arch_p (void)
> +{
> +  return (insn_flags & FL_THUMB) == FL_THUMB;
> +}
> +
>  #include "gt-arm.h"
> Index: config/arm/arm-protos.h
> ===================================================================
> --- config/arm/arm-protos.h   (revision 760)
> +++ config/arm/arm-protos.h   (working copy)
> @@ -1,5 +1,6 @@
> -/* Prototypes for exported functions defined in arm.c and pe.c
> -   Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005
> +/* Prototypes for exported functions defined in arm.c, pe.c,
> +   pe-cxx.c and pe-stubs.c.
> +   Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
>     Free Software Foundation, Inc.
>     Contributed by Richard Earnshaw ([EMAIL PROTECTED])
>     Minor hacks by Nick Clifton ([EMAIL PROTECTED])
> @@ -42,6 +43,9 @@
>  extern void arm_output_fn_unwind (FILE *, bool);
>  extern void arm_file_end (void);;
>  
> +int arm_major_arch (void);
> +bool arm_thumb_arch_p (void);
> +
>  #ifdef TREE_CODE
>  extern int arm_return_in_memory (tree);
>  extern void arm_encode_call_attribute (tree, int);
> Index: config/arm/wince-pe.h
> ===================================================================
> --- config/arm/wince-pe.h     (revision 792)
> +++ config/arm/wince-pe.h     (working copy)
> @@ -92,7 +92,21 @@
>            to compare typeinfo symbols across dll boundaries.  */     \
>        builtin_define ("__GXX_MERGED_TYPEINFO_NAMES=0");              \
>        EXTRA_OS_CPP_BUILTINS ();                                      \
> -  }                                                          \
> +      {                                                       \
> +        /* Define these to be compatible MSFT's tools.  */    \
> +        char buf[64];                                         \
> +        int arch = arm_major_arch ();                         \
> +        sprintf (buf, "_M_ARM=%d", arch);                     \
> +        builtin_define (buf);                                 \
> +        if (arm_thumb_arch_p ())                              \
> +          {                                                   \
> +            sprintf (buf, "_M_ARMT=%d", arch);                \
> +            builtin_define (buf);                             \
> +          }                                                   \
> +        /* Always defined as empty.  */                       \
> +        builtin_define ("ARM=");                              \
> +      }                                                       \
> +  }                                                           \
>    while (0)
>  
>  /* Now we define the strings used to build the spec file.  */
> -------------------------------------------------------------------------
> Take Surveys. Earn Cash. Influence the Future of IT
> Join SourceForge.net's Techsay panel and you'll get the chance to share your
> opinions on IT & business topics through brief surveys - and earn cash
> http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
> _______________________________________________ Cegcc-devel mailing list 
> Cegcc-devel@lists.sourceforge.net 
> https://lists.sourceforge.net/lists/listinfo/cegcc-devel
-- 
Danny Backx ; danny.backx - at - scarlet.be ; http://danny.backx.info

Attachment: signature.asc
Description: This is a digitally signed message part

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Cegcc-devel mailing list
Cegcc-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/cegcc-devel

Reply via email to