Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r78150 - in trunk: boost/context/detail libs/context/src/asm
From: oliver.kowalke_at_[hidden]
Date: 2012-04-23 03:20:39


Author: olli
Date: 2012-04-23 03:20:37 EDT (Mon, 23 Apr 2012)
New Revision: 78150
URL: http://svn.boost.org/trac/boost/changeset/78150

Log:
context: remove fc_link from fcontext_t

Text files modified:
   trunk/boost/context/detail/fcontext_arm.hpp | 2
   trunk/boost/context/detail/fcontext_i386.hpp | 2
   trunk/boost/context/detail/fcontext_i386_win.hpp | 2
   trunk/boost/context/detail/fcontext_mips.hpp | 1
   trunk/boost/context/detail/fcontext_ppc.hpp | 2
   trunk/boost/context/detail/fcontext_x86_64.hpp | 2
   trunk/boost/context/detail/fcontext_x86_64_win.hpp | 2
   trunk/libs/context/src/asm/fcontext_arm_aapcs_elf_gas.S | 19 ++-----
   trunk/libs/context/src/asm/fcontext_i386_ms_pe_masm.asm | 35 +++++--------
   trunk/libs/context/src/asm/fcontext_i386_sysv_elf_gas.S | 23 +++------
   trunk/libs/context/src/asm/fcontext_i386_sysv_macho_gas.S | 23 +++------
   trunk/libs/context/src/asm/fcontext_mips32_o32_elf_gas.S | 35 +++++--------
   trunk/libs/context/src/asm/fcontext_ppc32_sysv_elf_gas.S | 99 ++++++++++++++++++---------------------
   trunk/libs/context/src/asm/fcontext_ppc64_sysv_elf_gas.S | 99 ++++++++++++++++++---------------------
   trunk/libs/context/src/asm/fcontext_x86_64_ms_pe_masm.asm | 53 +++++++++------------
   trunk/libs/context/src/asm/fcontext_x86_64_sysv_elf_gas.S | 19 ++-----
   trunk/libs/context/src/asm/fcontext_x86_64_sysv_macho_gas.S | 19 ++-----
   17 files changed, 176 insertions(+), 261 deletions(-)

Modified: trunk/boost/context/detail/fcontext_arm.hpp
==============================================================================
--- trunk/boost/context/detail/fcontext_arm.hpp (original)
+++ trunk/boost/context/detail/fcontext_arm.hpp 2012-04-23 03:20:37 EDT (Mon, 23 Apr 2012)
@@ -46,13 +46,11 @@
 {
     boost::uint32_t fc_greg[11];
     stack_t fc_stack;
- fcontext_t * fc_link;
     fp_t fc_fp;
 
     fcontext_t() :
         fc_greg(),
         fc_stack(),
- fc_link( 0),
         fc_fp()
     {}
 };

Modified: trunk/boost/context/detail/fcontext_i386.hpp
==============================================================================
--- trunk/boost/context/detail/fcontext_i386.hpp (original)
+++ trunk/boost/context/detail/fcontext_i386.hpp 2012-04-23 03:20:37 EDT (Mon, 23 Apr 2012)
@@ -48,13 +48,11 @@
 {
     boost::uint32_t fc_greg[6];
     stack_t fc_stack;
- fcontext_t * fc_link;
     fp_t fc_fp;
 
     fcontext_t() :
         fc_greg(),
         fc_stack(),
- fc_link( 0),
         fc_fp()
     {}
 };

