boost/boost-1.53.0-context.patch

39 lines
1.7 KiB
Diff

diff -up boost_1_53_0/libs/context/src/asm/make_ppc64_sysv_elf_gas.S\~ boost_1_53_0/libs/context/src/asm/make_ppc64_sysv_elf_gas.S
--- boost_1_53_0/libs/context/src/asm/make_ppc64_sysv_elf_gas.S~ 2012-11-30 08:38:52.000000000 +0100
+++ boost_1_53_0/libs/context/src/asm/make_ppc64_sysv_elf_gas.S 2013-02-11 19:14:45.179845740 +0100
@@ -89,7 +89,7 @@ make_fcontext:
.quad .make_fcontext,.TOC.@tocbase,0
.previous
.size make_fcontext,24
-.type .make_fcontext,@function
+.type make_fcontext,@function
.globl .make_fcontext
.make_fcontext:
mflr %r6 # save return address into R6
@@ -99,13 +99,13 @@ make_fcontext:
# call align_stack, R3 contains address at 16 byte boundary after return
# == pointer to fcontext_t and address of context stack
- rlwinm %r3, %r3, 0, 0, 59
+ rldicr %r3, %r3, 0, 59
std %r0, 184(%r3) # save address of context stack (base) in fcontext_t
std %r4, 192(%r3) # save context stack size in fcontext_t
std %r5, 176(%r3) # save address of context function in fcontext_t
- subf %r0, %r3, 64 # 64 bytes on stack for parameter area (== 8 registers)
+ addi %r0, %r3, -64 # 64 bytes on stack for parameter area (== 8 registers)
std %r0, 152(%r3) # save the stack base
mflr %r0 # load LR
@@ -128,5 +128,6 @@ finish:
stwu %r1, -32(%r1) # allocate stack space, SP % 16 == 0
li %r3, 0 # set return value to zero
- bl _exit@plt # exit application
+ bl _exit # exit application
+ nop # padding for R_PPC64_REL24
.size .make_fcontext, .-.make_fcontext
Diff finished. Mon Feb 11 19:15:05 2013