Path: utzoo!attcan!uunet!mcvax!ukc!cam-cl!scc From: scc@cl.cam.ac.uk (Stephen Crawley) Newsgroups: comp.arch Subject: Re: MicroVAX emulation Message-ID: <679@scaup.cl.cam.ac.uk> Date: 11 Mar 89 13:34:11 GMT References: <807@microsoft.UUCP> <92634@sun.uucp> <13322@steinmetz.ge.com> <1133@auspex.UUCP> <12000@haddock.ima.isc.com> <1368@husc6.harvard.edu> Sender: news@cl.cam.ac.uk Organization: U of Cambridge Comp Lab, UK Lines: 29 In article <12000@haddock.ima.isc.com> Stephen Uitti writes: >uVAX IIs implement all sorts of VAX instructions that just aren't in the >hardware. Both VMS & flavors of UNIX do this (sometimes even correctly) ... >Almost no one uses these instructions, so who cares? We do!. The MIT CLU compiler generates LOCC, CMPC and MATCHC instructions for various operations on the (builtin) string type. OK ... so you take a performance hit on an Ultrix uVAX II. Fine you say. But on a UVaxII running the Amoeba OS, your program keels over!! Why? Well ... the Amoeba kernel does not include the code for emulating the instructions! And why is that? Because the emulation code in Ultrix and VMS is all copyrighted by DEC ... and the CWI folks never got around to reimplementing it. (Why should they? They write their code in C, and C compilers don't generate the string instructions ...) So we hacked a compiler switch into the VAX Clu optimiser so that we could disable generation of the troublesome instructions. Contentious statement: Until DEC is prepared to supply free and unencumbered source code for the instruction emulation routines, the uVAX II cannot be said to implement the VAX architecture! -- Steve #include "disclaimer.equ"