- Jan 14, 2010
-
-
Chris Lattner authored
the new ParseInstruction method just parses and returns a list of target operands. A new MatchInstruction interface is used to turn the operand list into an MCInst. This requires new/deleting all the operands, but it also gives targets the ability to use polymorphic operands if they want to. llvm-svn: 93469
-
Chris Lattner authored
Pass in SMLoc of instr opcode into ParseInstruction. Make AsmToken be a class, not a struct. llvm-svn: 93457
-
Chris Lattner authored
llvm-svn: 93455
-
Jakob Stoklund Olesen authored
This is consistent with llvm-gcc's arm/constraints.md. Certain instructions (e.g. CBZ, CBNZ) require a low register, even in Thumb2 mode. llvm-svn: 93436
-
Jakob Stoklund Olesen authored
An unaligned ldr causes a trap, and is then emulated by the kernel with awesome performance. The darwin kernel does not emulate unaligned ldm/stm Thumb2 instructions, so don't generate them. This fixes the miscompilation of Multisource/Applications/JM/lencod for Thumb2. Generating unaligned ldr/str pairs from a 16-bit aligned memcpy is probably also a bad idea, but that is beyond the scope of this patch. llvm-svn: 93393
-
- Jan 13, 2010
-
-
Johnny Chen authored
llvm-svn: 93349
-
Jakob Stoklund Olesen authored
llvm-svn: 93342
-
Chris Lattner authored
llvm-svn: 93310
-
Chris Lattner authored
instead of returning it in an std::string. Based on this change: 1. Change TargetLoweringObjectFileCOFF::getCOFFSection to take a StringRef 2. Change a bunch of targets to call makeNameProper with a smallstring, making several of them *much* more efficient. 3. Rewrite Mangler::makeNameProper to not build names and then prepend prefixes, not use temporary std::strings, and to avoid other crimes. llvm-svn: 93298
-
Jakob Stoklund Olesen authored
It was only being used by instructions with the t_addrmode_sp addressing mode, and that is pattern matched in a way that guarantees SP is used. There is never any register allocation done from this class. llvm-svn: 93280
-
- Jan 08, 2010
-
-
Johnny Chen authored
T2I_bin_ii12rs definition. llvm-svn: 93006
-
- Jan 07, 2010
-
-
Jim Grosbach authored
llvm-svn: 92876
-
Jakob Stoklund Olesen authored
Some instructions refer to unique labels, and so cannot be trivially cloned with CloneMachineInstr. llvm-svn: 92873
-
Jim Grosbach authored
for stack references. llvm-svn: 92871
-
- Jan 05, 2010
-
-
Johnny Chen authored
llvm-svn: 92796
-
Johnny Chen authored
instructions. Thumb does not have the restriction that t2 = t+1. llvm-svn: 92785
-
Dan Gohman authored
clear what information these functions are actually using. This is also a micro-optimization, as passing a SDNode * around is simpler than passing a { SDNode *, int } by value or reference. llvm-svn: 92564
-
- Dec 28, 2009
-
-
Benjamin Kramer authored
llvm-svn: 92222
-
Bill Wendling authored
llvm-svn: 92193
-
Bill Wendling authored
mainly used in debugging and/or assert situations. It should make the compiler and the static analyzer stop nagging us about them. llvm-svn: 92181
-
- Dec 23, 2009
-
-
Jakob Stoklund Olesen authored
llvm-svn: 92058
-
Jakob Stoklund Olesen authored
llvm-svn: 92054
-
Jakob Stoklund Olesen authored
Rearrange arguments. No functional changes llvm-svn: 92053
-
Jakob Stoklund Olesen authored
llvm-svn: 92052
-
Jakob Stoklund Olesen authored
llvm-svn: 92051
-
Jakob Stoklund Olesen authored
Certain Thumb instructions require only SP (e.g. tSTRspi). llvm-svn: 91944
-
- Dec 22, 2009
-
-
Jakob Stoklund Olesen authored
llvm-svn: 91914
-
Bill Wendling authored
return partial registers. This affected the back-end lowering code some. Also patch up some places I missed before in the "get" functions. llvm-svn: 91880
-
- Dec 21, 2009
-
-
Evan Cheng authored
llvm-svn: 91836
-
- Dec 19, 2009
-
-
Douglas Gregor authored
llvm-svn: 91764
-
- Dec 18, 2009
-
-
Rafael Espindola authored
MI was not being used but it was also not being deleted, so it was kept in the garbage list. The memory itself was freed once the function code gen was done. Once in a while the codegen of another function would create an instruction on the same address. Adding it to the garbage group would work once, but when another pointer was added it would cause an assert as "Cache" was about to be pushed to Ts. For a patch that make us detect problems like this earlier, take a look at http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20091214/092758.html With that patch we assert as soon and the new instruction is added to the garbage set. llvm-svn: 91691
-
Bob Wilson authored
The change in SelectionDAGBuilder is needed to allow using bitcasts to convert between f64 (the default type for ARM "d" registers) and 64-bit Neon vector types. Radar 7457110. llvm-svn: 91649
-
- Dec 17, 2009
-
-
Johnny Chen authored
llvm-svn: 91571
-
- Dec 16, 2009
-
-
John McCall authored
context) increment-of-bool idiom. llvm-svn: 91564
-
Jim Grosbach authored
llvm-svn: 91555
-
Johnny Chen authored
bytes of Inst to 0x0000 for the benefit of the Thumb decoder. llvm-svn: 91496
-
John McCall authored
llvm-svn: 91481
-
- Dec 15, 2009
-
-
Jeffrey Yasskin authored
remove start/finishGVStub and the BufferState helper class from the MachineCodeEmitter interface. It has the side-effect of not setting the indirect global writable and then executable on ARM, but that shouldn't be necessary. llvm-svn: 91464
-
Johnny Chen authored
llvm-svn: 91434
-
Jim Grosbach authored
llvm-svn: 91371
-