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 > > >