[AArch64, PATCH 3/5] Improve MOVI handling (Don't update RTX operand in-place)

Ian Bolton ian.bolton@arm.com
Mon Jun 3 16:32:00 GMT 2013


(This patch is the third of five, where the first 4 do some clean-up and
the last fixes a bug with scalar MOVI.  The bug fix without the clean-up
was particularly ugly!)


This one is focused on cleaning up aarch64_simd_valid_immediate, with
better use of arguments and no in-place modification of RTX operands.

Specifically, I've changed the set of pointers that are passed in
(it's now a struct) and the caller prints out the immediate value
directly instead of letting operand[1] get fudged.


OK for trunk?


Cheers,
Ian


2013-06-03  Ian Bolton  <ian.bolton@arm.com>

        * config/aarch64/aarch64.c (simd_immediate_info): Struct to hold
        information completed by aarch64_simd_valid_immediate.
        (aarch64_legitimate_constant_p): Update arguments.
        (aarch64_simd_valid_immediate): Work with struct rather than many
        pointers.
        (aarch64_simd_scalar_immediate_valid_for_move): Update arguments.
        (aarch64_simd_make_constant): Update arguments.
        (aarch64_output_simd_mov_immediate): Work with struct rather than
        many pointers.  Output immediate directly rather than as operand.
        * config/aarch64/aarch64-protos.h (aarch64_simd_valid_immediate):
        Update prototype.
        * config/aarch64/constraints.md (Dn): Update arguments.
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: aarch64-movi-cleanup-part3-v7.txt
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20130603/643ad5e1/attachment.txt>


More information about the Gcc-patches mailing list