- Jul 29, 2009
-
-
David Goodwin authored
Thumb-2: fix typo that caused incorrect stack elimination for VFP operations and very large stack frames. llvm-svn: 77401
-
- Jul 28, 2009
-
-
Devang Patel authored
New name is Metadata.h. llvm-svn: 77370
-
Evan Cheng authored
In thumb2 mode, add pc is unpredictable. Use add + mov pc instead (that is until more optimization goes in). llvm-svn: 77364
-
-
Chris Lattner authored
llvm-svn: 77350
-
-
Chris Lattner authored
mode, and "ld64" (the default linker) falls back to it in -static mode. llvm-svn: 77334
-
David Goodwin authored
llvm-svn: 77329
-
Evan Cheng authored
llvm-svn: 77305
-
Evan Cheng authored
llvm-svn: 77301
-
Evan Cheng authored
- This change also makes it possible to switch between ARM / Thumb on a per-function basis. - Fixed thumb2 routine which expand reg + arbitrary immediate. It was using using ARM so_imm logic. - Use movw and movt to do reg + imm when profitable. - Other code clean ups and minor optimizations. llvm-svn: 77300
-
Chris Lattner authored
it is highly specific to the object file that will be generated in the end, this introduces a new TargetLoweringObjectFile interface that is implemented for each of ELF/MachO/COFF/Alpha/PIC16 and XCore. Though still is still a brutal and ugly refactoring, this is a major step towards goodness. This patch also: 1. fixes a bunch of dangling pointer problems in the PIC16 backend. 2. disables the TargetLowering copy ctor which PIC16 was accidentally using. 3. gets us closer to xcore having its own crazy target section flags and pic16 not having to shadow sections with its own objects. 4. fixes wierdness where ELF targets would set CStringSection but not CStringSection_. Factor the code better. 5. fixes some bugs in string lowering on ELF targets. llvm-svn: 77294
-
David Goodwin authored
llvm-svn: 77275
-
- Jul 27, 2009
-
-
David Goodwin authored
Remove TPat. No patterns depend on just isThumb(). Must use either T1Pat (isThumb1Only()) or T2Pat (is Thumb2). llvm-svn: 77242
-
Chris Lattner authored
llvm-svn: 77233
-
Evan Cheng authored
llvm-svn: 77231
-
Evan Cheng authored
convertToThreeAddress can't handle Thumb2 instructions (which don't have same address mode as ARM instructions). llvm-svn: 77230
-
Evan Cheng authored
llvm-svn: 77227
-
Evan Cheng authored
llvm-svn: 77222
-
Evan Cheng authored
llvm-svn: 77221
-
Evan Cheng authored
This also fixes potential problems in ARMBaseInstrInfo routines not recognizing thumb1 instructions when 32-bit and 16-bit instructions mix. llvm-svn: 77218
-
David Goodwin authored
llvm-svn: 77201
-
David Goodwin authored
llvm-svn: 77199
-
Chris Lattner authored
instead. llvm-svn: 77186
-
Chris Lattner authored
instead and drive things based off of that. llvm-svn: 77184
-
Evan Cheng authored
llvm-svn: 77182
-
Evan Cheng authored
llvm-svn: 77181
-
Evan Cheng authored
Use the right instructions to copy between GPR and the more strictive tGPR classes. t2MOV does not match the RC requirements. llvm-svn: 77175
-
Evan Cheng authored
llvm-svn: 77174
-
Evan Cheng authored
llvm-svn: 77173
-
Evan Cheng authored
Rename tMOVhi2lor to tMOVgpr2tgpr. It's not moving from a high register to a low register. It's moving from a GPR register class to a more restrictive tGPR class. Also change tMOVlor2hir, and tMOVhir2hir. llvm-svn: 77172
-
- Jul 26, 2009
-
-
Chris Lattner authored
'unnamed' bss section, but some impls would want a named one. Since they don't have consistent behavior, just make each target do their own thing, instead of doing something "sortof common" then having targets change immutable objects later. llvm-svn: 77165
-
Evan Cheng authored
llvm-svn: 77164
-
Daniel Dunbar authored
llvm-svn: 77145
-
Daniel Dunbar authored
classes, and migrate existing targets over. llvm-svn: 77126
-
Daniel Dunbar authored
- This was overkill and inconsistently implemented. llvm-svn: 77114
-
Bob Wilson authored
Patch by Anton Korzh, with some modifications from me. llvm-svn: 77101
-
Daniel Dunbar authored
Also, change MDString to use a StringRef. llvm-svn: 77098
-
- Jul 25, 2009
-
-
Daniel Dunbar authored
- Instead of requiring targets to define a JIT quality match function, we just have them specify if they support a JIT. - Target selection for the JIT just gets the host triple and looks for the best target which matches the triple and has a JIT. llvm-svn: 77060
-
Daniel Dunbar authored
- Less boilerplate == good. llvm-svn: 77052
-