Related articles |
---|
Problem involved porting LCC to a 8 bit microcontroller amker.cheng@gmail.com (2006-09-06) |
Re: Problem involved porting LCC to a 8 bit microcontroller englere_geo@yahoo.com (Eric) (2006-09-08) |
Re: Problem involved porting LCC to a 8 bit microcontroller tmk@netvision.net.il (Michael Tiomkin) (2006-09-08) |
Re: Problem involved porting LCC to a 8 bit microcontroller toby@telegraphics.com.au (toby) (2006-09-08) |
Re: Problem involved porting LCC to a 8 bit microcontroller gah@ugcs.caltech.edu (glen herrmannsfeldt) (2006-09-08) |
Re: Problem involved porting LCC to a 8 bit microcontroller raffaele.salmaso@gmail.com (Raffaele Salmaso) (2006-09-08) |
From: | "toby" <toby@telegraphics.com.au> |
Newsgroups: | comp.compilers |
Date: | 8 Sep 2006 00:27:49 -0400 |
Organization: | http://groups.google.com |
References: | 06-09-007 |
Keywords: | C, lcc |
Posted-Date: | 08 Sep 2006 00:27:49 EDT |
amker.cheng@gmail.com wrote:
> Just a student project !Porting porting LCC to a 8 bit microcontroller
> with which char is 8 bit and int is 16bit.
> But I found in LCC character and short-integer actual arguments are
> always promoted to the coresponding type even in the presence of a
> prototype!(And does there any place in it did similar thing?)
> So I have to use 2 8bit regsters for a char type argument!This is
> unbearable here!
> I want to change the front end, but not sure. All I have to do is
> change codes for function declarations and definitions in decl.c?
> Further more , in arithmetric computing "char c1,c2; c1 = c1 + c2;"
> does lcc promote char into int? I doubt of it because there isn't an
> dag operator for ADDI1!
That's because in C all arithmetic (and argument passing) uses promoted
values. You can find some notes on a solution here
http://www.homebrewcpu.com/retargeting_lcc.htm
Searching past posts in this newsgroup may also help.
lcc's most comfortable on modern 32-bit architectures; it can be
awkward outside this sweet spot.
Return to the
comp.compilers page.
Search the
comp.compilers archives again.