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.
next prev parent 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