[Bug c/11999] New: illegal instruction in libunwind-ia64.c

rscohnlkjh at netscape dot net gcc-bugzilla@gcc.gnu.org
Wed Aug 20 22:26:00 GMT 2003


PLEASE REPLY TO gcc-bugzilla@gcc.gnu.org ONLY, *NOT* gcc-bugs@gcc.gnu.org.

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=11999

           Summary: illegal instruction in libunwind-ia64.c
           Product: gcc
           Version: 3.4
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: c
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: rscohnlkjh at netscape dot net
                CC: gcc-bugs at gcc dot gnu dot org
  GCC host triplet: ia64
GCC target triplet: ia64

There is an asm on line 2239 in gcc/config/ia64/libunwind-ia64.c that contains
the following instruction:
	"(p6) mov.i ar.fpsr = r30		\n\t"

The fpsr application register can only be referenced on the m unit and this
instruction attempts to reference it on the i unit. It would cause an illegal
instruction fault if it was executed. It should be:

"(p6) mov.m ar.fpsr = r30		\n\t"

See table 3.3 of the "Intel Itanium architecture software devloper's manual, vol 1"

I don't have a reproducer for this. The problem was found by a program that
inspects code, not by running a gcc compiled binary that executes the code.

Robert



More information about the Gcc-bugs mailing list