Xref: utzoo comp.sys.pyramid:887 gnu.gcc.bug:2659 Path: utzoo!utgpu!news-server.csri.toronto.edu!rutgers!usc!samsung!munnari.oz.au!mel.dit.csiro.au!yarra!kenj From: kenj@yarra.oz.au (Ken McDonell) Newsgroups: comp.sys.pyramid,gnu.gcc.bug Subject: Re: assembler problem with gcc on Pyramid Keywords: gcc, pyramid, ISIS, cvt Message-ID: <64654@yarra.oz.au> Date: 7 Aug 90 01:43:37 GMT References: <1990Aug5.034045.2636@monu6.cc.monash.edu.au> <1990Aug06.071459.26116@comp.vuw.ac.nz> Followup-To: comp.sys.pyramid Organization: Pyramid Technology Corp PL, Melb., Australia Lines: 38 jonathan@comp.vuw.ac.nz (Jonathan) writes: >In article <1990Aug5.034045.2636@monu6.cc.monash.edu.au> rdt201x@monu6.cc.monash.edu.au (mr c.m. greif) writes: [ stuff deleted ... see my earlier posting re. original problem ] >The OSx 5.0 assembler seems to be saying that, on ISIS machines, >the cvtfw and cvtfd instructions clobber their source operand, and >that therefore the source operand of these instructions may not >overlap the destination operand. I know how to fix GCC for >these particular instructions. Follow-ups on the reported bug should >be posted to gnu.gcc.bug. >But I do not know if there are any other instructions that have >similar restrictions on the ISIS architecture. Plausible candidates >are cvtdw, cvtdf, and perhaps fixed-to-float conversions. ... >... Can someone >from Pyramid please answer this? I'll try. The 6 instructions that are subject to source-destination conflict are as follows ... cvtwf cvtwd cvtfw cvtfd cvtdw cvtdf The conditions under which the conflict arises are a. S1 class, (r1 equal to r2) or (rx non-zero and rx equal to r2), or b. S2 class, (r1 non-zero or rx non zero) and ((r1 equals r2 and rx zero) or rx equals r2) Hope this helps. -- Ken McDonell E-mail: kenj@pyramid.com kenj@yarra.oz.au Performance Analysis Group Phone: +61 3 820 0711 Pyramid Technology Corporation Disclaimer: I speak for me alone, of course.