🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

1 total messages Started by Benno Tietz Tue, 28 Jul 1992 18:08
schedule-insns2-bug
#307
Author: Benno Tietz
Date: Tue, 28 Jul 1992 18:08
141 lines
4929 bytes
Hi,

I found a bug in gcc-2.2.2

Machine	: Sun 4/330
OS	: 4.1.1
Configuration: ./configure sun4 -prefix=/home/tietz/gnu
Syptoms	: program computes incorrect results
Command	: 

	tietz@eos$ gcc -v -O2 bug.c -o bug
	Reading specs from /home/tietz/gnu/lib/gcc-lib/sun4/2.2.2/specs
	gcc version 2.2.2
	 /home/tietz/gnu/lib/gcc-lib/sun4/2.2.2/cpp -lang-c -v -undef -D__GNUC__=2 -Dsparc -Dsun -Dunix -D__sparc__ -D__sun__ -D__unix__ -D__sparc -D__sun -D__unix -D__OPTIMIZE__ bug.c /usr/tmp/cca05651.i
	GNU CPP version 2.2.2 (sparc)
	 /home/tietz/gnu/lib/gcc-lib/sun4/2.2.2/cc1 /usr/tmp/cca05651.i -quiet -dumpbase bug.c -O2 -version -o /usr/tmp/cca05651.s
	GNU C version 2.2.2 (sparc) compiled by GNU C version 2.2.2.
	 as -o bug.o /usr/tmp/cca05651.s
	 /home/tietz/gnu/lib/gcc-lib/sun4/2.2.2/ld -e start -dc -dp -o bug /lib/crt0.o -L/home/tietz/gnu/lib/gcc-lib/sun4/2.2.2 -L/home/tietz/gnu/lib bug.o -lgcc -lc -lgcc

	tietz@eos$ gcc -v -O2 -fno-schedule-insns2 bug.c -o nobug
	Reading specs from /home/tietz/gnu/lib/gcc-lib/sun4/2.2.2/specs
	gcc version 2.2.2
	 /home/tietz/gnu/lib/gcc-lib/sun4/2.2.2/cpp -lang-c -v -undef -D__GNUC__=2 -Dsparc -Dsun -Dunix -D__sparc__ -D__sun__ -D__unix__ -D__sparc -D__sun -D__unix -D__OPTIMIZE__ bug.c /usr/tmp/cca05664.i
	GNU CPP version 2.2.2 (sparc)
	 /home/tietz/gnu/lib/gcc-lib/sun4/2.2.2/cc1 /usr/tmp/cca05664.i -quiet -dumpbase bug.c -O2 -version -fno-schedule-insns2 -o /usr/tmp/cca05664.s
	GNU C version 2.2.2 (sparc) compiled by GNU C version 2.2.2.
	 as -o bug.o /usr/tmp/cca05664.s
	 /home/tietz/gnu/lib/gcc-lib/sun4/2.2.2/ld -e start -dc -dp -o nobug /lib/crt0.o -L/home/tietz/gnu/lib/gcc-lib/sun4/2.2.2 -L/home/tietz/gnu/lib bug.o -lgcc -lc -lgcc

	tietz@eos$ bug
	50
	0
	0
	0

	tietz@eos$ nobug
	50
	98
	246
	0


programm:
/* bug.c */
#define umul_ppmm(w1, w0, u, v) \
  __asm__ ("! Inlined umul_ppmm
	wr	%%g0,%2,%%y	! SPARC has 0-3 delay insn after a wr
	sra	%3,31,%%g2	! Don't move this insn
	and	%2,%%g2,%%g2	! Don't move this insn
	andcc	%%g0,0,%%g1	! Don't move this insn
	mulscc	%%g1,%3,%%g1
	mulscc	%%g1,%3,%%g1
	mulscc	%%g1,%3,%%g1
	mulscc	%%g1,%3,%%g1
	mulscc	%%g1,%3,%%g1
	mulscc	%%g1,%3,%%g1
	mulscc	%%g1,%3,%%g1
	mulscc	%%g1,%3,%%g1
	mulscc	%%g1,%3,%%g1
	mulscc	%%g1,%3,%%g1
	mulscc	%%g1,%3,%%g1
	mulscc	%%g1,%3,%%g1
	mulscc	%%g1,%3,%%g1
	mulscc	%%g1,%3,%%g1
	mulscc	%%g1,%3,%%g1
	mulscc	%%g1,%3,%%g1
	mulscc	%%g1,%3,%%g1
	mulscc	%%g1,%3,%%g1
	mulscc	%%g1,%3,%%g1
	mulscc	%%g1,%3,%%g1
	mulscc	%%g1,%3,%%g1
	mulscc	%%g1,%3,%%g1
	mulscc	%%g1,%3,%%g1
	mulscc	%%g1,%3,%%g1
	mulscc	%%g1,%3,%%g1
	mulscc	%%g1,%3,%%g1
	mulscc	%%g1,%3,%%g1
	mulscc	%%g1,%3,%%g1
	mulscc	%%g1,%3,%%g1
	mulscc	%%g1,%3,%%g1
	mulscc	%%g1,%3,%%g1
	mulscc	%%g1,%3,%%g1
	mulscc	%%g1,0,%%g1
	add	%%g1,%%g2,%0
	rd	%%y,%1"							\
	: "=r" ((unsigned long int)(w1)), "=r" ((unsigned long int)(w0))\
	: "%rI" ((unsigned long int)(u)), "r" ((unsigned long int)(v))	\
       : "%g1", "%g2")

#define add_ssaaaa(sh, sl, ah, al, bh, bl) \
  __asm__ ("addcc %4,%5,%1
	addx %2,%3,%0"							\
	: "=r" ((unsigned long int)(sh)), "=&r" ((unsigned long int)(sl))\
	: "%r" ((unsigned long int)(ah)), "rI" ((unsigned long int)(bh)),\
	  "%r" ((unsigned long int)(al)), "rI" ((unsigned long int)(bl)))



int cy_limb, prod_high, prod_low, v_limb, j;
int up[4], yprodp[4];
int *yup, *prodp;

main ()
{
  int i;

  v_limb = 2;
      yup = &up[3];
      prodp = &yprodp[3];
      up[0] = 25;
      up[1] = 49;
      up[2] = 123;
      up[3] = 12;

      cy_limb = 0;
      j = -3;
      do
	{
	  umul_ppmm (prod_high, prod_low, yup[j], v_limb);
	  add_ssaaaa (cy_limb, prodp[j], prod_high, prod_low, 0, cy_limb);
	  j++;
	}
      while (j < 0);

      for (i=0; i<4; i++)
	printf ("%d\n", yprodp[i]);
    }


----------------------------------------------------------------------
         Jacquin's Postulate on Democratic Government:
                No man's life, liberty, or property are safe
                while the legislature is in session.
----------------------------------------------------------------------
    tietz@eos.informatik.uni-bonn.de    or     tietz@cs.bonn.edu

######################################################################
#         Member of the League for Programming Freedom               #
#          -- write to league@prep.ai.mit.edu                        #
######################################################################
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads