🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: gnu.gcc.help
Article #52814

Help needed porting gcc 2

#52814
From: michael gersten
Date: Thu, 07 May 1992 17:31
50 lines
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!michael

Show 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