Xref: utzoo comp.arch:10391 misc.wanted:5359 comp.sources.wanted:7861 Path: utzoo!attcan!utgpu!jarvis.csri.toronto.edu!rutgers!rochester!pt.cs.cmu.edu!sei!firth From: firth@sei.cmu.edu (Robert Firth) Newsgroups: comp.arch,misc.wanted,comp.sources.wanted Subject: Re: MIPS Assembler Procedure Message-ID: <3571@bd.sei.cmu.edu> Date: 27 Jun 89 12:35:29 GMT References: <57125@linus.UUCP> <1989Jun24.230056.27774@utzoo.uucp> <22218@winchester.mips.COM> Reply-To: firth@sei.cmu.edu (Robert Firth) Organization: Software Engineering Institute, Pittsburgh, PA Lines: 19 In article <22218@winchester.mips.COM> mash@mips.COM (John Mashey) writes: >6) When we were doing this, we couldn't think of any languages whose >natural implementation on a 32-bit machine would expect generation >of a 64 by 32 bit divide as the expected operation. Does anybody >know of any such, or is thsi strictly something one would use in >handcoded routines? Nope, I don't know of any high-level language either that requires 64/32 => 32,32 division. For expressions such as (a*b)/c, all 32 bit, some languages permit the compiler to perform the rule-of-three operation, ie hold the intermediate product in 64 bits. Ada is one such. But no language requires it. And, of course, the operation is pretty useless for true 64-bit arithmetic since there you want a 64-bit quotient. Performing full 64/32 => 64,32 on an MC68020, for instance, is pretty tedious even with the extended division operations, since one has to correct signs and remainders manually.