diff options
author | Chris Lattner <sabre@nondot.org> | 2006-03-01 05:50:56 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2006-03-01 05:50:56 +0000 |
commit | 5126984b1da4bda0e93961da07e883699f1f2d57 (patch) | |
tree | 282a6a6e3778ffa0bee4990b791b8b0236a2b484 /lib/Target/PowerPC/PPCSubtarget.cpp | |
parent | c607fa8665942710d0748184bf99a3051dfda3d8 (diff) | |
download | external_llvm-5126984b1da4bda0e93961da07e883699f1f2d57.zip external_llvm-5126984b1da4bda0e93961da07e883699f1f2d57.tar.gz external_llvm-5126984b1da4bda0e93961da07e883699f1f2d57.tar.bz2 |
Compile this:
void foo(float a, int *b) { *b = a; }
to this:
_foo:
fctiwz f0, f1
stfiwx f0, 0, r4
blr
instead of this:
_foo:
fctiwz f0, f1
stfd f0, -8(r1)
lwz r2, -4(r1)
stw r2, 0(r4)
blr
This implements CodeGen/PowerPC/stfiwx.ll, and also incidentally does the
right thing for GCC bugzilla 26505.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26447 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/PowerPC/PPCSubtarget.cpp')
-rw-r--r-- | lib/Target/PowerPC/PPCSubtarget.cpp | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/lib/Target/PowerPC/PPCSubtarget.cpp b/lib/Target/PowerPC/PPCSubtarget.cpp index 606dfc0..0ef85df 100644 --- a/lib/Target/PowerPC/PPCSubtarget.cpp +++ b/lib/Target/PowerPC/PPCSubtarget.cpp @@ -77,6 +77,7 @@ PPCSubtarget::PPCSubtarget(const Module &M, const std::string &FS) , Has64BitRegs(false) , HasAltivec(false) , HasFSQRT(false) + , HasSTFIWX(false) , IsAIX(false) , IsDarwin(false) { |