[PATCH ARM]Refine scaled address expression on ARM
bin.cheng
bin.cheng@arm.com
Wed Aug 28 07:12:00 GMT 2013
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.
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: 6-arm-scaled_address-20130828.txt
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20130828/05cecf67/attachment.txt>
More information about the Gcc-patches
mailing list