[llvm-bugs] [Bug 35749] New: After r315899, .byte directives after x86 prefixes cause errors

via llvm-bugs llvm-bugs at lists.llvm.org
Tue Dec 26 05:59:34 PST 2017


https://bugs.llvm.org/show_bug.cgi?id=35749

            Bug ID: 35749
           Summary: After r315899, .byte directives after x86 prefixes
                    cause errors
           Product: new-bugs
           Version: trunk
          Hardware: PC
                OS: All
            Status: NEW
          Severity: release blocker
          Priority: P
         Component: new bugs
          Assignee: unassignedbugs at nondot.org
          Reporter: dimitry at andric.com
                CC: llvm-bugs at lists.llvm.org

Related to bug 35741, after https://reviews.llvm.org/rL315899 (fixing x86
prefix issues related to bug 7709, bug 17697, bug 19251, bug 32809 and bug
21640), .byte directives directly after an x86 instruction prefix are no longer
accepted.

For example:

rep
.byte 0xa4      # movsb

This is accepted by both clang before r315899 and GNU as, but clang r315899
gives:

rep-byte.s:1:1: error: invalid instruction mnemonic '.byte'
rep
^~~

Note that this construct is used to put rep prefixes on instructions that might
not be known by the assembler yet, such as VIA C3 "xcrypt-cbc" instructions
[1]:

        /* The .byte line is really VIA C3 "xcrypt-cbc" instruction */
        __asm __volatile(
                "pushf                          \n\t"
                "popf                           \n\t"
                "rep                            \n\t"
                ".byte  0x0f, 0xa7, 0xd0"
                        : "+a" (iv), "+c" (count), "+D" (out), "+S" (in)
                        : "b" (key), "d" (cw)
                        : "cc", "memory"
);

[1]
https://github.com/freebsd/freebsd/blob/master/sys/crypto/via/padlock_cipher.c#L92

-- 
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20171226/9cf598b0/attachment.html>


More information about the llvm-bugs mailing list