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]

[PATCH ARM] Fix PR50099


Hi,

PR target/50099 is a case where we are using the wrong predicate for
the sign_extend from QI to DImode values. ldrsb has a lower range than
the other ldrb instructions in ARM state and hence one has to be
careful about generating the right addresses when splitting it.

Attached is a patch to fix this. I will commit this if there are no
regressions. A backport to 4.6 branch will be done after suitable
regression testing.

cheers
Ramana


2011-09-06  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>

	PR target/50099
	* config/arm/iterators.md (qhs_zextenddi_cstr): New.
	(qhs_zextenddi_op): New.
	* config/arm/arm.md ("zero_extend<mode>di2"): Use them.
        * config/arm/predicates.md ("arm_extendqisi_mem_op"):
Distinguish between ARM and Thumb2 states.

        PR target/50099
        * gcc.target/arm/pr50099.c: New test.

Attachment: pr50099-patch.txt
Description: Text document


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]