Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r82195 - in trunk/libs/context: build src/asm
From: oliver.kowalke_at_[hidden]
Date: 2012-12-23 16:23:20


Author: olli
Date: 2012-12-23 16:23:19 EST (Sun, 23 Dec 2012)
New Revision: 82195
URL: http://svn.boost.org/trac/boost/changeset/82195

Log:
context: asm for ARM modified

Added:
   trunk/libs/context/src/asm/jump_arm_aapcs_pe_armasm.asm (contents, props changed)
   trunk/libs/context/src/asm/make_arm_aapcs_pe_armasm.asm (contents, props changed)
Removed:
   trunk/libs/context/src/asm/jump_arm_aapcs_pe_armasm.S
   trunk/libs/context/src/asm/make_arm_aapcs_pe_armasm.S
Text files modified:
   trunk/libs/context/build/Jamfile.v2 | 4 ++--
   trunk/libs/context/src/asm/make_arm_aapcs_elf_gas.S | 2 +-
   trunk/libs/context/src/asm/make_arm_aapcs_macho_gas.S | 2 +-
   3 files changed, 4 insertions(+), 4 deletions(-)

Modified: trunk/libs/context/build/Jamfile.v2
==============================================================================
--- trunk/libs/context/build/Jamfile.v2 (original)
+++ trunk/libs/context/build/Jamfile.v2 2012-12-23 16:23:19 EST (Sun, 23 Dec 2012)
@@ -125,8 +125,8 @@
    ;
 
 alias asm_context_sources
- : [ make asm/make_arm_aapcs_pe_armasm.o : asm/make_arm_aapcs_pe_armasm.S : @armasm ]
- [ make asm/jump_arm_aapcs_pe_armasm.o : asm/jump_arm_aapcs_pe_armasm.S : @armasm ]
+ : [ make asm/make_arm_aapcs_pe_armasm.o : asm/make_arm_aapcs_pe_armasm.asm : @armasm ]
+ [ make asm/jump_arm_aapcs_pe_armasm.o : asm/jump_arm_aapcs_pe_armasm.asm : @armasm ]
    : <architecture>arm
      <binary-format>pe
    ;

Deleted: trunk/libs/context/src/asm/jump_arm_aapcs_pe_armasm.S
==============================================================================
--- trunk/libs/context/src/asm/jump_arm_aapcs_pe_armasm.S 2012-12-23 16:23:19 EST (Sun, 23 Dec 2012)
+++ (empty file)
@@ -1,76 +0,0 @@
-;/*
-; Copyright Oliver Kowalke 2009.
-; Distributed under the Boost Software License, Version 1.0.
-; (See accompanying file LICENSE_1_0.txt or copy at
-; http://www.boost.org/LICENSE_1_0.txt)
-;*/
-
-;/*******************************************************************
-; * *
-; * ------------------------------------------------------------- *
-; * | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | *
-; * ------------------------------------------------------------- *
-; * | 0x0 | 0x4 | 0x8 | 0xc | 0x10| 0x14| 0x18| 0x1c| 0x20| 0x24| *
-; * ------------------------------------------------------------- *
-; * | v1 | v2 | v3 | v4 | v5 | v6 | v7 | v8 | sp | lr | *
-; * ------------------------------------------------------------- *
-; * ------------------------------------------------------------- *
-; * | 10 | | *
-; * ------------------------------------------------------------- *
-; * | 0x28| | *
-; * ------------------------------------------------------------- *
-; * | pc | | *
-; * ------------------------------------------------------------- *
-; * ------------------------------------------------------------- *
-; * | 11 | 12 | | *
-; * ------------------------------------------------------------- *
-; * | 0x2c| 0x30| | *
-; * ------------------------------------------------------------- *
-; * | sp | size| | *
-; * ------------------------------------------------------------- *
-; * ------------------------------------------------------------- *
-; * | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | *
-; * ------------------------------------------------------------- *
-; * | 0x34| 0x38|0x3c| 0x40| 0x44| 0x48| 0x4c| 0x50| 0x54| 0x58 | *
-; * ------------------------------------------------------------- *
-; * | s16 | s17 | s18 | s19 | s20 | s21 | s22 | s23 | s24 | s25 | *
-; * ------------------------------------------------------------- *
-; * ------------------------------------------------------------- *
-; * | 23 | 24 | 25 | 26 | 27 | 28 | | *
-; * ------------------------------------------------------------- *
-; * | 0x5c| 0x60| 0x64| 0x68| 0x6c| 0x70| | *
-; * ------------------------------------------------------------- *
-; * | s26 | s27 | s28 | s29 | s30 | s31 | | *
-; * ------------------------------------------------------------- *
-; * *
-; * *****************************************************************/
-
- AREA |.text|, CODE
- ALGIN 4
- EXPORT jump_fcontext
-
-jump_fcontext PROC
- 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__))
- cmp a4, #0 ; test if fpu env should be preserved
- beq nofp
-
- mov a4, a1
- add a4, #52
- vstmia a4, {d8-d15} ; save S16-S31
-
- mov a4, a2
- add a4, #52
- vldmia a4, {d8-d15} ; restore S16-S31
-
-nofp
-#endif
-
- mov a1, a3 ; use third arg as return value after jump
- ; and as first arg in context function
- ldmia a2, {v1-v8,sp-pc} ; restore v1-V8,SP-PC
-
- ENDP
- END

