Current ambiguities in the Ecode machine While going through the Ecode generator for Amdahl it has become obvious that varying interpretations are possible for some Ecode operations and that these interpretaions conflict. These notes are intended to clarify the more important areas. 1) Locations and addresses. Ecode operations are normally between items in store (locations). The locations are notified by stacking them as area and offset or otherwise. The address of a location can be obtatined by eop(Eaddress) or by stacking the address of a location(Estkaddr). An address once stacked has the status of a litval ie it does not have an address itself nor is it possible to store into an address. To convert an address into a location use Erefer(0,size). 2) Storing results. The operations ESTORE and EDUPSTORE are provided for storing arithmetic results into 1,2,4,8 & 16 byte locations. Storage is arranged so as to give the correct numerical result converting as necessary (eg fetch byte store into integer). To store sets, character strings (other than 1 byte strings into 1 byte locations), etc MVB or specialised operations are needed. There is an inescapable conflict between storing a byte into a word and storing a one charater string into a 4 byte location. 3) MVB The from and to operands for MVB are addresses; thus to move integer i to integer j the operations are:- estkaddr i estkaddr j estklit 4 eop(MVB) 4) Indexing Indexing is an operation on an address not on a location. If a location is specified as the base address of an index operation the the contents of that location will be taken as a base address. Fortran is the odd man out here. There is a further ambiguity between Fortran's indexing and the Imp users construction :- longreal(integername+4*integervalue). 5) Procedures Ecode assumes nested procedure bodies are themselves nested. Pascal does not do this and has an procedure Eproclevel to notify the generator of the level of any procedure body. I propose bits 1-7 of properties be the level if nonzero. Zero means normal nesting. 6) Old forms The operations IPUSH,IPOP,SFA,ASF are apparently no longer used. Pete.