On 07/06/2017 10:59 AM, Felix Deichmann wrote: > Jeff, > > Am 29.06.2017 schrieb Jeff Law <l...@redhat.com>: >> Ideally we'd like to have a testcase for this in the regression suite. >> >> If you could provide the .i file and options used which generated the >> incorrect ffs instruction I can use the reduction tools with a cross >> compiler to produce a nice simple test for the testsuite. > > I put the corresponding .i file at: > http://www.netbsd.org/~flxd/scsipi_base.i.gz > > See line 7638: > bit = __builtin_ffs(periph->periph_freetags[word]); > > Command/Options used which generated the incorrect ffs instruction: > > /nb8/obj/tooldir.NetBSD-7.0-amd64/bin/vax--netbsdelf-gcc -fno-pic > -ffreestanding -fno-zero-initialized-in-bss -Os -fno-strict-aliasing > -fno-common -std=gnu99 -Werror -Wall -Wno-main -Wno-format-zero-length > -Wpointer-arith -Wmissing-prototypes -Wstrict-prototypes > -Wold-style-definition -Wswitch -Wshadow -Wcast-qual -Wwrite-strings > -Wno-unreachable-code -Wno-pointer-sign -Wno-attributes > -Wno-sign-compare --sysroot=/nb8/obj/destdir.vax -D_VAX_INLINE_ -I. > -I/nb8/src/sys/../common/lib/libx86emu -I/nb8/src/sys/../common/include > -I/nb8/src/sys/arch -I/nb8/src/sys -nostdinc -D_KERNEL -D_KERNEL_OPT > -std=gnu99 -I/nb8/src/sys/lib/libkern/../../../common/lib/libc/quad > -I/nb8/src/sys/lib/libkern/../../../common/lib/libc/string > -I/nb8/src/sys/lib/libkern/../../../common/lib/libc/arch/vax/string -c > /nb8/src/sys/dev/scsipi/scsipi_base.c -o scsipi_base.o Hmm, unfortunately I consistently get a call to into libgcc for the __builtin_ffs code rather than an ffs instruction. That's with a gcc-4.8.3 as well as with trunk compiler.
Can you include "-v" output from compiling scsipi_base? Thanks. jeff