- Jul 11, 2011
-
-
Shantonu Sen authored
The enum names as well as order (i.e. value) had skewed, which means that consumers of the tablegen-ed table would see different values than intended. Make both files have a superset of enums, and add classification as needed for numMCOperands. Reviewed by Owen Anderson llvm-svn: 134905
-
Evan Cheng authored
and MCSubtargetInfo. - Added methods to update subtarget features (used when targets automatically detect subtarget features or switch modes). - Teach X86Subtarget to update MCSubtargetInfo features bits since the MCSubtargetInfo layer can be shared with other modules. - These fixes .code 16 / .code 32 support since mode switch is updated in MCSubtargetInfo so MC code emitter can do the right thing. llvm-svn: 134884
-
- Jul 08, 2011
-
-
Eli Friedman authored
llvm-svn: 134725
-
Evan Cheng authored
llvm-svn: 134709
-
Jim Grosbach authored
This allows the (many) pseudo-instructions we have that map onto a single real instruction to have their expansion during MC lowering handled automatically instead of the current cumbersome manual expansion required. These sorts of pseudos are common when an instruction is used in situations that require different MachineInstr flags (isTerminator, isBranch, et. al.) than the generic instruction description has. For example, using a move to the PC to implement a branch. llvm-svn: 134704
-
Evan Cheng authored
- Each target asm parser now creates its own MCSubtatgetInfo (if needed). - Changed AssemblerPredicate to take subtarget features which tablegen uses to generate asm matcher subtarget feature queries. e.g. "ModeThumb,FeatureThumb2" is translated to "(Bits & ModeThumb) != 0 && (Bits & FeatureThumb2) != 0". llvm-svn: 134678
-
- Jul 07, 2011
-
-
Evan Cheng authored
llvm-svn: 134606
-
Jim Grosbach authored
So users of a CGI don't have to look up the value directly from the original Record; just like the rest of the convenience values in the class. llvm-svn: 134576
-
Jim Grosbach authored
llvm-svn: 134563
-
- Jul 06, 2011
-
-
Jim Grosbach authored
For now this is distinct from isCodeGenOnly, as code-gen-only instructions can (and often do) still have encoding information associated with them. Once we've migrated all of them over to true pseudo-instructions that are lowered to real instructions prior to the printer/emitter, we can remove isCodeGenOnly and just use isPseudo. llvm-svn: 134539
-
Evan Cheng authored
llvm-svn: 134457
-
- Jul 01, 2011
-
-
Evan Cheng authored
llvm-svn: 134259
-
Evan Cheng authored
itineraries. - Refactor TargetSubtarget to be based on MCSubtargetInfo. - Change tablegen generated subtarget info to initialize MCSubtargetInfo and hide more details from targets. llvm-svn: 134257
-
Evan Cheng authored
llvm-svn: 134244
-
- Jun 30, 2011
-
-
Jim Grosbach authored
It's just a call to a special helper function. Get rid of the T2 variant entirely, as it's identical to the Thumb1 version. llvm-svn: 134178
-
Jim Grosbach authored
It's just a tPOP instruction with additional code-gen properties, so it doesn't need encoding information. llvm-svn: 134172
-
Evan Cheng authored
be the first encoded as the first feature. It then uses the CPU name to look up features / scheduling itineray even though clients know full well the CPU name being used to query these properties. The fix is to just have the clients explictly pass the CPU name! llvm-svn: 134127
-
Jim Grosbach authored
Unlike Thumb1, Thumb2 does not have dedicated encodings for adjusting the stack pointer. It can just use the normal add-register-immediate encoding since it can use all registers as a source, not just R0-R7. The extra instruction definitions are just duplicates of the normal instructions with the (not well enforced) constraint that the source register was SP. llvm-svn: 134114
-
Jim Grosbach authored
They've been pseudos for a while now, so the decoder will never see them in the first place. llvm-svn: 134101
-
- Jun 29, 2011
-
-
Jim Grosbach authored
The tSpill and tRestore instructions are just copies of the tSTRspi and tLDRspi instructions, respectively. Just use those directly instead. llvm-svn: 134092
-
Francois Pichet authored
Change AsmName's type from StringRef to std::string. AsmName was pointing to a temporary string object that was destroyed. This is undefined behavior and MSVC didn't like it. This fixes over 300+ failing tests on MSVC. Credit for this fix goes to chapuni. llvm-svn: 134064
-
Evan Cheng authored
llvm-svn: 134049
-
- Jun 28, 2011
-
-
Evan Cheng authored
llvm-svn: 134030
-
Evan Cheng authored
llvm-svn: 134027
-
Evan Cheng authored
llvm-svn: 134026
-
Evan Cheng authored
llvm-svn: 134024
-
Evan Cheng authored
sink them into MC layer. - Added MCInstrInfo, which captures the tablegen generated static data. Chang TargetInstrInfo so it's based off MCInstrInfo. llvm-svn: 134021
-
Evan Cheng authored
llvm-svn: 133979
-
Jim Grosbach authored
Correctly parse the forms of the Thumb mov-immediate instruction: 1. 8-bit immediate 0-255. 2. 12-bit shifted-immediate. The 16-bit immediate "movw" form is also legal with just a "mov" mnemonic, but is not yet supported. More parser logic necessary there due to fixups. llvm-svn: 133966
-
Evan Cheng authored
llvm-svn: 133964
-
- Jun 27, 2011
-
-
Owen Anderson authored
Add support for alternative register names, useful for instructions whose operands are logically equivalent to existing registers, but happen to be printed specially. For example, an instruciton that prints d0[0] instead of s0. Patch by Jim Grosbach. llvm-svn: 133940
-
Evan Cheng authored
llvm-svn: 133927
-
Evan Cheng authored
into XXXGenRegisterInfo.inc. llvm-svn: 133922
-
- Jun 25, 2011
-
-
Evan Cheng authored
llvm-svn: 133851
-
Evan Cheng authored
llvm-svn: 133845
-
Bob Wilson authored
Sorry, this was a bad idea. Within clang these builtins are in a separate "ARM" namespace, but the actual builtin names should clearly distinguish that they are target specific. llvm-svn: 133832
-
- Jun 24, 2011
-
-
Bob Wilson authored
llvm-svn: 133825
-
Evan Cheng authored
- Rename TargetRegisterDesc to MCRegisterDesc. llvm-svn: 133820
-
Benjamin Kramer authored
Make the generated InitXXXMCRegisterInfo function "static inline", so it doesn't get emitted into multiple object files. This caused linker errors when linking both libLLVMX86Desc and libLLVMX86CodeGen into a single binary (for example when building a monolithic libLLVM shared library). llvm-svn: 133791
-
Evan Cheng authored
target machine from those that are only needed by codegen. The goal is to sink the essential target description into MC layer so we can start building MC based tools without needing to link in the entire codegen. First step is to refactor TargetRegisterInfo. This patch added a base class MCRegisterInfo which TargetRegisterInfo is derived from. Changed TableGen to separate register description from the rest of the stuff. llvm-svn: 133782
-