llvm/utils/TableGen
Dale Johannesen 0488fb649a Massive rewrite of MMX:
The x86_mmx type is used for MMX intrinsics, parameters and
return values where these use MMX registers, and is also
supported in load, store, and bitcast.

Only the above operations generate MMX instructions, and optimizations
do not operate on or produce MMX intrinsics. 

MMX-sized vectors <2 x i32> etc. are lowered to XMM or split into
smaller pieces.  Optimizations may occur on these forms and the
result casted back to x86_mmx, provided the result feeds into a
previous existing x86_mmx operation.

The point of all this is prevent optimizations from introducing
MMX operations, which is unsafe due to the EMMS problem.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115243 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-30 23:57:10 +00:00
..
ARMDecoderEmitter.cpp Fix a comment typo. 2010-08-27 21:56:59 +00:00
ARMDecoderEmitter.h Convert some tab stops into spaces. 2010-07-12 08:16:59 +00:00
AsmMatcherEmitter.cpp attempt to appease msvc 2010-09-07 06:10:48 +00:00
AsmMatcherEmitter.h Stub out assembly matcher (.s -> MCInst) tblgen backend. 2009-07-11 19:39:44 +00:00
AsmWriterEmitter.cpp Let a target specify whether it wants an assembly printer to be the MC version 2010-09-30 01:29:54 +00:00
AsmWriterEmitter.h enhance llvm-mc -show-inst to print the enum of an instruction, like so: 2010-02-11 22:57:32 +00:00
AsmWriterInst.cpp change a ton of code to not implicitly use the "O" raw_ostream 2010-04-04 04:47:45 +00:00
AsmWriterInst.h Changed AsmWriterOperand to also include the index of the 2010-02-10 02:27:43 +00:00
CallingConvEmitter.cpp Fix eabi calling convention when a 64 bit value shadows r3. 2010-08-06 15:35:32 +00:00
CallingConvEmitter.h Replace std::iostreams with raw_ostream in TableGen. 2009-07-03 00:10:29 +00:00
ClangASTNodesEmitter.cpp Allow for creation of clang DeclNodes tables. 2010-05-30 07:21:42 +00:00
ClangASTNodesEmitter.h Fix comment 2010-06-01 23:29:39 +00:00
ClangAttrEmitter.cpp zap dead method 2010-08-28 03:42:45 +00:00
ClangAttrEmitter.h Finish full attribute class emission for clang. 2010-08-18 23:23:09 +00:00
ClangDiagnosticsEmitter.cpp diaggroup categories should take precedence over diag-specific groups. 2010-05-24 21:55:47 +00:00
ClangDiagnosticsEmitter.h Replace std::iostreams with raw_ostream in TableGen. 2009-07-03 00:10:29 +00:00
CMakeLists.txt update cmake 2010-09-06 02:58:25 +00:00
CodeEmitterGen.cpp Clean up TargetOpcodes.h a bit, and limit the number of places where the full 2010-07-02 21:44:22 +00:00
CodeEmitterGen.h Revert 90628, which was incorrect. 2009-12-15 20:21:44 +00:00
CodeGenDAGPatterns.cpp Remove IntrWriteMem, as it's the default. Rename IntrWriteArgMem 2010-08-05 23:36:21 +00:00
CodeGenDAGPatterns.h stop computing InstImpInputs, it is dead 2010-04-20 06:30:25 +00:00
CodeGenInstruction.cpp Revert r114703 and r114702, removing the isConditionalMove flag from instructions. After further 2010-09-23 23:45:25 +00:00
CodeGenInstruction.h Revert r114703 and r114702, removing the isConditionalMove flag from instructions. After further 2010-09-23 23:45:25 +00:00
CodeGenIntrinsics.h Remove IntrWriteMem, as it's the default. Rename IntrWriteArgMem 2010-08-05 23:36:21 +00:00
CodeGenRegisters.h Split out register class subclassing to a separate function and clean up 2010-08-25 00:41:18 +00:00
CodeGenTarget.cpp fix a long standing wart: all the ComplexPattern's were being 2010-09-21 20:31:19 +00:00
CodeGenTarget.h fix a long standing wart: all the ComplexPattern's were being 2010-09-21 20:31:19 +00:00
DAGISelEmitter.cpp Stop emitting predicate functions. They are no longer used. 2010-09-03 00:39:50 +00:00
DAGISelEmitter.h Stop emitting predicate functions. They are no longer used. 2010-09-03 00:39:50 +00:00
DAGISelMatcher.cpp add plumbing for handling multiple result nodes 2010-03-24 00:41:19 +00:00
DAGISelMatcher.h add plumbing for handling multiple result nodes 2010-03-24 00:41:19 +00:00
DAGISelMatcherEmitter.cpp Rework passing parent pointers into complexpatterns, I forgot 2010-09-21 22:00:25 +00:00
DAGISelMatcherGen.cpp zap dead code. 2010-09-04 17:45:58 +00:00
DAGISelMatcherOpt.cpp add plumbing for handling multiple result nodes 2010-03-24 00:41:19 +00:00
DisassemblerEmitter.cpp Second try of initial ARM/Thumb disassembler check-in. It consists of a tablgen 2010-04-02 22:27:38 +00:00
DisassemblerEmitter.h Sketch TableGen disassembler emitter, based on patch by Sean Callanan. 2009-11-25 02:13:23 +00:00
EDEmitter.cpp fix bugs in push/pop segment support, rdar://8407242 2010-09-08 22:13:08 +00:00
EDEmitter.h remove option from tablegen for building static header. 2010-07-20 19:45:21 +00:00
FastISelEmitter.cpp Allow strict subclasses of register classes, this way we can handle 2010-08-25 04:58:56 +00:00
FastISelEmitter.h Replace std::iostreams with raw_ostream in TableGen. 2009-07-03 00:10:29 +00:00
InstrEnumEmitter.cpp make inst_begin/inst_end iterate over InstructionsByEnumValue. 2010-03-19 01:00:55 +00:00
InstrEnumEmitter.h Replace std::iostreams with raw_ostream in TableGen. 2009-07-03 00:10:29 +00:00
InstrInfoEmitter.cpp Revert r114703 and r114702, removing the isConditionalMove flag from instructions. After further 2010-09-23 23:45:25 +00:00
InstrInfoEmitter.h Replace TSFlagsFields and TSFlagsShifts with a simpler TSFlags field. 2010-04-05 03:10:20 +00:00
IntrinsicEmitter.cpp Get rid of pop_macro warnings on MSVC. 2010-09-24 19:48:47 +00:00
IntrinsicEmitter.h Fixes for Microsoft Visual Studio 2010, from Steven Watanabe! 2010-05-11 06:17:44 +00:00
LLVMCConfigurationEmitter.cpp llvmc: Allow multiple output languages. 2010-09-21 14:59:42 +00:00
LLVMCConfigurationEmitter.h This variable is never used. 2009-10-17 20:08:47 +00:00
Makefile Add an emitter to handle the list of clang statement nodes. 2010-05-05 04:13:08 +00:00
NeonEmitter.cpp Revert r114596, it's breaking a few tests. 2010-09-23 16:49:17 +00:00
NeonEmitter.h Add generic vector support for bitselect & element byteswap 2010-06-12 03:09:49 +00:00
OptParserEmitter.cpp tblgen/OptParser: Use EmitSourceFileHeader. 2010-01-04 22:03:51 +00:00
OptParserEmitter.h TableGen: Add initial backend for clang Driver's option parsing. 2009-11-18 21:29:51 +00:00
Record.cpp Generalize getFieldType to work on all TypedInits. Add a couple of testcases from 2010-09-03 21:00:49 +00:00
Record.h Push twines deeper into SourceMgr's error handling methods. 2010-09-27 17:42:11 +00:00
RegisterInfoEmitter.cpp Split out register class subclassing to a separate function and clean up 2010-08-25 00:41:18 +00:00
RegisterInfoEmitter.h Replace std::iostreams with raw_ostream in TableGen. 2009-07-03 00:10:29 +00:00
StringMatcher.cpp emit the LLVM intrinsic name -> intrinsic number mapping table with 2010-09-06 03:58:45 +00:00
StringMatcher.h allow specifying an indentation level for the string matcher. 2010-09-06 03:50:59 +00:00
StringToOffsetTable.h Use raw_ostream::write_escaped instead of EscapeString. 2009-10-17 20:43:19 +00:00
SubtargetEmitter.cpp Model Cortex-a9 load to SUB, RSB, ADD, ADC, SBC, RSC, CMN, MVN, or CMP 2010-09-29 22:42:35 +00:00
SubtargetEmitter.h Add support to model pipeline bypass / forwarding. 2010-09-28 23:50:49 +00:00
TableGen.cpp Push twines deeper into SourceMgr's error handling methods. 2010-09-27 17:42:11 +00:00
TableGenBackend.cpp Replace std::iostreams with raw_ostream in TableGen. 2009-07-03 00:10:29 +00:00
TableGenBackend.h Replace std::iostreams with raw_ostream in TableGen. 2009-07-03 00:10:29 +00:00
TGLexer.cpp Push twines deeper into SourceMgr's error handling methods. 2010-09-27 17:42:11 +00:00
TGLexer.h Push twines deeper into SourceMgr's error handling methods. 2010-09-27 17:42:11 +00:00
TGParser.cpp Fix a subtle multiclass bug: when using class inheritance on 2010-06-22 20:30:50 +00:00
TGParser.h Push twines deeper into SourceMgr's error handling methods. 2010-09-27 17:42:11 +00:00
TGValueTypes.cpp Add contexts to some of the MVT APIs. No functionality change yet, just the infrastructure work needed to get the contexts to where they need to be first. 2009-08-12 00:36:31 +00:00
X86DisassemblerShared.h fix build and while at it remove a redudant include 2009-12-19 11:52:18 +00:00
X86DisassemblerTables.cpp Fix a bunch of namespace polution. 2010-04-15 17:08:50 +00:00
X86DisassemblerTables.h Table-driven disassembler for the X86 architecture (16-, 32-, and 64-bit 2009-12-19 02:59:52 +00:00
X86ModRMFilters.h Add missing newlines at EOF (for clang++). 2009-12-19 04:16:48 +00:00
X86RecognizableInstr.cpp Massive rewrite of MMX: 2010-09-30 23:57:10 +00:00
X86RecognizableInstr.h Reapply r105521, this time appending "LLU" to 64 bit 2010-06-08 22:51:23 +00:00