[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