Open Quuxplusone opened 7 years ago
Hi,
I checked this issue with the current trunk: everythig works perfectly:
atischenko@ip-172-31-21-62:~/workspaces/trunk/build/bin$ cat test.s
xrelease lock subq $1,4(%rip);
atischenko@ip-172-31-21-62:~/workspaces/trunk/build/bin$ llvm-mc -show-encoding
test.s
.text
xrelease # encoding: [0xf3]
lock subq $1, 4(%rip) # encoding: [0xf0,0x48,0x83,0x2d,0x03,0x00,0x00,0x00,0x01]
atischenko@ip-172-31-21-62:~/workspaces/trunk/build/bin$ cat test.txt
0xf3, 0xf0,0x48,0x83,0x2d,0x03,0x00,0x00,0x00,0x01
atischenko@ip-172-31-21-62:~/workspaces/trunk/build/bin$ llvm-mc -disassemble
test.txt
.text
xrelease
lock
subq $1, 3(%rip)
As you see both assembler and dissassembler produce correct results.
It seems we should close the bug, right?
gcc accepts this fine. For now treating is as a separate instruction with
;
works, but seems a little wrong.