Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.1 beta 3/9/83; site dutesta.UUCP Path: utzoo!watmath!clyde!floyd!harpo!decvax!mcvax!dutesta!sp From: sp@dutesta.UUCP (68000 project) Newsgroups: net.wanted,net.micro.68k Subject: MIT 68000 C cross compiler bugs Message-ID: <194@dutesta.UUCP> Date: Thu, 16-Feb-84 16:37:08 EST Article-I.D.: dutesta.194 Posted: Thu Feb 16 16:37:08 1984 Date-Received: Sat, 18-Feb-84 04:18:15 EST Organization: Delft univ. of tech., the Netherlands Lines: 26 We are using the MIT C cross compiler for the M68000 on our VAX 750 running Unix Bsd4.1. However there are some bugs. These are the ones we know of so far: 1. sometimes dataregisters and addressregisters are mixed up. In a routine to read data from an acia we found that after reading the acia status port the value read was transferred to an address- register and than the contents of that location were transferred to a location in bss space especcialy declared for that purpose by the compiler. This may cause address errors or bus errors. 2. shorts may cause errors when they are used in long calculations. When performing long calculations the compiler sometimes makes room on the stack to store intermediate results. Shorts are than pushed on the stack as a word. When the compiler needs them later though, they are poped as a long. 3. shift operations ( <<, >>, <<= and >>=) generate illegal opcodes. Is there anyone who has discovered more bugs, or better has fixed them ? Arrie v.d. Vliet Delft University of Technology, Department of Electrical Engineering Switching laborotry