home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #16 / NN_1992_16.iso / spool / gnu / gcc / bug / 2008 < prev    next >
Encoding:
Text File  |  1992-07-28  |  4.7 KB  |  155 lines

  1. Newsgroups: gnu.gcc.bug
  2. Path: sparky!uunet!cis.ohio-state.edu!eos.informatik.uni-bonn.de!tietz
  3. From: tietz@eos.informatik.uni-bonn.de (Benno Tietz)
  4. Subject: schedule-insns2-bug
  5. Message-ID: <9207281408.AA05763@eos.informatik.uni-bonn.de.noname>
  6. Sender: gnulists@ai.mit.edu
  7. Organization: Gnus Not Usenet
  8. Distribution: gnu
  9. Date: Tue, 28 Jul 1992 18:08:44 GMT
  10. Approved: bug-gcc@prep.ai.mit.edu
  11. Lines: 142
  12.  
  13. Hi,
  14.  
  15. I found a bug in gcc-2.2.2
  16.  
  17. Machine    : Sun 4/330
  18. OS    : 4.1.1
  19. Configuration: ./configure sun4 -prefix=/home/tietz/gnu
  20. Syptoms    : program computes incorrect results
  21. Command    : 
  22.  
  23.     tietz@eos$ gcc -v -O2 bug.c -o bug
  24.     Reading specs from /home/tietz/gnu/lib/gcc-lib/sun4/2.2.2/specs
  25.     gcc version 2.2.2
  26.      /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
  27.     GNU CPP version 2.2.2 (sparc)
  28.      /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
  29.     GNU C version 2.2.2 (sparc) compiled by GNU C version 2.2.2.
  30.      as -o bug.o /usr/tmp/cca05651.s
  31.      /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
  32.  
  33.     tietz@eos$ gcc -v -O2 -fno-schedule-insns2 bug.c -o nobug
  34.     Reading specs from /home/tietz/gnu/lib/gcc-lib/sun4/2.2.2/specs
  35.     gcc version 2.2.2
  36.      /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
  37.     GNU CPP version 2.2.2 (sparc)
  38.      /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
  39.     GNU C version 2.2.2 (sparc) compiled by GNU C version 2.2.2.
  40.      as -o bug.o /usr/tmp/cca05664.s
  41.      /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
  42.  
  43.     tietz@eos$ bug
  44.     50
  45.     0
  46.     0
  47.     0
  48.  
  49.     tietz@eos$ nobug
  50.     50
  51.     98
  52.     246
  53.     0
  54.  
  55.  
  56. programm:
  57. /* bug.c */
  58. #define umul_ppmm(w1, w0, u, v) \
  59.   __asm__ ("! Inlined umul_ppmm
  60.     wr    %%g0,%2,%%y    ! SPARC has 0-3 delay insn after a wr
  61.     sra    %3,31,%%g2    ! Don't move this insn
  62.     and    %2,%%g2,%%g2    ! Don't move this insn
  63.     andcc    %%g0,0,%%g1    ! Don't move this insn
  64.     mulscc    %%g1,%3,%%g1
  65.     mulscc    %%g1,%3,%%g1
  66.     mulscc    %%g1,%3,%%g1
  67.     mulscc    %%g1,%3,%%g1
  68.     mulscc    %%g1,%3,%%g1
  69.     mulscc    %%g1,%3,%%g1
  70.     mulscc    %%g1,%3,%%g1
  71.     mulscc    %%g1,%3,%%g1
  72.     mulscc    %%g1,%3,%%g1
  73.     mulscc    %%g1,%3,%%g1
  74.     mulscc    %%g1,%3,%%g1
  75.     mulscc    %%g1,%3,%%g1
  76.     mulscc    %%g1,%3,%%g1
  77.     mulscc    %%g1,%3,%%g1
  78.     mulscc    %%g1,%3,%%g1
  79.     mulscc    %%g1,%3,%%g1
  80.     mulscc    %%g1,%3,%%g1
  81.     mulscc    %%g1,%3,%%g1
  82.     mulscc    %%g1,%3,%%g1
  83.     mulscc    %%g1,%3,%%g1
  84.     mulscc    %%g1,%3,%%g1
  85.     mulscc    %%g1,%3,%%g1
  86.     mulscc    %%g1,%3,%%g1
  87.     mulscc    %%g1,%3,%%g1
  88.     mulscc    %%g1,%3,%%g1
  89.     mulscc    %%g1,%3,%%g1
  90.     mulscc    %%g1,%3,%%g1
  91.     mulscc    %%g1,%3,%%g1
  92.     mulscc    %%g1,%3,%%g1
  93.     mulscc    %%g1,%3,%%g1
  94.     mulscc    %%g1,%3,%%g1
  95.     mulscc    %%g1,%3,%%g1
  96.     mulscc    %%g1,0,%%g1
  97.     add    %%g1,%%g2,%0
  98.     rd    %%y,%1"                            \
  99.     : "=r" ((unsigned long int)(w1)), "=r" ((unsigned long int)(w0))\
  100.     : "%rI" ((unsigned long int)(u)), "r" ((unsigned long int)(v))    \
  101.        : "%g1", "%g2")
  102.  
  103. #define add_ssaaaa(sh, sl, ah, al, bh, bl) \
  104.   __asm__ ("addcc %4,%5,%1
  105.     addx %2,%3,%0"                            \
  106.     : "=r" ((unsigned long int)(sh)), "=&r" ((unsigned long int)(sl))\
  107.     : "%r" ((unsigned long int)(ah)), "rI" ((unsigned long int)(bh)),\
  108.       "%r" ((unsigned long int)(al)), "rI" ((unsigned long int)(bl)))
  109.  
  110.  
  111.  
  112. int cy_limb, prod_high, prod_low, v_limb, j;
  113. int up[4], yprodp[4];
  114. int *yup, *prodp;
  115.  
  116. main ()
  117. {
  118.   int i;
  119.  
  120.   v_limb = 2;
  121.       yup = &up[3];
  122.       prodp = &yprodp[3];
  123.       up[0] = 25;
  124.       up[1] = 49;
  125.       up[2] = 123;
  126.       up[3] = 12;
  127.  
  128.       cy_limb = 0;
  129.       j = -3;
  130.       do
  131.     {
  132.       umul_ppmm (prod_high, prod_low, yup[j], v_limb);
  133.       add_ssaaaa (cy_limb, prodp[j], prod_high, prod_low, 0, cy_limb);
  134.       j++;
  135.     }
  136.       while (j < 0);
  137.  
  138.       for (i=0; i<4; i++)
  139.     printf ("%d\n", yprodp[i]);
  140.     }
  141.  
  142.  
  143. ----------------------------------------------------------------------
  144.          Jacquin's Postulate on Democratic Government:
  145.                 No man's life, liberty, or property are safe
  146.                 while the legislature is in session.
  147. ----------------------------------------------------------------------
  148.     tietz@eos.informatik.uni-bonn.de    or     tietz@cs.bonn.edu
  149.  
  150. ######################################################################
  151. #         Member of the League for Programming Freedom               #
  152. #          -- write to league@prep.ai.mit.edu                        #
  153. ######################################################################
  154.  
  155.