|  | Commit message (Collapse) | Author | Age | Files | Lines | 
|---|
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | 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 | 
| | 
| 
| 
| 
| 
| 
| | LLVM blocks as the keys for the branch rewriter.  This fixes treeadd and
many other programs with the JIT.
llvm-svn: 18223 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | * 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 | 
| | 
| 
| 
| | llvm-svn: 18198 | 
| | 
| 
| 
| | llvm-svn: 18197 | 
| | 
| 
| 
| 
| 
| | pass 24/42 in UnitTests (up from 20).
llvm-svn: 18196 | 
| | 
| 
| 
| 
| 
| | stops the infinite loops!
llvm-svn: 18194 | 
| | 
| 
| 
| | llvm-svn: 18162 | 
| | 
| 
| 
| | llvm-svn: 18156 | 
| | 
| 
| 
| | llvm-svn: 18153 | 
| | 
| 
| 
| 
| 
| 
| | LA, LOADHiAddr, CALLpcrel, and MovePCtoLR working, though the constant pool
probably is not right.
llvm-svn: 18144 | 
| | 
| 
| 
| | llvm-svn: 18136 | 
| | 
| 
| 
| | llvm-svn: 18130 | 
| | 
| 
| 
| | llvm-svn: 18127 | 
| | 
| 
| 
| | llvm-svn: 18036 | 
| | 
| 
| 
| | llvm-svn: 17870 | 
| | 
| 
| 
| 
| 
| | * Stop the confusion of using rv and Addr for global addresses: just use rv
llvm-svn: 17195 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| | * 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 | 
| | 
| 
| 
| | llvm-svn: 17151 | 
| | 
| 
| 
| | llvm-svn: 17150 | 
| | 
| 
| 
| 
| 
| 
| 
| | 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 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| | addPassesToEmitMachineCode()
* Add support for registers and constants in getMachineOpValue()
This enables running "int main() { ret 0 }" via the PowerPC JIT.
llvm-svn: 16983 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| | * 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 | 
| | 
| 
| 
| 
| 
| 
| 
| | 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 | 
| | 
| 
| 
| | llvm-svn: 15634 | 
| | 
| 
| 
| | llvm-svn: 15600 | 
|  | llvm-svn: 14283 |