llvm-project/llvm
Ahmed Bougacha 63f78b0206 [X86] Define segment MI operands as regs instead of i8imm.
We've been pretending that segments are i8imm since the initial
support (r68645), predating the addition of the SEGMENT_REG class
(r81895).  That happens to works, but is wrong, and inconsistent
with how we print (e.g., X86ATTInstPrinter::printMemReference)
and parse them (e.g., X86Operand::addMemOperands).

This change shouldn't affect any tool users, but is visible to
library users or out-of-tree tablegen backends: this causes
MCOperandInfo for the segment op to have an RC instead of "unknown",
and TII::getRegClass to actually return something.  As the registers
are reserved and no vregs of the class ever created, that shouldn't
change anything.

No test change; no suspicious getRegClass() in X86 and CodeGen.

llvm-svn: 271559
2016-06-02 18:29:15 +00:00
..
bindings
cmake cmake: Fix color diags under ninja if the compiler is "AppleClang" 2016-06-01 23:29:26 +00:00
docs [libFuzzer] fix docs 2016-06-02 06:06:34 +00:00
examples [Orc] Add conversion to/from RuntimeDyld::SymbolInfo for JITSymbol. 2016-05-31 23:14:26 +00:00
include This is yet another attempt to re-instate r220932 as discussed in 2016-06-02 18:22:12 +00:00
lib [X86] Define segment MI operands as regs instead of i8imm. 2016-06-02 18:29:15 +00:00
projects
resources
test pdbdump: print out COFF section headers. 2016-06-02 18:20:20 +00:00
tools pdbdump: print out COFF section headers. 2016-06-02 18:20:20 +00:00
unittests [ADT] Pass ArrayRef::slice size_t instead of unsigned. 2016-06-02 17:26:03 +00:00
utils Add "REQUIRES-ANY" feature test 2016-06-02 01:59:57 +00:00
.arcconfig
.clang-format
.clang-tidy
.gitignore
CMakeLists.txt [CMake] Update to requiring CMake 3.4.3 2016-05-31 20:21:32 +00:00
CODE_OWNERS.TXT Sort my entry in CODE_OWNERS.TXT 2016-05-26 23:10:37 +00:00
CREDITS.TXT Update my email address. 2016-05-10 16:23:54 +00:00
LICENSE.TXT
LLVMBuild.txt
README.txt
configure
llvm.spec.in

README.txt

Low Level Virtual Machine (LLVM)
================================

This directory and its subdirectories contain source code for LLVM,
a toolkit for the construction of highly optimized compilers,
optimizers, and runtime environments.

LLVM is open source software. You may freely distribute it under the terms of
the license agreement found in LICENSE.txt.

Please see the documentation provided in docs/ for further
assistance with LLVM, and in particular docs/GettingStarted.rst for getting
started with LLVM and docs/README.txt for an overview of LLVM's
documentation setup.

If you are writing a package for LLVM, see docs/Packaging.rst for our
suggestions.