[Gs-code-review] Fix for SourceForge #508722

L. Peter Deutsch ghost at aladdin.com
Mon Feb 4 11:40:17 PST 2002


This is a compiler bug.

  8819:   BNE       R13,#X00002F
  8820:   LDL       R5,#XFFFC(R15)

The above instruction sets R5 to csp[-1].

      :   BNE       R5,#X000015
  8823:   LDL       R0,(R15)

The above instruction sets R0 to csp[0].

  8824:   LDL       R1,#XFFEC(R15)
  8822:   BIS       R31,#X1A,R8
  8823:   STL       R0,#XFFFC(R15)

The above instruction stores csp[0] into csp[-1].

      :   LDQ_U          R31,(SP)
  8824:   BNE       R1,#X00000B
  8825:   LDL       R17,#XFFF0(R15)
      :   LDL       R18,#XFFF4(R15)
      :   LDL       R20,#XFFF8(R15)
      :   STL       R5,#XFFF8(R15)

The above instruction stores the *original* contents of csp[-1] (i.e., 0),
into csp[-2].

      :   STL       R17,#XFFEC(R15)
      :   STL       R18,#XFFF0(R15)
      :   STL       R20,#XFFF4(R15)

The problem is apparently that the compiler's optimizer doesn't understand
that memcpy / memmove can interact with ordinary assignments.

Please try replacing the memmove with a sequence of ordinary assignments and
see if that fixes the problem (with optimization turned on).

Also, obviously, please report this problem to DEC .. er .. Compaq.

-- 

L. Peter Deutsch     |    Aladdin Enterprises   |  203 Santa Margarita Ave.
ghost at aladdin.com    |  http://www.aladdin.com  |  Menlo Park, CA 94025

	The future of software is at http://www.opensource.org



More information about the gs-code-review mailing list