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] Improve Thumb2 code generation.


Hi, 

The Thumb2 backend currently 

* Doesn't support generation of bics with shift operators.
* Doesn't support the generation of the orn instruction.


I'm currently testing this patch that fixes these for an arm-none-eabi cross
target on a qemu target with code generation enabled by default for a
cortex-a8 core. Ok to commit if no regressions ?

2009-05-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	* config/arm/arm.md (*arm_iorsi3): Refactored for only ARM. 
	(peephole ior (reg, int) -> mov, ior): Refactored for only ARM. 
	* config/arm/thumb2.md (*thumb_andsi_not_shiftsi_si): Allow bic
	with shifts for Thumb2.
     	(orsi_notsi): New for orn.
	(*thumb_orsi_notshiftsi_si): Allow orn with shifts.
	(*thumb2_iorsi3): Rewrite support for iorsi for Thumb2.
	* config/arm/arm.c (const_ok_for_op): Split case for IOR for Thumb2.
	(arm_gen_constant): Set can_invert for IOR and Thumb2, Add comments.

	Don't invert remainder for IOR.

cheers
Ramana

Ramana Radhakrishnan
GNU Tools Engineer
ARM Ltd. (www.arm.com)


Attachment: orn-patch-for-testing.patch
Description: Binary data


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