From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.3 required=5.0 tests=BAYES_00,INVALID_MSGID autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,590fea1a83d154a9 X-Google-Attributes: gid103376,public From: dewar@merv.cs.nyu.edu (Robert Dewar) Subject: Re: Package Logical performance optimizations Date: 1997/06/10 Message-ID: #1/1 X-Deja-AN: 247442460 References: Organization: New York University Newsgroups: comp.lang.ada Date: 1997-06-10T00:00:00+00:00 List-Id: Al asks <> You need to say what compiler you are using, since package Machine_Code will vary from one compiler to another. Also note that in Ada 95, the implementation of package Machine_Code is not required, even if you support annex C, since it is possible to provide (the much more useful approach) of machine intrinsics instead (GNAT provides both). The one exception is the Motorola 88000. For this machine, the official ABI includes a specification of what package Machine_Code should look like in Ada compilers for this machine, so presumably there would be no portability issue with this machine (unfortunately, as far as I know there are virtually no computers using this chip any more, the manufacturer has abandoned the chip, and there are no Ada compilers available -- although a GNAT compiler could easily be constructed, so this is all a bit academic). It would be nice to standardize machine code, but it is tough. For example, in GNAT, we directly interface to the gcc capability, which is extremely flexible, since it allows linking directly into the RTL structure, using symbolic registers if you want), but it is highly gcc dependent. The old Alsys 386 compiler had what I thought was a very nice set of instrinsics (I designed them :-) which were reasonably compiler independent, but I don't think anyone followed them (I don't even know if Object Ada duplicates this facility ...)