Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!uunet!husc6!cmcl2!rutgers!cbmvax!daveh From: daveh@cbmvax.UUCP (Dave Haynie) Newsgroups: comp.sys.amiga,comp.lang.modula2 Subject: Re: M2Amiga, a new Modula-2 compiler Message-ID: <2730@cbmvax.UUCP> Date: Wed, 11-Nov-87 13:59:13 EST Article-I.D.: cbmvax.2730 Posted: Wed Nov 11 13:59:13 1987 Date-Received: Sat, 14-Nov-87 04:41:59 EST References: <1982@crash.CTS.COM> Organization: Commodore Technology, West Chester, PA Lines: 40 Xref: mnetor comp.sys.amiga:10805 comp.lang.modula2:504 in article <1982@crash.CTS.COM>, haitex@pnet01.cts.com (Wade Bickel) says: > Xref: cbmvax comp.sys.amiga:10462 comp.lang.modula2:509 > > If the M2Amiga Linker works as you suggest, isn't the prep code > which must be generated prior to the call to a ROM routine redundantly > created at every call of the same routine. I can see this being faster, > but not more compact. It could be a close call, size wise. I'm not sure about M2 calling conventions, but in C, all function arguments are pushed on the stack. The stub from Amiga.Lib pops these stack arguments into the appropriate registers, loads the library base into A6, then calls the appropriate library routine relative to that library base. If a compiler can generate an alternate calling convention for library routines, based on specific knowledge that the routine is a library routine, all the stack stuff (compiler pushes for function call, stub pops for library call) can be eliminated. The in-line library call still has to get the right arguments into registers, but in most cases either they're already in registers, or they'd have to pass through registers on the way to the stack, so this isn't extra work. Exclusive of argument handling, the setup for library call is only one or two extra instructions over the normal function call. > Hopefully I will get a copy of M2Amiga in the near future. I am > still open minded and if it is as good as you say when compared to > Benchmark I will admit it. But if it is'nt... In any case, it looks like Amiga-based M2 compilers are evolving at least as quickly as C compilers, making M2 a really viable language for the Amiga. I bought TDI way-back-when, and was throughly unimpressed. I've been using Lattice since then, and their new compiler is a pretty good one. But from what I've been reading about the state of M2, I'm just about ready to reconsider it again, and may soon spring for M2Amiga, or possibly BenchMark if they ever figure out who really owns that sucker. > > Wade. -- Dave Haynie Commodore-Amiga Usenet: {ihnp4|caip|rutgers}!cbmvax!daveh "The B2000 Guy" PLINK : D-DAVE H BIX : hazy "Computers are what happen when you give up sleeping" - Iggy the Cat