optimization/10904: On sparc-sun-solinvalid (misaligned) register on sparc-sun-solaris2.8

kminola@eng.umd.edu kminola@eng.umd.edu
Wed May 21 14:00:00 GMT 2003


>Number:         10904
>Category:       optimization
>Synopsis:       On sparc-sun-solinvalid (misaligned) register on sparc-sun-solaris2.8
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Wed May 21 13:16:00 UTC 2003
>Closed-Date:
>Last-Modified:
>Originator:     Kate Minola
>Release:        gcc-3.3Reading specs from /home/kate/public/gcc-3.3/SunOS-sparc/lib/gcc-lib/sparc-sun-solaris2.8/3.3/specs
>Organization:
>Environment:
%uname -a
SunOS galois 5.8 Generic_108528-18 sun4u sparc SUNW,Sun-Blade-1000
% gcc -v 
Reading specs from /home/kate/public/gcc-3.3/SunOS-sparc/lib/gcc-lib/sparc-sun-solaris2.8/3.3/specs
Configured with: ../gcc-3.3/configure --enable-languages=c --prefix=/home/kate/public/gcc-3.3/SunOS-sparc
Thread model: posix
gcc version 3.3
%
>Description:
/*
On sparc-sun-solaris2.8

gcc-3.3 -m64 -O2 -c foo.c

  gives

    /usr/ccs/bin/as: ... error: invalid (misaligned) register

Compiles successfully:

gcc-3.2.3 -m64 -O2 -c foo.c
gcc-3.3 -m64 -O0 -c foo.c
gcc-3.3 -O2 -c foo.c
*/

extern int foo1();
extern int foo2();

void foo(n,b)
int n;
int b;
{
  int i;
  int a;

  foo1();

  a = (long)(b * ((double) 0.1));

  for (i=0; i < n; i++) {
    foo2(a);
  }
}
>How-To-Repeat:

>Fix:

>Release-Note:
>Audit-Trail:
>Unformatted:
 Configured with: ../gcc-3.3/configure --enable-languages=cgcc-3.3
 



More information about the Gcc-bugs mailing list