mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-10-20 19:42:54 +02:00
51f2170fda
There are cases of AVX-512 instructions that have two possible encodings. This is the case with instructions that use vector registers with low indexes of 0 - 15 and do not use the zmm registers or the mask k registers. The EVEX encoding prefix requires 4 bytes whereas the VEX prefix can take only up to 3 bytes. Consequently, using the VEX encoding for these instructions results in a code size reduction of ~2 bytes even though it is compiled with the AVX-512 features enabled. Reviewers: Craig Topper, Zvi Rackoover, Elena Demikhovsky Differential Revision: https://reviews.llvm.org/D27901 llvm-svn: 290663
31 lines
963 B
C++
31 lines
963 B
C++
//=- X86InstComments.h - Generate verbose-asm comments for instrs -*- C++ -*-=//
|
|
//
|
|
// The LLVM Compiler Infrastructure
|
|
//
|
|
// This file is distributed under the University of Illinois Open Source
|
|
// License. See LICENSE.TXT for details.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
//
|
|
// This defines functionality used to emit comments about X86 instructions to
|
|
// an output stream for -fverbose-asm.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#ifndef LLVM_LIB_TARGET_X86_INSTPRINTER_X86INSTCOMMENTS_H
|
|
#define LLVM_LIB_TARGET_X86_INSTPRINTER_X86INSTCOMMENTS_H
|
|
|
|
namespace llvm {
|
|
|
|
enum AsmComments {
|
|
AC_EVEX_2_VEX = 0x2 // For instr that was compressed from EVEX to VEX.
|
|
};
|
|
|
|
class MCInst;
|
|
class raw_ostream;
|
|
bool EmitAnyX86InstComments(const MCInst *MI, raw_ostream &OS,
|
|
const char *(*getRegName)(unsigned));
|
|
}
|
|
|
|
#endif
|