Modify how the prologue encoded the "move" information for the FDE. GCC
authorBill Wendling <isanbard@gmail.com>
Tue, 10 Nov 2009 22:14:04 +0000 (22:14 +0000)
committerBill Wendling <isanbard@gmail.com>
Tue, 10 Nov 2009 22:14:04 +0000 (22:14 +0000)
commitb19a5e9be6097eab311678ccbd9e046c72f7e052
tree167c1f2b0e3219c35f4c2bb045b6cbf2e9423824
parent6daf99bf8fa7572fac271bbcd0a8da44ffc2df44
Modify how the prologue encoded the "move" information for the FDE. GCC
generates a sequence similar to this:

__Z4funci:
LFB2:
        mflr r0
LCFI0:
        stmw r30,-8(r1)
LCFI1:
        stw r0,8(r1)
LCFI2:
        stwu r1,-80(r1)
LCFI3:
        mr r30,r1
LCFI4:

where LCFI3 and LCFI4 are used by the FDE to indicate what the FP, LR, and other
things are. We generated something more like this:

Leh_func_begin1:
        mflr r0
        stw r31, 20(r1)
        stw r0, 8(r1)
Llabel1:
        stwu r1, -80(r1)
Llabel2:
        mr r31, r1

Note that we are missing the "mr" instruction. This patch makes it more like the
GCC output.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86729 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/PowerPC/PPCRegisterInfo.cpp
test/CodeGen/PowerPC/ppc-prologue.ll [new file with mode: 0644]