Article View: gnu.gcc.help
Article #52814Help needed porting gcc 2
From: michael gersten
Date: Thu, 07 May 1992 17:31
Date: Thu, 07 May 1992 17:31
50 lines
2676 bytes
2676 bytes
I need help porting GNU cc to a new chip. I have some questions. Where do you start? How much must be defined, what should be defined, what will be ignored? What insn must be in .md? What instructions of the machine will be ignored if I put them in? When do you write an rtx? Am I correct in thinking that they only occur as part of an insn in the .md file? In the node output statement under RTL, there is an example that uses %0 and %1, yet these are constrained to be the same, and %2 is never used. Is this example wrong, or am I misunderstanding whats going on? What do you do on a machine where the left shifts are not the same -- arithmetic left will preserve the sign bit even on large numbers? (it does have standard logical left shift). What do you do if you want a char * to be a different size than other pointers? I have a 16 bit machine that is word addressable. I can either make all pointers large, and constrain everything other than a char * to be even (then a pointer must be divided by 2 before being used -- how would I do that?) If I want to start by defining my char's to be 16 bits long (one full word), what do I need to do so that later when I swtich to packed chars I can re-use most of what I've already written? Indexing: The machine supports several forms of indexing. I have base reg + 8 bits, or base reg + general reg (one word each), and general reg + 16 bits, and contents of (general reg + 16 bits) both of which are two words. Also, anywhere a constant can go, a constant + a register can go. How do I tell this to gcc? What will it use, what will it not use? For the one word indexed stuff, the low numbered registers are the accumulator for the second argument -- how do I tell this to gcc? (0 and 1, or 0,1,2 for float/double, 2 or 2/3 for short/long) Can someone explain what casesi is doing? I do not understand the description. Casesi and tablejump do not specify what argument 0 is. Michael -- Michael Gersten | michael@stb.info.com | disclaimer | `/usr/games/fortune`
Technical Details
Message-ID:
<1992May7.173133.13656@cs.ucla.edu>Path:
arc1-ca.pugleaf.net!sparky!uunet!stanford.edu!ames!elroy.jpl.nasa.gov!ucla-cs!maui.cs.ucla.edu!michaelShow Full Headers
Complete Article Headers
X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 11318c,ea65692e572a1bf0,start X-Google-Attributes: gid11318c,public X-Google-ArrivalTime: 1992-05-07 10:31:33 PST Newsgroups: gnu.gcc.help Path: arc1-ca.pugleaf.net!sparky!uunet!stanford.edu!ames!elroy.jpl.nasa.gov!ucla-cs!maui.cs.ucla.edu!michael From: michael@maui.cs.ucla.edu (michael gersten) Subject: Help needed porting gcc 2 Message-ID: <1992May7.173133.13656@cs.ucla.edu> Sender: usenet@cs.ucla.edu (Mr Usenet) Nntp-Posting-Host: maui.cs.ucla.edu Organization: UCLA Computer Science Department Date: Thu, 7 May 92 17:31:33 GMT Lines: 50