[Ping] RE: CR16 Port addition

Jayant R. Sonar Jayant.Sonar@kpitcummins.com
Wed Nov 30 10:50:00 GMT 2011


Hello Rainer,

Thank you for quickly reviewing the patch.
I have modified the patch as per your suggestions.
Please find the modified patch attached with this mail.

>>* LIB1ASMSRC is relative to libgcc/config, and the file is called
>>  lib1funcs.S.  Please change the patch accordingly.

This has been fixed now.

>>* gcc/config.gcc uses cr16-*-elf as target, while libgcc/config.host has
>>  cr16-*-*.  Please use the former in libgcc, too, and add to
>>  extra_parts which already has crtbegin.o crtend.o for all *-*-elf
>>  targets.

This has been fixed now.

>>* It seems highly unfortunate that cr16 has its own copy of the
>>  unwinder, apparently even containing some references to ia64 which are
>>  certainly inapproprate here.  

I have removed the code related to IA64 from the unwind-cr16.c file.

>>  Given the amount of copy&paste
>>  programming within the gcc tree, is there any way to make cr16
>>  specific changes to the generic versions of this code?

I saw only one target specific conditional code present in generic 
unwind-dw2.c file (ia64) and other targets having their own modified copy of 
this file in target specific folders. Therefore, I followed the same 
technique. I took the generic file and added CR16 specific changes under the 
conditional statements "#if defined( __CR16C__ )" and placed it in target 
folder.

The CR16's programming memory is 2-byte aligned and the least significant 
bit of PC is always zero. The Return Address (RA) register always saves the 
value of PC right shifted by 1(PC >> 1). This conversion seems broken at 
some places during unwinding which results in terminate() function  being 
called.

Thanks and Regards,
Jayant Sonar
[KPIT Cummins, Pune]

-------------- next part --------------
A non-text attachment was scrubbed...
Name: cr16-gcc.patch
Type: application/octet-stream
Size: 213714 bytes
Desc: cr16-gcc.patch
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20111130/12f23f1b/attachment.obj>


More information about the Gcc-patches mailing list