[all-commits] [llvm/llvm-project] df277e: [X86][MC] Fix the bug of -output-asm-variant=1 for...
KanRobert via All-commits
all-commits at lists.llvm.org
Thu Feb 16 17:54:09 PST 2023
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: df277ec67efd1bec3aa2fa8b02d84db0ea8b2f1c
https://github.com/llvm/llvm-project/commit/df277ec67efd1bec3aa2fa8b02d84db0ea8b2f1c
Author: Shengchen Kan <shengchen.kan at intel.com>
Date: 2023-02-17 (Fri, 17 Feb 2023)
Changed paths:
M llvm/lib/Target/X86/MCTargetDesc/X86IntelInstPrinter.cpp
M llvm/test/MC/Disassembler/X86/intel-syntax.txt
Log Message:
-----------
[X86][MC] Fix the bug of -output-asm-variant=1 for intel syntax
Before this patch
```
$ echo "leal (,%r15), %eax" | llvm-mc --show-encoding --output-asm-variant=1
lea eax, [r15] # encoding: [0x42,0x8d,0x04,0x3d,0x00,0x00,0x00,0x00]
$ echo "lea eax, [r15]" | llvm-mc --show-encoding -x86-asm-syntax=intel --output-asm-variant=1
lea eax, [r15] # encoding: [0x41,0x8d,0x07]
```
MC printed the register r15 as a base in intel syntax even when it's an index.
Then we got a different encoding by using the assembly from the output of the
first command.
I believe the behavior is too weird to be called a feature.
After this patch, we get
```
$ echo "leal (,%r15), %eax" | llvm-mc --show-encoding --output-asm-variant=1
lea eax, [1*r15] # encoding: [0x42,0x8d,0x04,0x3d,0x00,0x00,0x00,0x00]
```
Reviewed By: RKSimon, pengfei, MaskRay
Differential Revision: https://reviews.llvm.org/D144183
More information about the All-commits
mailing list