1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-24 19:52:54 +01:00
llvm-mirror/utils/TableGen
Harald van Dijk f675df37ba [X86] Fix handling of maskmovdqu in X32
The maskmovdqu instruction is an odd one: it has a 32-bit and a 64-bit
variant, the former using EDI, the latter RDI, but the use of the
register is implicit. In 64-bit mode, a 0x67 prefix can be used to get
the version using EDI, but there is no way to express this in
assembly in a single instruction, the only way is with an explicit
addr32.

This change adds support for the instruction. When generating assembly
text, that explicit addr32 will be added. When not generating assembly
text, it will be kept as a single instruction and will be emitted with
that 0x67 prefix. When parsing assembly text, it will be re-parsed as
ADDR32 followed by MASKMOVDQU64, which still results in the correct
bytes when converted to machine code.

The same applies to vmaskmovdqu as well.

Reviewed By: craig.topper

Differential Revision: https://reviews.llvm.org/D103427
2021-07-15 22:56:08 +01:00
..
GlobalISel Revert "Make TableGenGlobalISel an object library" 2021-03-31 13:27:00 -07:00
AsmMatcherEmitter.cpp [TableGen] Allow identical MnemonicAliases with no predicate 2021-06-30 10:53:39 +01:00
AsmWriterEmitter.cpp [TableGen] Use range-based for loops (NFC) 2021-05-07 13:34:03 +08:00
AsmWriterInst.cpp [llvm] Use isAlpha/isAlnum (NFC) 2021-01-22 23:25:03 -08:00
AsmWriterInst.h [TableGen] Fix printing second PC-relative operand 2021-06-23 13:27:37 +07:00
Attributes.cpp [Attributes] Determine attribute properties from TableGen data 2021-07-12 22:13:38 +02:00
CallingConvEmitter.cpp [TableGen] Use ListSeparator (NFC) 2021-02-25 19:54:36 -08:00
CMakeLists.txt Revert "Make TableGenGlobalISel an object library" 2021-03-31 13:27:00 -07:00
CodeBeadsGen.cpp [M68k][TableGen](1/8) TableGen related changes 2021-03-08 12:30:56 -08:00
CodeEmitterGen.cpp [TableGen] Fix warning when compiling generated MCCodeEmitter 2021-03-04 18:35:25 +00:00
CodeGenDAGPatterns.cpp Convert TableGen assert to error 2021-06-01 13:17:58 -07:00
CodeGenDAGPatterns.h [TableGen] Store predicates in PatternToMatch as ListInit *. Add string for HwModeFeatures 2021-04-28 12:05:49 -07:00
CodeGenHwModes.cpp
CodeGenHwModes.h
CodeGenInstruction.cpp [TableGen] Use StringRef instead of std::string to split up a string that's being parsed. NFCI 2021-04-03 11:48:13 -07:00
CodeGenInstruction.h [TableGen] Use StringRef instead of std::string to split up a string that's being parsed. NFCI 2021-04-03 11:48:13 -07:00
CodeGenIntrinsics.h [TableGen] Add IntrNoMerge as intrinsic property 2021-03-02 09:04:50 -08:00
CodeGenMapTable.cpp [TableGen] CodeGenMapTable - use for-range loop. NFCI. 2021-04-16 18:55:23 +01:00
CodeGenRegisters.cpp [TableGen] Use range-based for loops (NFC) 2021-05-07 13:34:03 +08:00
CodeGenRegisters.h [TableGen] Use range-based for loops (NFC) 2021-02-01 20:55:09 -08:00
CodeGenSchedule.cpp [TableGen] Use range-based for loops (NFC) 2021-05-07 13:34:03 +08:00
CodeGenSchedule.h [TableGen] Fix D90844 introduced non-determinism due to iteration over a std::map over allocated object pointers 2020-12-18 12:08:16 -08:00
CodeGenTarget.cpp [ValueTypes] Define MVTs for v3i64/v3f64 to complement v6i32/v6f32 2021-06-24 12:41:22 +09:00
CodeGenTarget.h [TableGen] Drop redundant const from return types (NFC) 2021-01-17 10:39:49 -08:00
CTagsEmitter.cpp
DAGISelEmitter.cpp [TableGen] Use range-based for loop. NFC 2021-04-18 12:41:09 -07:00
DAGISelMatcher.cpp [TableGen] Add isContradictoryImpl implementation to CheckCondCodeMatcher and CheckChild2CondCodeMatcher. 2021-01-26 19:44:57 -08:00
DAGISelMatcher.h [TableGen] Add isContradictoryImpl implementation to CheckCondCodeMatcher and CheckChild2CondCodeMatcher. 2021-01-26 19:44:57 -08:00
DAGISelMatcherEmitter.cpp [TableGen] Use sign rotated VBR for OPC_EmitInteger. 2021-05-02 12:40:44 -07:00
DAGISelMatcherGen.cpp [TableGen] Make all the fields in PatternToMatch private. NFCI 2021-02-06 22:34:01 -08:00
DAGISelMatcherOpt.cpp
DFAEmitter.cpp [NFCI] Move DEBUG_TYPE definition below #includes 2021-05-30 17:31:01 +08:00
DFAEmitter.h
DFAPacketizerEmitter.cpp [NFCI] Move DEBUG_TYPE definition below #includes 2021-05-30 17:31:01 +08:00
DirectiveEmitter.cpp [openacc][openmp] Reduce number of generated file and prefer inclusion of .inc 2021-03-23 09:16:53 -04:00
DisassemblerEmitter.cpp
ExegesisEmitter.cpp [TableGen] Remove redundant Error: in msg (NFC) 2021-05-10 21:18:37 +08:00
FastISelEmitter.cpp [TableGen] Use range-based for loops (NFC) 2021-05-07 13:34:03 +08:00
FixedLenDecoderEmitter.cpp [TableGen] Use range-based for loops (NFC) 2021-05-07 13:34:03 +08:00
GICombinerEmitter.cpp [TableGen] Use range-based for loops (NFC) 2021-05-07 13:34:03 +08:00
GlobalISelEmitter.cpp Reland [GlobalISel] NFC: Have LLT::getSizeInBits/Bytes return a TypeSize. 2021-06-28 15:24:27 +01:00
InfoByHwMode.cpp [TableGen] Use ListSeparator (NFC) 2021-02-09 22:14:27 -08:00
InfoByHwMode.h [TableGen] Pass SmallVector to union_modes instead of returning a std::vector. 2021-04-18 15:59:52 -07:00
InstrDocsEmitter.cpp [TableGen] Use ListSeparator (NFC) 2021-02-01 20:55:07 -08:00
InstrInfoEmitter.cpp [TableGen] Use range-based for loops (NFC) 2021-05-07 13:34:03 +08:00
IntrinsicEmitter.cpp [ValueTypes] Rename MVT::getVectorNumElements() to MVT::getVectorMinNumElements(). Fix some misuses of getVectorNumElements() 2021-05-12 07:46:45 -07:00
OptEmitter.cpp
OptEmitter.h
OptParserEmitter.cpp PR51018: A few more explicit conversions from SmallString to StringRef 2021-07-09 13:54:02 -07:00
OptRSTEmitter.cpp
PredicateExpander.cpp [ARM][SchedModels] Convert IsPredicatedPred to MCSchedPredicate 2020-10-19 11:37:54 +03:00
PredicateExpander.h [ARM][SchedModels] Convert IsPredicatedPred to MCSchedPredicate 2020-10-19 11:37:54 +03:00
PseudoLoweringEmitter.cpp [TableGen] Tiny enhancement 2021-03-23 12:49:05 +07:00
RegisterBankEmitter.cpp [TableGen] RegisterBankEmitter - Pass Twine by const reference instead of by value. NFCI. 2021-01-06 14:22:05 +00:00
RegisterInfoEmitter.cpp [TableGen] Use range-based for loops (NFC) 2021-05-07 13:34:03 +08:00
RISCVCompressInstEmitter.cpp [TableGen] Use range-based for loops (NFC) 2021-05-07 13:34:03 +08:00
SDNodeProperties.cpp
SDNodeProperties.h
SearchableTableEmitter.cpp [TableGen] Use ListSeparator (NFC) 2021-02-08 22:33:51 -08:00
SequenceToOffsetTable.h
SubtargetEmitter.cpp [MCA] Add support for in-order CPUs 2021-03-04 14:08:19 +03:00
SubtargetFeatureInfo.cpp [TableGen] Use ListSeparator (NFC) 2021-02-28 10:59:22 -08:00
SubtargetFeatureInfo.h
TableGen.cpp [openacc][openmp] Reduce number of generated file and prefer inclusion of .inc 2021-03-23 09:16:53 -04:00
TableGenBackends.h [openacc][openmp] Reduce number of generated file and prefer inclusion of .inc 2021-03-23 09:16:53 -04:00
tdtags
Types.cpp
Types.h
WebAssemblyDisassemblerEmitter.cpp [TableGen] Use llvm::append_range (NFC) 2021-01-02 09:24:13 -08:00
WebAssemblyDisassemblerEmitter.h
X86DisassemblerShared.h
X86DisassemblerTables.cpp [X86] Fix handling of maskmovdqu in X32 2021-07-15 22:56:08 +01:00
X86DisassemblerTables.h
X86EVEX2VEXTablesEmitter.cpp [X86][NFC] Adding one flag to imply whether the instruction should check the predicate when compress EVEX instructions to VEX encoding. 2021-03-09 19:58:01 +08:00
X86FoldTablesEmitter.cpp [llvm] Remove redundant return and continue statements (NFC) 2021-01-14 20:30:34 -08:00
X86ModRMFilters.cpp
X86ModRMFilters.h
X86RecognizableInstr.cpp [X86] Fix handling of maskmovdqu in X32 2021-07-15 22:56:08 +01:00
X86RecognizableInstr.h