Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.1 6/24/83; site umcp-cs.UUCP Path: utzoo!watmath!clyde!burl!ulysses!mhuxl!ihnp4!zehntel!hplabs!hao!seismo!umcp-cs!chris From: chris@umcp-cs.UUCP (Chris Torek) Newsgroups: net.lang.c,net.bugs.4bsd Subject: Re: C compiler bug Message-ID: <8174@umcp-cs.UUCP> Date: Sun, 26-Aug-84 16:13:25 EDT Article-I.D.: umcp-cs.8174 Posted: Sun Aug 26 16:13:25 1984 Date-Received: Thu, 30-Aug-84 06:22:45 EDT References: <73@ur-valhalla.UUCP> <8164@umcp-cs.UUCP> <3009@utah-cs.UUCP> Organization: U of Maryland, Computer Science Dept., College Park, MD Lines: 24 As long as we have people fixing bugs, how about someone patching up the pcc/ code that converts RS into LS and negates the shift? It fixes up constants but it doesn't remove double negations. Example: foo () { register int i,j,k; k = i >> -j; } produces (prettified) .align 1 .globl _foo _foo: .word 0xe000 mnegl r10,r0 mnegl r0,r0 ashl r0,r11,r0 movl r0,r9 ret What's the idea of the double mnegl? I got disgusted enough with this (and other similar but tougher-to-optimize) stuff in the output stage of my Versatec TeX filter that I stuck in asm()s (under #ifdef vax though). -- In-Real-Life: Chris Torek, Univ of MD Comp Sci (301) 454-7690 UUCP: {seismo,allegra,brl-bmd}!umcp-cs!chris CSNet: chris@umcp-cs ARPA: chris@maryland