This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug target/66509] New: the new clang-based assembler in Xcode 7 on 10.11 fails on the libjava/java/lang/reflect/natArray.cc file from FSF gcc 5.1 at -m32


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66509

            Bug ID: 66509
           Summary: the new clang-based assembler in Xcode 7 on 10.11
                    fails on the libjava/java/lang/reflect/natArray.cc
                    file from FSF gcc 5.1 at -m32
           Product: gcc
           Version: 5.1.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: howarth.at.gcc at gmail dot com
  Target Milestone: ---

Created attachment 35759
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=35759&action=edit
assembly for ibjava/java/lang/reflect/natArray.cc at -m32 on x86_64 darwin

The public Xcode 7 beta and associated Command Line Tools (available on 10.10
from https://developer.apple.com/xcode/downloads/ and
https://developer.apple.com/downloads/) replace the legacy GNU assembler with a
clang-based assembler. The new clang-based assembler fails to compile
libjava/java/lang/reflect/natArray.cc at -m32 in the multilib build of libjava
due to the assembler errors...

natArray.s:1110:2: error: ambiguous instructions require an explicit suffix
(could be 'filds', or 'fildl')
        fild    8(%esi,%edi,2)
        ^
natArray.s:1120:2: error: ambiguous instructions require an explicit suffix
(could be 'filds', or 'fildl')
        fild    10(%esp)
        ^
natArray.s:1267:2: error: ambiguous instructions require an explicit suffix
(could be 'filds', or 'fildl')
        fild    8(%esi,%edi,2)
        ^
natArray.s:1277:2: error: ambiguous instructions require an explicit suffix
(could be 'filds', or 'fildl')
        fild    14(%esp)
        ^
natArray.s:1830:2: error: ambiguous instructions require an explicit suffix
(could be 'filds', or 'fildl')
        fild    14(%esp)
        ^
natArray.s:1907:2: error: ambiguous instructions require an explicit suffix
(could be 'filds', or 'fildl')
        fild    14(%esp)
        ^
natArray.s:1988:2: error: ambiguous instructions require an explicit suffix
(could be 'filds', or 'fildl')
        fild    14(%esp)
        ^
natArray.s:2047:2: error: ambiguous instructions require an explicit suffix
(could be 'filds', or 'fildl')
        fild    14(%esp)
        ^

This issue can be reproduced with the attached natArray.s assembly file using
the command...

as -arch i386 -force_cpusubtype_ALL -o natArray.o natArray.s

against the new clang-based assembler. The same file is processed without
errors using the legacy GNU-based assembler from Xcode 6.2 on 10.9 or Xcode 6.3
on 10.10.

Can the FSF gcc i386 maintainers comment on whether there is anything in the
Intel/AMD instruction specifications that merits this strict behavior for the
assembler with regard to ambiguous fild instructions?

Note that this compilation failure is limited to -m32 and that the -m64 build
of libjava is processed without errors by the new clang-based assembler.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]