comp.lang.ada
 help / color / mirror / Atom feed
From: "Robert I. Eachus" <eachus@mitre.org>
Subject: Re: Compiler for Z80/6510
Date: 1999/12/03
Date: 1999-12-03T20:06:08+00:00	[thread overview]
Message-ID: <38482436.F6F36E5@mitre.org> (raw)
In-Reply-To: 828n1c$8ir$1@nnrp1.deja.com

Robert Dewar wrote:
> > I could go into details,

> Please at least give references!

    Do you have copies of the SPARC architecture Versions 7 and 8?

    There were many instructions added to version 8 of the
architecture.  Even though not all existing SPARC processors supported
them directly, version 8 added a number of instructions not in version
7.  To comple with version 8 (and now version 9) of the reference
manual, you had to support these instructions in a trap handler if they
were not supported by the processor.

   There was a window where SunOS did not support the new instructions--
even by emulation.  In fact the SunAda(VADS) 1.x compiler did not even
allow these instructions in code inserts.  However, I was able to create
a package that contained "legitmate" implementations of these
instructions and then edit the binary to use the new instructions.  I
couldn't use pragma INLINE on the operations, but when these functions
were called the only overhead incurred was a function call rather than a
call to a run-time routine that simulated integer multiplication and
division.  Of course I could and did override the Standard operators in
the body of the using packages.

   As you know, SPARC subroutine calls are very efficient when
everything can be  done without creating an new stack frame.

   So I could get a several fold speed increase over asm writing in
Ada.  This was very handy when I was working on multi-precision
arithmetic, prime numbers,
and random number generators.  One particularly useful pair of
instructions  did 32x32-->64 bit multiplies and 64/32-->32,32 divides. 
Of course, you had to be very careful since the Y register had a long
latency on loads and stores from other registers.


     
-- 

                                        Robert I. Eachus

with Standard_Disclaimer;
use  Standard_Disclaimer;
function Message (Text: in Clever_Ideas) return Better_Ideas is...




  reply	other threads:[~1999-12-03  0:00 UTC|newest]

Thread overview: 50+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1999-11-24  0:00 Compiler for Z80/6510 Lutz Donnerhacke
1999-11-24  0:00 ` Wil
1999-11-25  0:00   ` Lutz Donnerhacke
1999-11-25  0:00     ` Robert Dewar
1999-11-25  0:00       ` Peter Milliken
1999-11-26  0:00         ` Tarjei Jensen
1999-11-26  0:00         ` Ed Falis
1999-11-26  0:00           ` Robert C. Leif, Ph.D.
1999-11-27  0:00             ` Florian Weimer
1999-11-28  0:00             ` Robert Dewar
     [not found]             ` <01bf38cb$be9b2b60$022a6282@dieppe>
1999-11-28  0:00               ` Robert Dewar
1999-11-28  0:00                 ` Robert A Duff
1999-11-30  0:00                 ` Pascal Obry
1999-12-06  0:00           ` Richard D Riehle
1999-11-26  0:00         ` Robert Dewar
1999-11-26  0:00           ` Robert A Duff
1999-11-27  0:00             ` Robert Dewar
1999-12-01  0:00             ` Robert I. Eachus
1999-12-02  0:00               ` Larry Kilgallen
1999-12-02  0:00                 ` Robert I. Eachus
1999-12-03  0:00               ` Robert Dewar
1999-12-03  0:00                 ` Robert I. Eachus [this message]
1999-12-06  0:00                   ` Robert Dewar
1999-12-13  0:00                     ` Robert I. Eachus
1999-12-13  0:00                       ` carr_tom
1999-12-17  0:00                         ` Robert I. Eachus
1999-12-19  0:00                       ` Robert Dewar
1999-12-21  0:00                         ` Robert I. Eachus
1999-12-23  0:00                           ` Robert Dewar
1999-12-23  0:00                             ` Robert I. Eachus
1999-11-26  0:00       ` Vladimir Olensky
1999-11-26  0:00         ` Robert Dewar
1999-11-26  0:00           ` Vladimir Olensky
1999-11-27  0:00             ` Robert Dewar
1999-11-28  0:00               ` Vladimir Olensky
1999-11-24  0:00 ` Frank Klemm
1999-11-24  0:00   ` Lutz Donnerhacke
1999-11-24  0:00 ` Tucker Taft
1999-11-29  0:00 ` Marin Condic
1999-11-29  0:00   ` Lutz Donnerhacke
1999-11-29  0:00     ` Marin Condic
1999-11-29  0:00       ` Lutz Donnerhacke
1999-11-29  0:00   ` Mike Silva
1999-11-29  0:00     ` Marin Condic
1999-11-29  0:00       ` John Duncan
1999-11-30  0:00         ` Lutz Donnerhacke
1999-11-29  0:00       ` Mike Silva
1999-11-30  0:00       ` Tarjei Jensen
1999-11-29  0:00   ` Robert C. Leif, Ph.D.
1999-12-01  0:00   ` Robert Dewar
replies disabled

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