This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
Hi, This patch refines scaled address expression on ARM. It supports "base+index*scale" in arm_legitimate_address_outer_p. It also tries to legitimize "base + index * scale + offset" with "reg <- base + offset; reg + index * scale" by introducing thumb2_legitimize_address. For now function thumb2_legitimize_address is a kind of placeholder and just does the mentioned transformation by calling to try_multiplier_address. Hoping we can improve it in the future. With this patch: 1) "base+index*scale" is recognized. 2) PR57540 is fixed. Bootstrapped and Tested on A15. Is it OK? Thanks. Bin 2013-08-28 Bin Cheng <bin.cheng@arm.com> * config/arm/arm.c (arm_legitimate_address_outer_p): Support addressing mode like "base + index * scale". (try_multiplier_address): New function. (arm_legitimize_address): Call try_multiplier_address.
Attachment:
6-arm-scaled_address-20130828.txt
Description: Text document
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |