On Wed, Oct 3, 2012 at 6:59 AM, James Lemke <[email protected]> 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 <[email protected]>
> To: GCC Patches <[email protected]>
>
> 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
>
>
>