Added: trunk/libs/context/src/asm/jump_arm_aapcs_pe_armasm.asm
==============================================================================
--- (empty file)
+++ trunk/libs/context/src/asm/jump_arm_aapcs_pe_armasm.asm 2012-12-23 16:23:19 EST (Sun, 23 Dec 2012)
@@ -0,0 +1,61 @@
+;/*
+; Copyright Oliver Kowalke 2009.
+; Distributed under the Boost Software License, Version 1.0.
+; (See accompanying file LICENSE_1_0.txt or copy at
+; http://www.boost.org/LICENSE_1_0.txt)
+;*/
+
+;/*******************************************************************
+; * *
+; * ------------------------------------------------------------- *
+; * | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | *
+; * ------------------------------------------------------------- *
+; * | 0x0 | 0x4 | 0x8 | 0xc | 0x10| 0x14| 0x18| 0x1c| 0x20| 0x24| *
+; * ------------------------------------------------------------- *
+; * | v1 | v2 | v3 | v4 | v5 | v6 | v7 | v8 | sp | lr | *
+; * ------------------------------------------------------------- *
+; * ------------------------------------------------------------- *
+; * | 10 | | *
+; * ------------------------------------------------------------- *
+; * | 0x28| | *
+; * ------------------------------------------------------------- *
+; * | pc | | *
+; * ------------------------------------------------------------- *
+; * ------------------------------------------------------------- *
+; * | 11 | 12 | | *
+; * ------------------------------------------------------------- *
+; * | 0x2c| 0x30| | *
+; * ------------------------------------------------------------- *
+; * | sp | size| | *
+; * ------------------------------------------------------------- *
+; * ------------------------------------------------------------- *
+; * | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | *
+; * ------------------------------------------------------------- *
+; * | 0x34| 0x38|0x3c| 0x40| 0x44| 0x48| 0x4c| 0x50| 0x54| 0x58 | *
+; * ------------------------------------------------------------- *
+; * | s16 | s17 | s18 | s19 | s20 | s21 | s22 | s23 | s24 | s25 | *
+; * ------------------------------------------------------------- *
+; * ------------------------------------------------------------- *
+; * | 23 | 24 | 25 | 26 | 27 | 28 | | *
+; * ------------------------------------------------------------- *
+; * | 0x5c| 0x60| 0x64| 0x68| 0x6c| 0x70| | *
+; * ------------------------------------------------------------- *
+; * | s26 | s27 | s28 | s29 | s30 | s31 | | *
+; * ------------------------------------------------------------- *
+; * *
+; * *****************************************************************/
+
+ AREA |.text|, CODE
+ ALIGN 4
+ EXPORT jump_fcontext
+
+jump_fcontext PROC
+ stmia a1, {r4-r11,sp-lr} ; save V1-V8,SP-LR
+ str lr, [a1,#40] ; save LR as PC
+
+ mov a1, a3 ; use third arg as return value after jump
+ ; and as first arg in context function
+ ldmia a2, {r4-r11,sp-pc} ; restore v1-V8,SP-PC
+
+ ENDP
+ END

Modified: trunk/libs/context/src/asm/make_arm_aapcs_elf_gas.S
==============================================================================
--- trunk/libs/context/src/asm/make_arm_aapcs_elf_gas.S (original)
+++ trunk/libs/context/src/asm/make_arm_aapcs_elf_gas.S 2012-12-23 16:23:19 EST (Sun, 23 Dec 2012)
@@ -51,7 +51,7 @@
 .type make_fcontext,%function
 make_fcontext:
     mov a4, a1 @ save address of context stack (base) A4
- sub a1, #116 @ reserve space for fcontext_t at top of context stack
+ sub a1, a1, #116 @ reserve space for fcontext_t at top of context stack
 
     @ shift address in A1 to lower 16 byte boundary
     @ == pointer to fcontext_t and address of context stack

Modified: trunk/libs/context/src/asm/make_arm_aapcs_macho_gas.S
==============================================================================
--- trunk/libs/context/src/asm/make_arm_aapcs_macho_gas.S (original)
+++ trunk/libs/context/src/asm/make_arm_aapcs_macho_gas.S 2012-12-23 16:23:19 EST (Sun, 23 Dec 2012)
@@ -50,7 +50,7 @@
 .align 2
 _make_fcontext:
     mov a4, a1 @ save address of context stack (base) A4
- sub a1, #116 @ reserve space for fcontext_t at top of context stack
+ sub a1, a1, #116 @ reserve space for fcontext_t at top of context stack
 
     @ shift address in A1 to lower 16 byte boundary
     @ == pointer to fcontext_t and address of context stack

Deleted: trunk/libs/context/src/asm/make_arm_aapcs_pe_armasm.S
==============================================================================
--- trunk/libs/context/src/asm/make_arm_aapcs_pe_armasm.S 2012-12-23 16:23:19 EST (Sun, 23 Dec 2012)
+++ (empty file)
@@ -1,80 +0,0 @@
-;/*
-; Copyright Oliver Kowalke 2009.
-; Distributed under the Boost Software License, Version 1.0.
-; (See accompanying file LICENSE_1_0.txt or copy at
-; http://www.boost.org/LICENSE_1_0.txt)
-;*/
-
-;/*******************************************************************
-; * *
-; * ------------------------------------------------------------- *
-; * | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | *
-; * ------------------------------------------------------------- *
-; * | 0x0 | 0x4 | 0x8 | 0xc | 0x10| 0x14| 0x18| 0x1c| 0x20| 0x24| *
-; * ------------------------------------------------------------- *
-; * | v1 | v2 | v3 | v4 | v5 | v6 | v7 | v8 | sp | lr | *
-; * ------------------------------------------------------------- *
-; * ------------------------------------------------------------- *
-; * | 10 | | *
-; * ------------------------------------------------------------- *
-; * | 0x28| | *
-; * ------------------------------------------------------------- *
-; * | pc | | *
-; * ------------------------------------------------------------- *
-; * ------------------------------------------------------------- *
-; * | 11 | 12 | | *
-; * ------------------------------------------------------------- *
-; * | 0x2c| 0x30| | *
-; * ------------------------------------------------------------- *
-; * | sp | size| | *
-; * ------------------------------------------------------------- *
-; * ------------------------------------------------------------- *
-; * | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | *
-; * ------------------------------------------------------------- *
-; * | 0x34| 0x38|0x3c| 0x40| 0x44| 0x48| 0x4c| 0x50| 0x54| 0x58 | *
-; * ------------------------------------------------------------- *
-; * | s16 | s17 | s18 | s19 | s20 | s21 | s22 | s23 | s24 | s25 | *
-; * ------------------------------------------------------------- *
-; * ------------------------------------------------------------- *
-; * | 23 | 24 | 25 | 26 | 27 | 28 | | *
-; * ------------------------------------------------------------- *
-; * | 0x5c| 0x60| 0x64| 0x68| 0x6c| 0x70| | *
-; * ------------------------------------------------------------- *
-; * | s26 | s27 | s28 | s29 | s30 | s31 | | *
-; * ------------------------------------------------------------- *
-; * *
-; * *****************************************************************/
-
-
- AREA |.text|, CODE
- ALGIN 4
- EXPORT make_fcontext
- IMPORT _exit
-
-make_fcontext PROC
- mov a4, a1 ; save address of context stack (base) A4
- sub a1, #116 ; reserve space for fcontext_t at top of context stack
-
- ; shift address in A1 to lower 16 byte boundary
- ; == pointer to fcontext_t and address of context stack
- bic a1, a1, #15
-
- str a4, [a1,#44] ; save address of context stack (base) in fcontext_t
- str a2, [a1,#48] ; save context stack size in fcontext_t
- str a3, [a1,#40] ; save address of context function in fcontext_t
-
- str a1, [a1,#32] ; save address in A4 as stack pointer for context function
-
- adr a2, finish ; compute abs address of label finish
- str a2, [a1,#36] ; save address of finish as return address for context function
- ; entered after context function returns
-
- bx lr
-
-finish
- ; SP points to same addras SP on entry of context function
- mov a1, #0 ; exit code is zero
- bl _exit ; exit application
-
- ENDP
- END

Added: trunk/libs/context/src/asm/make_arm_aapcs_pe_armasm.asm
==============================================================================
--- (empty file)
+++ trunk/libs/context/src/asm/make_arm_aapcs_pe_armasm.asm 2012-12-23 16:23:19 EST (Sun, 23 Dec 2012)
@@ -0,0 +1,80 @@
+;/*
+; Copyright Oliver Kowalke 2009.
+; Distributed under the Boost Software License, Version 1.0.
+; (See accompanying file LICENSE_1_0.txt or copy at
+; http://www.boost.org/LICENSE_1_0.txt)
+;*/
+
+;/*******************************************************************
+; * *
+; * ------------------------------------------------------------- *
+; * | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | *
+; * ------------------------------------------------------------- *
+; * | 0x0 | 0x4 | 0x8 | 0xc | 0x10| 0x14| 0x18| 0x1c| 0x20| 0x24| *
+; * ------------------------------------------------------------- *
+; * | v1 | v2 | v3 | v4 | v5 | v6 | v7 | v8 | sp | lr | *
+; * ------------------------------------------------------------- *
+; * ------------------------------------------------------------- *
+; * | 10 | | *
+; * ------------------------------------------------------------- *
+; * | 0x28| | *
+; * ------------------------------------------------------------- *
+; * | pc | | *
+; * ------------------------------------------------------------- *
+; * ------------------------------------------------------------- *
+; * | 11 | 12 | | *
+; * ------------------------------------------------------------- *
+; * | 0x2c| 0x30| | *
+; * ------------------------------------------------------------- *
+; * | sp | size| | *
+; * ------------------------------------------------------------- *
+; * ------------------------------------------------------------- *
+; * | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | *
+; * ------------------------------------------------------------- *
+; * | 0x34| 0x38|0x3c| 0x40| 0x44| 0x48| 0x4c| 0x50| 0x54| 0x58 | *
+; * ------------------------------------------------------------- *
+; * | s16 | s17 | s18 | s19 | s20 | s21 | s22 | s23 | s24 | s25 | *
+; * ------------------------------------------------------------- *
+; * ------------------------------------------------------------- *
+; * | 23 | 24 | 25 | 26 | 27 | 28 | | *
+; * ------------------------------------------------------------- *
+; * | 0x5c| 0x60| 0x64| 0x68| 0x6c| 0x70| | *
+; * ------------------------------------------------------------- *
+; * | s26 | s27 | s28 | s29 | s30 | s31 | | *
+; * ------------------------------------------------------------- *
+; * *
+; * *****************************************************************/
+
+
+ AREA |.text|, CODE
+ ALIGN 4
+ EXPORT make_fcontext
+ IMPORT _exit
+
+make_fcontext PROC
+ mov a4, a1 ; save address of context stack (base) A4
+ sub a1, a1, #116 ; reserve space for fcontext_t at top of context stack
+
+ ; shift address in A1 to lower 16 byte boundary
+ ; == pointer to fcontext_t and address of context stack
+ bic a1, a1, #15
+
+ str a4, [a1,#44] ; save address of context stack (base) in fcontext_t
+ str a2, [a1,#48] ; save context stack size in fcontext_t
+ str a3, [a1,#40] ; save address of context function in fcontext_t
+
+ str a1, [a1,#32] ; save address in A4 as stack pointer for context function
+
+ adr a2, finish ; compute abs address of label finish
+ str a2, [a1,#36] ; save address of finish as return address for context function
+ ; entered after context function returns
+
+ bx lr
+
+finish
+ ; SP points to same addras SP on entry of context function
+ mov a1, #0 ; exit code is zero
+ bl _exit ; exit application
+
+ ENDP
+ END


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