We don't need as complex code. I had some thinkos while writing it, figuring
I needed to support PPC32 paths on PPC64 which would have required DR=0, but
everything just runs fine with DR=1.
So let's make the functions simple C call wrappers that reserve some space on
the stack for the respective functions to clobber.
Fixes out-of-RMA-access (and thus guest FPU loading) on the PS3.
Signed-off-by: Alexander Graf <agraf@suse.de>
Signed-off-by: Avi Kivity <avi@redhat.com>
 #define define_load_up(what)                           \
                                                        \
 _GLOBAL(kvmppc_load_up_ ## what);                      \
-       subi    r1, r1, INT_FRAME_SIZE;                 \
+       stdu    r1, -INT_FRAME_SIZE(r1);                \
        mflr    r3;                                     \
        std     r3, _LINK(r1);                          \
-       mfmsr   r4;                                     \
-       std     r31, GPR3(r1);                          \
-       mr      r31, r4;                                \
-       li      r5, MSR_DR;                             \
-       oris    r5, r5, MSR_EE@h;                       \
-       andc    r4, r4, r5;                             \
-       mtmsr   r4;                                     \
                                                        \
        bl      .load_up_ ## what;                      \
                                                        \
-       mtmsr   r31;                                    \
        ld      r3, _LINK(r1);                          \
-       ld      r31, GPR3(r1);                          \
-       addi    r1, r1, INT_FRAME_SIZE;                 \
        mtlr    r3;                                     \
+       addi    r1, r1, INT_FRAME_SIZE;                 \
        blr
 
 define_load_up(fpu)