- Nov 16, 2006
-
-
Jim Laskey authored
This is a general clean up of the PowerPC ABI. Address several problems and bugs including making sure that the TOS links back to the previous frame, that the maximum call frame size is not included twice when using frame pointers, no longer growing the frame on calls, double storing of SP and a cleaner/faster dynamic alloca. llvm-svn: 31792
-
Chris Lattner authored
before printing it. llvm-svn: 31791
-
Chris Lattner authored
llvm-svn: 31785
-
Chris Lattner authored
llvm-svn: 31778
-
Chris Lattner authored
llvm-svn: 31776
-
Chris Lattner authored
llvm-svn: 31775
-
Chris Lattner authored
llvm-svn: 31774
-
Chris Lattner authored
llvm-svn: 31771
-
Chris Lattner authored
Tell the codegen emitter that specific operands are not to be encoded, fixing JIT regressions w.r.t. pre-inc loads and stores (e.g. lwzu, which we generate even when general preinc loads are not enabled). llvm-svn: 31770
-
- Nov 15, 2006
-
-
Evan Cheng authored
llvm-svn: 31765
-
Chris Lattner authored
addrmodes. llvm-svn: 31757
-
Chris Lattner authored
llvm-svn: 31752
-
Chris Lattner authored
pair for cleanliness. Add instructions for PPC32 preinc-stores with commented out patterns. More improvement is needed to enable the patterns, but we're getting close. llvm-svn: 31749
-
- Nov 14, 2006
-
-
Chris Lattner authored
llvm-svn: 31736
-
Chris Lattner authored
clobber. This allows LR8 to be save/restored correctly as a 64-bit quantity, instead of handling it as a 32-bit quantity. This unbreaks ppc64 codegen when the code is actually located above the 4G boundary. llvm-svn: 31734
-
Chris Lattner authored
llvm-svn: 31733
-
Chris Lattner authored
'(shr (ctlz (sub Y, Z)), 5)'. The use of xor better exposes the operation to bit-twiddling logic in the dag combiner. For example, this: typedef struct { unsigned prefix : 4; unsigned code : 4; unsigned unsigned_p : 4; } tree_common; int foo(tree_common *a, tree_common *b) { return a->code == b->code; } Now compiles to: _foo: lwz r2, 0(r4) lwz r3, 0(r3) xor r2, r3, r2 rlwinm r2, r2, 28, 28, 31 cntlzw r2, r2 srwi r3, r2, 5 blr instead of: _foo: lbz r2, 3(r4) lbz r3, 3(r3) srwi r2, r2, 4 srwi r3, r3, 4 subf r2, r2, r3 cntlzw r2, r2 srwi r3, r2, 5 blr saving a cycle. llvm-svn: 31725
-
Chris Lattner authored
llvm-svn: 31717
-
Evan Cheng authored
llvm-svn: 31712
-
- Nov 13, 2006
-
-
Chris Lattner authored
Ptrdist/anagram among others. llvm-svn: 31708
-
- Nov 11, 2006
-
-
Jim Laskey authored
llvm-svn: 31690
-
Chris Lattner authored
llvm-svn: 31684
-
Jim Laskey authored
potentially some system calls/exception handling from working. TOS must always link to previous frame. This is a short term workaround until alloca scheme is reworked. llvm-svn: 31677
-
Chris Lattner authored
produces this clever code: _millisecs: lis r2, ha16(_Time.1182) lwzu r3, lo16(_Time.1182)(r2) lwz r2, 4(r2) addic r4, r2, 1 addze r3, r3 blr instead of this: _millisecs: lis r2, ha16(_Time.1182) la r3, lo16(_Time.1182)(r2) lwz r2, lo16(_Time.1182)(r2) lwz r3, 4(r3) addic r4, r3, 1 addze r3, r2 blr for: long %millisecs() { %tmp = load long* %Time.1182 ; <long> [#uses=1] %tmp1 = add long %tmp, 1 ; <long> [#uses=1] ret long %tmp1 } llvm-svn: 31673
-
Chris Lattner authored
globals. llvm-svn: 31672
-
Chris Lattner authored
llvm-svn: 31656
-
Chris Lattner authored
llvm-svn: 31654
-
- Nov 10, 2006
-
-
Chris Lattner authored
llvm-svn: 31637
-
Chris Lattner authored
(because the 64-bit reg target versions aren't implemented yet), doesn't support r+r addr modes, and doesn't handle stores, but it works otherwise. :) This is disabled unless -enable-ppc-preinc is passed to llc for now. llvm-svn: 31621
-
Chris Lattner authored
llvm-svn: 31617
-
- Nov 09, 2006
-
-
Evan Cheng authored
llvm-svn: 31599
-
Evan Cheng authored
llvm-svn: 31595
-
- Nov 08, 2006
-
-
Evan Cheng authored
llvm-svn: 31571
-
Chris Lattner authored
class, where it can be used for preinc formation. llvm-svn: 31536
-
Chris Lattner authored
llvm-svn: 31535
-
- Nov 07, 2006
-
-
Chris Lattner authored
llvm-svn: 31506
-
Chris Lattner authored
llvm-svn: 31485
-
- Nov 04, 2006
-
-
Chris Lattner authored
llvm-svn: 31450
-
Chris Lattner authored
that takes a register and condition code. Print these pieces of BLR the right way, even though it is currently set to 'always'. Next up: get the JIT encoding right, then enhance branch folding to produce predicated blr for simple examples. llvm-svn: 31449
-
Chris Lattner authored
llvm-svn: 31438
-