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