summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/PowerPC/PPC32CodeEmitter.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Enable optimization suggested by Chris Lattner to not emit reloc stubs forNate Begeman2004-11-251-3/+3
| | | | | | | | | | | | | | | | | | | static global variables whose addresses are taken. This allows us to convert the following code for taking the address of a static function foo addis r2, r30, ha16(Ll1__2E_foo_2$non_lazy_ptr-"L00001$pb") lwz r3, lo16(Ll1__2E_foo_2$non_lazy_ptr-"L00001$pb")(r2) which also includes linker stub code emitted at the end of the .s file not shown here, and replace it with this: addis r2, r30, ha16(l1__2E_foo_2-"L00001$pb") la r3, lo16(l1__2E_foo_2-"L00001$pb")(r2) which in addition to not needing linker help, also has no load instruction. For those not up on PowerPC mnemonics, la is shorthand for add immediate. llvm-svn: 18239
* There is not a 1-1 mappign between llvm blocks and PPC blocks, do not useChris Lattner2004-11-251-5/+4
| | | | | | | LLVM blocks as the keys for the branch rewriter. This fixes treeadd and many other programs with the JIT. llvm-svn: 18223
* * Rename existing relocations to be more specificChris Lattner2004-11-241-9/+24
| | | | | | | | | | | | | | * Add relocations for refernces to non-lazy darwin stubs and implement them correctly. With this change, we can correctly references external globals, and now all but two UnitTests and all but 1 Regression/C tests pass. More importantly, bugpoint-jit will start giving us useful testcases, instead of always telling us that references to external globals don't work :) llvm-svn: 18222
* Loads are relocatable tooChris Lattner2004-11-241-1/+2
| | | | llvm-svn: 18198
* Calls do not need a MovPCtoLR instructionChris Lattner2004-11-241-3/+6
| | | | llvm-svn: 18197
* Get constant pools working. This fixes even more programs, allowing us toChris Lattner2004-11-241-10/+10
| | | | | | pass 24/42 in UnitTests (up from 20). llvm-svn: 18196
* Rewrite branches more closely to correct. This makes more stuff pass, andChris Lattner2004-11-241-20/+15
| | | | | | stops the infinite loops! llvm-svn: 18194
* Enumerate CR registersChris Lattner2004-11-231-8/+8
| | | | llvm-svn: 18162
* Squelch a bogus warning.Chris Lattner2004-11-231-1/+1
| | | | llvm-svn: 18156
* Fix a minor bugChris Lattner2004-11-231-1/+2
| | | | llvm-svn: 18153
* Emit relocations for the global variable using instructions. This gets usChris Lattner2004-11-231-48/+44
| | | | | | | LA, LOADHiAddr, CALLpcrel, and MovePCtoLR working, though the constant pool probably is not right. llvm-svn: 18144
* Remove some dead codeChris Lattner2004-11-221-76/+0
| | | | llvm-svn: 18136
* Disable this.Chris Lattner2004-11-221-2/+4
| | | | llvm-svn: 18130
* This chunk of code needs to be rewrittenChris Lattner2004-11-221-28/+3
| | | | llvm-svn: 18127
* getJITStubForFunction is optional and unimplemented, just remove it.Chris Lattner2004-11-201-5/+0
| | | | llvm-svn: 18036
* Simplify namespacesChris Lattner2004-11-161-4/+1
| | | | llvm-svn: 17870
* * Correctly handle the MovePCtoLR pseudo-instr with a bl to next instrMisha Brukman2004-10-231-9/+15
| | | | | | * Stop the confusion of using rv and Addr for global addresses: just use rv llvm-svn: 17195
* * Do not emit IMPLICIT_DEF pseudo-instructionsMisha Brukman2004-10-231-6/+71
| | | | | | | | | * Convert register numbers from their opcode value to the real value, e.g. PPC::R1 => 1 and PPC::F1 => 1 * Add correct handling of loading of global values which are PC-relative -- implement ha16() and lo16() llvm-svn: 17190
* Remove debug code emitter from the JITMisha Brukman2004-10-211-3/+1
| | | | llvm-svn: 17151
* Make this compile.Alkis Evlogimenos2004-10-211-1/+1
| | | | llvm-svn: 17150
* * Added basic support for JITing functions, basic blocks, instruction encoding,Misha Brukman2004-10-211-20/+169
| | | | | | | | including registers, constants, and partial support for global addresses * The JIT is disabled by default to allow building llvm-gcc, which wants to test running programs during configure llvm-svn: 17149
* * Claim to support machine code emission - return false fromMisha Brukman2004-10-141-4/+26
| | | | | | | | | addPassesToEmitMachineCode() * Add support for registers and constants in getMachineOpValue() This enables running "int main() { ret 0 }" via the PowerPC JIT. llvm-svn: 16983
* * Include the real (generated) version of getBinaryCodeForInstr()Misha Brukman2004-10-141-10/+20
| | | | | | | | | * Add implementation of getMachineOpValue() for generated code emitter * Convert assert()s in unimplemented functions to abort()s so that non-debug builds fail predictably * Add file header comments llvm-svn: 16981
* Changes For Bug 352Reid Spencer2004-09-011-1/+1
| | | | | | | | Move include/Config and include/Support into include/llvm/Config, include/llvm/ADT and include/llvm/Support. From here on out, all LLVM public header files must be under include/llvm/. llvm-svn: 16137
* Breaking up the PowerPC target into 32- and 64-bit subparts, Part I: 32-bit.Misha Brukman2004-08-111-15/+16
| | | | llvm-svn: 15634
* Stub definition of the PowerPC CodeEmitter class; this isn't functional (yet).Misha Brukman2004-08-091-4/+61
| | | | llvm-svn: 15600
* Initial revisionMisha Brukman2004-06-211-0/+43
llvm-svn: 14283
OpenPOWER on IntegriCloud