Modified: trunk/boost/context/detail/fcontext_i386_win.hpp
==============================================================================
--- trunk/boost/context/detail/fcontext_i386_win.hpp (original)
+++ trunk/boost/context/detail/fcontext_i386_win.hpp 2012-04-23 03:20:37 EDT (Mon, 23 Apr 2012)
@@ -53,7 +53,6 @@
 {
     boost::uint32_t fc_greg[6];
     stack_t fc_stack;
- fcontext_t * fc_link;
     void * fc_excpt_lst;
     void * fc_local_storage;
     fp_t fc_fp;
@@ -61,7 +60,6 @@
     fcontext_t() :
         fc_greg(),
         fc_stack(),
- fc_link( 0),
         fc_excpt_lst( 0),
         fc_local_storage( 0),
         fc_fp()

Modified: trunk/boost/context/detail/fcontext_mips.hpp
==============================================================================
--- trunk/boost/context/detail/fcontext_mips.hpp (original)
+++ trunk/boost/context/detail/fcontext_mips.hpp 2012-04-23 03:20:37 EDT (Mon, 23 Apr 2012)
@@ -48,7 +48,6 @@
 {
     boost::uint64_t fc_greg[13];
     stack_t fc_stack;
- fcontext_t * fc_link;
     fp_t fc_fp;
 
     fcontext_t() :

Modified: trunk/boost/context/detail/fcontext_ppc.hpp
==============================================================================
--- trunk/boost/context/detail/fcontext_ppc.hpp (original)
+++ trunk/boost/context/detail/fcontext_ppc.hpp 2012-04-23 03:20:37 EDT (Mon, 23 Apr 2012)
@@ -50,13 +50,11 @@
     boost::uint32_t fc_greg[23];
 # endif
     stack_t fc_stack;
- fcontext_t * fc_link;
     fp_t fc_fp;
 
     fcontext_t() :
         fc_greg(),
         fc_stack(),
- fc_link( 0),
         fc_fp()
     {}
 };

Modified: trunk/boost/context/detail/fcontext_x86_64.hpp
==============================================================================
--- trunk/boost/context/detail/fcontext_x86_64.hpp (original)
+++ trunk/boost/context/detail/fcontext_x86_64.hpp 2012-04-23 03:20:37 EDT (Mon, 23 Apr 2012)
@@ -46,13 +46,11 @@
 {
     boost::uint64_t fc_greg[8];
     stack_t fc_stack;
- fcontext_t * fc_link;
     fp_t fc_fp;
 
     fcontext_t() :
         fc_greg(),
         fc_stack(),
- fc_link( 0),
         fc_fp()
     {}
 };

Modified: trunk/boost/context/detail/fcontext_x86_64_win.hpp
==============================================================================
--- trunk/boost/context/detail/fcontext_x86_64_win.hpp (original)
+++ trunk/boost/context/detail/fcontext_x86_64_win.hpp 2012-04-23 03:20:37 EDT (Mon, 23 Apr 2012)
@@ -62,14 +62,12 @@
 {
     boost::uint64_t fc_greg[10];
     stack_t fc_stack;
- fcontext_t * fc_link;
     void * fc_local_storage;
     fp_t fc_fp;
 
     fcontext_t() :
         fc_greg(),
         fc_stack(),
- fc_link( 0),
         fc_local_storage( 0),
         fc_fp()
     {}

Modified: trunk/libs/context/src/asm/fcontext_arm_aapcs_elf_gas.S
==============================================================================
--- trunk/libs/context/src/asm/fcontext_arm_aapcs_elf_gas.S (original)
+++ trunk/libs/context/src/asm/fcontext_arm_aapcs_elf_gas.S 2012-04-23 03:20:37 EDT (Mon, 23 Apr 2012)
@@ -29,23 +29,16 @@
  * |sbase|slimit| | *
  * ------------------------------------------------------------- *
  * ------------------------------------------------------------- *
- * | 13 | | *
+ * | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | *
  * ------------------------------------------------------------- *
- * | 0x34| | *
- * ------------------------------------------------------------- *
- * |fclnk| | *
- * ------------------------------------------------------------- *
- * ------------------------------------------------------------- *
- * | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | *
- * ------------------------------------------------------------- *
- * | 0x38|0x3c| 0x40| 0x44| 0x48| 0x4c| 0x50| 0x54| 0x58| 0x5c | *
+ * | 0x34| 0x38|0x3c| 0x40| 0x44| 0x48| 0x4c| 0x50| 0x54| 0x58 | *
  * ------------------------------------------------------------- *
  * | s16 | s17 | s18 | s19 | s20 | s21 | s22 | s23 | s24 | s25 | *
  * ------------------------------------------------------------- *
  * ------------------------------------------------------------- *
- * | 24 | 25 | 26 | 27 | 28 | 29 | | *
+ * | 23 | 24 | 25 | 26 | 27 | 28 | | *
  * ------------------------------------------------------------- *
- * | 0x60| 0x64| 0x68| 0x6c| 0x70| 0x74| | *
+ * | 0x5c| 0x60| 0x64| 0x68| 0x6c| 0x70| | *
  * ------------------------------------------------------------- *
  * | s26 | s27 | s28 | s29 | s30 | s31 | | *
  * ------------------------------------------------------------- *
@@ -60,14 +53,14 @@
     stmia a1, {v1-v8,sp-lr} @ save V1-V8,SP-LR
     str lr, [a1,#40] @ save LR as PC
 #if (defined(__VFP_FP__) && !defined(__SOFTFP__))
- ldr a4, [a1,#56]
+ ldr a4, [a1,#52]
     stmia a4, {s16-s31} @ save S16-S31
 #endif
 
         mov a1, a3 @ use third arg as return value after jump
                                         @ and as first arg in context function
 #if (defined(__VFP_FP__) && !defined(__SOFTFP__))
- ldr a4, [a2,#56]
+ ldr a4, [a2,#52]
     ldmia a4, {s16-s31} @ restore S16-S31
 #endif
 

Modified: trunk/libs/context/src/asm/fcontext_i386_ms_pe_masm.asm
==============================================================================
--- trunk/libs/context/src/asm/fcontext_i386_ms_pe_masm.asm (original)
+++ trunk/libs/context/src/asm/fcontext_i386_ms_pe_masm.asm 2012-04-23 03:20:37 EDT (Mon, 23 Apr 2012)
@@ -23,27 +23,19 @@
 ; --------------------------------------------------------------
 ; | 020h | |
 ; --------------------------------------------------------------
-; | fc_link | |
+; |fc_execpt| |
 ; --------------------------------------------------------------
 ; --------------------------------------------------------------
 ; | 9 | |
 ; --------------------------------------------------------------
 ; | 024h | |
 ; --------------------------------------------------------------
-; |fc_except| |
-; --------------------------------------------------------------
-; --------------------------------------------------------------
-; | 10 | |
-; --------------------------------------------------------------
-; | 028h | |
-; --------------------------------------------------------------
 ; |fc_strage| |
 ; --------------------------------------------------------------
 ; --------------------------------------------------------------
 ; | 10 | 11 | |
 ; --------------------------------------------------------------
-; | 02ch | 030h | |
-; --------------------------------------------------------------
+; | 028h | 02ch | |
 ; --------------------------------------------------------------
 ; | fc_mxcsr|fc_x87_cw| |
 ; --------------------------------------------------------------
@@ -54,7 +46,6 @@
 _exit PROTO, value:SDWORD
 align_stack PROTO, vp:DWORD
 seh_fcontext PROTO, except:DWORD, frame:DWORD, context:DWORD, dispatch:DWORD
-start_fcontext PROTO, from:DWORD, to:DWORD, vp:DWORD
 .code
 
 jump_fcontext PROC EXPORT
@@ -68,21 +59,21 @@
     mov edx, fs:[018h] ; load NT_TIB
     assume fs:error
     mov eax, [edx] ; load current SEH exception list
- mov [ecx+024h], eax ; save current exception list
+ mov [ecx+020h], eax ; save current exception list
     mov eax, [edx+04h] ; load current stack base
     mov [ecx+018h], eax ; save current stack base
     mov eax, [edx+08h] ; load current stack limit
     mov [ecx+01ch], eax ; save current stack limit
     mov eax, [edx+010h] ; load fiber local storage
- mov [ecx+028h], eax ; save fiber local storage
+ mov [ecx+024h], eax ; save fiber local storage
 
     lea eax, [esp+04h] ; exclude the return address
     mov [ecx+010h], eax ; save as stack pointer
     mov eax, [esp] ; load return address
     mov [ecx+014h], eax ; save return address
 
-; stmxcsr [ecx+02ch] ; save MMX control word
-; fnstcw [ecx+030h] ; save x87 control word
+; stmxcsr [ecx+028h] ; save MMX control word
+; fnstcw [ecx+02ch] ; save x87 control word
 
     mov ecx, [esp+08h] ; load address of the second fcontext_t arg
     mov edi, [ecx] ; restore EDI
@@ -93,17 +84,17 @@
     assume fs:nothing
     mov edx, fs:[018h] ; load NT_TIB
     assume fs:error
- mov eax, [ecx+024h] ; load SEH exception list
+ mov eax, [ecx+020h] ; load SEH exception list
     mov [edx], eax ; restore next SEH item
     mov eax, [ecx+018h] ; load stack base
     mov [edx+04h], eax ; restore stack base
     mov eax, [ecx+01ch] ; load stack limit
     mov [edx+08h], eax ; restore stack limit
- mov eax, [ecx+028h] ; load fiber local storage
+ mov eax, [ecx+024h] ; load fiber local storage
     mov [edx+010h], eax ; restore fiber local storage
 
-; ldmxcsr [ecx+02ch] ; restore MMX control word
-; fldcw [ecx+030h] ; restore x87 control word
+; ldmxcsr [ecx+028h] ; restore MMX control word
+; fldcw [ecx+02ch] ; restore x87 control word
 
     mov eax, [esp+0ch] ; use third arg as return value after jump
 
@@ -128,7 +119,7 @@
     pop eax ; remove arg for align_stack
     pop eax ; restore pointer to fcontext_t
 
- lea edx, [edx-014h] ; reserve space for last frame on stack, (ESP + 4) % 16 == 0
+ lea edx, [edx-014h] ; reserve space for last frame on stack, (ESP + 4) & 15 == 0
     mov [eax+010h], edx ; save the aligned stack
 
     mov ecx, seh_fcontext ; set ECX to exception-handler
@@ -138,8 +129,8 @@
     lea ecx, [edx+08h] ; load address of next SEH item
     mov [eax+02ch], ecx ; save next SEH
 
-; stmxcsr [eax+02ch] ; save MMX control word
-; fnstcw [eax+030h] ; save x87 control word
+; stmxcsr [eax+028h] ; save MMX control word
+; fnstcw [eax+02ch] ; save x87 control word
 
     mov ecx, finish ; address of finish
     mov [edx], ecx

Modified: trunk/libs/context/src/asm/fcontext_i386_sysv_elf_gas.S
==============================================================================
--- trunk/libs/context/src/asm/fcontext_i386_sysv_elf_gas.S (original)
+++ trunk/libs/context/src/asm/fcontext_i386_sysv_elf_gas.S 2012-04-23 03:20:37 EDT (Mon, 23 Apr 2012)
@@ -22,16 +22,9 @@
  * | sbase | slimit | | *
  * -------------------------------------------------------------- *
  * -------------------------------------------------------------- *
- * | 8 | | *
+ * | 8 | 9 | | *
  * -------------------------------------------------------------- *
- * | 0x20 | | *
- * -------------------------------------------------------------- *
- * | fc_link | | *
- * -------------------------------------------------------------- *
- * -------------------------------------------------------------- *
- * | 9 | 10 | | *
- * -------------------------------------------------------------- *
- * | 0x24 | 0x28 | | *
+ * | 0x20 | 0x24 | | *
  * -------------------------------------------------------------- *
  * | fc_mxcsr|fc_x87_cw| | *
  * -------------------------------------------------------------- *
@@ -49,8 +42,8 @@
     movl %ebx, 0x8(%ecx) /* save EBX */
     movl %ebp, 0xc(%ecx) /* save EBP */
 
-/* stmxcsr 0x24(%ecx) */ /* save MMX control and status word */
-/* fnstcw 0x28(%ecx) */ /* save x87 control word */
+/* stmxcsr 0x20(%ecx) */ /* save MMX control and status word */
+/* fnstcw 0x24(%ecx) */ /* save x87 control word */
 
     leal 0x4(%esp), %eax /* exclude the return address */
     movl %eax, 0x10(%ecx) /* save as stack pointer */
@@ -64,8 +57,8 @@
     movl 0x8(%ecx), %ebx /* restore EBX */
     movl 0xc(%ecx), %ebp /* restore EBP */
 
-/* ldmxcsr 0x24(%ecx) */ /* restore MMX control and status word */
-/* fldcw 0x28(%ecx) */ /* restore x87 control word */
+/* ldmxcsr 0x20(%ecx) */ /* restore MMX control and status word */
+/* fldcw 0x24(%ecx) */ /* restore x87 control word */
 
     movl 0xc(%esp), %eax /* use third arg as return value after jump */
 
@@ -102,8 +95,8 @@
     leal -0x14(%edx), %edx /* reserve space for the last frame on stack, (ESP + 4) % 16 == 0 */
     movl %edx, 0x10(%eax) /* save the aligned stack base */
 
-; stmxcsr 0x24(%eax) /* save MMX control and status word */
-; fnstcw 0x30(%eax) /* save x87 control word */
+; stmxcsr 0x20(%eax) /* save MMX control and status word */
+; fnstcw 0x24(%eax) /* save x87 control word */
 
     call 2f
 2: popl %ecx /* address of label 2 */

Modified: trunk/libs/context/src/asm/fcontext_i386_sysv_macho_gas.S
==============================================================================
--- trunk/libs/context/src/asm/fcontext_i386_sysv_macho_gas.S (original)
+++ trunk/libs/context/src/asm/fcontext_i386_sysv_macho_gas.S 2012-04-23 03:20:37 EDT (Mon, 23 Apr 2012)
@@ -22,16 +22,9 @@
  * | sbase | slimit | | *
  * -------------------------------------------------------------- *
  * -------------------------------------------------------------- *
- * | 8 | | *
+ * | 8 | 9 | | *
  * -------------------------------------------------------------- *
- * | 0x20 | | *
- * -------------------------------------------------------------- *
- * | fc_link | | *
- * -------------------------------------------------------------- *
- * -------------------------------------------------------------- *
- * | 9 | 10 | | *
- * -------------------------------------------------------------- *
- * | 0x24 | 0x28 | | *
+ * | 0x20 | 0x24 | | *
  * -------------------------------------------------------------- *
  * | fc_mxcsr|fc_x87_cw| | *
  * -------------------------------------------------------------- *
@@ -48,8 +41,8 @@
     movl %ebx, 0x8(%ecx) /* save EBX */
     movl %ebp, 0xc(%ecx) /* save EBP */
 
-/* stmxcsr 0x24(%ecx) */ /* save MMX control and status word */
-/* fnstcw 0x28(%ecx) */ /* save x87 control word */
+/* stmxcsr 0x20(%ecx) */ /* save MMX control and status word */
+/* fnstcw 0x24(%ecx) */ /* save x87 control word */
 
     leal 0x4(%esp), %eax /* exclude the return address */
     movl %eax, 0x10(%ecx) /* save as stack pointer */
@@ -63,8 +56,8 @@
     movl 0x8(%ecx), %ebx /* restore EBX */
     movl 0xc(%ecx), %ebp /* restore EBP */
 
-/* ldmxcsr 0x24(%ecx) */ /* restore MMX control and status word */
-/* fldcw 0x28(%ecx) */ /* restore x87 control word */
+/* ldmxcsr 0x20(%ecx) */ /* restore MMX control and status word */
+/* fldcw 0x24(%ecx) */ /* restore x87 control word */
 
     movl 0xc(%esp), %eax /* use third arg as return value after jump */
 
@@ -99,8 +92,8 @@
     leal -0x14(%edx), %edx /* reserve space for the last frame on stack, (ESP + 4) % 16 == 0 */
     movl %edx, 0x10(%eax) /* save the aligned stack base */
 
-; stmxcsr 0x24(%eax) /* save MMX control and status word */
-; fnstcw 0x30(%eax) /* save x87 control word */
+; stmxcsr 0x20(%eax) /* save MMX control and status word */
+; fnstcw 0x24(%eax) /* save x87 control word */
 
     call 2f
 2: popl %ecx /* address of label 2 */

Modified: trunk/libs/context/src/asm/fcontext_mips32_o32_elf_gas.S
==============================================================================
--- trunk/libs/context/src/asm/fcontext_mips32_o32_elf_gas.S (original)
+++ trunk/libs/context/src/asm/fcontext_mips32_o32_elf_gas.S 2012-04-23 03:20:37 EDT (Mon, 23 Apr 2012)
@@ -29,16 +29,9 @@
  * |sbase|slimt| | *
  * ------------------------------------------------------------- *
  * ------------------------------------------------------------- *
- * | 15 | | *
+ * | 15 | 16 | 17 | 18 | 19 | 20 | | *
  * ------------------------------------------------------------- *
- * | 120 | | *
- * ------------------------------------------------------------- *
- * |flink| | *
- * ------------------------------------------------------------- *
- * ------------------------------------------------------------- *
- * | 16 | 17 | 18 | 19 | 20 | 21 | | *
- * ------------------------------------------------------------- *
- * | 128 | 136 | 144 | 152 | 160 | 168 | | *
+ * | 120 | 128 | 136 | 144 | 152 | 160 | | *
  * ------------------------------------------------------------- *
  * | F20 | F22 | F24 | F26 | F28 | F30 | | *
  * ------------------------------------------------------------- *
@@ -66,12 +59,12 @@
     sw $ra, 96($a0) # save RA as PC
 
 #if defined(__mips_hard_float)
- s.d $f20, 128($a0) # save F20
- s.d $f22, 136($a0) # save F22
- s.d $f24, 144($a0) # save F24
- s.d $f26, 152($a0) # save F26
- s.d $f28, 160($a0) # save F28
- s.d $f30, 168($a0) # save F30
+ s.d $f20, 120($a0) # save F20
+ s.d $f22, 128($a0) # save F22
+ s.d $f24, 136($a0) # save F24
+ s.d $f26, 144($a0) # save F26
+ s.d $f28, 152($a0) # save F28
+ s.d $f30, 160($a0) # save F30
 #endif
 
 
@@ -90,12 +83,12 @@
     move $a0, $s2 # restore void pointer as argument
 
 #if defined(__mips_hard_float)
- l.d $f20, 128($a1) # restore F20
- l.d $f22, 136($a1) # restore F22
- l.d $f24, 144($a1) # restore F24
- l.d $f26, 152($a1) # restore F26
- l.d $f28, 160($a1) # restore F28
- l.d $f30, 168($a1) # restore F30
+ l.d $f20, 120($a1) # restore F20
+ l.d $f22, 128($a1) # restore F22
+ l.d $f24, 136($a1) # restore F24
+ l.d $f26, 144($a1) # restore F26
+ l.d $f28, 152($a1) # restore F28
+ l.d $f30, 160($a1) # restore F30
 #endif
 
     move $v0, $a2 # use third arg as return value after jump

Modified: trunk/libs/context/src/asm/fcontext_ppc32_sysv_elf_gas.S
==============================================================================
--- trunk/libs/context/src/asm/fcontext_ppc32_sysv_elf_gas.S (original)
+++ trunk/libs/context/src/asm/fcontext_ppc32_sysv_elf_gas.S 2012-04-23 03:20:37 EDT (Mon, 23 Apr 2012)
@@ -36,37 +36,30 @@
  * |sbase|slimt| | *
  * ------------------------------------------------------------- *
  * ------------------------------------------------------------- *
- * | 25 | | *
+ * | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | *
  * ------------------------------------------------------------- *
- * | 100 | | *
- * ------------------------------------------------------------- *
- * |flink| | *
- * ------------------------------------------------------------- *
- * ------------------------------------------------------------- *
- * | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | *
- * ------------------------------------------------------------- *
- * | 104 | 108 | 112 | 116 | 120 | 124 | 128 | 132 | 136 | 140 | *
+ * | 100 | 104 | 108 | 112 | 116 | 120 | 124 | 128 | 132 | 136 | *
  * ------------------------------------------------------------- *
  * | F14 | F15 | F16 | F17 | F18 | *
  * ------------------------------------------------------------- *
  * ------------------------------------------------------------- *
- * | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | *
+ * | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | *
  * ------------------------------------------------------------- *
- * | 144 | 148 | 152 | 156 | 160 | 164 | 168 | 172 | 176 | 180 | *
+ * | 140 | 144 | 148 | 152 | 156 | 160 | 164 | 168 | 172 | 176 | *
  * ------------------------------------------------------------- *
  * | F19 | F20 | F21 | F22 | F23 | *
  * ------------------------------------------------------------- *
  * ------------------------------------------------------------- *
- * | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | *
+ * | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | *
  * ------------------------------------------------------------- *
- * | 184 | 188 | 192 | 196 | 200 | 204 | 208 | 212 | 216 | 220 | *
+ * | 180 | 184 | 188 | 192 | 196 | 200 | 204 | 208 | 212 | 216 | *
  * ------------------------------------------------------------- *
  * | F24 | F25 | F26 | F27 | F28 | *
  * ------------------------------------------------------------- *
  * ------------------------------------------------------------- *
- * | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | | *
+ * | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | | *
  * ------------------------------------------------------------- *
- * | 224 | 228 | 232 | 236 | 240 | 244 | 248 | 252 | | *
+ * | 220 | 224 | 228 | 232 | 236 | 240 | 244 | 248 | | *
  * ------------------------------------------------------------- *
  * | F29 | F30 | F31 | fpscr | | *
  * ------------------------------------------------------------- *
@@ -105,26 +98,26 @@
     stw %r0, 84(%r3) # save LR
     stw %r0, 88(%r3) # save LR as PC
 
- stfd %f14, 104(%r3) # save F14
- stfd %f15, 112(%r3) # save F15
- stfd %f16, 120(%r3) # save F16
- stfd %f17, 128(%r3) # save F17
- stfd %f18, 136(%r3) # save F18
- stfd %f19, 144(%r3) # save F19
- stfd %f20, 152(%r3) # save F20
- stfd %f21, 160(%r3) # save F21
- stfd %f22, 168(%r3) # save F22
- stfd %f23, 176(%r3) # save F23
- stfd %f24, 184(%r3) # save F24
- stfd %f25, 192(%r3) # save F25
- stfd %f26, 200(%r3) # save F26
- stfd %f27, 208(%r3) # save F27
- stfd %f28, 216(%r3) # save F28
- stfd %f29, 224(%r3) # save F29
- stfd %f30, 232(%r3) # save F30
- stfd %f31, 240(%r3) # save F31
+ stfd %f14, 100(%r3) # save F14
+ stfd %f15, 108(%r3) # save F15
+ stfd %f16, 116(%r3) # save F16
+ stfd %f17, 124(%r3) # save F17
+ stfd %f18, 132(%r3) # save F18
+ stfd %f19, 140(%r3) # save F19
+ stfd %f20, 148(%r3) # save F20
+ stfd %f21, 156(%r3) # save F21
+ stfd %f22, 164(%r3) # save F22
+ stfd %f23, 172(%r3) # save F23
+ stfd %f24, 180(%r3) # save F24
+ stfd %f25, 188(%r3) # save F25
+ stfd %f26, 196(%r3) # save F26
+ stfd %f27, 204(%r3) # save F27
+ stfd %f28, 212(%r3) # save F28
+ stfd %f29, 220(%r3) # save F29
+ stfd %f30, 228(%r3) # save F30
+ stfd %f31, 236(%r3) # save F31
     mffs %f0 # load FPSCR
- stfd %f0, 248(%r3) # save FPSCR
+ stfd %f0, 244(%r3) # save FPSCR
 
 
     lwz %r13, 0(%r4) # restore R13
@@ -153,25 +146,25 @@
     lwz %r0, 84(%r4) # load LR
     mtlr %r0 # restore LR
 
- lfd %f14, 104(%r4) # restore F14
- lfd %f15, 112(%r4) # restore F15
- lfd %f16, 120(%r4) # restore F16
- lfd %f17, 128(%r4) # restore F17
- lfd %f18, 136(%r4) # restore F18
- lfd %f19, 144(%r4) # restore F19
- lfd %f20, 152(%r4) # restore F20
- lfd %f21, 160(%r4) # restore F21
- lfd %f22, 168(%r4) # restore F22
- lfd %f23, 176(%r4) # restore F23
- lfd %f24, 184(%r4) # restore F24
- lfd %f25, 192(%r4) # restore F25
- lfd %f26, 200(%r4) # restore F26
- lfd %f27, 208(%r4) # restore F27
- lfd %f28, 216(%r4) # restore F28
- lfd %f29, 224(%r4) # restore F29
- lfd %f30, 232(%r4) # restore F30
- lfd %f31, 240(%r4) # restore F31
- lfd %f0, 248(%r4) # load FPSCR
+ lfd %f14, 100(%r4) # restore F14
+ lfd %f15, 108(%r4) # restore F15
+ lfd %f16, 116(%r4) # restore F16
+ lfd %f17, 124(%r4) # restore F17
+ lfd %f18, 132(%r4) # restore F18
+ lfd %f19, 140(%r4) # restore F19
+ lfd %f20, 148(%r4) # restore F20
+ lfd %f21, 156(%r4) # restore F21
+ lfd %f22, 164(%r4) # restore F22
+ lfd %f23, 172(%r4) # restore F23
+ lfd %f24, 180(%r4) # restore F24
+ lfd %f25, 188(%r4) # restore F25
+ lfd %f26, 196(%r4) # restore F26
+ lfd %f27, 204(%r4) # restore F27
+ lfd %f28, 212(%r4) # restore F28
+ lfd %f29, 220(%r4) # restore F29
+ lfd %f30, 228(%r4) # restore F30
+ lfd %f31, 236(%r4) # restore F31
+ lfd %f0, 244(%r4) # load FPSCR
     mtfsf 0xff, %f0 # restore FPSCR
 
     mr. %r3, %r5 # use third arg as return value after jump

Modified: trunk/libs/context/src/asm/fcontext_ppc64_sysv_elf_gas.S
==============================================================================
--- trunk/libs/context/src/asm/fcontext_ppc64_sysv_elf_gas.S (original)
+++ trunk/libs/context/src/asm/fcontext_ppc64_sysv_elf_gas.S 2012-04-23 03:20:37 EDT (Mon, 23 Apr 2012)
@@ -50,37 +50,30 @@
  * | sbase | slimt | | *
  * ------------------------------------------------------------- *
  * ------------------------------------------------------------- *
- * | 50 | 51 | | *
+ * | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | *
  * ------------------------------------------------------------- *
- * | 200 | 204 | | *
- * ------------------------------------------------------------- *
- * | flink | | *
- * ------------------------------------------------------------- *
- * ------------------------------------------------------------- *
- * | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | *
- * ------------------------------------------------------------- *
- * | 208 | 212 | 216 | 220 | 224 | 228 | 232 | 236 | 240 | 244 | *
+ * | 200 | 204 | 208 | 212 | 216 | 220 | 224 | 228 | 232 | 236 | *
  * ------------------------------------------------------------- *
  * | F14 | F15 | F16 | F17 | F18 | *
  * ------------------------------------------------------------- *
  * ------------------------------------------------------------- *
- * | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | *
+ * | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | *
  * ------------------------------------------------------------- *
- * | 248 | 252 | 256 | 260 | 264 | 268 | 272 | 276 | 280 | 284 | *
+ * | 240 | 244 | 248 | 252 | 256 | 260 | 264 | 268 | 272 | 276 | *
  * ------------------------------------------------------------- *
  * | F19 | F20 | F21 | F22 | F23 | *
  * ------------------------------------------------------------- *
  * ------------------------------------------------------------- *
- * | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | *
+ * | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | *
  * ------------------------------------------------------------- *
- * | 288 | 292 | 296 | 300 | 304 | 308 | 312 | 316 | 320 | 324 | *
+ * | 280 | 284 | 288 | 292 | 296 | 300 | 304 | 308 | 312 | 316 | *
  * ------------------------------------------------------------- *
  * | F24 | F25 | F26 | F27 | F28 | *
  * ------------------------------------------------------------- *
  * ------------------------------------------------------------- *
- * | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | | *
+ * | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | | *
  * ------------------------------------------------------------- *
- * | 328 | 332 | 336 | 340 | 344 | 348 | 352 | 356 | | *
+ * | 320 | 324 | 328 | 332 | 336 | 340 | 344 | 348 | | *
  * ------------------------------------------------------------- *
  * | F29 | F30 | F31 | fpscr | | *
  * ------------------------------------------------------------- *
@@ -126,26 +119,26 @@
     std %r0, 168(%r3) # save LR
     std %r0, 176(%r3) # save LR as PC
 
- stfd %f14, 208(%r3) # save F14
- stfd %f15, 216(%r3) # save F15
- stfd %f16, 224(%r3) # save F16
- stfd %f17, 232(%r3) # save F17
- stfd %f18, 240(%r3) # save F18
- stfd %f19, 248(%r3) # save F19
- stfd %f20, 256(%r3) # save F20
- stfd %f21, 264(%r3) # save F21
- stfd %f22, 272(%r3) # save F22
- stfd %f23, 280(%r3) # save F23
- stfd %f24, 288(%r3) # save F24
- stfd %f25, 296(%r3) # save F25
- stfd %f26, 304(%r3) # save F26
- stfd %f27, 312(%r3) # save F27
- stfd %f28, 320(%r3) # save F28
- stfd %f29, 328(%r3) # save F29
- stfd %f30, 336(%r3) # save F30
- stfd %f31, 344(%r3) # save F31
+ stfd %f14, 200(%r3) # save F14
+ stfd %f15, 208(%r3) # save F15
+ stfd %f16, 216(%r3) # save F16
+ stfd %f17, 224(%r3) # save F17
+ stfd %f18, 232(%r3) # save F18
+ stfd %f19, 240(%r3) # save F19
+ stfd %f20, 248(%r3) # save F20
+ stfd %f21, 256(%r3) # save F21
+ stfd %f22, 264(%r3) # save F22
+ stfd %f23, 272(%r3) # save F23
+ stfd %f24, 280(%r3) # save F24
+ stfd %f25, 288(%r3) # save F25
+ stfd %f26, 296(%r3) # save F26
+ stfd %f27, 304(%r3) # save F27
+ stfd %f28, 312(%r3) # save F28
+ stfd %f29, 320(%r3) # save F29
+ stfd %f30, 328(%r3) # save F30
+ stfd %f31, 336(%r3) # save F31
     mffs %f0 # load FPSCR
- stfd %f0, 352(%r3) # save FPSCR
+ stfd %f0, 344(%r3) # save FPSCR
 
 
     ld %r13, 0(%r4) # restore R13
@@ -174,25 +167,25 @@
     ld %r0, 168(%r4) # load LR
     mtlr %r0 # restore LR
 
- lfd %f14, 208(%r4) # restore F14
- lfd %f15, 216(%r4) # restore F15
- lfd %f16, 224(%r4) # restore F16
- lfd %f17, 232(%r4) # restore F17
- lfd %f18, 240(%r4) # restore F18
- lfd %f19, 248(%r4) # restore F19
- lfd %f20, 256(%r4) # restore F20
- lfd %f21, 264(%r4) # restore F21
- lfd %f22, 272(%r4) # restore F22
- lfd %f23, 280(%r4) # restore F23
- lfd %f24, 288(%r4) # restore F24
- lfd %f25, 296(%r4) # restore F25
- lfd %f26, 304(%r4) # restore F26
- lfd %f27, 312(%r4) # restore F27
- lfd %f28, 320(%r4) # restore F28
- lfd %f29, 328(%r4) # restore F29
- lfd %f30, 336(%r4) # restore F30
- lfd %f31, 344(%r4) # restore F31
- lfd %f0, 352(%r4) # load FPSCR
+ lfd %f14, 200(%r4) # restore F14
+ lfd %f15, 208(%r4) # restore F15
+ lfd %f16, 216(%r4) # restore F16
+ lfd %f17, 224(%r4) # restore F17
+ lfd %f18, 232(%r4) # restore F18
+ lfd %f19, 240(%r4) # restore F19
+ lfd %f20, 248(%r4) # restore F20
+ lfd %f21, 256(%r4) # restore F21
+ lfd %f22, 264(%r4) # restore F22
+ lfd %f23, 272(%r4) # restore F23
+ lfd %f24, 280(%r4) # restore F24
+ lfd %f25, 288(%r4) # restore F25
+ lfd %f26, 296(%r4) # restore F26
+ lfd %f27, 304(%r4) # restore F27
+ lfd %f28, 312(%r4) # restore F28
+ lfd %f29, 320(%r4) # restore F29
+ lfd %f30, 328(%r4) # restore F30
+ lfd %f31, 336(%r4) # restore F31
+ lfd %f0, 344(%r4) # load FPSCR
     mtfsf 0xff, %f0 # restore FPSCR
 
     mr. %r3, %r5 # use third arg as return value after jump

Modified: trunk/libs/context/src/asm/fcontext_x86_64_ms_pe_masm.asm
==============================================================================
--- trunk/libs/context/src/asm/fcontext_x86_64_ms_pe_masm.asm (original)
+++ trunk/libs/context/src/asm/fcontext_x86_64_ms_pe_masm.asm 2012-04-23 03:20:37 EDT (Mon, 23 Apr 2012)
@@ -33,58 +33,51 @@
 ; | sbase | slimit | |
 ; ----------------------------------------------------------------------------------
 ; ----------------------------------------------------------------------------------
-; | 24 | 25 | |
+; | 24 | 25 | |
 ; ----------------------------------------------------------------------------------
 ; | 0x60 | 0x64 | |
 ; ----------------------------------------------------------------------------------
-; | fc_link | |
-; ----------------------------------------------------------------------------------
-; ----------------------------------------------------------------------------------
-; | 26 | 27 | |
-; ----------------------------------------------------------------------------------
-; | 0x68 | 0x6c | |
-; ----------------------------------------------------------------------------------
 ; | fbr_strg | |
 ; ----------------------------------------------------------------------------------
 ; ----------------------------------------------------------------------------------
-; | 28 | 29 | 30 | 31 | |
+; | 26 | 27 | 28 | 29 | |
 ; ----------------------------------------------------------------------------------
-; | 0x70 | 0x74 | 0x78 | 0x7c | |
+; | 0x68 | 0x6c | 0x70 | 0x74 | |
 ; ----------------------------------------------------------------------------------
 ; | fc_mxcsr|fc_x87_cw| fc_xmm | |
 ; ----------------------------------------------------------------------------------
 ; ----------------------------------------------------------------------------------
-; | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 |
+; | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 |
 ; ----------------------------------------------------------------------------------
-; | 0x80 | 0x84 | 0x88 | 0x8c | 0x90 | 0x94 | 0x98 | 0x9c |
+; | 0x78 | 0x7c | 0x80 | 0x84 | 0x88 | 0x8c | 0x90 | 0x94 |
 ; ----------------------------------------------------------------------------------
 ; | XMM6 | XMM7 |
 ; ----------------------------------------------------------------------------------
 ; ----------------------------------------------------------------------------------
-; | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 |
+; | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 |
 ; ----------------------------------------------------------------------------------
-; | 0x100 | 0x104 | 0x108 | 0x10c | 0x110 | 0x114 | 0x118 | 0x11c |
+; | 0x98 | 0x9c | 0x100 | 0x104 | 0x108 | 0x10c | 0x110 | 0x114 |
 ; ----------------------------------------------------------------------------------
 ; | XMM8 | XMM9 |
 ; ----------------------------------------------------------------------------------
 ; ----------------------------------------------------------------------------------
-; | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 |
+; | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 |
 ; ----------------------------------------------------------------------------------
-; | 0x120 | 0x124 | 0x128 | 0x12c | 0x130 | 0x134 | 0x138 | 0x13c |
+; | 0x118 | 0x11c | 0x120 | 0x124 | 0x128 | 0x12c | 0x130 | 0x134 |
 ; ----------------------------------------------------------------------------------
 ; | XMM10 | XMM11 |
 ; ----------------------------------------------------------------------------------
 ; ----------------------------------------------------------------------------------
-; | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 |
+; | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 |
 ; ----------------------------------------------------------------------------------
-; | 0x140 | 0x144 | 0x148 | 0x14c | 0x150 | 0x154 | 0x158 | 0x15c |
+; | 0x138 | 0x13c | 0x140 | 0x144 | 0x148 | 0x14c | 0x150 | 0x154 |
 ; ----------------------------------------------------------------------------------
 ; | XMM12 | XMM13 |
 ; ----------------------------------------------------------------------------------
 ; ----------------------------------------------------------------------------------
-; | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 |
+; | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 |
 ; ----------------------------------------------------------------------------------
-; | 0x160 | 0x164 | 0x168 | 0x16c | 0x170 | 0x174 | 0x178 | 0x17c |
+; | 0x158 | 0x15c | 0x160 | 0x164 | 0x168 | 0x16c | 0x170 | 0x174 |
 ; ----------------------------------------------------------------------------------
 ; | XMM14 | XMM15 |
 ; ----------------------------------------------------------------------------------
@@ -112,11 +105,11 @@
     mov rax, [r10+010h] ; load current stack limit
     mov [rcx+058h], rax ; save current stack limit
     mov rax, [r10+018h] ; load fiber local storage
- mov [rcx+068h], rax ; save fiber local storage
+ mov [rcx+060h], rax ; save fiber local storage
 
- stmxcsr [rcx+070h] ; save MMX control and status word
- fnstcw [rcx+074h] ; save x87 control word
- mov r10, [rcx+078h] ; address of aligned XMM storage
+ stmxcsr [rcx+068h] ; save MMX control and status word
+ fnstcw [rcx+06ch] ; save x87 control word
+ mov r10, [rcx+070h] ; address of aligned XMM storage
     movaps [r10], xmm6
     movaps [r10+010h], xmm7
     movaps [r10+020h], xmm8
@@ -147,12 +140,12 @@
     mov [r10+08h], rax ; restore stack base
     mov rax, [rdx+058h] ; load stack limit
     mov [r10+010h], rax ; restore stack limit
- mov rax, [rdx+068h] ; load fiber local storage
+ mov rax, [rdx+060h] ; load fiber local storage
     mov [r10+018h], rax ; restore fiber local storage
 
- ldmxcsr [rdx+070h] ; restore MMX control and status word
- fldcw [rdx+074h] ; restore x87 control word
- mov r10, [rdx+078h] ; address of aligned XMM storage
+ ldmxcsr [rdx+068h] ; restore MMX control and status word
+ fldcw [rdx+06ch] ; restore x87 control word
+ mov r10, [rdx+070h] ; address of aligned XMM storage
     movaps xmm6, [r10]
     movaps xmm7, [r10+010h]
     movaps xmm8, [r10+020h]
@@ -192,8 +185,8 @@
     lea rdx, [rdx-028h] ; reserve 32byte shadow space + return address on stack, (RSP + 8) % 16 == 0
     mov [rcx+040h], rdx ; save the address where the context stack beginns
 
- stmxcsr [rcx+070h] ; save MMX control and status word
- fnstcw [rcx+074h] ; save x87 control word
+ stmxcsr [rcx+068h] ; save MMX control and status word
+ fnstcw [rcx+06ch] ; save x87 control word
 
     lea rax, finish ; helper code executed after fn() returns
     mov [rdx], rax ; store address off the helper function as return address

Modified: trunk/libs/context/src/asm/fcontext_x86_64_sysv_elf_gas.S
==============================================================================
--- trunk/libs/context/src/asm/fcontext_x86_64_sysv_elf_gas.S (original)
+++ trunk/libs/context/src/asm/fcontext_x86_64_sysv_elf_gas.S 2012-04-23 03:20:37 EDT (Mon, 23 Apr 2012)
@@ -33,13 +33,6 @@
  * ---------------------------------------------------------------------------------- *
  * | 0x50 | 0x54 | | *
  * ---------------------------------------------------------------------------------- *
- * | fc_link | | *
- * ---------------------------------------------------------------------------------- *
- * ---------------------------------------------------------------------------------- *
- * | 22 | 23 | | *
- * ---------------------------------------------------------------------------------- *
- * | 0x58 | 0x5c | | *
- * ---------------------------------------------------------------------------------- *
  * | fc_mxcsr|fc_x87_cw| | *
  * ---------------------------------------------------------------------------------- *
  * *
@@ -57,8 +50,8 @@
     movq %r15, 0x20(%rdi) /* save R15 */
     movq %rbp, 0x28(%rdi) /* save RBP */
 
- stmxcsr 0x58(%rdi) /* save MMX control and status word */
- fnstcw 0x5c(%rdi) /* save x87 control word */
+ stmxcsr 0x50(%rdi) /* save MMX control and status word */
+ fnstcw 0x54(%rdi) /* save x87 control word */
 
     leaq 0x8(%rsp), %rax /* exclude the return address and save as stack pointer */
     movq %rax, 0x30(%rdi) /* save as stack pointer */
@@ -72,8 +65,8 @@
     movq 0x20(%rsi), %r15 /* restore R15 */
     movq 0x28(%rsi), %rbp /* restore RBP */
 
- ldmxcsr 0x58(%rsi) /* restore MMX control and status word */
- fldcw 0x5c(%rsi) /* restore x87 control word */
+ ldmxcsr 0x50(%rsi) /* restore MMX control and status word */
+ fldcw 0x54(%rsi) /* restore x87 control word */
 
     movq 0x30(%rsi), %rsp /* restore RSP */
     movq 0x38(%rsi), %rcx /* fetch the address to return to */
@@ -102,8 +95,8 @@
     leaq -0x8(%rdx), %rdx /* reserve space for the last frame on stack, (RSP + 8) & 15 == 0 */
     movq %rdx, 0x30(%rdi) /* save the algined stack base */
 
- stmxcsr 0x58(%rdi) /* save MMX control and status word */
- fnstcw 0x5c(%rdi) /* save x87 control word */
+ stmxcsr 0x50(%rdi) /* save MMX control and status word */
+ fnstcw 0x54(%rdi) /* save x87 control word */
 
     leaq finish(%rip), %rcx /* address of finish; called after context function returns */
     movq %rcx, (%rdx)

Modified: trunk/libs/context/src/asm/fcontext_x86_64_sysv_macho_gas.S
==============================================================================
--- trunk/libs/context/src/asm/fcontext_x86_64_sysv_macho_gas.S (original)
+++ trunk/libs/context/src/asm/fcontext_x86_64_sysv_macho_gas.S 2012-04-23 03:20:37 EDT (Mon, 23 Apr 2012)
@@ -33,13 +33,6 @@
  * ---------------------------------------------------------------------------------- *
  * | 0x50 | 0x54 | | *
  * ---------------------------------------------------------------------------------- *
- * | fc_link | | *
- * ---------------------------------------------------------------------------------- *
- * ---------------------------------------------------------------------------------- *
- * | 22 | 23 | | *
- * ---------------------------------------------------------------------------------- *
- * | 0x58 | 0x5c | | *
- * ---------------------------------------------------------------------------------- *
  * | fc_mxcsr|fc_x87_cw| | *
  * ---------------------------------------------------------------------------------- *
  * *
@@ -56,8 +49,8 @@
     movq %r15, 0x20(%rdi) /* save R15 */
     movq %rbp, 0x28(%rdi) /* save RBP */
 
- stmxcsr 0x58(%rdi) /* save MMX control and status word */
- fnstcw 0x5c(%rdi) /* save x87 control word */
+ stmxcsr 0x50(%rdi) /* save MMX control and status word */
+ fnstcw 0x54(%rdi) /* save x87 control word */
 
     leaq 0x8(%rsp), %rax /* exclude the return address and save as stack pointer */
     movq %rax, 0x30(%rdi) /* save as stack pointer */
@@ -71,8 +64,8 @@
     movq 0x20(%rsi), %r15 /* restore R15 */
     movq 0x28(%rsi), %rbp /* restore RBP */
 
- ldmxcsr 0x58(%rsi) /* restore MMX control and status word */
- fldcw 0x5c(%rsi) /* restore x87 control word */
+ ldmxcsr 0x50(%rsi) /* restore MMX control and status word */
+ fldcw 0x54(%rsi) /* restore x87 control word */
 
     movq 0x30(%rsi), %rsp /* restore RSP */
     movq 0x38(%rsi), %rcx /* fetch the address to return to */
@@ -99,8 +92,8 @@
     leaq -0x8(%rdx), %rdx /* reserve space for the last frame on stack, (RSP + 8) % 16 == 0 */
     movq %rdx, 0x30(%rdi) /* save the address */
 
- stmxcsr 0x58(%rdi) /* save MMX control and status word */
- fnstcw 0x5c(%rdi) /* save x87 control word */
+ stmxcsr 0x50(%rdi) /* save MMX control and status word */
+ fnstcw 0x54(%rdi) /* save x87 control word */
 
     leaq finish(%rip), %rcx /* helper code executed after context function returns */
     movq %rcx, (%rdx)


Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk