Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!seismo!think!husc6!panda!genrad!decvax!wanginst!vaxine!agr From: agr@vaxine.UUCP (Arnold Reinhold) Newsgroups: net.arch Subject: Re: Where are delayed branches handled? (no SOAP) Message-ID: <207@vaxine.UUCP> Date: Mon, 25-Aug-86 17:33:19 EDT Article-I.D.: vaxine.207 Posted: Mon Aug 25 17:33:19 1986 Date-Received: Wed, 27-Aug-86 10:52:39 EDT References: <299@vaxb.calgary.UUCP> <823@jplgodo.UUCP> <20150@rochester.ARPA> <931@tekcrl.UUCP> Reply-To: agr@vaxine.UUCP (Arnold Reinhold) Organization: Automatix, Inc., Billerica, MA Lines: 30 In article <931@tekcrl.UUCP> patc@tekcrl.UUCP (Pat Caudill) writes: > > Although I usually want an assembler to assemble >what I coded, there is precidence for assemblers doing >optimization. Besides long short jump, opcode selection >for imed, short, long offset or macros. I beleive the SOAP >(Symbolic Optimizing Assembly Program) did instruction >scheduling for a machine which this was very important >and also very difficult. Code for the machine was mainly >in assembly language. The machine is now somewhat dated >however. > The IBM 650 was a drum memory machine with 2000 ten digit decimal words. Instructions consisted of a two digit op code, a four digit operand address and a four digit address for the next instruction. Optimization consisted of placing the next instruction so it would be just in front of one of the ten read heads when the previous instruction had finished. SOAP did this by a crude aproximation of execution times, there wasn't room for a complete table. Real programmers wrote in machine language and optimized with the aid of an IBM preprinted chart of all memory locations so you could check them off as you used them. SOAP did not change the order of execution of instructions at all, however. For sanity, any assembler should have a what you wrote is what you get option. It would seem vital for the diagnostic programmer, if no one else. Arnold Reinhold Automatix Inc. vaxine!agr