aglew@mcdurb.Urbana.Gould.COM (05/21/89)
>Well, actually, the 88000 (and the i860, and the Cray's) don't have divide. >They have reciporcate (actually, I belive they call it reciporocal >approximation, and, at least on the i860, you have to go through a couple of >iterations to get the "perfect" result). From the MC88100 RISC Microprocessor User's Manual, Table 1-2, Instruction Summary, page 1-13: Integer Arithmetic Instructions ------------------------------- ... DIV Divide DIVU Divide Unsigned ... Floating-Point Arithmetic Instructions -------------------------------------- ... FDIV Floating-Point Divide ... Note that, although integer divide is executed by the FPU, this is implementation, not architecture; whereas on some machines (Cray's I believe) you must convert integer to float, divide, and convert float to integer, explicitly for integer divide. As for reciprocal approximation -- I have seen enough of the accuracy problems with using reciprocal for divide to last me for quite a while. Gould's NP1 did floating point reciprocals instead of divide: one of the compiler guys said that it opened up a number of interesting opportunities for optimization; but it caused enough accuracy problems (coupled with using IBM style hex floating point) that divide was backed in later.