The new gcc.dg/torture/pr58670.c testcase FAILs on Solaris 9/x86 with the Sun assembler:
FAIL: gcc.dg/torture/pr58670.c -O0 (test for excess errors) Excess errors: Assembler: pr58670.c "/var/tmp//cceOnFp7.s", line 18 : Illegal mnemonic "/var/tmp//cceOnFp7.s", line 18 : Syntax error "/var/tmp//cceOnFp7.s", line 45 : Illegal mnemonic "/var/tmp//cceOnFp7.s", line 45 : Syntax error as doesn't grok the unadorned bts, but requires btsl instead. The following patch doest just that; tested with the appropriate runtest invocation on i386-pc-solaris2.9 with either as or gas 2.23.2 and checking that with gas the generated insn stays the same. I guess this is obvious? Thanks. Rainer 2013-10-14 Rainer Orth <r...@cebitec.uni-bielefeld.de> * gcc.dg/torture/pr58670.c (ASM_STR) [__i386__ || __x86_64__]: Use btsl.
# HG changeset patch # Parent 439bff21626bdf77e8264901c6c6607bb3a90741 Fix gcc.dg/torture/pr58670.c for Solaris 9/x86 assembler diff --git a/gcc/testsuite/gcc.dg/torture/pr58670.c b/gcc/testsuite/gcc.dg/torture/pr58670.c --- a/gcc/testsuite/gcc.dg/torture/pr58670.c +++ b/gcc/testsuite/gcc.dg/torture/pr58670.c @@ -2,7 +2,7 @@ /* { dg-do run { target i?86-*-* x86_64-*-* } } */ #if defined (__i386__) || defined (__x86_64__) -#define ASM_STR "bts $1, %0; jc %l[lab]" +#define ASM_STR "btsl $1, %0; jc %l[lab]" #endif __attribute__((noinline, noclone)) int
-- ----------------------------------------------------------------------------- Rainer Orth, Center for Biotechnology, Bielefeld University