$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
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)