[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