comp.lang.ada
 help / color / mirror / Atom feed
From: "Randy Brukardt" <randy@rrsoftware.com>
Subject: Re: Adapting an Ada compiler to generate 8051 code (Again?! ;-)
Date: Thu, 1 Apr 2021 18:43:45 -0500	[thread overview]
Message-ID: <s45lri$m7n$1@franka.jacob-sparre.dk> (raw)
In-Reply-To: s44du6$ugk$1@gioia.aioe.org

"Luke A. Guest" <laguest@archeia.com> wrote in message 
news:s44du6$ugk$1@gioia.aioe.org...
> On 01/04/2021 00:20, Randy Brukardt wrote:
>> "Luke A. Guest" <laguest@archeia.com> wrote in message
>> news:s40urd$qbp$1@gioia.aioe.org...
>> ...
>>> AVR isn't really an accumulator arch, it's got 32 registers. Even the 
>>> 6502
>>> has a port, but that uses the zero page as virtual registers. The Z80
>>> cannot do that as it starts executing from address 0 iirc.
>>
>> The Z-80 has enough registers for Ada (or at least a reasonable 
>> subtest) --
>> see the original Janus/Ada compilers. If you want *real* registers, even 
>> the
>
> I know of the original Janus for Z80, never used it, is it a real Ada 
> compiler or is it a Pascal like Ada?

It was an Ada 83 subset. Don't remember the exact details, but it covered a 
substantial part of the language, including packages and exceptions. The 
validated Ada 83 compilers were direct descendants, and the current compiler 
is directly descended from that.

> Have you considered compiling it as a cross compiler on Linux?

Sadly, we've lost the back-end. When I was moving and going to junk the last 
machine with a working 5 1/4" floppy, I decided to copy all of the old stuff 
into the version control system. But I wasn't able to read the disks with 
the source to the last pass.

I didn't concern myself too much with losing that, as that backend predated 
J-Code and thus any modern version would need to be rewritten anyway to mate 
with a modern front-end. I did manage to recover the runtime, which would be 
more work to reproduce anyway -- especially the floating point library.

>> x86 doesn't have enough registers for reasonable code optimizations. A
>
> Tell me about it. Always hated the x86 when I was on m68k, look I have 8 
> Data and 8 Address registers, you have what? 4 useable ones!

6 registers on the x86 (as SP and BP have special purposes -- one can use 
them [especially BP] in a pinch but you have to save the contents). It's 
just enough to be more than enough for most simple purposes and thus a bit 
of longer term register allocation is needed. The Z-80 for instance didn't 
need any register allocation as with essentially 3 there wasn't any point in 
trying to keep anything there.

                          Randy.


  reply	other threads:[~2021-04-01 23:43 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-03-30  9:04 Adapting an Ada compiler to generate 8051 code (Again?! ;-) mockturtle
2021-03-30  9:56 ` Dmitry A. Kazakov
2021-03-30 11:24   ` Gautier write-only address
2021-03-30 11:27   ` mockturtle
2021-03-30 12:01     ` Dmitry A. Kazakov
2021-03-31 23:08       ` Randy Brukardt
2021-03-31 23:06   ` Randy Brukardt
2021-03-30 10:40 ` Niklas Holsti
2021-03-30 11:32   ` mockturtle
2021-03-31 23:14   ` Randy Brukardt
2021-04-01 15:07     ` Niklas Holsti
2021-04-01 23:34       ` Randy Brukardt
2021-03-30 11:24 ` Luke A. Guest
2021-03-30 13:28   ` Luke A. Guest
2021-03-30 12:45 ` Björn Lundin
2021-03-30 15:49 ` Shark8
2021-03-30 19:16 ` Paul Rubin
2021-03-30 21:28   ` Luke A. Guest
2021-03-30 21:48     ` Paul Rubin
2021-03-31  4:46       ` Luke A. Guest
2021-03-31  7:19         ` Simon Wright
2021-03-31 23:20         ` Randy Brukardt
2021-04-01 12:22           ` Luke A. Guest
2021-04-01 23:43             ` Randy Brukardt [this message]
2021-04-02  0:41               ` Luke A. Guest
2021-03-31  8:23     ` Niklas Holsti
2021-03-31 20:46 ` Gautier write-only address
2021-03-31 21:14   ` Shark8
2021-03-31 21:25     ` Gautier write-only address
2021-03-31 21:46       ` Shark8
2021-03-31 23:22       ` Randy Brukardt
2021-04-01 13:19   ` Luke A. Guest
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox