Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.1 6/24/83; site umcp-cs.UUCP Path: utzoo!watmath!clyde!bonnie!akgua!whuxlm!harpo!decvax!genrad!panda!talcott!harvard!seismo!umcp-cs!chris From: chris@umcp-cs.UUCP (Chris Torek) Newsgroups: net.lang.f77 Subject: Re: Wanted: Ultra-fast fortran compiler for UNIX Message-ID: <1022@umcp-cs.UUCP> Date: Sat, 27-Jul-85 17:52:16 EDT Article-I.D.: umcp-cs.1022 Posted: Sat Jul 27 17:52:16 1985 Date-Received: Mon, 29-Jul-85 07:29:35 EDT References: <621@astrovax.UUCP> <9871@Glacier.ARPA> <624@astrovax.UUCP> <867@oddjob.UUCP> <10068@Glacier.ARPA> Organization: U of Maryland, Computer Science Dept., College Park, MD Lines: 24 >Can anyone explain to me why the comparison comes out so different >on the 780/FPA and the 750, for instance? (Fools rush in...) I believe that the VMS compiler goes to great pains to avoid using the floating point instructions when another instruction will (at least 95% of the time) achieve the same result. The original 4.2 f77 used "movf" and "movd" to copy real*4 and real*8 variables back and forth; VMS Fortran uses "movl" and "movq". Amusing anecdote: this apparently caused someone grief when a program using real*8 datatypes to move integer or string values around ``worked just fine under VMS, and gives me a "Floating exception (core dumped)" under Unix. What's wrong with the Unix compiler?'' The problem, of course, was that the values being moved were illegal floating point numbers, and were causing reserved operand faults when "movd" tried to read them. The f77 compiler that will be in 4.3BSD now uses movl and movq.... -- In-Real-Life: Chris Torek, Univ of MD Comp Sci Dept (+1 301 454 4251) UUCP: seismo!umcp-cs!chris CSNet: chris@umcp-cs ARPA: chris@maryland