Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.1 6/24/83; site poseidon.UUCP Path: utzoo!watmath!clyde!burl!ulysses!mhuxr!mhuxn!ihnp4!poseidon!sherm From: sherm@poseidon.UUCP (Paul A. Sherman) Newsgroups: net.micro.att Subject: Re: 3b2/400 and floating point Message-ID: <1394@poseidon.UUCP> Date: Fri, 24-Jan-86 15:25:24 EST Article-I.D.: poseidon.1394 Posted: Fri Jan 24 15:25:24 1986 Date-Received: Sat, 25-Jan-86 08:13:59 EST References: <2403@gatech.CSNET> <1735@cuae2.UUCP> Reply-To: sherm@poseidon.UUCP (60545457-Paul A. Sherman;LZ 3C-319;6316) Organization: AT&T Information Systems, Lincroft NJ Lines: 40 Summary: In article <1735@cuae2.UUCP> heiby@cuae2.UUCP (Heiby) writes: >With the introduction of the MAU, there is a new version of the CCS available >called Issue 3 (3.1 is current). The "-f" option (if accepted at all) does >nothing in this issue. All floating point operations are executed by function >calls (avoiding the trap overhead). The rest of Ron's article is quite accurate, but the Issue 3 (3.0 and 3.1) CCS's DO accept and act upon the "-f" option for backward compatability reasons. The "-f" flag works the same way as it has in previous releases of the CCS. It causes a special version of the runtime startup routine (/lib/fcrt0.o instead of /lib/crt0.o) to be linked in. This file sets up the traps that Ron discussed and causes the code in fptrap.o (from libc.a) to be included in the a.out. For programs compiled from scratch with Issue 3 this flag is indeed unnecessary and just causes larger code. However, if you have any object modules (e.g. archive libraries) that contain floating point and were built with previous releases of the CCS, linking them requires the floating point trap. Without it the (still illegal) floating point opcodes contained within will cause a core dump at run time. Building with the "-f" flag to the Issue 3 CCS doesn't slow down floating point operation on new code. It still uses function calls for floating point operation and they use the MAU if it exists. It does allow old binary modules to be linked in and perform (still high overhead) floating point operations. This flag becomes necessary if you are trying to link against vendor distributed libraries that were built before Issue 3 of the CCS was available. By the way, Issue 4 of the CCS (for System V Release 3) continues this same behaviour. I haven't seen C-FP+ so I don't know whether it allows this sort of backward compatability or not. -- Paul Sherman AT&T Information Systems, Lincroft, NJ {pegasus!phoenix}!poseidon!sherm (201) 576-6316