diff options
author | Chris Lattner <sabre@nondot.org> | 2005-08-25 00:26:22 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2005-08-25 00:26:22 +0000 |
commit | fdf8366ecc67b2f3ac21c3b9155c1bc2e9d3dad4 (patch) | |
tree | bfa2e5daa7c9f4ccf7a7b798f998af980149a419 | |
parent | ed7956bfe4bbe9445cbf0a74299f714ffe4fd7a4 (diff) |
LFS/STFS load and store FP values, not integer ones. This change allows us
to codegen this: float foo() { return 1.245; }
into this:
_foo:
lis r2, ha16(.CPI_foo_0)
lfs f1, lo16(.CPI_foo_0)(r2)
blr
instead of this:
_foo:
lis r2, ha16(.CPI_foo_0)
lfs r2, lo16(.CPI_foo_0)(r2) <-- ouch
or f1, r2, r2 <-- ouch
blr
with the dag isel.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23033 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/Target/PowerPC/PPCInstrInfo.td | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/lib/Target/PowerPC/PPCInstrInfo.td b/lib/Target/PowerPC/PPCInstrInfo.td index b0a8b3b9ee..cfcc2fcac7 100644 --- a/lib/Target/PowerPC/PPCInstrInfo.td +++ b/lib/Target/PowerPC/PPCInstrInfo.td @@ -179,15 +179,15 @@ def CMPLWI : DForm_6_ext<10, (ops CRRC:$dst, GPRC:$src1, u16imm:$src2), def CMPLDI : DForm_6_ext<10, (ops CRRC:$dst, GPRC:$src1, u16imm:$src2), "cmpldi $dst, $src1, $src2">, isPPC64; let isLoad = 1 in { -def LFS : DForm_8<48, (ops GPRC:$rD, symbolLo:$disp, GPRC:$rA), +def LFS : DForm_8<48, (ops FPRC:$rD, symbolLo:$disp, GPRC:$rA), "lfs $rD, $disp($rA)">; -def LFD : DForm_8<50, (ops GPRC:$rD, symbolLo:$disp, GPRC:$rA), +def LFD : DForm_8<50, (ops FPRC:$rD, symbolLo:$disp, GPRC:$rA), "lfd $rD, $disp($rA)">; } let isStore = 1 in { -def STFS : DForm_9<52, (ops GPRC:$rS, symbolLo:$disp, GPRC:$rA), +def STFS : DForm_9<52, (ops FPRC:$rS, symbolLo:$disp, GPRC:$rA), "stfs $rS, $disp($rA)">; -def STFD : DForm_9<54, (ops GPRC:$rS, symbolLo:$disp, GPRC:$rA), +def STFD : DForm_9<54, (ops FPRC:$rS, symbolLo:$disp, GPRC:$rA), "stfd $rS, $disp($rA)">; } |