|Reduced Machine Description firstname.lastname@example.org (1989-02-22)|
|Re: Reduced Machine Description email@example.com (1989-03-15)|
|Re: Reduced Machine Description firstname.lastname@example.org (1989-03-02)|
|Re: Reduced Machine Description email@example.com (1989-02-27)|
|From:||firstname.lastname@example.org (David Bradlee)|
|Keywords:||Portable compilers, Back ends|
|Date:||2 Mar 89 19:53:23 GMT|
|Organization:||U of Washington, Computer Science, Seattle|
Your idea to write a simpler machine description is a good one, but it has its
problems. First, you need a mapping between the intermediate language (IL) and
the instructions given in the description. This can be done, but it's
non-trivial. Second, you need to specify where instructions expect their
operands and where they leave results. On the 68000, some instructions allow
some operands in memory, while others do not. Third, what about different
object types (short int, long int, float)?
The bottom line is that you can make simplifying assumptions, such as
"arithmetic operators are take register operands and yield register results,"
and this will simplify the machine description. But, there is a significant
performance price to pay. I don't have exact figures, but without a more
complicated specification for the 68000 or the VAX, you would not be able to
produce production quality code. Since GNU C is intended to produce high
quality code, their machine descriptions are complicated.
-- Dave Bradlee
[From email@example.com (David Bradlee)]
Return to the
Search the comp.compilers archives again.