Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!qt.cs.utexas.edu!zaphod.mps.ohio-state.edu!think.com!snorkelwacker.mit.edu!paperboy!meissner From: meissner@osf.org (Michael Meissner) Newsgroups: comp.arch Subject: Re: 64 Bit addressing on R4000? Message-ID: Date: 28 Jun 91 14:51:56 GMT References: <8083@uklirb.informatik.uni-kl.de> <14900025@hpdmd48.boi.hp.com> <880@taniwha.UUCP> Sender: news@OSF.ORG Organization: Open Software Foundation Lines: 31 In-reply-to: paul@taniwha.UUCP's message of 27 Jun 91 16:28:54 GMT In article <880@taniwha.UUCP> paul@taniwha.UUCP (Paul Campbell) writes: | In article <14900025@hpdmd48.boi.hp.com> sritacco@hpdmd48.boi.hp.com (Steve Ritacco) writes: | >From what I know about the R3000, the only integer unit instruction affected | >by 64-bit operation would be the shift instructions which only have a 5 bit | >field for shift amount. Clearly you would have to use the register varient | >of the shift instructions, but other than that all the instructions would work | >for 32 or 64 bit opperands. I'm under the impression that the instruction | >set was layed out for minimal affect on word size. | | What about add/sub instructions - they trap on overflow, also any compare | instruction that tests the sign bit - one solution for this might be | for the 32-bit instructions to use the high 32-bits of a register | (you would need new load/store instructions), or you could have a | 64-bit/32-bit flag that puts the CPU into a particular mode (hopefully | there would be one each for user/supervisor modes) The other thing I've thought about is how do you do generalized external references. On the current R[236]000's a normal (non-GP) reference is two instructions: lui $at,addr>>16 ,addr&0xffff($at) I wonder whether we will need four instructions in the 64 bit universe. -- Michael Meissner email: meissner@osf.org phone: 617-621-8861 Open Software Foundation, 11 Cambridge Center, Cambridge, MA, 02142 You are in a twisty little passage of standards, all conflicting.