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]

RE: [PATCH,SH] Add SH2A new instructions 6/6


Hi Kaz,

Please find the revised patch attached "sh2a6.patch" as per the
suggestions. Thanks a lot for the valuable guidance.

>> the use of bitwise operations should be controlled with the option
>> -mbitops

Done. Some hunks of the patch are removed as per the suggestion.

>> bit_m2a and bitnot_m2a generate multiple instructions as text and 
>> also have no length attribute.

These patterns generate optimized code for performing logical operations
on bits in memory. Length attributes are added for these instructions.

The patch is tested using the C and C++ testsuite for all the SH2A
combinations.

ChangeLog
2008-04-02  Naveen.H.S  <naveen.hs@kpitcummins.com>
	
	* doc/invoke.texi: Document -mbitops for SH.

	* config/sh/constraints.md (K03, K12, Sbv, Sbw): New 
	constraints.
	* config/sh/predicates.md (bitwise_memory_operand): New
	predicate.
	* config/sh/sh.c (print_operand): Add %t operand code.
	* config/sh/sh.h (GO_IF_LEGITIMATE_INDEX): Add condition
	for SH2A.
	* config/sh/sh.md (*iorsi3_bset): Move the instruction above
	iorsi3_compact.
	(extendqisi2_compact): Add the alternative for SH2A 4-byte
	mov.b.
	(extendqihi2): Likewise.
	(movqi_i): Likewise.
	(insv): Use bset, bclr and bst instructions for SH2A if
	possible.
	(extv): Use bld instruction for SH2A if possible.
	(extzv): Likewise.
	(bclr_m2a, bclrmem_m2a, bset_m2a, bsetmem_m2a, bst_m2a, bld_m2a,
	bldsign_m2a, bld_reg, *bld_regqi, band_m2a, bandreg_m2a,
bor_m2a, 
	borreg_m2a, bxor_m2a, bxorreg_m2a): New insns.
	(bset.b, bclr.b): Define peepholes.
	* config/sh/sh.opt: New option bitops is added to generate bit
	instructions.  
	
	* gcc.target/sh/sh2a-band.c: New test.
	* gcc.target/sh/sh2a-bclrmem.c: New test.
	* gcc.target/sh/sh2a-bld.c: New test.
	* gcc.target/sh/sh2a-bor.c: New test.
	* gcc.target/sh/sh2a-bsetmem.c: New test.
	* gcc.target/sh/sh2a-bxor.c: New test.

Regards,
Naveen.H.S.
KPIT Cummins Infosystems Ltd,
Pune (INDIA) 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~	
Free download of GNU based tool-chains for Renesas' SH, H8, R8C, M16C	
and M32C Series. The following site also offers free technical support	
to its users. Visit http://www.kpitgnutools.com for details. 	
Latest versions of KPIT GNU tools were released on February 4, 2008.	
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~	

Attachment: sh2a6.patch
Description: sh2a6.patch


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