Newsgroups: comp.lang.pascal
Path: utzoo!utgpu!watserv1!maytag!watstat.waterloo.edu!dmurdoch
From: dmurdoch@watstat.waterloo.edu (Duncan Murdoch)
Subject: Re: Questions/Observations about TP v. 6.0
Message-ID: <1991Feb7.143030.4779@maytag.waterloo.edu>
Keywords: slug, dog, brain-dead
Sender: daemon@maytag.waterloo.edu (Admin)
Organization: University of Waterloo
References: <1991Jan20.152128.21994@isis.cs.du.edu> <25453@dime.cs.umass.edu>
Date: Thu, 7 Feb 91 14:30:30 GMT
Lines: 22

In article <25453@dime.cs.umass.edu> eli@smectos.CS.UMASS.EDU (Eli Brandt) writes:
>
>This sounds like you're using {$E+}, IEEE floating point.  IMHO, this is a bad
>idea: without a coprocessor, it's so damned slow (though yes, it is faster than
>5.0, I got about 30%) that it's intolerable.  What I end up doing is distributing
>two versions of every fp-intensive program: one '87-only and the other with
>six-byte reals.  In 5.0, E+ was about one third the speed of E-, if I'm remembering
>the right numbers.  I haven't looked at 6.0 output, but in 5.0, every time you
>do an E+ fp instruction, it calls some INT 37h I believe, which then goes to
>Borland fp code to convert your real to 10-bytes, multiply these mongo 10-byte reals,
>convert them back, and return from the interrupt.  What's worse, even if the user
>has an '87, it still goes through an interrupt for each instruction, which is 
>some serious overhead...

No, it only goes through the interrupt the first time.  The interrupt checks
to see if there's an FPU installed, and if so, patches the caller back to 
inline code.

I always use the E+ version, but you're right:  I wouldn't want to execute any

Duncan Murdoch

