Hi Aaron,
On Mon, Dec 19, 2016 at 09:57:07AM -0600, Aaron Sawdey wrote:
> Bootstrap/regtest in progress on ppc64le -mcpu=power8, ok for trunk if
> results are clean?
> +/* Generate alignment check and branch code to set up for
> + strncmp when we don't have DI alignment.
> + STRNCMP_LABEL is the label to branch if there is a page crossing.
> + SRC is the string pointer to be examined.
> + BYTES is the max number of bytes to compare. */
You have "tab, space" before the */ .
> +static void
> +expand_strncmp_align_check (rtx strncmp_label, rtx src, HOST_WIDE_INT bytes)
> +{
> + rtx lab_ref = gen_rtx_LABEL_REF (VOIDmode, strncmp_label);
> + rtx src_check = copy_addr_to_reg (XEXP (src, 0));
> + if (GET_MODE (src_check) == SImode)
> + emit_insn (gen_andsi3 (src_check, src_check, GEN_INT (0xfff)));
> + else
> + emit_insn (gen_anddi3 (src_check, src_check, GEN_INT (0xfff)));
> + rtx cond = gen_reg_rtx (CCmode);
> + emit_move_insn (cond, gen_rtx_COMPARE (CCmode, src_check,
> + GEN_INT (4096 - bytes)));
>
And the page break here still.
> + /* SLOW_UNALIGNED_ACCESS -- don't do unaligned stuff. */
Tab space.
> + {
> + /* Compare sequence:
> + check each 8B with: ld/ld cmpd bne
> + cleanup code at end:
> + cmpb get byte that differs
> + cmpb look for zero byte
> + orc combine
> + cntlzd get bit of first zero/diff byte
> + subfic convert for rldcl use
> + rldcl rldcl extract diff/zero byte
> + subf subtract for final result
Mixed tabs and spaces here.
> + /* We must always left-align the data we read, and
> + clear any bytes to the right that are beyond the string.
> + Otherwise the cmpb sequence won't produce the correct
> + results. The beginning of the compare will be done
> + with word_mode so will not have any extra shifts or
> + clear rights. */
You have just a tab before */ here.
> + /* Generate the final sequence that identifies the differing
> + byte and generates the final result, taking into account
> + zero bytes:
> +
> + cmpb cmpb_result1, src1, src2
> + cmpb cmpb_result2, src1, zero
> + orc cmpb_result1, cmp_result1, cmpb_result2
> + cntlzd get bit of first zero/diff byte
> + addi convert for rldcl use
> + rldcl rldcl extract diff/zero byte
> + subf subtract for final result
> + */
Mixed tabs and spaces.
The rest looks good. Please fix those remaining whitespace errors, and
it is okay for trunk. Thanks,
Segher