On Wed, Oct 3, 2012 at 6:59 AM, James Lemke <jwle...@mentor.com> wrote:
> Ping..

> @@ -847,7 +1106,6 @@

>                   && (DEFAULT_ABI != ABI_AIX || SYMBOL_REF_FUNCTION_P 
> (op))")))

>

>  ;; Return 1 if op is an operand that can be loaded via the GOT.

> -;; or non-special register register field no cr0

>  (define_predicate "got_operand"

>   (match_code "symbol_ref,const,label_ref"))


Most likely should be submitted and committed (as obvious) separately.
> @@ -6694,7 +6771,7 @@

>

>   switch (mode)

>     {

>-      case  QImode:

>+    case QImode:

>     case HImode:

>       if (dest == NULL)

>       dest = gen_reg_rtx (mode);

Likewise.

> @@ -14944,11 +15104,10 @@

>       return;

>

>     case 'Q':

>-      if (TARGET_MFCRF)

>-      fputc (',', file);

>-        /* FALLTHRU */

>-      else

>+      if (! TARGET_MFCRF)

>       return;

>+      fputc (',', file);

>+      /* FALLTHRU */

>

>     case 'R':

>       /* X is a CR register.  Print the mask for `mtcrf'.  */

Likewise.

>@@ -15893,7 +16071,7 @@

> }

>

> /* Return the string to output a conditional branch to LABEL, which is

>-   the operand number of the label, or -1 if the branch is really a

>+   the operand template of the label, or NULL if the branch is really a

>    conditional return.

>

>    OP is the conditional expression.  XEXP (OP, 0) is assumed to be a

This looks like it should be done separately also.

> +bool

> +valid_vle_sd4_field (rtx mem, enum machine_mode mode)

No comment before this function.

>-                             (simple_return "")])

>+                             (simple_return "1")])

Submitted separately it looks.
> libgcc/longlong.h
Gets sync'd with glibc's version sometimes.

Also have you thought have just adding a vle.md for all the needed
patterns and disabling the patterns in rs6000.md for VLE and not using
%^/%+/%- ? I think that would have been a cleaner implementation of
vle than adding support for it to the current patterns.  Also does not
have the maintenance issue of always having to check if a new pattern
needs the %^/%+/%-.


Thanks,
Andrew Pinski


>
>
>
> -------- Original Message --------
> Subject: [PATCH] PowerPC VLE port
> Date: Mon, 24 Sep 2012 21:44:02 -0400
> From: James Lemke <jwle...@codesourcery.com>
> To: GCC Patches <gcc-patches@gcc.gnu.org>
>
> The initial patch for this port caused much comment.  I have attached
> an updated patch trying to address many of those points.
> All comments are welcome.  I would prefer comments are made on-list.
>
> I have tried to simplify this patch by:
> 1) Removing as many compound tests as possible and now rely on feature
> flags.
> I have removed TARGET_VLE_ISEL, TARGET_VLE_MULTIPLE, TARGET_VLE_ISEL64 &
> TARGET_MFCRF_NOVLE.
> -mcpu now implies the following options:
> -mcpu=e200z[0-2]: -mvle -misel -mno-mfcrf -mmultiple -msoft-float
> -mcpu=e200z[367]: -mvle -misel -mno-mfcrf -mmultiple -mfloat-gprs=single \
>    -mspe=yes -mabi=spe
> 2) When gcc is configured for a non-VLE target, TARGET_VLE evaluates to "0"
> so that most VLE-specific compiler code is optimized away.
> 3) Separated all VLE-only items from rs6000.md to a new file, vle.md.
> In the cases where there was strong commonality there is still VLE code in
> rs6000.md.
>
> On r191665 I have run the DejaGNU suite.  A bootstrap is running.
>
> Comments?
> Jim.
>
> --
> Jim Lemke
> Mentor Graphics / CodeSourcery
> Orillia Ontario,  +1-613-963-1073
>
>
>

Reply via email to