[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