You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
66 lines
3.2 KiB
66 lines
3.2 KiB
--- boost_1_53_0/libs/context/src/asm/make_ppc32_sysv_elf_gas.S.orig 2013-02-11 14:03:46.631005713 -0600 |
|
+++ boost_1_53_0/libs/context/src/asm/make_ppc32_sysv_elf_gas.S 2013-02-11 14:06:52.704815403 -0600 |
|
@@ -78,7 +78,7 @@ |
|
|
|
# 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, 27 |
|
+ clrrwi %r3, %r3, 4 |
|
|
|
stw %r0, 92(%r3) # save address of context stack (base) in fcontext_t |
|
stw %r4, 96(%r3) # save context stack size in fcontext_t |
|
@@ -87,12 +87,10 @@ |
|
subi %r0, %r3, 64 # reserve 64 bytes (linkage + parameter area), R4 % 16 == 0 |
|
stw %r0, 76(%r3) # save address in R3 as stack pointer for context function |
|
|
|
- mflr %r0 # load LR |
|
bl 1f # jump to label 1 |
|
1: |
|
mflr %r4 # load LR into R4 |
|
addi %r4, %r4, finish - 1b # compute abs address of label finish |
|
- mtlr %r0 # restore LR |
|
stw %r4, 84(%r3) # save address of finish as return address for context function |
|
# entered after context function returns |
|
|
|
@@ -108,4 +106,5 @@ |
|
|
|
li %r3, 0 # exit code is zero |
|
bl _exit@plt # exit application |
|
+ .long 0 # We should never get here, so SIGILL if we do |
|
.size make_fcontext, .-make_fcontext |
|
|
|
--- boost_1_53_0/libs/context/src/asm/make_ppc64_sysv_elf_gas.S.orig 2013-02-11 14:03:43.726849715 -0600 |
|
+++ boost_1_53_0/libs/context/src/asm/make_ppc64_sysv_elf_gas.S 2013-02-11 14:22:48.202839078 -0600 |
|
@@ -99,21 +99,19 @@ |
|
|
|
# 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 |
|
+ clrrdi %r3, %r3, 4 |
|
|
|
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) |
|
+ subi %r0, %r3, 64 # 64 bytes on stack for parameter area (== 8 registers) |
|
std %r0, 152(%r3) # save the stack base |
|
|
|
- mflr %r0 # load LR |
|
bl 1f # jump to label 1 |
|
1: |
|
mflr %r4 # load LR into R4 |
|
addi %r4, %r4, finish - 1b # compute abs address of label finish |
|
- mtlr %r0 # restore LR |
|
std %r4, 168(%r3) # save address of finish as return address for context function |
|
# entered after context function returns |
|
|
|
@@ -128,5 +126,7 @@ |
|
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 # nop is required by the linker |
|
+ .long 0 # We should never get here, so SIGILL if we do |
|
.size .make_fcontext, .-.make_fcontext
|
|
|