[Bug target/41331] New: __builtin_bswap64 generates incorrect code for -m32 -mpowerpc64

meissner at gcc dot gnu dot org gcc-bugzilla@gcc.gnu.org
Thu Sep 10 16:36:00 GMT 2009


The bswapdi code introduced on July 31st causes a segmentation fault in the
compiler if -m32 and -mpowerpc64 are used:

--> gdb cc1
GNU gdb (GDB; SUSE Linux Enterprise 11) 6.8.50.20081120-cvs
Copyright (C) 2008 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "ppc64-suse-linux".
For bug reporting instructions, please see:
<http://bugs.opensuse.org/>...
Breakpoint 1 at 0x101bd55c: file /home/meissner/fsf-src/trunk/gcc/diagnostic.c,
line 728.
Breakpoint 2 at 0x101be118: file /home/meissner/fsf-src/trunk/gcc/diagnostic.c,
line 673.
Breakpoint 3 at 0x108cb460
Breakpoint 4 at 0x108cb4b0
(gdb) r -O2 -quiet -m32 -mpowerpc64 bswap64-4.c
Starting program: /data2/meissner/fsf-build-ppc64/trunk-2009-09-09/gcc/cc1 -O2
-quiet -m32 -mpowerpc64 bswap64-4.c

Program received signal SIGSEGV, Segmentation fault.
gen_bswapsi2 (operand0=0x0, operand1=0x4000042dfa0) at
/home/meissner/fsf-src/trunk/gcc/config/rs6000/rs6000.md:2350
2350      if (!REG_P (operands[0]) && !REG_P (operands[1]))
(gdb)


-- 
           Summary: __builtin_bswap64 generates incorrect code for -m32 -
                    mpowerpc64
           Product: gcc
           Version: 4.5.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
        AssignedTo: meissner at gcc dot gnu dot org
        ReportedBy: meissner at gcc dot gnu dot org
 GCC build triplet: powerpc64-unknown-linux-gnu
  GCC host triplet: powerpc64-unknown-linux-gnu
GCC target triplet: powerpc64-unknown-linux-gnu


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



More information about the Gcc-bugs mailing list