diff options
| author | robot-piglet <[email protected]> | 2024-12-19 20:02:09 +0300 |
|---|---|---|
| committer | robot-piglet <[email protected]> | 2024-12-19 20:57:00 +0300 |
| commit | 3bf2a018f9e680aa955169cdbf0d5bcf9de9a49f (patch) | |
| tree | 8738f19cabd9950eb6a22f894d05fdfb065b0abe | |
| parent | bd1567a793dad5041020f40fa0e3d9cb13377dad (diff) | |
Intermediate changes
commit_hash:091b9cbc9e2be03ac8fb836365b555ef117982f4
46 files changed, 0 insertions, 5520 deletions
diff --git a/contrib/restricted/boost/context/.yandex_meta/devtools.copyrights.report b/contrib/restricted/boost/context/.yandex_meta/devtools.copyrights.report index 32f11fe362f..22163ccb841 100644 --- a/contrib/restricted/boost/context/.yandex_meta/devtools.copyrights.report +++ b/contrib/restricted/boost/context/.yandex_meta/devtools.copyrights.report @@ -57,21 +57,6 @@ BELONGS ya.make src/asm/ontop_arm64_aapcs_pe_armasm.masm [1:3] src/asm/ontop_arm64_aapcs_pe_armclang.S [2:4] -KEEP COPYRIGHT_SERVICE_LABEL 48ce97ba62fc10cee11a213ab0560d6d -BELONGS ya.make - License text: - Copyright Claudio Jeker 2024 - Distributed under the Boost Software License, Version 1.0. - (See accompanying file LICENSE_1_0.txt or copy at - Scancode info: - Original SPDX id: COPYRIGHT_SERVICE_LABEL - Score : 100.00 - Match type : COPYRIGHT - Files with this license: - src/asm/jump_sparc64_sysv_elf_gas.S [2:4] - src/asm/make_sparc64_sysv_elf_gas.S [2:4] - src/asm/ontop_sparc64_sysv_elf_gas.S [2:4] - KEEP COPYRIGHT_SERVICE_LABEL 768f987faaed0adc6222ab24c7bd02e6 BELONGS ya.make License text: @@ -92,13 +77,6 @@ BELONGS ya.make src/asm/jump_i386_ms_pe_masm.masm [2:4] src/asm/jump_i386_sysv_elf_gas.S [2:4] src/asm/jump_i386_sysv_macho_gas.S [2:4] - src/asm/jump_mips32_o32_elf_gas.S [2:4] - src/asm/jump_ppc32_sysv_elf_gas.S [2:4] - src/asm/jump_ppc32_sysv_macho_gas.S [2:4] - src/asm/jump_ppc32_sysv_xcoff_gas.S [2:4] - src/asm/jump_ppc64_sysv_elf_gas.S [2:4] - src/asm/jump_ppc64_sysv_macho_gas.S [2:4] - src/asm/jump_ppc64_sysv_xcoff_gas.S [3:5] src/asm/jump_x86_64_ms_pe_clang_gas.S [2:5] src/asm/jump_x86_64_ms_pe_gas.asm [2:5] src/asm/jump_x86_64_ms_pe_masm.masm [2:4] @@ -112,13 +90,6 @@ BELONGS ya.make src/asm/make_i386_ms_pe_masm.masm [2:4] src/asm/make_i386_sysv_elf_gas.S [2:4] src/asm/make_i386_sysv_macho_gas.S [2:4] - src/asm/make_mips32_o32_elf_gas.S [2:4] - src/asm/make_ppc32_sysv_elf_gas.S [2:4] - src/asm/make_ppc32_sysv_macho_gas.S [2:4] - src/asm/make_ppc32_sysv_xcoff_gas.S [2:4] - src/asm/make_ppc64_sysv_elf_gas.S [2:4] - src/asm/make_ppc64_sysv_macho_gas.S [2:4] - src/asm/make_ppc64_sysv_xcoff_gas.S [2:4] src/asm/make_x86_64_ms_pe_clang_gas.S [2:5] src/asm/make_x86_64_ms_pe_gas.asm [2:5] src/asm/make_x86_64_ms_pe_masm.masm [2:4] @@ -132,19 +103,11 @@ BELONGS ya.make src/asm/ontop_i386_ms_pe_masm.masm [2:4] src/asm/ontop_i386_sysv_elf_gas.S [2:4] src/asm/ontop_i386_sysv_macho_gas.S [2:4] - src/asm/ontop_mips32_o32_elf_gas.S [2:4] - src/asm/ontop_ppc32_sysv_elf_gas.S [2:4] - src/asm/ontop_ppc32_sysv_macho_gas.S [2:4] - src/asm/ontop_ppc32_sysv_xcoff_gas.S [2:4] - src/asm/ontop_ppc64_sysv_elf_gas.S [2:4] - src/asm/ontop_ppc64_sysv_macho_gas.S [2:4] - src/asm/ontop_ppc64_sysv_xcoff_gas.S [2:4] src/asm/ontop_x86_64_ms_pe_clang_gas.S [2:5] src/asm/ontop_x86_64_ms_pe_gas.asm [2:5] src/asm/ontop_x86_64_ms_pe_masm.masm [2:4] src/asm/ontop_x86_64_sysv_elf_gas.S [2:4] src/asm/ontop_x86_64_sysv_macho_gas.S [2:4] - src/asm/tail_ontop_ppc32_sysv.cpp [2:4] src/untested.cpp [2:4] KEEP COPYRIGHT_SERVICE_LABEL 9ed7b7468c684d33492a4176e9cf31b1 @@ -157,21 +120,6 @@ BELONGS ya.make Files with this license: src/fcontext.cpp [1:3] -KEEP COPYRIGHT_SERVICE_LABEL b56e68f168b25ead2610488b3af94842 -BELONGS ya.make - License text: - Copyright Jiaxun Yang 2018. - Distributed under the Boost Software License, Version 1.0. - (See accompanying file LICENSE_1_0.txt or copy at - Scancode info: - Original SPDX id: COPYRIGHT_SERVICE_LABEL - Score : 100.00 - Match type : COPYRIGHT - Files with this license: - src/asm/jump_mips64_n64_elf_gas.S [2:4] - src/asm/make_mips64_n64_elf_gas.S [2:4] - src/asm/ontop_mips64_n64_elf_gas.S [2:4] - KEEP COPYRIGHT_SERVICE_LABEL bdb654e3fbbec678064a117bc379b41b BELONGS ya.make License text: @@ -183,15 +131,9 @@ BELONGS ya.make Score : 100.00 Match type : COPYRIGHT Files with this license: - src/asm/jump_combined_sysv_macho_gas.S [2:4] src/asm/jump_i386_x86_64_sysv_macho_gas.S [2:4] - src/asm/jump_ppc32_ppc64_sysv_macho_gas.S [2:4] - src/asm/make_combined_sysv_macho_gas.S [2:4] src/asm/make_i386_x86_64_sysv_macho_gas.S [2:4] - src/asm/make_ppc32_ppc64_sysv_macho_gas.S [2:4] - src/asm/ontop_combined_sysv_macho_gas.S [2:4] src/asm/ontop_i386_x86_64_sysv_macho_gas.S [2:4] - src/asm/ontop_ppc32_ppc64_sysv_macho_gas.S [2:4] KEEP COPYRIGHT_SERVICE_LABEL c3ce9643507aa0942a28211fe8f95eff BELONGS ya.make diff --git a/contrib/restricted/boost/context/.yandex_meta/devtools.licenses.report b/contrib/restricted/boost/context/.yandex_meta/devtools.licenses.report index 92e42b34046..2ab10925410 100644 --- a/contrib/restricted/boost/context/.yandex_meta/devtools.licenses.report +++ b/contrib/restricted/boost/context/.yandex_meta/devtools.licenses.report @@ -149,34 +149,6 @@ BELONGS ya.make src/untested.cpp [3:5] src/windows/stack_traits.cpp [3:5] -KEEP BSL-1.0 a56863ff22557bda50c7e49c3d85f911 -BELONGS ya.make - License text: - // 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) - Scancode info: - Original SPDX id: BSL-1.0 - Score : 100.00 - Match type : NOTICE - Links : http://www.boost.org/LICENSE_1_0.txt, http://www.boost.org/users/license.html, https://spdx.org/licenses/BSL-1.0 - Files with this license: - src/asm/tail_ontop_ppc32_sysv.cpp [3:5] - -KEEP BSL-1.0 b8bd11cab76fe04f0b68b48ae6bc9630 -BELONGS ya.make - License text: - Distributed under the Boost Software License, Version 1.0. - (See accompanying file LICENSE_1_0.txt or copy at - http://www.boost.org/LICENSE - Scancode info: - Original SPDX id: BSL-1.0 - Score : 88.89 - Match type : NOTICE - Links : http://www.boost.org/LICENSE_1_0.txt, http://www.boost.org/users/license.html, https://spdx.org/licenses/BSL-1.0 - Files with this license: - src/asm/ontop_mips64_n64_elf_gas.S [3:5] - KEEP BSL-1.0 d398f407edc1c91c48f2e7613f7602d5 BELONGS ya.make License text: @@ -224,55 +196,20 @@ BELONGS ya.make src/asm/jump_arm64_aapcs_macho_gas.S [3:5] src/asm/jump_arm_aapcs_elf_gas.S [3:5] src/asm/jump_arm_aapcs_macho_gas.S [3:5] - src/asm/jump_combined_sysv_macho_gas.S [3:5] src/asm/jump_i386_sysv_elf_gas.S [3:5] src/asm/jump_i386_sysv_macho_gas.S [3:5] src/asm/jump_i386_x86_64_sysv_macho_gas.S [3:5] - src/asm/jump_mips32_o32_elf_gas.S [3:5] - src/asm/jump_mips64_n64_elf_gas.S [3:5] - src/asm/jump_ppc32_ppc64_sysv_macho_gas.S [3:5] - src/asm/jump_ppc32_sysv_elf_gas.S [3:5] - src/asm/jump_ppc32_sysv_macho_gas.S [3:5] - src/asm/jump_ppc32_sysv_xcoff_gas.S [3:5] - src/asm/jump_ppc64_sysv_elf_gas.S [3:5] - src/asm/jump_ppc64_sysv_macho_gas.S [3:5] - src/asm/jump_ppc64_sysv_xcoff_gas.S [4:6] - src/asm/jump_riscv64_sysv_elf_gas.S [2:4] - src/asm/jump_sparc64_sysv_elf_gas.S [3:5] src/asm/make_arm64_aapcs_elf_gas.S [3:5] src/asm/make_arm64_aapcs_macho_gas.S [3:5] src/asm/make_arm_aapcs_elf_gas.S [3:5] src/asm/make_arm_aapcs_macho_gas.S [3:5] - src/asm/make_combined_sysv_macho_gas.S [3:5] src/asm/make_i386_sysv_elf_gas.S [3:5] src/asm/make_i386_sysv_macho_gas.S [3:5] src/asm/make_i386_x86_64_sysv_macho_gas.S [3:5] - src/asm/make_mips32_o32_elf_gas.S [3:5] - src/asm/make_mips64_n64_elf_gas.S [3:5] - src/asm/make_ppc32_ppc64_sysv_macho_gas.S [3:5] - src/asm/make_ppc32_sysv_elf_gas.S [3:5] - src/asm/make_ppc32_sysv_macho_gas.S [3:5] - src/asm/make_ppc32_sysv_xcoff_gas.S [3:5] - src/asm/make_ppc64_sysv_elf_gas.S [3:5] - src/asm/make_ppc64_sysv_macho_gas.S [3:5] - src/asm/make_ppc64_sysv_xcoff_gas.S [3:5] - src/asm/make_riscv64_sysv_elf_gas.S [2:4] - src/asm/make_sparc64_sysv_elf_gas.S [3:5] src/asm/ontop_arm64_aapcs_elf_gas.S [3:5] src/asm/ontop_arm64_aapcs_macho_gas.S [3:5] src/asm/ontop_arm_aapcs_elf_gas.S [3:5] src/asm/ontop_arm_aapcs_macho_gas.S [3:5] - src/asm/ontop_combined_sysv_macho_gas.S [3:5] src/asm/ontop_i386_sysv_elf_gas.S [3:5] src/asm/ontop_i386_sysv_macho_gas.S [3:5] src/asm/ontop_i386_x86_64_sysv_macho_gas.S [3:5] - src/asm/ontop_mips32_o32_elf_gas.S [3:5] - src/asm/ontop_ppc32_ppc64_sysv_macho_gas.S [3:5] - src/asm/ontop_ppc32_sysv_elf_gas.S [3:5] - src/asm/ontop_ppc32_sysv_macho_gas.S [3:5] - src/asm/ontop_ppc32_sysv_xcoff_gas.S [3:5] - src/asm/ontop_ppc64_sysv_elf_gas.S [3:5] - src/asm/ontop_ppc64_sysv_macho_gas.S [3:5] - src/asm/ontop_ppc64_sysv_xcoff_gas.S [3:5] - src/asm/ontop_riscv64_sysv_elf_gas.S [2:4] - src/asm/ontop_sparc64_sysv_elf_gas.S [3:5] diff --git a/contrib/restricted/boost/context/.yandex_meta/licenses.list.txt b/contrib/restricted/boost/context/.yandex_meta/licenses.list.txt index 7ab7afd143d..abc7fe5d55e 100644 --- a/contrib/restricted/boost/context/.yandex_meta/licenses.list.txt +++ b/contrib/restricted/boost/context/.yandex_meta/licenses.list.txt @@ -7,12 +7,6 @@ ====================BSL-1.0==================== Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at - http://www.boost.org/LICENSE - - -====================BSL-1.0==================== - 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) @@ -29,12 +23,6 @@ ====================BSL-1.0==================== -// 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) - - -====================BSL-1.0==================== ; 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) @@ -53,12 +41,6 @@ ====================COPYRIGHT==================== - Copyright Jiaxun Yang 2018. - Distributed under the Boost Software License, Version 1.0. - (See accompanying file LICENSE_1_0.txt or copy at - - -====================COPYRIGHT==================== Copyright Oliver Kowalke 2009. Copyright Thomas Sailer 2013. Distributed under the Boost Software License, Version 1.0. @@ -72,12 +54,6 @@ ====================COPYRIGHT==================== - Copyright Claudio Jeker 2024 - Distributed under the Boost Software License, Version 1.0. - (See accompanying file LICENSE_1_0.txt or copy at - - -====================COPYRIGHT==================== Copyright Edward Nevill + Oliver Kowalke 2015 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at diff --git a/contrib/restricted/boost/context/src/asm/jump_combined_sysv_macho_gas.S b/contrib/restricted/boost/context/src/asm/jump_combined_sysv_macho_gas.S deleted file mode 100644 index 34a32f785f2..00000000000 --- a/contrib/restricted/boost/context/src/asm/jump_combined_sysv_macho_gas.S +++ /dev/null @@ -1,24 +0,0 @@ -/* - Copyright Sergue E. Leontiev 2013. - 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) -*/ - -// Stub file for universal binary - -#if defined(__i386__) - #include "jump_i386_sysv_macho_gas.S" -#elif defined(__x86_64__) - #include "jump_x86_64_sysv_macho_gas.S" -#elif defined(__ppc__) - #include "jump_ppc32_sysv_macho_gas.S" -#elif defined(__ppc64__) - #include "jump_ppc64_sysv_macho_gas.S" -#elif defined(__arm__) - #include "jump_arm_aapcs_macho_gas.S" -#elif defined(__arm64__) - #include "jump_arm64_aapcs_macho_gas.S" -#else - #error "No arch's" -#endif diff --git a/contrib/restricted/boost/context/src/asm/jump_loongarch64_sysv_elf_gas.S b/contrib/restricted/boost/context/src/asm/jump_loongarch64_sysv_elf_gas.S deleted file mode 100644 index 6f99e719ec0..00000000000 --- a/contrib/restricted/boost/context/src/asm/jump_loongarch64_sysv_elf_gas.S +++ /dev/null @@ -1,122 +0,0 @@ -/******************************************************* - * * - * ------------------------------------------------- * - * | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | * - * ------------------------------------------------- * - * | 0 | 8 | 16 | 24 | * - * ------------------------------------------------- * - * | FS0 | FS1 | FS2 | FS3 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | * - * ------------------------------------------------- * - * | 32 | 40 | 48 | 56 | * - * ------------------------------------------------- * - * | FS4 | FS5 | FS6 | FS7 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | * - * ------------------------------------------------- * - * | 64 | 72 | 80 | 88 | * - * ------------------------------------------------- * - * | S0 | S1 | S2 | S3 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | * - * ------------------------------------------------- * - * | 96 | 100 | 104 | 108 | 112 | 116 | 120 | 124 | * - * ------------------------------------------------- * - * | S4 | S5 | S6 | S7 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | * - * ------------------------------------------------- * - * | 128 | 132 | 136 | 140 | 144 | 148 | 152 | 156 | * - * ------------------------------------------------- * - * | S8 | FP | RA | PC | * - * ------------------------------------------------- * - * * - * *****************************************************/ - -.file "jump_loongarch64_sysv_elf_gas.S" -.text -.globl jump_fcontext -.hidden jump_fcontext -.align 2 -.type jump_fcontext,@function -jump_fcontext: - # reserve space on stack - addi.d $sp, $sp, -160 - - # save fs0 - fs7 - fst.d $fs0, $sp, 0 - fst.d $fs1, $sp, 8 - fst.d $fs2, $sp, 16 - fst.d $fs3, $sp, 24 - fst.d $fs4, $sp, 32 - fst.d $fs5, $sp, 40 - fst.d $fs6, $sp, 48 - fst.d $fs7, $sp, 56 - - # save s0 - s8, fp, ra - st.d $s0, $sp, 64 - st.d $s1, $sp, 72 - st.d $s2, $sp, 80 - st.d $s3, $sp, 88 - st.d $s4, $sp, 96 - st.d $s5, $sp, 104 - st.d $s6, $sp, 112 - st.d $s7, $sp, 120 - st.d $s8, $sp, 128 - st.d $fp, $sp, 136 - st.d $ra, $sp, 144 - - # save RA as PC - st.d $ra, $sp, 152 - - # store SP (pointing to context-data) in A2 - move $a2, $sp - - # restore SP (pointing to context-data) from A0 - move $sp, $a0 - - # load fs0 - fs7 - fld.d $fs0, $sp, 0 - fld.d $fs1, $sp, 8 - fld.d $fs2, $sp, 16 - fld.d $fs3, $sp, 24 - fld.d $fs4, $sp, 32 - fld.d $fs5, $sp, 40 - fld.d $fs6, $sp, 48 - fld.d $fs7, $sp, 56 - - #load s0 - s7 - ld.d $s0, $sp, 64 - ld.d $s1, $sp, 72 - ld.d $s2, $sp, 80 - ld.d $s3, $sp, 88 - ld.d $s4, $sp, 96 - ld.d $s5, $sp, 104 - ld.d $s6, $sp, 112 - ld.d $s7, $sp, 120 - ld.d $s8, $sp, 128 - ld.d $fp, $sp, 136 - ld.d $ra, $sp, 144 - - # return transfer_t from jump - # pass transfer_t as first arg in context function - # a0 == FCTX, a1 == DATA - move $a0, $a2 - - # load PC - ld.d $a2, $sp, 152 - - # restore stack - addi.d $sp, $sp, 160 - - # jump to context - jr $a2 -.size jump_fcontext, .-jump_fcontext - -/* Mark that we don't need executable stack. */ -.section .note.GNU-stack,"",%progbits diff --git a/contrib/restricted/boost/context/src/asm/jump_mips32_o32_elf_gas.S b/contrib/restricted/boost/context/src/asm/jump_mips32_o32_elf_gas.S deleted file mode 100644 index df0676b604c..00000000000 --- a/contrib/restricted/boost/context/src/asm/jump_mips32_o32_elf_gas.S +++ /dev/null @@ -1,120 +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 | * - * ------------------------------------------------- * - * | 0 | 4 | 8 | 12 | 16 | 20 | 24 | 28 | * - * ------------------------------------------------- * - * | F20 | F22 | F24 | F26 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | * - * ------------------------------------------------- * - * | 32 | 36 | 40 | 44 | 48 | 52 | 56 | 60 | * - * ------------------------------------------------- * - * | F28 | F30 | S0 | S1 | S2 | S3 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | * - * ------------------------------------------------- * - * | 64 | 68 | 72 | 76 | 80 | 84 | 88 | 92 | * - * ------------------------------------------------- * - * | S4 | S5 | S6 | S7 | FP |hiddn| RA | PC | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | * - * ------------------------------------------------- * - * | 96 | 100 | 104 | 108 | 112 | 116 | 120 | 124 | * - * ------------------------------------------------- * - * | ABI ARGS | GP | FCTX| DATA| | * - * ------------------------------------------------- * - * * - * *****************************************************/ - -.file "jump_mips32_o32_elf_gas.S" -.text -.globl jump_fcontext -.hidden jump_fcontext -.align 2 -.type jump_fcontext,@function -.ent jump_fcontext -jump_fcontext: - # reserve space on stack - addiu $sp, $sp, -96 - - sw $s0, 48($sp) # save S0 - sw $s1, 52($sp) # save S1 - sw $s2, 56($sp) # save S2 - sw $s3, 60($sp) # save S3 - sw $s4, 64($sp) # save S4 - sw $s5, 68($sp) # save S5 - sw $s6, 72($sp) # save S6 - sw $s7, 76($sp) # save S7 - sw $fp, 80($sp) # save FP - sw $a0, 84($sp) # save hidden, address of returned transfer_t - sw $ra, 88($sp) # save RA - sw $ra, 92($sp) # save RA as PC - -#if defined(__mips_hard_float) - s.d $f20, ($sp) # save F20 - s.d $f22, 8($sp) # save F22 - s.d $f24, 16($sp) # save F24 - s.d $f26, 24($sp) # save F26 - s.d $f28, 32($sp) # save F28 - s.d $f30, 40($sp) # save F30 -#endif - - # store SP (pointing to context-data) in A0 - move $a0, $sp - - # restore SP (pointing to context-data) from A1 - move $sp, $a1 - -#if defined(__mips_hard_float) - l.d $f20, ($sp) # restore F20 - l.d $f22, 8($sp) # restore F22 - l.d $f24, 16($sp) # restore F24 - l.d $f26, 24($sp) # restore F26 - l.d $f28, 32($sp) # restore F28 - l.d $f30, 40($sp) # restore F30 -#endif - - lw $s0, 48($sp) # restore S0 - lw $s1, 52($sp) # restore S1 - lw $s2, 56($sp) # restore S2 - lw $s3, 60($sp) # restore S3 - lw $s4, 64($sp) # restore S4 - lw $s5, 68($sp) # restore S5 - lw $s6, 72($sp) # restore S6 - lw $s7, 76($sp) # restore S7 - lw $fp, 80($sp) # restore FP - lw $v0, 84($sp) # restore hidden, address of returned transfer_t - lw $ra, 88($sp) # restore RA - - # load PC - lw $t9, 92($sp) - - # adjust stack - addiu $sp, $sp, 96 - - # return transfer_t from jump - sw $a0, ($v0) # fctx of transfer_t - sw $a2, 4($v0) # data of transfer_t - # pass transfer_t as first arg in context function - # A0 == fctx, A1 == data - move $a1, $a2 - - # jump to context - jr $t9 -.end jump_fcontext -.size jump_fcontext, .-jump_fcontext - -/* Mark that we don't need executable stack. */ -.section .note.GNU-stack,"",%progbits diff --git a/contrib/restricted/boost/context/src/asm/jump_mips64_n64_elf_gas.S b/contrib/restricted/boost/context/src/asm/jump_mips64_n64_elf_gas.S deleted file mode 100644 index 60027fe6173..00000000000 --- a/contrib/restricted/boost/context/src/asm/jump_mips64_n64_elf_gas.S +++ /dev/null @@ -1,125 +0,0 @@ -/* - Copyright Jiaxun Yang 2018. - 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 | * - * ------------------------------------------------- * - * | 0 | 8 | 16 | 24 | * - * ------------------------------------------------- * - * | F24 | F25 | F26 | F27 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | * - * ------------------------------------------------- * - * | 32 | 40 | 48 | 56 | * - * ------------------------------------------------- * - * | F28 | F29 | F30 | F31 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | * - * ------------------------------------------------- * - * | 64 | 72 | 80 | 88 | * - * ------------------------------------------------- * - * | S0 | S1 | S2 | S3 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | * - * ------------------------------------------------- * - * | 96 | 100 | 104 | 108 | 112 | 116 | 120 | 124 | * - * ------------------------------------------------- * - * | S4 | S5 | S6 | S7 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | * - * ------------------------------------------------- * - * | 128 | 132 | 136 | 140 | 144 | 148 | 152 | 156 | * - * ------------------------------------------------- * - * | FP | GP | RA | PC | * - * ------------------------------------------------- * - * * - * *****************************************************/ - -.file "jump_mips64_n64_elf_gas.S" -.text -.globl jump_fcontext -.hidden jump_fcontext -.align 3 -.type jump_fcontext,@function -.ent jump_fcontext -jump_fcontext: - # reserve space on stack - daddiu $sp, $sp, -160 - - sd $s0, 64($sp) # save S0 - sd $s1, 72($sp) # save S1 - sd $s2, 80($sp) # save S2 - sd $s3, 88($sp) # save S3 - sd $s4, 96($sp) # save S4 - sd $s5, 104($sp) # save S5 - sd $s6, 112($sp) # save S6 - sd $s7, 120($sp) # save S7 - sd $fp, 128($sp) # save FP - sd $ra, 144($sp) # save RA - sd $ra, 152($sp) # save RA as PC - -#if defined(__mips_hard_float) - s.d $f24, 0($sp) # save F24 - s.d $f25, 8($sp) # save F25 - s.d $f26, 16($sp) # save F26 - s.d $f27, 24($sp) # save F27 - s.d $f28, 32($sp) # save F28 - s.d $f29, 40($sp) # save F29 - s.d $f30, 48($sp) # save F30 - s.d $f31, 56($sp) # save F31 -#endif - - # store SP (pointing to old context-data) in v0 as return - move $v0, $sp - - # get SP (pointing to new context-data) from a0 param - move $sp, $a0 - -#if defined(__mips_hard_float) - l.d $f24, 0($sp) # restore F24 - l.d $f25, 8($sp) # restore F25 - l.d $f26, 16($sp) # restore F26 - l.d $f27, 24($sp) # restore F27 - l.d $f28, 32($sp) # restore F28 - l.d $f29, 40($sp) # restore F29 - l.d $f30, 48($sp) # restore F30 - l.d $f31, 56($sp) # restore F31 -#endif - - ld $s0, 64($sp) # restore S0 - ld $s1, 72($sp) # restore S1 - ld $s2, 80($sp) # restore S2 - ld $s3, 88($sp) # restore S3 - ld $s4, 96($sp) # restore S4 - ld $s5, 104($sp) # restore S5 - ld $s6, 112($sp) # restore S6 - ld $s7, 120($sp) # restore S7 - ld $fp, 128($sp) # restore FP - ld $ra, 144($sp) # restore RAa - - # load PC - ld $t9, 152($sp) - - # adjust stack - daddiu $sp, $sp, 160 - - move $a0, $v0 # move old sp from v0 to a0 as param - move $v1, $a1 # move *data from a1 to v1 as return - - # jump to context - jr $t9 -.end jump_fcontext -.size jump_fcontext, .-jump_fcontext - -/* Mark that we don't need executable stack. */ -.section .note.GNU-stack,"",%progbits diff --git a/contrib/restricted/boost/context/src/asm/jump_ppc32_ppc64_sysv_macho_gas.S b/contrib/restricted/boost/context/src/asm/jump_ppc32_ppc64_sysv_macho_gas.S deleted file mode 100644 index f175e31233f..00000000000 --- a/contrib/restricted/boost/context/src/asm/jump_ppc32_ppc64_sysv_macho_gas.S +++ /dev/null @@ -1,16 +0,0 @@ -/* - Copyright Sergue E. Leontiev 2013. - 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) -*/ - -// Stub file for universal binary - -#if defined(__ppc__) - #include "jump_ppc32_sysv_macho_gas.S" -#elif defined(__ppc64__) - #include "jump_ppc64_sysv_macho_gas.S" -#else - #error "No arch's" -#endif diff --git a/contrib/restricted/boost/context/src/asm/jump_ppc32_sysv_elf_gas.S b/contrib/restricted/boost/context/src/asm/jump_ppc32_sysv_elf_gas.S deleted file mode 100644 index e3133664006..00000000000 --- a/contrib/restricted/boost/context/src/asm/jump_ppc32_sysv_elf_gas.S +++ /dev/null @@ -1,202 +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 | 4 | 8 | 12 | 16 | 20 | 24 | 28 | * - * ------------------------------------------------- * - * |bchai|hiddn| fpscr | PC | CR | R14 | R15 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 32 | 36 | 40 | 44 | 48 | 52 | 56 | 60 | * - * ------------------------------------------------- * - * | R16 | R17 | R18 | R19 | R20 | R21 | R22 | R23 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 64 | 68 | 72 | 76 | 80 | 84 | 88 | 92 | * - * ------------------------------------------------- * - * | R24 | R25 | R26 | R27 | R28 | R29 | R30 | R31 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 96 | 100 | 104 | 108 | 112 | 116 | 120 | 124 | * - * ------------------------------------------------- * - * | F14 | F15 | F16 | F17 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 128 | 132 | 136 | 140 | 144 | 148 | 152 | 156 | * - * ------------------------------------------------- * - * | F18 | F19 | F20 | F21 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 160 | 164 | 168 | 172 | 176 | 180 | 184 | 188 | * - * ------------------------------------------------- * - * | F22 | F23 | F24 | F25 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 192 | 196 | 200 | 204 | 208 | 212 | 216 | 220 | * - * ------------------------------------------------- * - * | F26 | F27 | F28 | F29 | * - * ------------------------------------------------- * - * ------------------------|------------ * - * | 224 | 228 | 232 | 236 | 240 | 244 | * - * ------------------------|------------ * - * | F30 | F31 |bchai| LR | * - * ------------------------|------------ * - * * - *******************************************************/ - -.file "jump_ppc32_sysv_elf_gas.S" -.text -.globl jump_fcontext -.hidden jump_fcontext -.align 2 -.type jump_fcontext,@function -jump_fcontext: - # Linux: jump_fcontext( hidden transfer_t * R3, R4, R5) - # Other: transfer_t R3:R4 = jump_fcontext( R3, R4) - - mflr %r0 # return address from LR - mffs %f0 # FPSCR - mfcr %r8 # condition register - - stwu %r1, -240(%r1) # allocate stack space, R1 % 16 == 0 - stw %r0, 244(%r1) # save LR in caller's frame - -#ifdef __linux__ - stw %r3, 4(%r1) # hidden pointer -#endif - - stfd %f0, 8(%r1) # FPSCR - stw %r0, 16(%r1) # LR as PC - stw %r8, 20(%r1) # CR - - # Save registers R14 to R31. - # Don't change R2, the thread-local storage pointer. - # Don't change R13, the small data pointer. - stw %r14, 24(%r1) - stw %r15, 28(%r1) - stw %r16, 32(%r1) - stw %r17, 36(%r1) - stw %r18, 40(%r1) - stw %r19, 44(%r1) - stw %r20, 48(%r1) - stw %r21, 52(%r1) - stw %r22, 56(%r1) - stw %r23, 60(%r1) - stw %r24, 64(%r1) - stw %r25, 68(%r1) - stw %r26, 72(%r1) - stw %r27, 76(%r1) - stw %r28, 80(%r1) - stw %r29, 84(%r1) - stw %r30, 88(%r1) - stw %r31, 92(%r1) - - # Save registers F14 to F31 in slots with 8-byte alignment. - # 4-byte alignment may stall the pipeline of some processors. - # Less than 4 may cause alignment traps. - stfd %f14, 96(%r1) - stfd %f15, 104(%r1) - stfd %f16, 112(%r1) - stfd %f17, 120(%r1) - stfd %f18, 128(%r1) - stfd %f19, 136(%r1) - stfd %f20, 144(%r1) - stfd %f21, 152(%r1) - stfd %f22, 160(%r1) - stfd %f23, 168(%r1) - stfd %f24, 176(%r1) - stfd %f25, 184(%r1) - stfd %f26, 192(%r1) - stfd %f27, 200(%r1) - stfd %f28, 208(%r1) - stfd %f29, 216(%r1) - stfd %f30, 224(%r1) - stfd %f31, 232(%r1) - - # store RSP (pointing to context-data) in R7/R6 - # restore RSP (pointing to context-data) from R4/R3 -#ifdef __linux__ - mr %r7, %r1 - mr %r1, %r4 - lwz %r3, 4(%r1) # hidden pointer -#else - mr %r6, %r1 - mr %r1, %r3 -#endif - - lfd %f0, 8(%r1) # FPSCR - lwz %r0, 16(%r1) # PC - lwz %r8, 20(%r1) # CR - - mtfsf 0xff, %f0 # restore FPSCR - mtctr %r0 # load CTR with PC - mtcr %r8 # restore CR - - # restore R14 to R31 - lwz %r14, 24(%r1) - lwz %r15, 28(%r1) - lwz %r16, 32(%r1) - lwz %r17, 36(%r1) - lwz %r18, 40(%r1) - lwz %r19, 44(%r1) - lwz %r20, 48(%r1) - lwz %r21, 52(%r1) - lwz %r22, 56(%r1) - lwz %r23, 60(%r1) - lwz %r24, 64(%r1) - lwz %r25, 68(%r1) - lwz %r26, 72(%r1) - lwz %r27, 76(%r1) - lwz %r28, 80(%r1) - lwz %r29, 84(%r1) - lwz %r30, 88(%r1) - lwz %r31, 92(%r1) - - # restore F14 to F31 - lfd %f14, 96(%r1) - lfd %f15, 104(%r1) - lfd %f16, 112(%r1) - lfd %f17, 120(%r1) - lfd %f18, 128(%r1) - lfd %f19, 136(%r1) - lfd %f20, 144(%r1) - lfd %f21, 152(%r1) - lfd %f22, 160(%r1) - lfd %f23, 168(%r1) - lfd %f24, 176(%r1) - lfd %f25, 184(%r1) - lfd %f26, 192(%r1) - lfd %f27, 200(%r1) - lfd %f28, 208(%r1) - lfd %f29, 216(%r1) - lfd %f30, 224(%r1) - lfd %f31, 232(%r1) - - # restore LR from caller's frame - lwz %r0, 244(%r1) - mtlr %r0 - - # adjust stack - addi %r1, %r1, 240 - - # return transfer_t -#ifdef __linux__ - stw %r7, 0(%r3) - stw %r5, 4(%r3) -#else - mr %r3, %r6 - # %r4, %r4 -#endif - - # jump to context - bctr -.size jump_fcontext, .-jump_fcontext - -/* Mark that we don't need executable stack. */ -.section .note.GNU-stack,"",%progbits diff --git a/contrib/restricted/boost/context/src/asm/jump_ppc32_sysv_macho_gas.S b/contrib/restricted/boost/context/src/asm/jump_ppc32_sysv_macho_gas.S deleted file mode 100644 index 10e6113639f..00000000000 --- a/contrib/restricted/boost/context/src/asm/jump_ppc32_sysv_macho_gas.S +++ /dev/null @@ -1,202 +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 | * - * ------------------------------------------------- * - * | 0 | 4 | 8 | 12 | 16 | 20 | 24 | 28 | * - * ------------------------------------------------- * - * | F14 | F15 | F16 | F17 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | * - * ------------------------------------------------- * - * | 32 | 36 | 40 | 44 | 48 | 52 | 56 | 60 | * - * ------------------------------------------------- * - * | F18 | F19 | F20 | F21 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | * - * ------------------------------------------------- * - * | 64 | 68 | 72 | 76 | 80 | 84 | 88 | 92 | * - * ------------------------------------------------- * - * | F22 | F23 | F24 | F25 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | * - * ------------------------------------------------- * - * | 96 | 100 | 104 | 108 | 112 | 116 | 120 | 124 | * - * ------------------------------------------------- * - * | F26 | F27 | F28 | F29 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | * - * ------------------------------------------------- * - * | 128 | 132 | 136 | 140 | 144 | 148 | 152 | 156 | * - * ------------------------------------------------- * - * | F30 | F31 | fpscr | R13 | R14 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | * - * ------------------------------------------------- * - * | 160 | 164 | 168 | 172 | 176 | 180 | 184 | 188 | * - * ------------------------------------------------- * - * | R15 | R16 | R17 | R18 | R19 | R20 | R21 | R22 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | * - * ------------------------------------------------- * - * | 192 | 196 | 200 | 204 | 208 | 212 | 216 | 220 | * - * ------------------------------------------------- * - * | R23 | R24 | R25 | R26 | R27 | R28 | R29 | R30 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | * - * ------------------------------------------------- * - * | 224 | 228 | 232 | 236 | 240 | 244 | 248 | 252 | * - * ------------------------------------------------- * - * | R31 |hiddn| CR | LR | PC |bchai|linkr| FCTX| * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 64 | | * - * ------------------------------------------------- * - * | 256 | | * - * ------------------------------------------------- * - * | DATA| | * - * ------------------------------------------------- * - * * - *******************************************************/ - -.text -.private_extern _jump_fcontext -.globl _jump_fcontext -.align 2 -_jump_fcontext: - ; reserve space on stack - subi r1, r1, 244 - - stfd f14, 0(r1) ; save F14 - stfd f15, 8(r1) ; save F15 - stfd f16, 16(r1) ; save F16 - stfd f17, 24(r1) ; save F17 - stfd f18, 32(r1) ; save F18 - stfd f19, 40(r1) ; save F19 - stfd f20, 48(r1) ; save F20 - stfd f21, 56(r1) ; save F21 - stfd f22, 64(r1) ; save F22 - stfd f23, 72(r1) ; save F23 - stfd f24, 80(r1) ; save F24 - stfd f25, 88(r1) ; save F25 - stfd f26, 96(r1) ; save F26 - stfd f27, 104(r1) ; save F27 - stfd f28, 112(r1) ; save F28 - stfd f29, 120(r1) ; save F29 - stfd f30, 128(r1) ; save F30 - stfd f31, 136(r1) ; save F31 - mffs f0 ; load FPSCR - stfd f0, 144(r1) ; save FPSCR - - stw r13, 152(r1) ; save R13 - stw r14, 156(r1) ; save R14 - stw r15, 160(r1) ; save R15 - stw r16, 164(r1) ; save R16 - stw r17, 168(r1) ; save R17 - stw r18, 172(r1) ; save R18 - stw r19, 176(r1) ; save R19 - stw r20, 180(r1) ; save R20 - stw r21, 184(r1) ; save R21 - stw r22, 188(r1) ; save R22 - stw r23, 192(r1) ; save R23 - stw r24, 196(r1) ; save R24 - stw r25, 200(r1) ; save R25 - stw r26, 204(r1) ; save R26 - stw r27, 208(r1) ; save R27 - stw r28, 212(r1) ; save R28 - stw r29, 216(r1) ; save R29 - stw r30, 220(r1) ; save R30 - stw r31, 224(r1) ; save R31 - stw r3, 228(r1) ; save hidden - - ; save CR - mfcr r0 - stw r0, 232(r1) - ; save LR - mflr r0 - stw r0, 236(r1) - ; save LR as PC - stw r0, 240(r1) - - ; store RSP (pointing to context-data) in R6 - mr r6, r1 - - ; restore RSP (pointing to context-data) from R4 - mr r1, r4 - - lfd f14, 0(r1) ; restore F14 - lfd f15, 8(r1) ; restore F15 - lfd f16, 16(r1) ; restore F16 - lfd f17, 24(r1) ; restore F17 - lfd f18, 32(r1) ; restore F18 - lfd f19, 40(r1) ; restore F19 - lfd f20, 48(r1) ; restore F20 - lfd f21, 56(r1) ; restore F21 - lfd f22, 64(r1) ; restore F22 - lfd f23, 72(r1) ; restore F23 - lfd f24, 80(r1) ; restore F24 - lfd f25, 88(r1) ; restore F25 - lfd f26, 96(r1) ; restore F26 - lfd f27, 104(r1) ; restore F27 - lfd f28, 112(r1) ; restore F28 - lfd f29, 120(r1) ; restore F29 - lfd f30, 128(r1) ; restore F30 - lfd f31, 136(r1) ; restore F31 - lfd f0, 144(r1) ; load FPSCR - mtfsf 0xff, f0 ; restore FPSCR - - lwz r13, 152(r1) ; restore R13 - lwz r14, 156(r1) ; restore R14 - lwz r15, 160(r1) ; restore R15 - lwz r16, 164(r1) ; restore R16 - lwz r17, 168(r1) ; restore R17 - lwz r18, 172(r1) ; restore R18 - lwz r19, 176(r1) ; restore R19 - lwz r20, 180(r1) ; restore R20 - lwz r21, 184(r1) ; restore R21 - lwz r22, 188(r1) ; restore R22 - lwz r23, 192(r1) ; restore R23 - lwz r24, 196(r1) ; restore R24 - lwz r25, 200(r1) ; restore R25 - lwz r26, 204(r1) ; restore R26 - lwz r27, 208(r1) ; restore R27 - lwz r28, 212(r1) ; restore R28 - lwz r29, 216(r1) ; restore R29 - lwz r30, 220(r1) ; restore R30 - lwz r31, 224(r1) ; restore R31 - lwz r3, 228(r1) ; restore hidden - - ; restore CR - lwz r0, 232(r1) - mtcr r0 - ; restore LR - lwz r0, 236(r1) - mtlr r0 - ; load PC - lwz r0, 240(r1) - ; restore CTR - mtctr r0 - - ; adjust stack - addi r1, r1, 244 - - ; return transfer_t - stw r6, 0(r3) - stw r5, 4(r3) - - ; jump to context - bctr diff --git a/contrib/restricted/boost/context/src/asm/jump_ppc32_sysv_xcoff_gas.S b/contrib/restricted/boost/context/src/asm/jump_ppc32_sysv_xcoff_gas.S deleted file mode 100644 index 1854613d761..00000000000 --- a/contrib/restricted/boost/context/src/asm/jump_ppc32_sysv_xcoff_gas.S +++ /dev/null @@ -1,216 +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 | 4 | 8 | 12 | 16 | 20 | 24 | 28 | * - * ------------------------------------------------- * - * |bchai| CR | LR |compl| link| TOC | R14 | R15 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 32 | 36 | 40 | 44 | 48 | 52 | 56 | 60 | * - * ------------------------------------------------- * - * | R16 | R17 | R18 | R19 | R20 | R21 | R22 | R23 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 64 | 68 | 72 | 76 | 80 | 84 | 88 | 92 | * - * ------------------------------------------------- * - * | R24 | R25 | R26 | R27 | R28 | R29 | R30 | R31 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 96 | 100 | 104 | 108 | 112 | 116 | 120 | 124 | * - * ------------------------------------------------- * - * | F14 | F15 | F16 | F17 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 128 | 132 | 136 | 140 | 144 | 148 | 152 | 156 | * - * ------------------------------------------------- * - * | F18 | F19 | F20 | F21 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 160 | 164 | 168 | 172 | 176 | 180 | 184 | 188 | * - * ------------------------------------------------- * - * | F22 | F23 | F24 | F25 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 192 | 196 | 200 | 204 | 208 | 212 | 216 | 220 | * - * ------------------------------------------------- * - * | F26 | F27 | F28 | F29 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 224 | 228 | 232 | 236 | 240 | 244 | 248 | 252 | * - * ------------------------------------------------- * - * | F30 | F31 | PC |hiddn| fpscr | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 256 | 260 | 264 | 268 | 272 | 276 | 280 | 284 | * - * ------------------------------------------------- * - * |bchai|savCR|savLR|compl| link|svTOC| FCTX| DATA| * - * ------------------------------------------------- * - * * - *******************************************************/ - - .file "jump_ppc32_sysv_xcoff_gas.S" - .toc - .csect .text[PR], 5 - .globl jump_fcontext[DS] - .globl .jump_fcontext - .csect jump_fcontext[DS] -jump_fcontext: - .long .jump_fcontext[PR], TOC[tc0], 0 - .csect .text[PR], 5 -.jump_fcontext: - # reserve space on stack - subi 1, 1, 256 - - # save CR - mfcr 0 - stw 0, 4(1) - # save LR - mflr 0 - stw 0, 8(1) - # save LR as PC - stw 0, 240(1) - # save TOC - stw 2, 20(1) - - # Save registers R14 to R31. - stw 14, 24(1) - stw 15, 28(1) - stw 16, 32(1) - stw 17, 36(1) - stw 18, 40(1) - stw 19, 44(1) - stw 20, 48(1) - stw 21, 52(1) - stw 22, 56(1) - stw 23, 60(1) - stw 24, 64(1) - stw 25, 68(1) - stw 26, 72(1) - stw 27, 76(1) - stw 28, 80(1) - stw 29, 84(1) - stw 30, 88(1) - stw 31, 92(1) - - # Save registers F14 to F31 in slots with 8-byte alignment. - # 4-byte alignment may stall the pipeline of some processors. - # Less than 4 may cause alignment traps. - stfd 14, 96(1) - stfd 15, 104(1) - stfd 16, 112(1) - stfd 17, 120(1) - stfd 18, 128(1) - stfd 19, 136(1) - stfd 20, 144(1) - stfd 21, 152(1) - stfd 22, 160(1) - stfd 23, 168(1) - stfd 24, 176(1) - stfd 25, 184(1) - stfd 26, 192(1) - stfd 27, 200(1) - stfd 28, 208(1) - stfd 29, 216(1) - stfd 30, 224(1) - stfd 31, 232(1) - - # hidden pointer - stw 3, 244(1) - - mffs 0 # load FPSCR - stfd 0, 248(1) # save FPSCR - - - # store RSP (pointing to context-data) in R6 - mr 6, 1 - - # restore RSP (pointing to context-data) from R4 - mr 1, 4 - - # restore CR - lwz 0, 4(1) - mtcr 0 - # restore LR - lwz 0, 8(1) - mtlr 0 - # load PC - lwz 0, 240(1) - mtctr 0 - - # restore TOC - lwz 2, 20(1) - - # restore R14 to R31 - lwz 14, 24(1) - lwz 15, 28(1) - lwz 16, 32(1) - lwz 17, 36(1) - lwz 18, 40(1) - lwz 19, 44(1) - lwz 20, 48(1) - lwz 21, 52(1) - lwz 22, 56(1) - lwz 23, 60(1) - lwz 24, 64(1) - lwz 25, 68(1) - lwz 26, 72(1) - lwz 27, 76(1) - lwz 28, 80(1) - lwz 29, 84(1) - lwz 30, 88(1) - lwz 31, 92(1) - - # restore F14 to F31 - lfd 14, 96(1) - lfd 15, 104(1) - lfd 16, 112(1) - lfd 17, 120(1) - lfd 18, 128(1) - lfd 19, 136(1) - lfd 20, 144(1) - lfd 21, 152(1) - lfd 22, 160(1) - lfd 23, 168(1) - lfd 24, 176(1) - lfd 25, 184(1) - lfd 26, 192(1) - lfd 27, 200(1) - lfd 28, 208(1) - lfd 29, 216(1) - lfd 30, 224(1) - lfd 31, 232(1) - - # hidden pointer - lwz 3, 244(1) - - lfd 0, 248(1) # load FPSCR - mtfsf 0xff, 0 # restore FPSCR - - # adjust stack - addi 1, 1, 256 - - # zero in r3 indicates first jump to context-function - cmpdi 3, 0 - beq use_entry_arg - - # return transfer_t - stw 6, 0(3) - stw 5, 4(3) - - # jump to context - bctr - -use_entry_arg: - # copy transfer_t into transfer_fn arg registers - mr 3, 6 - mr 4, 5 - - # jump to context - bctr diff --git a/contrib/restricted/boost/context/src/asm/jump_ppc64_sysv_elf_gas.S b/contrib/restricted/boost/context/src/asm/jump_ppc64_sysv_elf_gas.S deleted file mode 100644 index fc3c6d63dc7..00000000000 --- a/contrib/restricted/boost/context/src/asm/jump_ppc64_sysv_elf_gas.S +++ /dev/null @@ -1,222 +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 | * - * ------------------------------------------------- * - * | 0 | 4 | 8 | 12 | 16 | 20 | 24 | 28 | * - * ------------------------------------------------- * - * | TOC | R14 | R15 | R16 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | * - * ------------------------------------------------- * - * | 32 | 36 | 40 | 44 | 48 | 52 | 56 | 60 | * - * ------------------------------------------------- * - * | R17 | R18 | R19 | R20 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | * - * ------------------------------------------------- * - * | 64 | 68 | 72 | 76 | 80 | 84 | 88 | 92 | * - * ------------------------------------------------- * - * | R21 | R22 | R23 | R24 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | * - * ------------------------------------------------- * - * | 96 | 100 | 104 | 108 | 112 | 116 | 120 | 124 | * - * ------------------------------------------------- * - * | R25 | R26 | R27 | R28 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | * - * ------------------------------------------------- * - * | 128 | 132 | 136 | 140 | 144 | 148 | 152 | 156 | * - * ------------------------------------------------- * - * | R29 | R30 | R31 | hidden | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | * - * ------------------------------------------------- * - * | 160 | 164 | 168 | 172 | 176 | 180 | 184 | 188 | * - * ------------------------------------------------- * - * | CR | LR | PC | back-chain| * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | * - * ------------------------------------------------- * - * | 192 | 196 | 200 | 204 | 208 | 212 | 216 | 220 | * - * ------------------------------------------------- * - * | cr saved | lr saved | compiler | linker | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | * - * ------------------------------------------------- * - * | 224 | 228 | 232 | 236 | 240 | 244 | 248 | 252 | * - * ------------------------------------------------- * - * | TOC saved | FCTX | DATA | | * - * ------------------------------------------------- * - * * - *******************************************************/ - -.file "jump_ppc64_sysv_elf_gas.S" -.globl jump_fcontext -.hidden jump_fcontext -#if _CALL_ELF == 2 - .text - .align 2 -jump_fcontext: - addis %r2, %r12, .TOC.-jump_fcontext@ha - addi %r2, %r2, .TOC.-jump_fcontext@l - .localentry jump_fcontext, . - jump_fcontext -#else - .section ".opd","aw" - .align 3 -jump_fcontext: -# ifdef _CALL_LINUX - .quad .L.jump_fcontext,.TOC.@tocbase,0 - .type jump_fcontext,@function - .text - .align 2 -.L.jump_fcontext: -# else - .hidden .jump_fcontext - .globl .jump_fcontext - .quad .jump_fcontext,.TOC.@tocbase,0 - .size jump_fcontext,24 - .type .jump_fcontext,@function - .text - .align 2 -.jump_fcontext: -# endif -#endif - # reserve space on stack - subi %r1, %r1, 184 - -#if _CALL_ELF != 2 - std %r2, 0(%r1) # save TOC -#endif - std %r14, 8(%r1) # save R14 - std %r15, 16(%r1) # save R15 - std %r16, 24(%r1) # save R16 - std %r17, 32(%r1) # save R17 - std %r18, 40(%r1) # save R18 - std %r19, 48(%r1) # save R19 - std %r20, 56(%r1) # save R20 - std %r21, 64(%r1) # save R21 - std %r22, 72(%r1) # save R22 - std %r23, 80(%r1) # save R23 - std %r24, 88(%r1) # save R24 - std %r25, 96(%r1) # save R25 - std %r26, 104(%r1) # save R26 - std %r27, 112(%r1) # save R27 - std %r28, 120(%r1) # save R28 - std %r29, 128(%r1) # save R29 - std %r30, 136(%r1) # save R30 - std %r31, 144(%r1) # save R31 -#if _CALL_ELF != 2 - std %r3, 152(%r1) # save hidden -#endif - - # save CR - mfcr %r0 - std %r0, 160(%r1) - # save LR - mflr %r0 - std %r0, 168(%r1) - # save LR as PC - std %r0, 176(%r1) - - # store RSP (pointing to context-data) in R6 - mr %r6, %r1 - -#if _CALL_ELF == 2 - # restore RSP (pointing to context-data) from R3 - mr %r1, %r3 -#else - # restore RSP (pointing to context-data) from R4 - mr %r1, %r4 - - ld %r2, 0(%r1) # restore TOC -#endif - ld %r14, 8(%r1) # restore R14 - ld %r15, 16(%r1) # restore R15 - ld %r16, 24(%r1) # restore R16 - ld %r17, 32(%r1) # restore R17 - ld %r18, 40(%r1) # restore R18 - ld %r19, 48(%r1) # restore R19 - ld %r20, 56(%r1) # restore R20 - ld %r21, 64(%r1) # restore R21 - ld %r22, 72(%r1) # restore R22 - ld %r23, 80(%r1) # restore R23 - ld %r24, 88(%r1) # restore R24 - ld %r25, 96(%r1) # restore R25 - ld %r26, 104(%r1) # restore R26 - ld %r27, 112(%r1) # restore R27 - ld %r28, 120(%r1) # restore R28 - ld %r29, 128(%r1) # restore R29 - ld %r30, 136(%r1) # restore R30 - ld %r31, 144(%r1) # restore R31 -#if _CALL_ELF != 2 - ld %r3, 152(%r1) # restore hidden -#endif - - # restore CR - ld %r0, 160(%r1) - mtcr %r0 - # restore LR - ld %r0, 168(%r1) - mtlr %r0 - - # load PC - ld %r12, 176(%r1) - # restore CTR - mtctr %r12 - - # adjust stack - addi %r1, %r1, 184 - -#if _CALL_ELF == 2 - # copy transfer_t into transfer_fn arg registers - mr %r3, %r6 - # arg pointer already in %r4 - - # jump to context - bctr - .size jump_fcontext, .-jump_fcontext -#else - # zero in r3 indicates first jump to context-function - cmpdi %r3, 0 - beq use_entry_arg - - # return transfer_t - std %r6, 0(%r3) - std %r5, 8(%r3) - - # jump to context - bctr - -use_entry_arg: - # copy transfer_t into transfer_fn arg registers - mr %r3, %r6 - mr %r4, %r5 - - # jump to context - bctr -# ifdef _CALL_LINUX - .size .jump_fcontext, .-.L.jump_fcontext -# else - .size .jump_fcontext, .-.jump_fcontext -# endif -#endif - - -/* Mark that we don't need executable stack. */ -.section .note.GNU-stack,"",%progbits diff --git a/contrib/restricted/boost/context/src/asm/jump_ppc64_sysv_macho_gas.S b/contrib/restricted/boost/context/src/asm/jump_ppc64_sysv_macho_gas.S deleted file mode 100644 index e4d8944b563..00000000000 --- a/contrib/restricted/boost/context/src/asm/jump_ppc64_sysv_macho_gas.S +++ /dev/null @@ -1,165 +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 | * - * ------------------------------------------------- * - * | 0 | 4 | 8 | 12 | 16 | 20 | 24 | 28 | * - * ------------------------------------------------- * - * | R13 | R14 | R15 | R16 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | * - * ------------------------------------------------- * - * | 32 | 36 | 40 | 44 | 48 | 52 | 56 | 60 | * - * ------------------------------------------------- * - * | R17 | R18 | R19 | R20 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | * - * ------------------------------------------------- * - * | 64 | 68 | 72 | 76 | 80 | 84 | 88 | 92 | * - * ------------------------------------------------- * - * | R21 | R22 | R23 | R24 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | * - * ------------------------------------------------- * - * | 96 | 100 | 104 | 108 | 112 | 116 | 120 | 124 | * - * ------------------------------------------------- * - * | R25 | R26 | R27 | R28 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | * - * ------------------------------------------------- * - * | 128 | 132 | 136 | 140 | 144 | 148 | 152 | 156 | * - * ------------------------------------------------- * - * | R29 | R30 | R31 | hidden | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | * - * ------------------------------------------------- * - * | 160 | 164 | 168 | 172 | 176 | 180 | 184 | 188 | * - * ------------------------------------------------- * - * | CR | LR | PC | back-chain| * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | * - * ------------------------------------------------- * - * | 192 | 196 | 200 | 204 | 208 | 212 | 216 | 220 | * - * ------------------------------------------------- * - * | cr saved | lr saved | compiler | linker | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | * - * ------------------------------------------------- * - * | 224 | 228 | 232 | 236 | 240 | 244 | 248 | 252 | * - * ------------------------------------------------- * - * | FCTX | DATA | | | * - * ------------------------------------------------- * - * * - *******************************************************/ - -.text -.align 2 -.private_extern _jump_fcontext -.globl _jump_fcontext - -_jump_fcontext: - ; reserve space on stack - subi r1, r1, 184 - - std r14, 8(r1) ; save R14 - std r15, 16(r1) ; save R15 - std r16, 24(r1) ; save R16 - std r17, 32(r1) ; save R17 - std r18, 40(r1) ; save R18 - std r19, 48(r1) ; save R19 - std r20, 56(r1) ; save R20 - std r21, 64(r1) ; save R21 - std r22, 72(r1) ; save R22 - std r23, 80(r1) ; save R23 - std r24, 88(r1) ; save R24 - std r25, 96(r1) ; save R25 - std r26, 104(r1) ; save R26 - std r27, 112(r1) ; save R27 - std r28, 120(r1) ; save R28 - std r29, 128(r1) ; save R29 - std r30, 136(r1) ; save R30 - std r31, 144(r1) ; save R31 - std r3, 152(r1) ; save hidden - - ; save CR - mfcr r0 - std r0, 160(r1) - ; save LR - mflr r0 - std r0, 168(r1) - ; save LR as PC - std r0, 176(r1) - - ; store RSP (pointing to context-data) in R6 - mr r6, r1 - - ; restore RSP (pointing to context-data) from R4 - mr r1, r4 - - ld r14, 8(r1) ; restore R14 - ld r15, 16(r1) ; restore R15 - ld r16, 24(r1) ; restore R16 - ld r17, 32(r1) ; restore R17 - ld r18, 40(r1) ; restore R18 - ld r19, 48(r1) ; restore R19 - ld r20, 56(r1) ; restore R20 - ld r21, 64(r1) ; restore R21 - ld r22, 72(r1) ; restore R22 - ld r23, 80(r1) ; restore R23 - ld r24, 88(r1) ; restore R24 - ld r25, 96(r1) ; restore R25 - ld r26, 104(r1) ; restore R26 - ld r27, 112(r1) ; restore R27 - ld r28, 120(r1) ; restore R28 - ld r29, 128(r1) ; restore R29 - ld r30, 136(r1) ; restore R30 - ld r31, 144(r1) ; restore R31 - ld r3, 152(r1) ; restore hidden - - ; restore CR - ld r0, 160(r1) - mtcr r0 - ; restore LR - ld r0, 168(r1) - mtlr r0 - - ; load PC - ld r12, 176(r1) - ; restore CTR - mtctr r12 - - ; adjust stack - addi r1, r1, 184 - - ; zero in r3 indicates first jump to context-function - cmpdi r3, 0 - beq use_entry_arg - - ; return transfer_t - std r6, 0(r3) - std r5, 8(r3) - - ; jump to context - bctr - -use_entry_arg: - ; copy transfer_t into transfer_fn arg registers - mr r3, r6 - mr r4, r5 - - ; jump to context - bctr diff --git a/contrib/restricted/boost/context/src/asm/jump_ppc64_sysv_xcoff_gas.S b/contrib/restricted/boost/context/src/asm/jump_ppc64_sysv_xcoff_gas.S deleted file mode 100644 index f835d2a76a6..00000000000 --- a/contrib/restricted/boost/context/src/asm/jump_ppc64_sysv_xcoff_gas.S +++ /dev/null @@ -1,173 +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 | * - * ------------------------------------------------- * - * | 0 | 4 | 8 | 12 | 16 | 20 | 24 | 28 | * - * ------------------------------------------------- * - * | TOC | R14 | R15 | R16 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | * - * ------------------------------------------------- * - * | 32 | 36 | 40 | 44 | 48 | 52 | 56 | 60 | * - * ------------------------------------------------- * - * | R17 | R18 | R19 | R20 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | * - * ------------------------------------------------- * - * | 64 | 68 | 72 | 76 | 80 | 84 | 88 | 92 | * - * ------------------------------------------------- * - * | R21 | R22 | R23 | R24 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | * - * ------------------------------------------------- * - * | 96 | 100 | 104 | 108 | 112 | 116 | 120 | 124 | * - * ------------------------------------------------- * - * | R25 | R26 | R27 | R28 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | * - * ------------------------------------------------- * - * | 128 | 132 | 136 | 140 | 144 | 148 | 152 | 156 | * - * ------------------------------------------------- * - * | R29 | R30 | R31 | hidden | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | * - * ------------------------------------------------- * - * | 160 | 164 | 168 | 172 | 176 | 180 | 184 | 188 | * - * ------------------------------------------------- * - * | CR | LR | PC | back-chain| * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | * - * ------------------------------------------------- * - * | 192 | 196 | 200 | 204 | 208 | 212 | 216 | 220 | * - * ------------------------------------------------- * - * | cr saved | lr saved | compiler | linker | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | * - * ------------------------------------------------- * - * | 224 | 228 | 232 | 236 | 240 | 244 | 248 | 252 | * - * ------------------------------------------------- * - * | TOC saved | FCTX | DATA | | * - * ------------------------------------------------- * - * * - *******************************************************/ - - .file "jump_ppc64_sysv_xcoff_gas.S" - .toc - .csect .text[PR], 5 - .align 2 - .globl jump_fcontext[DS] - .globl .jump_fcontext - .csect jump_fcontext[DS], 3 -jump_fcontext: - .llong .jump_fcontext[PR], TOC[tc0], 0 - .csect .text[PR], 5 -.jump_fcontext: - # reserve space on stack - subi 1, 1, 184 - - std 2, 0(1) # save TOC - std 14, 8(1) # save R14 - std 15, 16(1) # save R15 - std 16, 24(1) # save R16 - std 17, 32(1) # save R17 - std 18, 40(1) # save R18 - std 19, 48(1) # save R19 - std 20, 56(1) # save R20 - std 21, 64(1) # save R21 - std 22, 72(1) # save R22 - std 23, 80(1) # save R23 - std 24, 88(1) # save R24 - std 25, 96(1) # save R25 - std 26, 104(1) # save R26 - std 27, 112(1) # save R27 - std 28, 120(1) # save R28 - std 29, 128(1) # save R29 - std 30, 136(1) # save R30 - std 31, 144(1) # save R31 - std 3, 152(1) # save hidden - - # save CR - mfcr 0 - std 0, 160(1) - # save LR - mflr 0 - std 0, 168(1) - # save LR as PC - std 0, 176(1) - - # store RSP (pointing to context-data) in R6 - mr 6, 1 - - # restore RSP (pointing to context-data) from R4 - mr 1, 4 - - ld 2, 0(1) # restore TOC - ld 14, 8(1) # restore R14 - ld 15, 16(1) # restore R15 - ld 16, 24(1) # restore R16 - ld 17, 32(1) # restore R17 - ld 18, 40(1) # restore R18 - ld 19, 48(1) # restore R19 - ld 20, 56(1) # restore R20 - ld 21, 64(1) # restore R21 - ld 22, 72(1) # restore R22 - ld 23, 80(1) # restore R23 - ld 24, 88(1) # restore R24 - ld 25, 96(1) # restore R25 - ld 26, 104(1) # restore R26 - ld 27, 112(1) # restore R27 - ld 28, 120(1) # restore R28 - ld 29, 128(1) # restore R29 - ld 30, 136(1) # restore R30 - ld 31, 144(1) # restore R31 - ld 3, 152(1) # restore hidden - - # restore CR - ld 0, 160(1) - mtcr 0 - # restore LR - ld 0, 168(1) - mtlr 0 - - # load PC - ld 0, 176(1) - # restore CTR - mtctr 0 - - # adjust stack - addi 1, 1, 184 - - # zero in r3 indicates first jump to context-function - cmpdi 3, 0 - beq use_entry_arg - - # return transfer_t - std 6, 0(3) - std 5, 8(3) - - # jump to context - bctr - -use_entry_arg: - # copy transfer_t into transfer_fn arg registers - mr 3, 6 - mr 4, 5 - - # jump to context - bctr diff --git a/contrib/restricted/boost/context/src/asm/jump_riscv64_sysv_elf_gas.S b/contrib/restricted/boost/context/src/asm/jump_riscv64_sysv_elf_gas.S deleted file mode 100644 index 879eb7efee6..00000000000 --- a/contrib/restricted/boost/context/src/asm/jump_riscv64_sysv_elf_gas.S +++ /dev/null @@ -1,151 +0,0 @@ -/* - 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 | * - * ------------------------------------------------- * - * | 0x0 | 0x4 | 0x8 | 0xc | 0x10| 0x14| 0x18| 0x1c| * - * ------------------------------------------------- * - * | fs0 | fs1 | fs2 | fs3 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | * - * ------------------------------------------------- * - * | 0x20| 0x24| 0x28| 0x2c| 0x30| 0x34| 0x38| 0x3c| * - * ------------------------------------------------- * - * | fs4 | fs5 | fs6 | fs7 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | * - * ------------------------------------------------- * - * | 0x40| 0x44| 0x48| 0x4c| 0x50| 0x54| 0x58| 0x5c| * - * ------------------------------------------------- * - * | fs8 | fs9 | fs10 | fs11 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | * - * ------------------------------------------------- * - * | 0x60| 0x64| 0x68| 0x6c| 0x70| 0x74| 0x78| 0x7c| * - * ------------------------------------------------- * - * | s0 | s1 | s2 | s3 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | * - * ------------------------------------------------- * - * | 0x80| 0x84| 0x88| 0x8c| 0x90| 0x94| 0x98| 0x9c| * - * ------------------------------------------------- * - * | s4 | s5 | s6 | s7 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | * - * ------------------------------------------------- * - * | 0xa0| 0xa4| 0xa8| 0xac| 0xb0| 0xb4| 0xb8| 0xbc| * - * ------------------------------------------------- * - * | s8 | s9 | s10 | s11 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 48 | 49 | 50 | 51 | | | | | * - * ------------------------------------------------- * - * | 0xc0| 0xc4| 0xc8| 0xcc| | | | | * - * ------------------------------------------------- * - * | ra | pc | | | * - * ------------------------------------------------- * - * * - *******************************************************/ - -.file "jump_riscv64_sysv_elf_gas.S" -.text -.align 1 -.global jump_fcontext -.hidden jump_fcontext -.type jump_fcontext, %function -jump_fcontext: - # prepare stack for GP + FPU - addi sp, sp, -0xd0 - - # save fs0 - fs11 - fsd fs0, 0x00(sp) - fsd fs1, 0x08(sp) - fsd fs2, 0x10(sp) - fsd fs3, 0x18(sp) - fsd fs4, 0x20(sp) - fsd fs5, 0x28(sp) - fsd fs6, 0x30(sp) - fsd fs7, 0x38(sp) - fsd fs8, 0x40(sp) - fsd fs9, 0x48(sp) - fsd fs10, 0x50(sp) - fsd fs11, 0x58(sp) - - # save s0-s11, ra - sd s0, 0x60(sp) - sd s1, 0x68(sp) - sd s2, 0x70(sp) - sd s3, 0x78(sp) - sd s4, 0x80(sp) - sd s5, 0x88(sp) - sd s6, 0x90(sp) - sd s7, 0x98(sp) - sd s8, 0xa0(sp) - sd s9, 0xa8(sp) - sd s10, 0xb0(sp) - sd s11, 0xb8(sp) - sd ra, 0xc0(sp) - - # save RA as PC - sd ra, 0xc8(sp) - - # store SP (pointing to context-data) in A2 - mv a2, sp - - # restore SP (pointing to context-data) from A0 - mv sp, a0 - - # load fs0 - fs11 - fld fs0, 0x00(sp) - fld fs1, 0x08(sp) - fld fs2, 0x10(sp) - fld fs3, 0x18(sp) - fld fs4, 0x20(sp) - fld fs5, 0x28(sp) - fld fs6, 0x30(sp) - fld fs7, 0x38(sp) - fld fs8, 0x40(sp) - fld fs9, 0x48(sp) - fld fs10, 0x50(sp) - fld fs11, 0x58(sp) - - # load s0-s11,ra - ld s0, 0x60(sp) - ld s1, 0x68(sp) - ld s2, 0x70(sp) - ld s3, 0x78(sp) - ld s4, 0x80(sp) - ld s5, 0x88(sp) - ld s6, 0x90(sp) - ld s7, 0x98(sp) - ld s8, 0xa0(sp) - ld s9, 0xa8(sp) - ld s10, 0xb0(sp) - ld s11, 0xb8(sp) - ld ra, 0xc0(sp) - - # return transfer_t from jump - # pass transfer_t as first arg in context function - # a0 == FCTX, a1 == DATA - mv a0, a2 - - # load pc - ld a2, 0xc8(sp) - - # restore stack from GP + FPU - addi sp, sp, 0xd0 - - jr a2 -.size jump_fcontext,.-jump_fcontext -# Mark that we don't need executable stack. -.section .note.GNU-stack,"",%progbits diff --git a/contrib/restricted/boost/context/src/asm/jump_s390x_sysv_elf_gas.S b/contrib/restricted/boost/context/src/asm/jump_s390x_sysv_elf_gas.S deleted file mode 100644 index 59bc58bf370..00000000000 --- a/contrib/restricted/boost/context/src/asm/jump_s390x_sysv_elf_gas.S +++ /dev/null @@ -1,161 +0,0 @@ -/******************************************************* - * ------------------------------------------------- * - * | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | * - * ------------------------------------------------- * - * | 0 | 8 | 16 | 24 | * - * ------------------------------------------------- * - * | t.fctx | t.data | r2 | r6 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | * - * ------------------------------------------------- * - * | 32 | 40 | 48 | 56 | * - * ------------------------------------------------- * - * | r7 | r8 | r9 | r10 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | * - * ------------------------------------------------- * - * | 64 | 72 | 80 | 88 | * - * ------------------------------------------------- * - * | r11 | r12 | r13 | r14 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | * - * ------------------------------------------------- * - * | 96 | 104 | 112 | 120 | * - * ------------------------------------------------- * - * | f8 | f9 | f10 | f11 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | * - * ------------------------------------------------- * - * | 128 | 136 | 144 | 152 | * - * ------------------------------------------------- * - * | f12 | f13 | f14 | f15 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | * - * ------------------------------------------------- * - * | 160 | 168 | 176 | | * - * ------------------------------------------------- * - * | fpc | pc | | | * - * ------------------------------------------------- * - *******************************************************/ - -.text -.align 8 -.global jump_fcontext -.hidden jump_fcontext -.type jump_fcontext, @function - -#define ARG_OFFSET 0 -#define GR_OFFSET 16 -#define R14_OFFSET 88 -#define FP_OFFSET 96 -#define FPC_OFFSET 160 -#define PC_OFFSET 168 -#define CONTEXT_SIZE 176 - -#define REG_SAVE_AREA_SIZE 160 - -/* - -typedef void* fcontext_t; - -struct transfer_t { - fcontext_t fctx; - void * data; -}; - -transfer_t jump_fcontext( fcontext_t const to, - void * data); - -Incoming args -r2 - Hidden argument to the location where the return transfer_t needs to be returned -r3 - Context we want to switch to -r4 - Data pointer - -*/ - -jump_fcontext: - .machine "z10" - /* Reserve stack space to store the current context. */ - aghi %r15,-CONTEXT_SIZE - - /* Save the argument register holding the location of the return value. */ - stg %r2,GR_OFFSET(%r15) - - /* Save the call-saved general purpose registers. */ - stmg %r6,%r14,GR_OFFSET+8(%r15) - - /* Save call-saved floating point registers. */ - std %f8,FP_OFFSET(%r15) - std %f9,FP_OFFSET+8(%r15) - std %f10,FP_OFFSET+16(%r15) - std %f11,FP_OFFSET+24(%r15) - std %f12,FP_OFFSET+32(%r15) - std %f13,FP_OFFSET+40(%r15) - std %f14,FP_OFFSET+48(%r15) - std %f15,FP_OFFSET+56(%r15) - - /* Save the return address as current pc. */ - stg %r14,PC_OFFSET(%r15) - - /* Save the floating point control register. */ - stfpc FPC_OFFSET(%r15) - - /* Backup the stack pointer pointing to the old context-data into r1. */ - lgr %r1,%r15 - - /* Load the new context pointer as stack pointer. */ - lgr %r15,%r3 - - /* Restore the call-saved GPRs from the new context. */ - lmg %r6,%r14,GR_OFFSET+8(%r15) - - /* Restore call-saved floating point registers. */ - ld %f8,FP_OFFSET(%r15) - ld %f9,FP_OFFSET+8(%r15) - ld %f10,FP_OFFSET+16(%r15) - ld %f11,FP_OFFSET+24(%r15) - ld %f12,FP_OFFSET+32(%r15) - ld %f13,FP_OFFSET+40(%r15) - ld %f14,FP_OFFSET+48(%r15) - ld %f15,FP_OFFSET+56(%r15) - - /* Load the floating point control register. */ - lfpc FPC_OFFSET(%r15) - - /* Restore PC - the location where we will jump to at the end. */ - lg %r5,PC_OFFSET(%r15) - - ltg %r2,GR_OFFSET(%r15) - jnz use_return_slot - - /* We're restoring a context created by make_fcontext. - This is going to be the argument of the entry point - of the fiber. We're placing it on top of the ABI - defined register save area of the fiber's own stack. */ - la %r2,REG_SAVE_AREA_SIZE(%r15) - - /* REG_SAVE_AREA_SIZE + sizeof(transfer_t) */ - aghi %r15,-(REG_SAVE_AREA_SIZE+16) - -use_return_slot: - /* Save the two fields in transfer_t. When calling a - make_fcontext function this becomes the function argument of - the target function, otherwise it will be the return value of - jump_fcontext. */ - stg %r1,0(%r2) - stg %r4,8(%r2) - - /* Free the restored context. */ - aghi %r15,CONTEXT_SIZE - - /* Jump to the PC loaded from the new context. */ - br %r5 - - -.size jump_fcontext,.-jump_fcontext -.section .note.GNU-stack,"",%progbits diff --git a/contrib/restricted/boost/context/src/asm/jump_sparc64_sysv_elf_gas.S b/contrib/restricted/boost/context/src/asm/jump_sparc64_sysv_elf_gas.S deleted file mode 100644 index 61101fb1f62..00000000000 --- a/contrib/restricted/boost/context/src/asm/jump_sparc64_sysv_elf_gas.S +++ /dev/null @@ -1,51 +0,0 @@ -/* - Copyright Claudio Jeker 2024 - 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) -*/ - -/* - * typedef void* fcontext_t; - * - * struct transfer_t { - * fcontext_t fctx; - * void * data; - * }; - * - * transfer_t jump_fcontext(fcontext_t const to, void *vp); - */ -#define CC64FSZ 176 -#define BIAS 2047 -#define SP 128 -#define I7 136 - -.file "jump_sparc64_sysv_elf_gas.S" -.text -.align 4 -.global jump_fcontext -.type jump_fcontext, %function -jump_fcontext: - # prepare stack - save %sp, -CC64FSZ, %sp - - # store framepointer and return address in slots reserved - # for arguments - stx %fp, [%sp + BIAS + SP] - stx %i7, [%sp + BIAS + I7] - mov %sp, %o0 - # force flush register windows to stack and with that save context - flushw - # get SP (pointing to new context-data) from %i0 param - mov %i0, %sp - # load framepointer and return address from context - ldx [%sp + BIAS + SP], %fp - ldx [%sp + BIAS + I7], %i7 - - ret - restore %o0, %g0, %o0 - # restore old %sp (pointing to old context-data) in %o0 - # *data stored in %o1 was not modified -.size jump_fcontext,.-jump_fcontext -# Mark that we don't need executable stack. -.section .note.GNU-stack,"",%progbits diff --git a/contrib/restricted/boost/context/src/asm/make_combined_sysv_macho_gas.S b/contrib/restricted/boost/context/src/asm/make_combined_sysv_macho_gas.S deleted file mode 100644 index b22fa7ebe92..00000000000 --- a/contrib/restricted/boost/context/src/asm/make_combined_sysv_macho_gas.S +++ /dev/null @@ -1,24 +0,0 @@ -/* - Copyright Sergue E. Leontiev 2013. - 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) -*/ - -// Stub file for universal binary - -#if defined(__i386__) - #include "make_i386_sysv_macho_gas.S" -#elif defined(__x86_64__) - #include "make_x86_64_sysv_macho_gas.S" -#elif defined(__ppc__) - #include "make_ppc32_sysv_macho_gas.S" -#elif defined(__ppc64__) - #include "make_ppc64_sysv_macho_gas.S" -#elif defined(__arm__) - #include "make_arm_aapcs_macho_gas.S" -#elif defined(__arm64__) - #include "make_arm64_aapcs_macho_gas.S" -#else - #error "No arch's" -#endif diff --git a/contrib/restricted/boost/context/src/asm/make_loongarch64_sysv_elf_gas.S b/contrib/restricted/boost/context/src/asm/make_loongarch64_sysv_elf_gas.S deleted file mode 100644 index a067baded56..00000000000 --- a/contrib/restricted/boost/context/src/asm/make_loongarch64_sysv_elf_gas.S +++ /dev/null @@ -1,73 +0,0 @@ -/******************************************************* - * * - * ------------------------------------------------- * - * | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | * - * ------------------------------------------------- * - * | 0 | 8 | 16 | 24 | * - * ------------------------------------------------- * - * | FS0 | FS1 | FS2 | FS3 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | * - * ------------------------------------------------- * - * | 32 | 40 | 48 | 56 | * - * ------------------------------------------------- * - * | FS4 | FS5 | FS6 | FS7 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | * - * ------------------------------------------------- * - * | 64 | 72 | 80 | 88 | * - * ------------------------------------------------- * - * | S0 | S1 | S2 | S3 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | * - * ------------------------------------------------- * - * | 96 | 100 | 104 | 108 | 112 | 116 | 120 | 124 | * - * ------------------------------------------------- * - * | S4 | S5 | S6 | S7 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | * - * ------------------------------------------------- * - * | 128 | 132 | 136 | 140 | 144 | 148 | 152 | 156 | * - * ------------------------------------------------- * - * | S8 | FP | RA | PC | * - * ------------------------------------------------- * - * * - * *****************************************************/ - -.file "make_loongarch64_sysv_elf_gas.S" -.text -.globl make_fcontext -.hidden make_fcontext -.align 2 -.type make_fcontext,@function -make_fcontext: - # shift address in A0 to lower 16 byte boundary - bstrins.d $a0, $zero, 3, 0 - - # reserve space for context-data on context-stack - addi.d $a0, $a0, -160 - - # third arg of make_fcontext() == address of context-function - st.d $a2, $a0, 152 - - # save address of finish as return-address for context-function - # will be entered after context-function returns - la.local $a4, finish - st.d $a4, $a0, 144 - - # return pointer to context-data - jr $ra - -finish: - # exit code is zero - li.d $a0, 0 - # call _exit(0) - b %plt(_exit) - -.size make_fcontext, .-make_fcontext -/* Mark that we don't need executable stack. */ -.section .note.GNU-stack,"",%progbits diff --git a/contrib/restricted/boost/context/src/asm/make_mips32_o32_elf_gas.S b/contrib/restricted/boost/context/src/asm/make_mips32_o32_elf_gas.S deleted file mode 100644 index 54742f3a8be..00000000000 --- a/contrib/restricted/boost/context/src/asm/make_mips32_o32_elf_gas.S +++ /dev/null @@ -1,98 +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 | * - * ------------------------------------------------- * - * | 0 | 4 | 8 | 12 | 16 | 20 | 24 | 28 | * - * ------------------------------------------------- * - * | F20 | F22 | F24 | F26 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | * - * ------------------------------------------------- * - * | 32 | 36 | 40 | 44 | 48 | 52 | 56 | 60 | * - * ------------------------------------------------- * - * | F28 | F30 | S0 | S1 | S2 | S3 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | * - * ------------------------------------------------- * - * | 64 | 68 | 72 | 76 | 80 | 84 | 88 | 92 | * - * ------------------------------------------------- * - * | S4 | S5 | S6 | S7 | FP |hiddn| RA | PC | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | * - * ------------------------------------------------- * - * | 96 | 100 | 104 | 108 | 112 | 116 | 120 | 124 | * - * ------------------------------------------------- * - * | ABI ARGS | GP | FCTX| DATA| | * - * ------------------------------------------------- * - * * - * *****************************************************/ - -.file "make_mips32_o32_elf_gas.S" -.text -.globl make_fcontext -.hidden make_fcontext -.align 2 -.type make_fcontext,@function -.ent make_fcontext -make_fcontext: -#ifdef __PIC__ -.set noreorder -.cpload $t9 -.set reorder -#endif - # shift address in A0 to lower 16 byte boundary - li $v1, -16 # 0xfffffffffffffff0 - and $v0, $v1, $a0 - - # reserve space for context-data on context-stack - # includes an extra 32 bytes for: - # - 16-byte incoming argument area required by mips ABI used when - # jump_context calls the initial function - # - 4 bytes to save our GP register used in finish - # - 8 bytes to as space for transfer_t returned to finish - # - 4 bytes for alignment - addiu $v0, $v0, -128 - - # third arg of make_fcontext() == address of context-function - sw $a2, 92($v0) - # save global pointer in context-data - sw $gp, 112($v0) - - # compute address of returned transfer_t - addiu $t0, $v0, 116 - sw $t0, 84($v0) - - # compute abs address of label finish - la $t9, finish - # save address of finish as return-address for context-function - # will be entered after context-function returns - sw $t9, 88($v0) - - jr $ra # return pointer to context-data - -finish: - # reload our gp register (needed for la) - lw $gp, 16($sp) - - # call _exit(0) - # the previous function should have left the 16 bytes incoming argument - # area on the stack which we reuse for calling _exit - la $t9, _exit - move $a0, $zero - jr $t9 -.end make_fcontext -.size make_fcontext, .-make_fcontext - -/* Mark that we don't need executable stack. */ -.section .note.GNU-stack,"",%progbits diff --git a/contrib/restricted/boost/context/src/asm/make_mips64_n64_elf_gas.S b/contrib/restricted/boost/context/src/asm/make_mips64_n64_elf_gas.S deleted file mode 100644 index 40f29a55c20..00000000000 --- a/contrib/restricted/boost/context/src/asm/make_mips64_n64_elf_gas.S +++ /dev/null @@ -1,97 +0,0 @@ -/* - Copyright Jiaxun Yang 2018. - 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 | * - * ------------------------------------------------- * - * | 0 | 8 | 16 | 24 | * - * ------------------------------------------------- * - * | F24 | F25 | F26 | F27 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | * - * ------------------------------------------------- * - * | 32 | 40 | 48 | 56 | * - * ------------------------------------------------- * - * | F28 | F29 | F30 | F31 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | * - * ------------------------------------------------- * - * | 64 | 72 | 80 | 88 | * - * ------------------------------------------------- * - * | S0 | S1 | S2 | S3 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | * - * ------------------------------------------------- * - * | 96 | 100 | 104 | 108 | 112 | 116 | 120 | 124 | * - * ------------------------------------------------- * - * | S4 | S5 | S6 | S7 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | * - * ------------------------------------------------- * - * | 128 | 132 | 136 | 140 | 144 | 148 | 152 | 156 | * - * ------------------------------------------------- * - * | FP | GP | RA | PC | * - * ------------------------------------------------- * - * * - * *****************************************************/ - -.file "make_mips64_n64_elf_gas.S" -.text -.globl make_fcontext -.hidden make_fcontext -.align 3 -.type make_fcontext,@function -.ent make_fcontext -make_fcontext: -#ifdef __PIC__ -.set noreorder -.cpload $t9 -.set reorder -#endif - # shift address in A0 to lower 16 byte boundary - li $v1, 0xfffffffffffffff0 - and $v0, $v1, $a0 - - # reserve space for context-data on context-stack - daddiu $v0, $v0, -160 - - # third arg of make_fcontext() == address of context-function - sd $a2, 152($v0) - # save global pointer in context-data - sd $gp, 136($v0) - - # psudo instruction compute abs address of label finish based on GP - dla $t9, finish - - # save address of finish as return-address for context-function - # will be entered after context-function returns - sd $t9, 144($v0) - - jr $ra # return pointer to context-data - -finish: - # reload our gp register (needed for la) - daddiu $t0, $sp, -160 - ld $gp, 136($t0) - - # call _exit(0) - # the previous function should have left the 16 bytes incoming argument - # area on the stack which we reuse for calling _exit - dla $t9, _exit - move $a0, $zero - jr $t9 -.end make_fcontext -.size make_fcontext, .-make_fcontext - -/* Mark that we don't need executable stack. */ -.section .note.GNU-stack,"",%progbits diff --git a/contrib/restricted/boost/context/src/asm/make_ppc32_ppc64_sysv_macho_gas.S b/contrib/restricted/boost/context/src/asm/make_ppc32_ppc64_sysv_macho_gas.S deleted file mode 100644 index 52e72209337..00000000000 --- a/contrib/restricted/boost/context/src/asm/make_ppc32_ppc64_sysv_macho_gas.S +++ /dev/null @@ -1,16 +0,0 @@ -/* - Copyright Sergue E. Leontiev 2013. - 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) -*/ - -// Stub file for universal binary - -#if defined(__ppc__) - #include "make_ppc32_sysv_macho_gas.S" -#elif defined(__ppc64__) - #include "make_ppc64_sysv_macho_gas.S" -#else - #error "No arch's" -#endif diff --git a/contrib/restricted/boost/context/src/asm/make_ppc32_sysv_elf_gas.S b/contrib/restricted/boost/context/src/asm/make_ppc32_sysv_elf_gas.S deleted file mode 100644 index 0dd77719354..00000000000 --- a/contrib/restricted/boost/context/src/asm/make_ppc32_sysv_elf_gas.S +++ /dev/null @@ -1,147 +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 | 4 | 8 | 12 | 16 | 20 | 24 | 28 | * - * ------------------------------------------------- * - * |bchai|hiddn| fpscr | PC | CR | R14 | R15 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 32 | 36 | 40 | 44 | 48 | 52 | 56 | 60 | * - * ------------------------------------------------- * - * | R16 | R17 | R18 | R19 | R20 | R21 | R22 | R23 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 64 | 68 | 72 | 76 | 80 | 84 | 88 | 92 | * - * ------------------------------------------------- * - * | R24 | R25 | R26 | R27 | R28 | R29 | R30 | R31 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 96 | 100 | 104 | 108 | 112 | 116 | 120 | 124 | * - * ------------------------------------------------- * - * | F14 | F15 | F16 | F17 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 128 | 132 | 136 | 140 | 144 | 148 | 152 | 156 | * - * ------------------------------------------------- * - * | F18 | F19 | F20 | F21 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 160 | 164 | 168 | 172 | 176 | 180 | 184 | 188 | * - * ------------------------------------------------- * - * | F22 | F23 | F24 | F25 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 192 | 196 | 200 | 204 | 208 | 212 | 216 | 220 | * - * ------------------------------------------------- * - * | F26 | F27 | F28 | F29 | * - * ------------------------------------------------- * - * ------------------------|------------ * - * | 224 | 228 | 232 | 236 | 240 | 244 | * - * ------------------------|------------ * - * | F30 | F31 |bchai| LR | * - * ------------------------|------------ * - * * - *******************************************************/ - -.file "make_ppc32_sysv_elf_gas.S" -.text -.globl make_fcontext -.hidden make_fcontext -.align 2 -.type make_fcontext,@function -make_fcontext: - # save return address into R6 - mflr %r6 - - # first arg of make_fcontext() == top address of context-function - # shift address in R3 to lower 16 byte boundary - clrrwi %r3, %r3, 4 - - # reserve space on context-stack, including 16 bytes of linkage - # and parameter area + 240 bytes of context-data (R1 % 16 == 0) - subi %r3, %r3, 16 + 240 - - # third arg of make_fcontext() == address of context-function -#ifdef __linux__ - # save context-function as PC - stw %r5, 16(%r3) -#else - # save context-function for trampoline - stw %r5, 248(%r3) -#endif - - # set back-chain to zero - li %r0, 0 - stw %r0, 240(%r3) - - # copy FPSCR to new context - mffs %f0 - stfd %f0, 8(%r3) - -#ifdef __linux__ - # set hidden pointer for returning transfer_t - la %r0, 248(%r3) - stw %r0, 4(%r3) -#endif - - # load address of label 1 into R4 - bl 1f -1: mflr %r4 -#ifndef __linux__ - # compute abs address of trampoline, use as PC - addi %r7, %r4, trampoline - 1b - stw %r7, 16(%r3) -#endif - # compute abs address of label finish - addi %r4, %r4, finish - 1b - # save address of finish as return-address for context-function - # will be entered after context-function returns - stw %r4, 244(%r3) - - # restore return address from R6 - mtlr %r6 - - blr # return pointer to context-data - -#ifndef __linux__ -trampoline: - # On systems other than Linux, jump_fcontext is returning the - # transfer_t in R3:R4, but we need to pass transfer_t * R3 to - # our context-function. - lwz %r0, 8(%r1) # address of context-function - mtctr %r0 - stw %r3, 8(%r1) - stw %r4, 12(%r1) - la %r3, 8(%r1) # address of transfer_t - bctr -#endif - -finish: - # Use the secure PLT for _exit(0). If we use the insecure BSS PLT - # here, then the linker may use the insecure BSS PLT even if the - # C++ compiler wanted the secure PLT. - - # set R30 for secure PLT, large model - bl 2f -2: mflr %r30 - addis %r30, %r30, .Ltoc - 2b@ha - addi %r30, %r30, .Ltoc - 2b@l - - # call _exit(0) with special addend 0x8000 for large model - li %r3, 0 - bl _exit + 0x8000@plt -.size make_fcontext, .-make_fcontext - -/* Provide the GOT pointer for secure PLT, large model. */ -.section .got2,"aw" -.Ltoc = . + 0x8000 - -/* Mark that we don't need executable stack. */ -.section .note.GNU-stack,"",%progbits diff --git a/contrib/restricted/boost/context/src/asm/make_ppc32_sysv_macho_gas.S b/contrib/restricted/boost/context/src/asm/make_ppc32_sysv_macho_gas.S deleted file mode 100644 index e7b0c7a2ae0..00000000000 --- a/contrib/restricted/boost/context/src/asm/make_ppc32_sysv_macho_gas.S +++ /dev/null @@ -1,155 +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 | * - * ------------------------------------------------- * - * | 0 | 4 | 8 | 12 | 16 | 20 | 24 | 28 | * - * ------------------------------------------------- * - * | F14 | F15 | F16 | F17 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | * - * ------------------------------------------------- * - * | 32 | 36 | 40 | 44 | 48 | 52 | 56 | 60 | * - * ------------------------------------------------- * - * | F18 | F19 | F20 | F21 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | * - * ------------------------------------------------- * - * | 64 | 68 | 72 | 76 | 80 | 84 | 88 | 92 | * - * ------------------------------------------------- * - * | F22 | F23 | F24 | F25 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | * - * ------------------------------------------------- * - * | 96 | 100 | 104 | 108 | 112 | 116 | 120 | 124 | * - * ------------------------------------------------- * - * | F26 | F27 | F28 | F29 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | * - * ------------------------------------------------- * - * | 128 | 132 | 136 | 140 | 144 | 148 | 152 | 156 | * - * ------------------------------------------------- * - * | F30 | F31 | fpscr | R13 | R14 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | * - * ------------------------------------------------- * - * | 160 | 164 | 168 | 172 | 176 | 180 | 184 | 188 | * - * ------------------------------------------------- * - * | R15 | R16 | R17 | R18 | R19 | R20 | R21 | R22 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | * - * ------------------------------------------------- * - * | 192 | 196 | 200 | 204 | 208 | 212 | 216 | 220 | * - * ------------------------------------------------- * - * | R23 | R24 | R25 | R26 | R27 | R28 | R29 | R30 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | * - * ------------------------------------------------- * - * | 224 | 228 | 232 | 236 | 240 | 244 | 248 | 252 | * - * ------------------------------------------------- * - * | R31 |hiddn| CR | LR | PC |bchai|linkr| FCTX| * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 64 | | * - * ------------------------------------------------- * - * | 256 | | * - * ------------------------------------------------- * - * | DATA| | * - * ------------------------------------------------- * - * * - *******************************************************/ - -.text -.private_extern _make_fcontext -.globl _make_fcontext -.align 2 -_make_fcontext: - ; save return address into R6 - mflr r6 - - ; first arg of make_fcontext() == top address of context-function - ; shift address in R3 to lower 16 byte boundary - clrrwi r3, r3, 4 - - ; reserve space for context-data on context-stack - ; including 64 byte of linkage + parameter area (R1 % 16 == 0) - subi r3, r3, 336 - - ; third arg of make_fcontext() == address of context-function - ; store as trampoline's R31 - stw r5, 224(r3) - - ; set back-chain to zero - li r0, 0 - stw r0, 244(r3) - - mffs f0 ; load FPSCR - stfd f0, 144(r3) ; save FPSCR - - ; compute address of returned transfer_t - addi r0, r3, 252 - mr r4, r0 - stw r4, 228(r3) - - ; load LR - mflr r0 - ; jump to label 1 - bcl 20, 31, L1 -L1: - ; load LR into R4 - mflr r4 - ; compute abs address of trampoline, use as PC - addi r5, r4, lo16(Ltrampoline - L1) - stw r5, 240(r3) - ; compute abs address of label finish - addi r4, r4, lo16(Lfinish - L1) - ; restore LR - mtlr r0 - ; save address of finish as return-address for context-function - ; will be entered after context-function returns - stw r4, 236(r3) - - ; restore return address from R6 - mtlr r6 - - blr ; return pointer to context-data - -Ltrampoline: - ; We get R31 = context-function, R3 = address of transfer_t, - ; but we need to pass R3:R4 = transfer_t. - mtctr r31 - lwz r4, 4(r3) - lwz r3, 0(r3) - bctr - -Lfinish: - ; load address of _exit into CTR - bcl 20, 31, L2 -L2: - mflr r4 - addis r4, r4, ha16(Lexitp - L2) - lwz r4, lo16(Lexitp - L2)(r4) - mtctr r4 - ; exit code is zero - li r3, 0 - ; exit application - bctr - -.const_data -.align 2 -Lexitp: - .long __exit diff --git a/contrib/restricted/boost/context/src/asm/make_ppc32_sysv_xcoff_gas.S b/contrib/restricted/boost/context/src/asm/make_ppc32_sysv_xcoff_gas.S deleted file mode 100644 index e803757fa35..00000000000 --- a/contrib/restricted/boost/context/src/asm/make_ppc32_sysv_xcoff_gas.S +++ /dev/null @@ -1,125 +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 | 4 | 8 | 12 | 16 | 20 | 24 | 28 | * - * ------------------------------------------------- * - * |bchai| CR | LR |compl| link| TOC | R14 | R15 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 32 | 36 | 40 | 44 | 48 | 52 | 56 | 60 | * - * ------------------------------------------------- * - * | R16 | R17 | R18 | R19 | R20 | R21 | R22 | R23 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 64 | 68 | 72 | 76 | 80 | 84 | 88 | 92 | * - * ------------------------------------------------- * - * | R24 | R25 | R26 | R27 | R28 | R29 | R30 | R31 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 96 | 100 | 104 | 108 | 112 | 116 | 120 | 124 | * - * ------------------------------------------------- * - * | F14 | F15 | F16 | F17 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 128 | 132 | 136 | 140 | 144 | 148 | 152 | 156 | * - * ------------------------------------------------- * - * | F18 | F19 | F20 | F21 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 160 | 164 | 168 | 172 | 176 | 180 | 184 | 188 | * - * ------------------------------------------------- * - * | F22 | F23 | F24 | F25 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 192 | 196 | 200 | 204 | 208 | 212 | 216 | 220 | * - * ------------------------------------------------- * - * | F26 | F27 | F28 | F29 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 224 | 228 | 232 | 236 | 240 | 244 | 248 | 252 | * - * ------------------------------------------------- * - * | F30 | F31 | PC |hiddn| fpscr | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 256 | 260 | 264 | 268 | 272 | 276 | 280 | 284 | * - * ------------------------------------------------- * - * |bchai|savLR|savLR|compl| link|svTOC| FCTX| DATA| * - * ------------------------------------------------- * - * * - *******************************************************/ - .file "make_ppc32_sysv_xcoff_xas.S" - .toc - .csect .text[PR] - .align 2 - .globl make_fcontext[DS] - .globl .make_fcontext - .csect make_fcontext[DS] -make_fcontext: - .long .make_fcontext[PR], TOC[tc0], 0 - .csect .text[PR], 5 -.make_fcontext: - # save return address into R6 - mflr 6 - - # first arg of make_fcontext() == top address of context-function - # shift address in R3 to lower 16 byte boundary - clrrwi 3, 3, 4 - - # reserve space for context-data on context-stack - # including 32 byte of linkage + parameter area (R1 % 16 == 0) - subi 3, 3, 288 - - # third arg of make_fcontext() == address of context-function descriptor - lwz 4, 0(5) - stw 4, 240(3) - # save TOC of context-function - lwz 4, 4(5) - stw 4, 20(3) - - # set back-chain to zero - li 0, 0 - stw 0, 256(3) - - # zero in r3 indicates first jump to context-function - std 0, 244(3) - - # load LR - mflr 0 - # jump to label 1 - bl .Label -.Label: - # load LR into R4 - mflr 4 - # compute abs address of label .L_finish - addi 4, 4, .L_finish - .Label - # restore LR - mtlr 0 - # save address of finish as return-address for context-function - # will be entered after context-function returns - stw 4, 8(3) - - # restore return address from R6 - mtlr 6 - - blr # return pointer to context-data - -.L_finish: - # save return address into R0 - mflr 0 - # save return address on stack, set up stack frame - stw 0, 4(1) - # allocate stack space, R1 % 16 == 0 - stwu 1, -16(1) - - # exit code is zero - li 3, 0 - # exit application - bl ._exit - nop diff --git a/contrib/restricted/boost/context/src/asm/make_ppc64_sysv_elf_gas.S b/contrib/restricted/boost/context/src/asm/make_ppc64_sysv_elf_gas.S deleted file mode 100644 index f513d3639ea..00000000000 --- a/contrib/restricted/boost/context/src/asm/make_ppc64_sysv_elf_gas.S +++ /dev/null @@ -1,178 +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 | * - * ------------------------------------------------- * - * | 0 | 4 | 8 | 12 | 16 | 20 | 24 | 28 | * - * ------------------------------------------------- * - * | TOC | R14 | R15 | R16 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | * - * ------------------------------------------------- * - * | 32 | 36 | 40 | 44 | 48 | 52 | 56 | 60 | * - * ------------------------------------------------- * - * | R17 | R18 | R19 | R20 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | * - * ------------------------------------------------- * - * | 64 | 68 | 72 | 76 | 80 | 84 | 88 | 92 | * - * ------------------------------------------------- * - * | R21 | R22 | R23 | R24 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | * - * ------------------------------------------------- * - * | 96 | 100 | 104 | 108 | 112 | 116 | 120 | 124 | * - * ------------------------------------------------- * - * | R25 | R26 | R27 | R28 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | * - * ------------------------------------------------- * - * | 128 | 132 | 136 | 140 | 144 | 148 | 152 | 156 | * - * ------------------------------------------------- * - * | R29 | R30 | R31 | hidden | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | * - * ------------------------------------------------- * - * | 160 | 164 | 168 | 172 | 176 | 180 | 184 | 188 | * - * ------------------------------------------------- * - * | CR | LR | PC | back-chain| * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | * - * ------------------------------------------------- * - * | 192 | 196 | 200 | 204 | 208 | 212 | 216 | 220 | * - * ------------------------------------------------- * - * | cr saved | lr saved | compiler | linker | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | * - * ------------------------------------------------- * - * | 224 | 228 | 232 | 236 | 240 | 244 | 248 | 252 | * - * ------------------------------------------------- * - * | TOC saved | FCTX | DATA | | * - * ------------------------------------------------- * - * * - *******************************************************/ - -.file "make_ppc64_sysv_elf_gas.S" -.globl make_fcontext -.hidden make_fcontext -#if _CALL_ELF == 2 - .text - .align 2 -make_fcontext: - addis %r2, %r12, .TOC.-make_fcontext@ha - addi %r2, %r2, .TOC.-make_fcontext@l - .localentry make_fcontext, . - make_fcontext -#else - .section ".opd","aw" - .align 3 -make_fcontext: -# ifdef _CALL_LINUX - .quad .L.make_fcontext,.TOC.@tocbase,0 - .type make_fcontext,@function - .text - .align 2 -.L.make_fcontext: -# else - .hidden .make_fcontext - .globl .make_fcontext - .quad .make_fcontext,.TOC.@tocbase,0 - .size make_fcontext,24 - .type .make_fcontext,@function - .text - .align 2 -.make_fcontext: -# endif -#endif - # save return address into R6 - mflr %r6 - - # first arg of make_fcontext() == top address of context-stack - # shift address in R3 to lower 16 byte boundary - clrrdi %r3, %r3, 4 - - # reserve space for context-data on context-stack - # including 64 byte of linkage + parameter area (R1 % 16 == 0) - subi %r3, %r3, 248 - - # third arg of make_fcontext() == address of context-function - # entry point (ELFv2) or descriptor (ELFv1) -#if _CALL_ELF == 2 - # save address of context-function entry point - std %r5, 176(%r3) -#else - # save address of context-function entry point - ld %r4, 0(%r5) - std %r4, 176(%r3) - # save TOC of context-function - ld %r4, 8(%r5) - std %r4, 0(%r3) -#endif - - # set back-chain to zero - li %r0, 0 - std %r0, 184(%r3) - -#if _CALL_ELF != 2 - # zero in r3 indicates first jump to context-function - std %r0, 152(%r3) -#endif - - # load LR - mflr %r0 - # jump to label 1 - bl 1f -1: - # load LR into R4 - mflr %r4 - # compute abs address of label finish - addi %r4, %r4, finish - 1b - # restore LR - mtlr %r0 - # save address of finish as return-address for context-function - # will be entered after context-function returns - std %r4, 168(%r3) - - # restore return address from R6 - mtlr %r6 - - blr # return pointer to context-data - -finish: - # save return address into R0 - mflr %r0 - # save return address on stack, set up stack frame - std %r0, 8(%r1) - # allocate stack space, R1 % 16 == 0 - stdu %r1, -32(%r1) - - # exit code is zero - li %r3, 0 - # exit application - bl _exit - nop -#if _CALL_ELF == 2 - .size make_fcontext, .-make_fcontext -#else -# ifdef _CALL_LINUX - .size .make_fcontext, .-.L.make_fcontext -# else - .size .make_fcontext, .-.make_fcontext -# endif -#endif - -/* Mark that we don't need executable stack. */ -.section .note.GNU-stack,"",%progbits diff --git a/contrib/restricted/boost/context/src/asm/make_ppc64_sysv_macho_gas.S b/contrib/restricted/boost/context/src/asm/make_ppc64_sysv_macho_gas.S deleted file mode 100644 index d8cdd2d080d..00000000000 --- a/contrib/restricted/boost/context/src/asm/make_ppc64_sysv_macho_gas.S +++ /dev/null @@ -1,128 +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 | * - * ------------------------------------------------- * - * | 0 | 4 | 8 | 12 | 16 | 20 | 24 | 28 | * - * ------------------------------------------------- * - * | R13 | R14 | R15 | R16 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | * - * ------------------------------------------------- * - * | 32 | 36 | 40 | 44 | 48 | 52 | 56 | 60 | * - * ------------------------------------------------- * - * | R17 | R18 | R19 | R20 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | * - * ------------------------------------------------- * - * | 64 | 68 | 72 | 76 | 80 | 84 | 88 | 92 | * - * ------------------------------------------------- * - * | R21 | R22 | R23 | R24 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | * - * ------------------------------------------------- * - * | 96 | 100 | 104 | 108 | 112 | 116 | 120 | 124 | * - * ------------------------------------------------- * - * | R25 | R26 | R27 | R28 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | * - * ------------------------------------------------- * - * | 128 | 132 | 136 | 140 | 144 | 148 | 152 | 156 | * - * ------------------------------------------------- * - * | R29 | R30 | R31 | hidden | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | * - * ------------------------------------------------- * - * | 160 | 164 | 168 | 172 | 176 | 180 | 184 | 188 | * - * ------------------------------------------------- * - * | CR | LR | PC | back-chain| * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | * - * ------------------------------------------------- * - * | 192 | 196 | 200 | 204 | 208 | 212 | 216 | 220 | * - * ------------------------------------------------- * - * | cr saved | lr saved | compiler | linker | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | * - * ------------------------------------------------- * - * | 224 | 228 | 232 | 236 | 240 | 244 | 248 | 252 | * - * ------------------------------------------------- * - * | FCTX | DATA | | | * - * ------------------------------------------------- * - * * - *******************************************************/ - -.text -.private_extern _make_fcontext -.globl _make_fcontext -_make_fcontext: - ; save return address into R6 - mflr r6 - - ; first arg of make_fcontext() == top address of context-function - ; shift address in R3 to lower 16 byte boundary - clrrwi r3, r3, 4 - - ; reserve space for context-data on context-stack - ; including 64 byte of linkage + parameter area (R1 16 == 0) - subi r3, r3, 240 - - ; third arg of make_fcontext() == address of context-function - stw r5, 176(r3) - - ; set back-chain to zero - li r0, 0 - std r0, 184(r3) - - ; compute address of returned transfer_t - addi r0, r3, 224 - mr r4, r0 - std r4, 152(r3) - - ; load LR - mflr r0 - ; jump to label 1 - bl l1 -l1: - ; load LR into R4 - mflr r4 - ; compute abs address of label finish - addi r4, r4, lo16((finish - .) + 4) - ; restore LR - mtlr r0 - ; save address of finish as return-address for context-function - ; will be entered after context-function returns - std r4, 168(r3) - - ; restore return address from R6 - mtlr r6 - - blr ; return pointer to context-data - -finish: - ; save return address into R0 - mflr r0 - ; save return address on stack, set up stack frame - stw r0, 8(r1) - ; allocate stack space, R1 16 == 0 - stwu r1, -32(r1) - - ; set return value to zero - li r3, 0 - ; exit application - bl __exit - nop diff --git a/contrib/restricted/boost/context/src/asm/make_ppc64_sysv_xcoff_gas.S b/contrib/restricted/boost/context/src/asm/make_ppc64_sysv_xcoff_gas.S deleted file mode 100644 index 2374b50ee63..00000000000 --- a/contrib/restricted/boost/context/src/asm/make_ppc64_sysv_xcoff_gas.S +++ /dev/null @@ -1,137 +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 | * - * ------------------------------------------------- * - * | 0 | 4 | 8 | 12 | 16 | 20 | 24 | 28 | * - * ------------------------------------------------- * - * | TOC | R14 | R15 | R16 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | * - * ------------------------------------------------- * - * | 32 | 36 | 40 | 44 | 48 | 52 | 56 | 60 | * - * ------------------------------------------------- * - * | R17 | R18 | R19 | R20 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | * - * ------------------------------------------------- * - * | 64 | 68 | 72 | 76 | 80 | 84 | 88 | 92 | * - * ------------------------------------------------- * - * | R21 | R22 | R23 | R24 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | * - * ------------------------------------------------- * - * | 96 | 100 | 104 | 108 | 112 | 116 | 120 | 124 | * - * ------------------------------------------------- * - * | R25 | R26 | R27 | R28 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | * - * ------------------------------------------------- * - * | 128 | 132 | 136 | 140 | 144 | 148 | 152 | 156 | * - * ------------------------------------------------- * - * | R29 | R30 | R31 | hidden | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | * - * ------------------------------------------------- * - * | 160 | 164 | 168 | 172 | 176 | 180 | 184 | 188 | * - * ------------------------------------------------- * - * | CR | LR | PC | back-chain| * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | * - * ------------------------------------------------- * - * | 192 | 196 | 200 | 204 | 208 | 212 | 216 | 220 | * - * ------------------------------------------------- * - * | cr saved | lr saved | compiler | linker | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | * - * ------------------------------------------------- * - * | 224 | 228 | 232 | 236 | 240 | 244 | 248 | 252 | * - * ------------------------------------------------- * - * | TOC saved | FCTX | DATA | | * - * ------------------------------------------------- * - * * - *******************************************************/ - - .file "make_ppc64_sysv_xcoff_gas.S" - .toc - .csect .text[PR], 5 - .align 2 - .globl make_fcontext[DS] - .globl .make_fcontext - .csect make_fcontext[DS], 3 -make_fcontext: - .llong .make_fcontext[PR], TOC[tc0], 0 - .csect .text[PR], 5 -.make_fcontext: - # save return address into R6 - mflr 6 - - # first arg of make_fcontext() == top address of context-function - # shift address in R3 to lower 16 byte boundary - clrrdi 3, 3, 4 - - # reserve space for context-data on context-stack - # including 64 byte of linkage + parameter area (R1 % 16 == 0) - subi 3, 3, 248 - - # third arg of make_fcontext() == address of context-function descriptor - ld 4, 0(5) - std 4, 176(3) - # save TOC of context-function - ld 4, 8(5) - std 4, 0(3) - - # set back-chain to zero - li 0, 0 - std 0, 184(3) - - # zero in r3 indicates first jump to context-function - std 0, 152(3) - - # load LR - mflr 0 - # jump to label 1 - bl .Label -.Label: - # load LR into R4 - mflr 4 - # compute abs address of label .L_finish - addi 4, 4, .L_finish - .Label - # restore LR - mtlr 0 - # save address of finish as return-address for context-function - # will be entered after context-function returns - std 4, 168(3) - - # restore return address from R6 - mtlr 6 - - blr # return pointer to context-data - -.L_finish: - # save return address into R0 - mflr 0 - # save return address on stack, set up stack frame - std 0, 8(1) - # allocate stack space, R1 % 16 == 0 - stdu 1, -32(1) - - # exit code is zero - li 3, 0 - # exit application - bl ._exit - nop diff --git a/contrib/restricted/boost/context/src/asm/make_riscv64_sysv_elf_gas.S b/contrib/restricted/boost/context/src/asm/make_riscv64_sysv_elf_gas.S deleted file mode 100644 index 6d97c59e877..00000000000 --- a/contrib/restricted/boost/context/src/asm/make_riscv64_sysv_elf_gas.S +++ /dev/null @@ -1,92 +0,0 @@ -/* - 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 | * - * ------------------------------------------------- * - * | 0x0 | 0x4 | 0x8 | 0xc | 0x10| 0x14| 0x18| 0x1c| * - * ------------------------------------------------- * - * | fs0 | fs1 | fs2 | fs3 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | * - * ------------------------------------------------- * - * | 0x20| 0x24| 0x28| 0x2c| 0x30| 0x34| 0x38| 0x3c| * - * ------------------------------------------------- * - * | fs4 | fs5 | fs6 | fs7 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | * - * ------------------------------------------------- * - * | 0x40| 0x44| 0x48| 0x4c| 0x50| 0x54| 0x58| 0x5c| * - * ------------------------------------------------- * - * | fs8 | fs9 | fs10 | fs11 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | * - * ------------------------------------------------- * - * | 0x60| 0x64| 0x68| 0x6c| 0x70| 0x74| 0x78| 0x7c| * - * ------------------------------------------------- * - * | s0 | s1 | s2 | s3 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | * - * ------------------------------------------------- * - * | 0x80| 0x84| 0x88| 0x8c| 0x90| 0x94| 0x98| 0x9c| * - * ------------------------------------------------- * - * | s4 | s5 | s6 | s7 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | * - * ------------------------------------------------- * - * | 0xa0| 0xa4| 0xa8| 0xac| 0xb0| 0xb4| 0xb8| 0xbc| * - * ------------------------------------------------- * - * | s8 | s9 | s10 | s11 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 48 | 49 | 50 | 51 | | | | | * - * ------------------------------------------------- * - * | 0xc0| 0xc4| 0xc8| 0xcc| | | | | * - * ------------------------------------------------- * - * | ra | pc | | | * - * ------------------------------------------------- * - * * - *******************************************************/ - -.file "make_riscv64_sysv_elf_gas.S" -.text -.align 1 -.global make_fcontext -.hidden make_fcontext -.type make_fcontext, %function -make_fcontext: - # shift address in a0 (allocated stack) to lower 16 byte boundary - andi a0, a0, ~0xF - - # reserve space for context-data on context-stack - addi a0, a0, -0xd0 - - # third arg of make_fcontext() == address of context-function - # store address as a PC to jump in - sd a2, 0xc8(a0) - - # save address of finish as return-address for context-function - # will be entered after context-function returns (RA register) - lla a4, finish - sd a4, 0xc0(a0) - - ret // return pointer to context-data (a0) - -finish: - # exit code is zero - li a0, 0 - # exit application - tail _exit@plt - -.size make_fcontext,.-make_fcontext -# Mark that we don't need executable stack. -.section .note.GNU-stack,"",%progbits diff --git a/contrib/restricted/boost/context/src/asm/make_s390x_sysv_elf_gas.S b/contrib/restricted/boost/context/src/asm/make_s390x_sysv_elf_gas.S deleted file mode 100644 index 4d6aa62c0ae..00000000000 --- a/contrib/restricted/boost/context/src/asm/make_s390x_sysv_elf_gas.S +++ /dev/null @@ -1,109 +0,0 @@ -/******************************************************* - * ------------------------------------------------- * - * | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | * - * ------------------------------------------------- * - * | 0 | 8 | 16 | 24 | * - * ------------------------------------------------- * - * | t.fctx | t.data | r2 | r6 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | * - * ------------------------------------------------- * - * | 32 | 40 | 48 | 56 | * - * ------------------------------------------------- * - * | r7 | r8 | r9 | r10 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | * - * ------------------------------------------------- * - * | 64 | 72 | 80 | 88 | * - * ------------------------------------------------- * - * | r11 | r12 | r13 | r14 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | * - * ------------------------------------------------- * - * | 96 | 104 | 112 | 120 | * - * ------------------------------------------------- * - * | f8 | f9 | f10 | f11 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | * - * ------------------------------------------------- * - * | 128 | 136 | 144 | 152 | * - * ------------------------------------------------- * - * | f12 | f13 | f14 | f15 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | * - * ------------------------------------------------- * - * | 160 | 168 | 176 | | * - * ------------------------------------------------- * - * | fpc | pc | | | * - * ------------------------------------------------- * - *******************************************************/ - -.text -.align 8 -.global make_fcontext -.hidden make_fcontext -.type make_fcontext, @function - -#define ARG_OFFSET 0 -#define GR_OFFSET 16 -#define R14_OFFSET 88 -#define FP_OFFSET 96 -#define FPC_OFFSET 160 -#define PC_OFFSET 168 -#define CONTEXT_SIZE 176 - -/* - -fcontext_t make_fcontext( void * sp, std::size_t size, void (* fn)( transfer_t) ); - -Create and return a context below SP to call FN. - -Incoming args -r2 - The stack location where to create the context -r3 - The size of the context -r4 - The address of the context function - -*/ - -make_fcontext: - .machine "z10" - /* Align the stack to an 8 byte boundary. */ - nill %r2,0xfff8 - - /* Allocate stack space for the context. */ - aghi %r2,-CONTEXT_SIZE - - /* Set the r2 save slot to zero. This indicates jump_fcontext - that this is a special context. */ - mvghi GR_OFFSET(%r2),0 - - /* Save the floating point control register. */ - stfpc FPC_OFFSET(%r2) - - /* Store the address of the target function as new pc. */ - stg %r4,PC_OFFSET(%r2) - - /* Store a pointer to the finish routine as r14. If a function - called via context routines just returns that value will be - loaded and used as return address. Hence the program will - just exit. */ - larl %r1,finish - stg %r1,R14_OFFSET(%r2) - - /* Return as usual with the new context returned in r2. */ - br %r14 - -finish: - /* In finish tasks, you load the exit code and exit the - make_fcontext This is called when the context-function is - entirely executed. */ - lghi %r2,0 - brasl %r14,_exit@PLT - -.size make_fcontext,.-make_fcontext -.section .note.GNU-stack,"",%progbits diff --git a/contrib/restricted/boost/context/src/asm/make_sparc64_sysv_elf_gas.S b/contrib/restricted/boost/context/src/asm/make_sparc64_sysv_elf_gas.S deleted file mode 100644 index 3e7ee809c91..00000000000 --- a/contrib/restricted/boost/context/src/asm/make_sparc64_sysv_elf_gas.S +++ /dev/null @@ -1,68 +0,0 @@ -/* - Copyright Claudio Jeker 2024 - 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) -*/ - -/* - * fcontext_t *make_fcontext(void *sp, size_t size, void (*fn)(transfer_t)); - */ -#define CC64FSZ 176 -#define BIAS 2047 -#define FP 112 -#define SP 128 -#define I7 136 - -.file "make_sparc64_sysv_elf_gas.S" -.text -.align 4 -.global make_fcontext -.type make_fcontext, %function -make_fcontext: - save %sp, -CC64FSZ, %sp - - # shift address in %i0 (allocated stack) to lower 16 byte boundary - and %i0, -0xf, %i0 - - # reserve space for two frames on the stack - # the first frame is for the call the second one holds the data - # for jump_fcontext - sub %i0, 2 * CC64FSZ, %i0 - - # third argument of make_fcontext() is the context-function to call - # store it in the first stack frame, also clear %fp there to indicate - # the end of the stack. - stx %i2, [%i0 + CC64FSZ + I7] - stx %g0, [%i0 + CC64FSZ + FP] - - # On OpenBSD stackghost prevents overriding the return address on - # a stack frame. So this code uses an extra trampoline to load - # to call the context-function and then do the _exit(0) dance. - # Extract the full address of the trampoline via pc relative addressing -1: - rd %pc, %l0 - add %l0, (trampoline - 1b - 8), %l0 - stx %l0, [%i0 + I7] - - # Save framepointer to first stack frame but first substract the BIAS - add %i0, CC64FSZ - BIAS, %l0 - stx %l0, [%i0 + SP] - - # Return context-data which is also includes the BIAS - ret - restore %i0, -BIAS, %o0 - -trampoline: - ldx [%sp + BIAS + I7], %l0 - - # no need to setup transfer_t, already in %o0 and %o1 - jmpl %l0, %o7 - nop - - call _exit - clr %o0 - unimp -.size make_fcontext,.-make_fcontext -# Mark that we don't need executable stack. -.section .note.GNU-stack,"",%progbits diff --git a/contrib/restricted/boost/context/src/asm/ontop_combined_sysv_macho_gas.S b/contrib/restricted/boost/context/src/asm/ontop_combined_sysv_macho_gas.S deleted file mode 100644 index 7d254de22cf..00000000000 --- a/contrib/restricted/boost/context/src/asm/ontop_combined_sysv_macho_gas.S +++ /dev/null @@ -1,24 +0,0 @@ -/* - Copyright Sergue E. Leontiev 2013. - 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) -*/ - -// Stub file for universal binary - -#if defined(__i386__) - #include "ontop_i386_sysv_macho_gas.S" -#elif defined(__x86_64__) - #include "ontop_x86_64_sysv_macho_gas.S" -#elif defined(__ppc__) - #include "ontop_ppc32_sysv_macho_gas.S" -#elif defined(__ppc64__) - #include "ontop_ppc64_sysv_macho_gas.S" -#elif defined(__arm__) - #include "ontop_arm_aapcs_macho_gas.S" -#elif defined(__arm64__) - #include "ontop_arm64_aapcs_macho_gas.S" -#else - #error "No arch's" -#endif diff --git a/contrib/restricted/boost/context/src/asm/ontop_loongarch64_sysv_elf_gas.S b/contrib/restricted/boost/context/src/asm/ontop_loongarch64_sysv_elf_gas.S deleted file mode 100644 index ed392e8afac..00000000000 --- a/contrib/restricted/boost/context/src/asm/ontop_loongarch64_sysv_elf_gas.S +++ /dev/null @@ -1,119 +0,0 @@ -/******************************************************* - * * - * ------------------------------------------------- * - * | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | * - * ------------------------------------------------- * - * | 0 | 8 | 16 | 24 | * - * ------------------------------------------------- * - * | FS0 | FS1 | FS2 | FS3 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | * - * ------------------------------------------------- * - * | 32 | 40 | 48 | 56 | * - * ------------------------------------------------- * - * | FS4 | FS5 | FS6 | FS7 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | * - * ------------------------------------------------- * - * | 64 | 72 | 80 | 88 | * - * ------------------------------------------------- * - * | S0 | S1 | S2 | S3 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | * - * ------------------------------------------------- * - * | 96 | 100 | 104 | 108 | 112 | 116 | 120 | 124 | * - * ------------------------------------------------- * - * | S4 | S5 | S6 | S7 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | * - * ------------------------------------------------- * - * | 128 | 132 | 136 | 140 | 144 | 148 | 152 | 156 | * - * ------------------------------------------------- * - * | S8 | FP | RA | PC | * - * ------------------------------------------------- * - * * - * *****************************************************/ - -.file "ontop_loongarch64_sysv_elf_gas.S" -.text -.globl ontop_fcontext -.hidden ontop_fcontext -.align 2 -.type ontop_fcontext,@function -ontop_fcontext: - # reserve space on stack - addi.d $sp, $sp, -160 - - # save fs0 - fs7 - fst.d $fs0, $sp, 0 - fst.d $fs1, $sp, 8 - fst.d $fs2, $sp, 16 - fst.d $fs3, $sp, 24 - fst.d $fs4, $sp, 32 - fst.d $fs5, $sp, 40 - fst.d $fs6, $sp, 48 - fst.d $fs7, $sp, 56 - - # save s0 - s8, fp, ra - st.d $s0, $sp, 64 - st.d $s1, $sp, 72 - st.d $s2, $sp, 80 - st.d $s3, $sp, 88 - st.d $s4, $sp, 96 - st.d $s5, $sp, 104 - st.d $s6, $sp, 112 - st.d $s7, $sp, 120 - st.d $s8, $sp, 128 - st.d $fp, $sp, 136 - st.d $ra, $sp, 144 - - # save RA as PC - st.d $ra, $sp, 152 - - # store SP (pointing to context-data) in A3 - move $a3, $sp - - # restore SP (pointing to context-data) from A0 - move $sp, $a0 - - # load fs0 - fs11 - fld.d $fs0, $sp, 0 - fld.d $fs1, $sp, 8 - fld.d $fs2, $sp, 16 - fld.d $fs3, $sp, 24 - fld.d $fs4, $sp, 32 - fld.d $fs5, $sp, 40 - fld.d $fs6, $sp, 48 - fld.d $fs7, $sp, 56 - - #load s0 - s11, fp, ra - ld.d $s0, $sp, 64 - ld.d $s1, $sp, 72 - ld.d $s2, $sp, 80 - ld.d $s3, $sp, 88 - ld.d $s4, $sp, 96 - ld.d $s5, $sp, 104 - ld.d $s6, $sp, 112 - ld.d $s7, $sp, 120 - ld.d $s8, $sp, 128 - ld.d $fp, $sp, 136 - ld.d $ra, $sp, 144 - - # return transfer_t from jump - # pass transfer_t as first arg in context function - # a0 == FCTX, a1 == DATA - move $a0, $a3 - - # adjust stack - addi.d $sp, $sp, 160 - - # jump to context - jr $a2 -.size ontop_fcontext, .-ontop_fcontext - -/* Mark that we don't need executable stack. */ -.section .note.GNU-stack,"",%progbits diff --git a/contrib/restricted/boost/context/src/asm/ontop_mips32_o32_elf_gas.S b/contrib/restricted/boost/context/src/asm/ontop_mips32_o32_elf_gas.S deleted file mode 100644 index e6306cc375e..00000000000 --- a/contrib/restricted/boost/context/src/asm/ontop_mips32_o32_elf_gas.S +++ /dev/null @@ -1,121 +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 | * - * ------------------------------------------------- * - * | 0 | 4 | 8 | 12 | 16 | 20 | 24 | 28 | * - * ------------------------------------------------- * - * | F20 | F22 | F24 | F26 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | * - * ------------------------------------------------- * - * | 32 | 36 | 40 | 44 | 48 | 52 | 56 | 60 | * - * ------------------------------------------------- * - * | F28 | F30 | S0 | S1 | S2 | S3 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | * - * ------------------------------------------------- * - * | 64 | 68 | 72 | 76 | 80 | 84 | 88 | 92 | * - * ------------------------------------------------- * - * | S4 | S5 | S6 | S7 | FP |hiddn| RA | PC | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | * - * ------------------------------------------------- * - * | 96 | 100 | 104 | 108 | 112 | 116 | 120 | 124 | * - * ------------------------------------------------- * - * | ABI ARGS | GP | FCTX| DATA| | * - * ------------------------------------------------- * - * * - * *****************************************************/ - -.file "ontop_mips32_o32_elf_gas.S" -.text -.globl ontop_fcontext -.hidden ontop_fcontext -.align 2 -.type ontop_fcontext,@function -.ent ontop_fcontext -ontop_fcontext: - # reserve space on stack - addiu $sp, $sp, -96 - - sw $s0, 48($sp) # save S0 - sw $s1, 52($sp) # save S1 - sw $s2, 56($sp) # save S2 - sw $s3, 60($sp) # save S3 - sw $s4, 64($sp) # save S4 - sw $s5, 68($sp) # save S5 - sw $s6, 72($sp) # save S6 - sw $s7, 76($sp) # save S7 - sw $fp, 80($sp) # save FP - sw $a0, 84($sp) # save hidden, address of returned transfer_t - sw $ra, 88($sp) # save RA - sw $ra, 92($sp) # save RA as PC - -#if defined(__mips_hard_float) - s.d $f20, ($sp) # save F20 - s.d $f22, 8($sp) # save F22 - s.d $f24, 16($sp) # save F24 - s.d $f26, 24($sp) # save F26 - s.d $f28, 32($sp) # save F28 - s.d $f30, 40($sp) # save F30 -#endif - - # store SP (pointing to context-data) in A0 - move $a0, $sp - - # restore SP (pointing to context-data) from A1 - move $sp, $a1 - -#if defined(__mips_hard_float) - l.d $f20, ($sp) # restore F20 - l.d $f22, 8($sp) # restore F22 - l.d $f24, 16($sp) # restore F24 - l.d $f26, 24($sp) # restore F26 - l.d $f28, 32($sp) # restore F28 - l.d $f30, 40($sp) # restore F30 -#endif - - lw $s0, 48($sp) # restore S0 - lw $s1, 52($sp) # restore S1 - lw $s2, 56($sp) # restore S2 - lw $s3, 60($sp) # restore S3 - lw $s4, 64($sp) # restore S4 - lw $s5, 68($sp) # restore S5 - lw $s6, 72($sp) # restore S6 - lw $s7, 76($sp) # restore S7 - lw $fp, 80($sp) # restore FP - lw $v0, 84($sp) # restore hidden, address of returned transfer_t - lw $ra, 88($sp) # restore RA - - # load PC - move $t9, $a3 - - # adjust stack - addiu $sp, $sp, 96 - - # return transfer_t from jump - sw $a0, ($v0) # fctx of transfer_t - sw $a2, 4($v0) # data of transfer_t - # pass transfer_t as first arg in context function - # A0 == hidden, A1 == fctx, A2 == data - move $a1, $a0 - move $a0, $v0 - - # jump to context - jr $t9 -.end ontop_fcontext -.size ontop_fcontext, .-ontop_fcontext - -/* Mark that we don't need executable stack. */ -.section .note.GNU-stack,"",%progbits diff --git a/contrib/restricted/boost/context/src/asm/ontop_mips64_n64_elf_gas.S b/contrib/restricted/boost/context/src/asm/ontop_mips64_n64_elf_gas.S deleted file mode 100644 index e73e0395b12..00000000000 --- a/contrib/restricted/boost/context/src/asm/ontop_mips64_n64_elf_gas.S +++ /dev/null @@ -1,124 +0,0 @@ -/* - Copyright Jiaxun Yang 2018. - Distributed under the Boost Software License, Version 1.0. - (See accompanying file LICENSE_1_0.txt or copy at - http://www.boost.org/LICENSE -*/ - -/******************************************************* - * * - * ------------------------------------------------- * - * | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | * - * ------------------------------------------------- * - * | 0 | 8 | 16 | 24 | * - * ------------------------------------------------- * - * | F24 | F25 | F26 | F27 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | * - * ------------------------------------------------- * - * | 32 | 40 | 48 | 56 | * - * ------------------------------------------------- * - * | F28 | F29 | F30 | F31 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | * - * ------------------------------------------------- * - * | 64 | 72 | 80 | 88 | * - * ------------------------------------------------- * - * | S0 | S1 | S2 | S3 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | * - * ------------------------------------------------- * - * | 96 | 100 | 104 | 108 | 112 | 116 | 120 | 124 | * - * ------------------------------------------------- * - * | S4 | S5 | S6 | S7 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | * - * ------------------------------------------------- * - * | 128 | 132 | 136 | 140 | 144 | 148 | 152 | 156 | * - * ------------------------------------------------- * - * | FP | GP | RA | PC | * - * ------------------------------------------------- * - * * - * *****************************************************/ - -.file "ontop_mips64_n64_elf_gas.S" -.text -.globl ontop_fcontext -.hidden ontop_fcontext -.align 3 -.type ontop_fcontext,@function -.ent ontop_fcontext -ontop_fcontext: - # reserve space on stack - daddiu $sp, $sp, -160 - - sd $s0, 64($sp) # save S0 - sd $s1, 72($sp) # save S1 - sd $s2, 80($sp) # save S2 - sd $s3, 88($sp) # save S3 - sd $s4, 96($sp) # save S4 - sd $s5, 104($sp) # save S5 - sd $s6, 112($sp) # save S6 - sd $s7, 120($sp) # save S7 - sd $fp, 128($sp) # save FP - sd $ra, 144($sp) # save RA - sd $ra, 152($sp) # save RA as PC - -#if defined(__mips_hard_float) - s.d $f24, 0($sp) # save F24 - s.d $f25, 8($sp) # save F25 - s.d $f26, 16($sp) # save F26 - s.d $f27, 24($sp) # save F27 - s.d $f28, 32($sp) # save F28 - s.d $f29, 40($sp) # save F29 - s.d $f30, 48($sp) # save F30 - s.d $f31, 56($sp) # save F31 -#endif - - # store SP (pointing to context-data) in t0 - move $t0, $sp - - # restore SP (pointing to context-data) from a0 - move $sp, $a0 - -#if defined(__mips_hard_float) - l.d $f24, 0($sp) # restore F24 - l.d $f25, 8($sp) # restore F25 - l.d $f26, 16($sp) # restore F26 - l.d $f27, 24($sp) # restore F27 - l.d $f28, 32($sp) # restore F28 - l.d $f29, 40($sp) # restore F29 - l.d $f30, 48($sp) # restore F30 - l.d $f31, 56($sp) # restore F31 -#endif - - ld $s0, 64($sp) # restore S0 - ld $s1, 72($sp) # restore S1 - ld $s2, 80($sp) # restore S2 - ld $s3, 88($sp) # restore S3 - ld $s4, 96($sp) # restore S4 - ld $s5, 104($sp) # restore S5 - ld $s6, 112($sp) # restore S6 - ld $s7, 120($sp) # restore S7 - ld $fp, 128($sp) # restore FP - ld $ra, 144($sp) # restore RA - - # load PC - move $t9, $a2 - - # adjust stack - daddiu $sp, $sp, 160 - - move $a0, $t0 # move param from t0 to a0 as param - - # jump to context - jr $t9 -.end ontop_fcontext -.size ontop_fcontext, .-ontop_fcontext - -/* Mark that we don't need executable stack. */ -.section .note.GNU-stack,"",%progbits diff --git a/contrib/restricted/boost/context/src/asm/ontop_ppc32_ppc64_sysv_macho_gas.S b/contrib/restricted/boost/context/src/asm/ontop_ppc32_ppc64_sysv_macho_gas.S deleted file mode 100644 index 4632f4cc9e0..00000000000 --- a/contrib/restricted/boost/context/src/asm/ontop_ppc32_ppc64_sysv_macho_gas.S +++ /dev/null @@ -1,16 +0,0 @@ -/* - Copyright Sergue E. Leontiev 2013. - 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) -*/ - -// Stub file for universal binary - -#if defined(__ppc__) - #include "ontop_ppc32_sysv_macho_gas.S" -#elif defined(__ppc64__) - #include "ontop_ppc64_sysv_macho_gas.S" -#else - #error "No arch's" -#endif diff --git a/contrib/restricted/boost/context/src/asm/ontop_ppc32_sysv_elf_gas.S b/contrib/restricted/boost/context/src/asm/ontop_ppc32_sysv_elf_gas.S deleted file mode 100644 index 8aa350a4f8b..00000000000 --- a/contrib/restricted/boost/context/src/asm/ontop_ppc32_sysv_elf_gas.S +++ /dev/null @@ -1,194 +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 | 4 | 8 | 12 | 16 | 20 | 24 | 28 | * - * ------------------------------------------------- * - * |bchai|hiddn| fpscr | PC | CR | R14 | R15 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 32 | 36 | 40 | 44 | 48 | 52 | 56 | 60 | * - * ------------------------------------------------- * - * | R16 | R17 | R18 | R19 | R20 | R21 | R22 | R23 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 64 | 68 | 72 | 76 | 80 | 84 | 88 | 92 | * - * ------------------------------------------------- * - * | R24 | R25 | R26 | R27 | R28 | R29 | R30 | R31 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 96 | 100 | 104 | 108 | 112 | 116 | 120 | 124 | * - * ------------------------------------------------- * - * | F14 | F15 | F16 | F17 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 128 | 132 | 136 | 140 | 144 | 148 | 152 | 156 | * - * ------------------------------------------------- * - * | F18 | F19 | F20 | F21 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 160 | 164 | 168 | 172 | 176 | 180 | 184 | 188 | * - * ------------------------------------------------- * - * | F22 | F23 | F24 | F25 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 192 | 196 | 200 | 204 | 208 | 212 | 216 | 220 | * - * ------------------------------------------------- * - * | F26 | F27 | F28 | F29 | * - * ------------------------------------------------- * - * ------------------------|------------ * - * | 224 | 228 | 232 | 236 | 240 | 244 | * - * ------------------------|------------ * - * | F30 | F31 |bchai| LR | * - * ------------------------|------------ * - * * - *******************************************************/ - -.file "ontop_ppc32_sysv_elf_gas.S" -.text -.globl ontop_fcontext -.hidden ontop_fcontext -.align 2 -.type ontop_fcontext,@function -ontop_fcontext: - # Linux: ontop_fcontext( hidden transfer_t * R3, R4, R5, R6) - # Other: transfer_t R3:R4 = jump_fcontext( R3, R4, R5) - - mflr %r0 # return address from LR - mffs %f0 # FPSCR - mfcr %r8 # condition register - - stwu %r1, -240(%r1) # allocate stack space, R1 % 16 == 0 - stw %r0, 244(%r1) # save LR in caller's frame - -#ifdef __linux__ - stw %r3, 4(%r1) # hidden pointer -#endif - - stfd %f0, 8(%r1) # FPSCR - stw %r0, 16(%r1) # LR as PC - stw %r8, 20(%r1) # CR - - # Save registers R14 to R31. - # Don't change R2, the thread-local storage pointer. - # Don't change R13, the small data pointer. - stw %r14, 24(%r1) - stw %r15, 28(%r1) - stw %r16, 32(%r1) - stw %r17, 36(%r1) - stw %r18, 40(%r1) - stw %r19, 44(%r1) - stw %r20, 48(%r1) - stw %r21, 52(%r1) - stw %r22, 56(%r1) - stw %r23, 60(%r1) - stw %r24, 64(%r1) - stw %r25, 68(%r1) - stw %r26, 72(%r1) - stw %r27, 76(%r1) - stw %r28, 80(%r1) - stw %r29, 84(%r1) - stw %r30, 88(%r1) - stw %r31, 92(%r1) - - # Save registers F14 to F31 in slots with 8-byte alignment. - # 4-byte alignment may stall the pipeline of some processors. - # Less than 4 may cause alignment traps. - stfd %f14, 96(%r1) - stfd %f15, 104(%r1) - stfd %f16, 112(%r1) - stfd %f17, 120(%r1) - stfd %f18, 128(%r1) - stfd %f19, 136(%r1) - stfd %f20, 144(%r1) - stfd %f21, 152(%r1) - stfd %f22, 160(%r1) - stfd %f23, 168(%r1) - stfd %f24, 176(%r1) - stfd %f25, 184(%r1) - stfd %f26, 192(%r1) - stfd %f27, 200(%r1) - stfd %f28, 208(%r1) - stfd %f29, 216(%r1) - stfd %f30, 224(%r1) - stfd %f31, 232(%r1) - - # store RSP (pointing to context-data) in R7/R6 - # restore RSP (pointing to context-data) from R4/R3 -#ifdef __linux__ - mr %r7, %r1 - mr %r1, %r4 - lwz %r3, 4(%r1) # hidden pointer -#else - mr %r6, %r1 - mr %r1, %r3 -#endif - - # ignore PC at 16(%r1) - lfd %f0, 8(%r1) # FPSCR - lwz %r8, 20(%r1) # CR - - mtfsf 0xff, %f0 # restore FPSCR - mtcr %r8 # restore CR - - # restore R14 to R31 - lwz %r14, 24(%r1) - lwz %r15, 28(%r1) - lwz %r16, 32(%r1) - lwz %r17, 36(%r1) - lwz %r18, 40(%r1) - lwz %r19, 44(%r1) - lwz %r20, 48(%r1) - lwz %r21, 52(%r1) - lwz %r22, 56(%r1) - lwz %r23, 60(%r1) - lwz %r24, 64(%r1) - lwz %r25, 68(%r1) - lwz %r26, 72(%r1) - lwz %r27, 76(%r1) - lwz %r28, 80(%r1) - lwz %r29, 84(%r1) - lwz %r30, 88(%r1) - lwz %r31, 92(%r1) - - # restore F14 to F31 - lfd %f14, 96(%r1) - lfd %f15, 104(%r1) - lfd %f16, 112(%r1) - lfd %f17, 120(%r1) - lfd %f18, 128(%r1) - lfd %f19, 136(%r1) - lfd %f20, 144(%r1) - lfd %f21, 152(%r1) - lfd %f22, 160(%r1) - lfd %f23, 168(%r1) - lfd %f24, 176(%r1) - lfd %f25, 184(%r1) - lfd %f26, 192(%r1) - lfd %f27, 200(%r1) - lfd %f28, 208(%r1) - lfd %f29, 216(%r1) - lfd %f30, 224(%r1) - lfd %f31, 232(%r1) - - # restore LR from caller's frame - lwz %r0, 244(%r1) - mtlr %r0 - - # adjust stack - addi %r1, %r1, 240 - - # see tail_ppc32_sysv_elf_gas.cpp - # Linux: fcontext_ontop_tail( hidden transfer_t * R3, R4, R5, R6, R7) - # Other: transfer_t R3:R4 = fcontext_ontop_tail( R3, R4, R5, R6) - b ontop_fcontext_tail -.size ontop_fcontext, .-ontop_fcontext - -/* Mark that we don't need executable stack. */ -.section .note.GNU-stack,"",%progbits diff --git a/contrib/restricted/boost/context/src/asm/ontop_ppc32_sysv_macho_gas.S b/contrib/restricted/boost/context/src/asm/ontop_ppc32_sysv_macho_gas.S deleted file mode 100644 index ee6f5b72289..00000000000 --- a/contrib/restricted/boost/context/src/asm/ontop_ppc32_sysv_macho_gas.S +++ /dev/null @@ -1,202 +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 | * - * ------------------------------------------------- * - * | 0 | 4 | 8 | 12 | 16 | 20 | 24 | 28 | * - * ------------------------------------------------- * - * | F14 | F15 | F16 | F17 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | * - * ------------------------------------------------- * - * | 32 | 36 | 40 | 44 | 48 | 52 | 56 | 60 | * - * ------------------------------------------------- * - * | F18 | F19 | F20 | F21 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | * - * ------------------------------------------------- * - * | 64 | 68 | 72 | 76 | 80 | 84 | 88 | 92 | * - * ------------------------------------------------- * - * | F22 | F23 | F24 | F25 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | * - * ------------------------------------------------- * - * | 96 | 100 | 104 | 108 | 112 | 116 | 120 | 124 | * - * ------------------------------------------------- * - * | F26 | F27 | F28 | F29 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | * - * ------------------------------------------------- * - * | 128 | 132 | 136 | 140 | 144 | 148 | 152 | 156 | * - * ------------------------------------------------- * - * | F30 | F31 | fpscr | R13 | R14 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | * - * ------------------------------------------------- * - * | 160 | 164 | 168 | 172 | 176 | 180 | 184 | 188 | * - * ------------------------------------------------- * - * | R15 | R16 | R17 | R18 | R19 | R20 | R21 | R22 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | * - * ------------------------------------------------- * - * | 192 | 196 | 200 | 204 | 208 | 212 | 216 | 220 | * - * ------------------------------------------------- * - * | R23 | R24 | R25 | R26 | R27 | R28 | R29 | R30 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | * - * ------------------------------------------------- * - * | 224 | 228 | 232 | 236 | 240 | 244 | 248 | 252 | * - * ------------------------------------------------- * - * | R31 |hiddn| CR | LR | PC |bchai|linkr| FCTX| * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 64 | | * - * ------------------------------------------------- * - * | 256 | | * - * ------------------------------------------------- * - * | DATA| | * - * ------------------------------------------------- * - * * - *******************************************************/ - -.text -.private_extern _ontop_fcontext -.globl _ontop_fcontext -.align 2 -_ontop_fcontext: - ; reserve space on stack - subi r1, r1, 244 - - stfd f14, 0(r1) ; save F14 - stfd f15, 8(r1) ; save F15 - stfd f16, 16(r1) ; save F16 - stfd f17, 24(r1) ; save F17 - stfd f18, 32(r1) ; save F18 - stfd f19, 40(r1) ; save F19 - stfd f20, 48(r1) ; save F20 - stfd f21, 56(r1) ; save F21 - stfd f22, 64(r1) ; save F22 - stfd f23, 72(r1) ; save F23 - stfd f24, 80(r1) ; save F24 - stfd f25, 88(r1) ; save F25 - stfd f26, 96(r1) ; save F26 - stfd f27, 104(r1) ; save F27 - stfd f28, 112(r1) ; save F28 - stfd f29, 120(r1) ; save F29 - stfd f30, 128(r1) ; save F30 - stfd f31, 136(r1) ; save F31 - mffs f0 ; load FPSCR - stfd f0, 144(r1) ; save FPSCR - - stw r13, 152(r1) ; save R13 - stw r14, 156(r1) ; save R14 - stw r15, 160(r1) ; save R15 - stw r16, 164(r1) ; save R16 - stw r17, 168(r1) ; save R17 - stw r18, 172(r1) ; save R18 - stw r19, 176(r1) ; save R19 - stw r20, 180(r1) ; save R20 - stw r21, 184(r1) ; save R21 - stw r22, 188(r1) ; save R22 - stw r23, 192(r1) ; save R23 - stw r24, 196(r1) ; save R24 - stw r25, 200(r1) ; save R25 - stw r26, 204(r1) ; save R26 - stw r27, 208(r1) ; save R27 - stw r28, 212(r1) ; save R28 - stw r29, 216(r1) ; save R29 - stw r30, 220(r1) ; save R30 - stw r31, 224(r1) ; save R31 - stw r3, 228(r1) ; save hidden - - ; save CR - mfcr r0 - stw r0, 232(r1) - ; save LR - mflr r0 - stw r0, 236(r1) - ; save LR as PC - stw r0, 240(r1) - - ; store RSP (pointing to context-data) in R7 - mr r7, r1 - - ; restore RSP (pointing to context-data) from R4 - mr r1, r4 - - lfd f14, 0(r1) ; restore F14 - lfd f15, 8(r1) ; restore F15 - lfd f16, 16(r1) ; restore F16 - lfd f17, 24(r1) ; restore F17 - lfd f18, 32(r1) ; restore F18 - lfd f19, 40(r1) ; restore F19 - lfd f20, 48(r1) ; restore F20 - lfd f21, 56(r1) ; restore F21 - lfd f22, 64(r1) ; restore F22 - lfd f23, 72(r1) ; restore F23 - lfd f24, 80(r1) ; restore F24 - lfd f25, 88(r1) ; restore F25 - lfd f26, 96(r1) ; restore F26 - lfd f27, 104(r1) ; restore F27 - lfd f28, 112(r1) ; restore F28 - lfd f29, 120(r1) ; restore F29 - lfd f30, 128(r1) ; restore F30 - lfd f31, 136(r1) ; restore F31 - lfd f0, 144(r1) ; load FPSCR - mtfsf 0xff, f0 ; restore FPSCR - - lwz r13, 152(r1) ; restore R13 - lwz r14, 156(r1) ; restore R14 - lwz r15, 160(r1) ; restore R15 - lwz r16, 164(r1) ; restore R16 - lwz r17, 168(r1) ; restore R17 - lwz r18, 172(r1) ; restore R18 - lwz r19, 176(r1) ; restore R19 - lwz r20, 180(r1) ; restore R20 - lwz r21, 184(r1) ; restore R21 - lwz r22, 188(r1) ; restore R22 - lwz r23, 192(r1) ; restore R23 - lwz r24, 196(r1) ; restore R24 - lwz r25, 200(r1) ; restore R25 - lwz r26, 204(r1) ; restore R26 - lwz r27, 208(r1) ; restore R27 - lwz r28, 212(r1) ; restore R28 - lwz r29, 216(r1) ; restore R29 - lwz r30, 220(r1) ; restore R30 - lwz r31, 224(r1) ; restore R31 - lwz r3, 228(r1) ; restore hidden - - ; restore CR - lwz r0, 232(r1) - mtcr r0 - ; restore LR - lwz r0, 236(r1) - mtlr r0 - ; ignore PC - - ; adjust stack - addi r1, r1, 244 - - ; Need to pass ontop_fcontext_tail( - ; hidden R3, - ; R4 = ignore, - ; R5 = data, - ; R6 = ontop-function, - ; R7 = fcontext_t - ; ) - ; All of these registers are correctly set at this point - b _ontop_fcontext_tail diff --git a/contrib/restricted/boost/context/src/asm/ontop_ppc32_sysv_xcoff_gas.S b/contrib/restricted/boost/context/src/asm/ontop_ppc32_sysv_xcoff_gas.S deleted file mode 100644 index 9dfb492f7e4..00000000000 --- a/contrib/restricted/boost/context/src/asm/ontop_ppc32_sysv_xcoff_gas.S +++ /dev/null @@ -1,230 +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 | 4 | 8 | 12 | 16 | 20 | 24 | 28 | * - * ------------------------------------------------- * - * |bchai| CR | LR |compl| link| TOC | R14 | R15 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 32 | 36 | 40 | 44 | 48 | 52 | 56 | 60 | * - * ------------------------------------------------- * - * | R16 | R17 | R18 | R19 | R20 | R21 | R22 | R23 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 64 | 68 | 72 | 76 | 80 | 84 | 88 | 92 | * - * ------------------------------------------------- * - * | R24 | R25 | R26 | R27 | R28 | R29 | R30 | R31 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 96 | 100 | 104 | 108 | 112 | 116 | 120 | 124 | * - * ------------------------------------------------- * - * | F14 | F15 | F16 | F17 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 128 | 132 | 136 | 140 | 144 | 148 | 152 | 156 | * - * ------------------------------------------------- * - * | F18 | F19 | F20 | F21 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 160 | 164 | 168 | 172 | 176 | 180 | 184 | 188 | * - * ------------------------------------------------- * - * | F22 | F23 | F24 | F25 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 192 | 196 | 200 | 204 | 208 | 212 | 216 | 220 | * - * ------------------------------------------------- * - * | F26 | F27 | F28 | F29 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 224 | 228 | 232 | 236 | 240 | 244 | 248 | 252 | * - * ------------------------------------------------- * - * | F30 | F31 | PC |hiddn| fpscr | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 256 | 260 | 264 | 268 | 272 | 276 | 280 | 284 | * - * ------------------------------------------------- * - * |bchai|savLR|savLR|compl| link|svTOC| FCTX| DATA| * - * ------------------------------------------------- * - * * - *******************************************************/ - - .file "ontop_ppc32_sysv_xcoff_xas.S" - .toc - .csect .text[PR] - .align 2 - .globl ontop_fcontext[DS] - .globl .ontop_fcontext - .csect ontop_fcontext[DS] -ontop_fcontext: - .long .ontop_fcontext[PR], TOC[tc0], 0 - .csect .text[PR], 5 -.ontop_fcontext: - # reserve space on stack - subi 1, 1, 256 - - # save CR - mfcr 0 - stw 0, 4(1) - # save LR - mflr 0 - stw 0, 8(1) - # save LR as PC - stw 0, 240(1) - # save TOC - stw 2, 20(1) - - # Save registers R14 to R31. - stw 14, 24(1) - stw 15, 28(1) - stw 16, 32(1) - stw 17, 36(1) - stw 18, 40(1) - stw 19, 44(1) - stw 20, 48(1) - stw 21, 52(1) - stw 22, 56(1) - stw 23, 60(1) - stw 24, 64(1) - stw 25, 68(1) - stw 26, 72(1) - stw 27, 76(1) - stw 28, 80(1) - stw 29, 84(1) - stw 30, 88(1) - stw 31, 92(1) - - # Save registers F14 to F31 in slots with 8-byte alignment. - # 4-byte alignment may stall the pipeline of some processors. - # Less than 4 may cause alignment traps. - stfd 14, 96(1) - stfd 15, 104(1) - stfd 16, 112(1) - stfd 17, 120(1) - stfd 18, 128(1) - stfd 19, 136(1) - stfd 20, 144(1) - stfd 21, 152(1) - stfd 22, 160(1) - stfd 23, 168(1) - stfd 24, 176(1) - stfd 25, 184(1) - stfd 26, 192(1) - stfd 27, 200(1) - stfd 28, 208(1) - stfd 29, 216(1) - stfd 30, 224(1) - stfd 31, 232(1) - - # hidden pointer - stw 3, 244(1) - - mffs 0 # load FPSCR - stfd 0, 248(1) # save FPSCR - - # store RSP (pointing to context-data) in R7 - mr 7, 1 - - # restore RSP (pointing to context-data) from R4 - mr 1, 4 - - # restore CR - lwz 0, 4(1) - mtcr 0 - - # restore R14 to R31 - lwz 14, 24(1) - lwz 15, 28(1) - lwz 16, 32(1) - lwz 17, 36(1) - lwz 18, 40(1) - lwz 19, 44(1) - lwz 20, 48(1) - lwz 21, 52(1) - lwz 22, 56(1) - lwz 23, 60(1) - lwz 24, 64(1) - lwz 25, 68(1) - lwz 26, 72(1) - lwz 27, 76(1) - lwz 28, 80(1) - lwz 29, 84(1) - lwz 30, 88(1) - lwz 31, 92(1) - - # restore F14 to F31 - lfd 14, 96(1) - lfd 15, 104(1) - lfd 16, 112(1) - lfd 17, 120(1) - lfd 18, 128(1) - lfd 19, 136(1) - lfd 20, 144(1) - lfd 21, 152(1) - lfd 22, 160(1) - lfd 23, 168(1) - lfd 24, 176(1) - lfd 25, 184(1) - lfd 26, 192(1) - lfd 27, 200(1) - lfd 28, 208(1) - lfd 29, 216(1) - lfd 30, 224(1) - lfd 31, 232(1) - - lwz 3, 244(1) # restore hidden - - lfd 0, 248(1) # load FPSCR - mtfsf 0xff, 0 # restore FPSCR - - # copy transfer_t into ontop_fn arg registers - mr 4, 7 - # arg pointer already in r5 - # hidden arg already in r3 - - # restore CTR - lwz 7, 0(6) - mtctr 7 - # restore TOC - lwz 2, 4(6) - - # zero in r3 indicates first jump to context-function - cmpdi 3, 0 - beq use_entry_arg - -return_to_ctx: - # restore LR - lwz 0, 8(1) - mtlr 0 - - # adjust stack - addi 1, 1, 256 - - # jump to context - bctr - -use_entry_arg: - # compute return-value struct address - # (passed has hidden arg to ontop_fn) - addi 3, 1, 8 - - # jump to context and update LR - bctrl - - # restore CTR - lwz 7, 4(1) - mtctr 7 - # restore TOC - lwz 2, 20(1) - - # copy returned transfer_t into entry_fn arg registers - lwz 3, 8(1) - lwz 4, 12(1) - - b return_to_ctx diff --git a/contrib/restricted/boost/context/src/asm/ontop_ppc64_sysv_elf_gas.S b/contrib/restricted/boost/context/src/asm/ontop_ppc64_sysv_elf_gas.S deleted file mode 100644 index 46cf30d8aa5..00000000000 --- a/contrib/restricted/boost/context/src/asm/ontop_ppc64_sysv_elf_gas.S +++ /dev/null @@ -1,245 +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 | * - * ------------------------------------------------- * - * | 0 | 4 | 8 | 12 | 16 | 20 | 24 | 28 | * - * ------------------------------------------------- * - * | TOC | R14 | R15 | R16 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | * - * ------------------------------------------------- * - * | 32 | 36 | 40 | 44 | 48 | 52 | 56 | 60 | * - * ------------------------------------------------- * - * | R17 | R18 | R19 | R20 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | * - * ------------------------------------------------- * - * | 64 | 68 | 72 | 76 | 80 | 84 | 88 | 92 | * - * ------------------------------------------------- * - * | R21 | R22 | R23 | R24 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | * - * ------------------------------------------------- * - * | 96 | 100 | 104 | 108 | 112 | 116 | 120 | 124 | * - * ------------------------------------------------- * - * | R25 | R26 | R27 | R28 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | * - * ------------------------------------------------- * - * | 128 | 132 | 136 | 140 | 144 | 148 | 152 | 156 | * - * ------------------------------------------------- * - * | R29 | R30 | R31 | hidden | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | * - * ------------------------------------------------- * - * | 160 | 164 | 168 | 172 | 176 | 180 | 184 | 188 | * - * ------------------------------------------------- * - * | CR | LR | PC | back-chain| * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | * - * ------------------------------------------------- * - * | 192 | 196 | 200 | 204 | 208 | 212 | 216 | 220 | * - * ------------------------------------------------- * - * | cr saved | lr saved | compiler | linker | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | * - * ------------------------------------------------- * - * | 224 | 228 | 232 | 236 | 240 | 244 | 248 | 252 | * - * ------------------------------------------------- * - * | TOC saved | FCTX | DATA | | * - * ------------------------------------------------- * - * * - *******************************************************/ - -.file "ontop_ppc64_sysv_elf_gas.S" -.globl ontop_fcontext -.hidden ontop_fcontext -#if _CALL_ELF == 2 - .text - .align 2 -ontop_fcontext: - addis %r2, %r12, .TOC.-ontop_fcontext@ha - addi %r2, %r2, .TOC.-ontop_fcontext@l - .localentry ontop_fcontext, . - ontop_fcontext -#else - .section ".opd","aw" - .align 3 -ontop_fcontext: -# ifdef _CALL_LINUX - .quad .L.ontop_fcontext,.TOC.@tocbase,0 - .type ontop_fcontext,@function - .text - .align 2 -.L.ontop_fcontext: -# else - .hidden .ontop_fcontext - .globl .ontop_fcontext - .quad .ontop_fcontext,.TOC.@tocbase,0 - .size ontop_fcontext,24 - .type .ontop_fcontext,@function - .text - .align 2 -.ontop_fcontext: -# endif -#endif - # reserve space on stack - subi %r1, %r1, 184 - -#if _CALL_ELF != 2 - std %r2, 0(%r1) # save TOC -#endif - std %r14, 8(%r1) # save R14 - std %r15, 16(%r1) # save R15 - std %r16, 24(%r1) # save R16 - std %r17, 32(%r1) # save R17 - std %r18, 40(%r1) # save R18 - std %r19, 48(%r1) # save R19 - std %r20, 56(%r1) # save R20 - std %r21, 64(%r1) # save R21 - std %r22, 72(%r1) # save R22 - std %r23, 80(%r1) # save R23 - std %r24, 88(%r1) # save R24 - std %r25, 96(%r1) # save R25 - std %r26, 104(%r1) # save R26 - std %r27, 112(%r1) # save R27 - std %r28, 120(%r1) # save R28 - std %r29, 128(%r1) # save R29 - std %r30, 136(%r1) # save R30 - std %r31, 144(%r1) # save R31 -#if _CALL_ELF != 2 - std %r3, 152(%r1) # save hidden -#endif - - # save CR - mfcr %r0 - std %r0, 160(%r1) - # save LR - mflr %r0 - std %r0, 168(%r1) - # save LR as PC - std %r0, 176(%r1) - - # store RSP (pointing to context-data) in R7 - mr %r7, %r1 - -#if _CALL_ELF == 2 - # restore RSP (pointing to context-data) from R3 - mr %r1, %r3 -#else - # restore RSP (pointing to context-data) from R4 - mr %r1, %r4 -#endif - - ld %r14, 8(%r1) # restore R14 - ld %r15, 16(%r1) # restore R15 - ld %r16, 24(%r1) # restore R16 - ld %r17, 32(%r1) # restore R17 - ld %r18, 40(%r1) # restore R18 - ld %r19, 48(%r1) # restore R19 - ld %r20, 56(%r1) # restore R20 - ld %r21, 64(%r1) # restore R21 - ld %r22, 72(%r1) # restore R22 - ld %r23, 80(%r1) # restore R23 - ld %r24, 88(%r1) # restore R24 - ld %r25, 96(%r1) # restore R25 - ld %r26, 104(%r1) # restore R26 - ld %r27, 112(%r1) # restore R27 - ld %r28, 120(%r1) # restore R28 - ld %r29, 128(%r1) # restore R29 - ld %r30, 136(%r1) # restore R30 - ld %r31, 144(%r1) # restore R31 -#if _CALL_ELF != 2 - ld %r3, 152(%r1) # restore hidden -#endif - - # restore CR - ld %r0, 160(%r1) - mtcr %r0 - -#if _CALL_ELF == 2 - # restore CTR - mtctr %r5 - - # store cb entrypoint in %r12, used for TOC calculation - mr %r12, %r5 - - # copy transfer_t into ontop_fn arg registers - mr %r3, %r7 - # arg pointer already in %r4 -#else - # copy transfer_t into ontop_fn arg registers - mr %r4, %r7 - # arg pointer already in %r5 - # hidden arg already in %r3 - - # restore CTR - ld %r7, 0(%r6) - mtctr %r7 - # restore TOC - ld %r2, 8(%r6) - - # zero in r3 indicates first jump to context-function - cmpdi %r3, 0 - beq use_entry_arg -#endif - -return_to_ctx: - # restore LR - ld %r0, 168(%r1) - mtlr %r0 - - # adjust stack - addi %r1, %r1, 184 - - # jump to context - bctr - -#if _CALL_ELF == 2 - .size ontop_fcontext, .-ontop_fcontext -#else -use_entry_arg: - # compute return-value struct address - # (passed has hidden arg to ontop_fn) - addi %r3, %r1, 8 - - # jump to context and update LR - bctrl - - # restore CTR - ld %r7, 176(%r1) - mtctr %r7 -#if _CALL_ELF != 2 - # restore TOC - ld %r2, 0(%r1) -#endif - - # copy returned transfer_t into entry_fn arg registers - ld %r3, 8(%r1) - ld %r4, 16(%r1) - - b return_to_ctx -# ifdef _CALL_LINUX - .size .ontop_fcontext, .-.L.ontop_fcontext -# else - .size .ontop_fcontext, .-.ontop_fcontext -# endif -#endif - - -/* Mark that we don't need executable stack. */ -.section .note.GNU-stack,"",%progbits diff --git a/contrib/restricted/boost/context/src/asm/ontop_ppc64_sysv_macho_gas.S b/contrib/restricted/boost/context/src/asm/ontop_ppc64_sysv_macho_gas.S deleted file mode 100644 index 5cd6359e314..00000000000 --- a/contrib/restricted/boost/context/src/asm/ontop_ppc64_sysv_macho_gas.S +++ /dev/null @@ -1,152 +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 | * - * ------------------------------------------------- * - * | 0 | 4 | 8 | 12 | 16 | 20 | 24 | 28 | * - * ------------------------------------------------- * - * | R13 | R14 | R15 | R16 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | * - * ------------------------------------------------- * - * | 32 | 36 | 40 | 44 | 48 | 52 | 56 | 60 | * - * ------------------------------------------------- * - * | R17 | R18 | R19 | R20 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | * - * ------------------------------------------------- * - * | 64 | 68 | 72 | 76 | 80 | 84 | 88 | 92 | * - * ------------------------------------------------- * - * | R21 | R22 | R23 | R24 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | * - * ------------------------------------------------- * - * | 96 | 100 | 104 | 108 | 112 | 116 | 120 | 124 | * - * ------------------------------------------------- * - * | R25 | R26 | R27 | R28 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | * - * ------------------------------------------------- * - * | 128 | 132 | 136 | 140 | 144 | 148 | 152 | 156 | * - * ------------------------------------------------- * - * | R29 | R30 | R31 | hidden | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | * - * ------------------------------------------------- * - * | 160 | 164 | 168 | 172 | 176 | 180 | 184 | 188 | * - * ------------------------------------------------- * - * | CR | LR | PC | back-chain| * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | * - * ------------------------------------------------- * - * | 192 | 196 | 200 | 204 | 208 | 212 | 216 | 220 | * - * ------------------------------------------------- * - * | cr saved | lr saved | compiler | linker | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | * - * ------------------------------------------------- * - * | 224 | 228 | 232 | 236 | 240 | 244 | 248 | 252 | * - * ------------------------------------------------- * - * | FCTX | DATA | | | * - * ------------------------------------------------- * - * * - *******************************************************/ - -.text -.align 2 -.private_extern _ontop_fcontext -.globl _ontop_fcontext - -_ontop_fcontext: - ; reserve space on stack - subi r1, r1, 184 - - std r14, 8(r1) ; save R14 - std r15, 16(r1) ; save R15 - std r16, 24(r1) ; save R16 - std r17, 32(r1) ; save R17 - std r18, 40(r1) ; save R18 - std r19, 48(r1) ; save R19 - std r20, 56(r1) ; save R20 - std r21, 64(r1) ; save R21 - std r22, 72(r1) ; save R22 - std r23, 80(r1) ; save R23 - std r24, 88(r1) ; save R24 - std r25, 96(r1) ; save R25 - std r26, 104(r1) ; save R26 - std r27, 112(r1) ; save R27 - std r28, 120(r1) ; save R28 - std r29, 128(r1) ; save R29 - std r30, 136(r1) ; save R30 - std r31, 144(r1) ; save R31 - std r3, 152(r1) ; save hidden - - ; save CR - mfcr r0 - std r0, 160(r1) - ; save LR - mflr r0 - std r0, 168(r1) - ; save LR as PC - std r0, 176(r1) - - ; store RSP (pointing to context-data) in R7 - mr r7, r1 - - ; restore RSP (pointing to context-data) from R4 - mr r1, r4 - - ld r14, 8(r1) ; restore R14 - ld r15, 16(r1) ; restore R15 - ld r16, 24(r1) ; restore R16 - ld r17, 32(r1) ; restore R17 - ld r18, 40(r1) ; restore R18 - ld r19, 48(r1) ; restore R19 - ld r20, 56(r1) ; restore R20 - ld r21, 64(r1) ; restore R21 - ld r22, 72(r1) ; restore R22 - ld r23, 80(r1) ; restore R23 - ld r24, 88(r1) ; restore R24 - ld r25, 96(r1) ; restore R25 - ld r26, 104(r1) ; restore R26 - ld r27, 112(r1) ; restore R27 - ld r28, 120(r1) ; restore R28 - ld r29, 128(r1) ; restore R29 - ld r30, 136(r1) ; restore R30 - ld r31, 144(r1) ; restore R31 - ld r4, 152(r1) ; restore hidden - - ; restore CR - ld r0, 160(r1) - mtcr r0 - ; restore LR - ld r0, 168(r1) - mtlr r0 - ; ignore PC - - ; adjust stack - addi r1, r1, 184 - - ; return transfer_t - std r7, 0(r4) - std r5, 8(r4) - - ; restore CTR - mtctr r6 - - ; jump to context - bctr diff --git a/contrib/restricted/boost/context/src/asm/ontop_ppc64_sysv_xcoff_gas.S b/contrib/restricted/boost/context/src/asm/ontop_ppc64_sysv_xcoff_gas.S deleted file mode 100644 index 546b1b2da8e..00000000000 --- a/contrib/restricted/boost/context/src/asm/ontop_ppc64_sysv_xcoff_gas.S +++ /dev/null @@ -1,187 +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 | * - * ------------------------------------------------- * - * | 0 | 4 | 8 | 12 | 16 | 20 | 24 | 28 | * - * ------------------------------------------------- * - * | TOC | R14 | R15 | R16 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | * - * ------------------------------------------------- * - * | 32 | 36 | 40 | 44 | 48 | 52 | 56 | 60 | * - * ------------------------------------------------- * - * | R17 | R18 | R19 | R20 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | * - * ------------------------------------------------- * - * | 64 | 68 | 72 | 76 | 80 | 84 | 88 | 92 | * - * ------------------------------------------------- * - * | R21 | R22 | R23 | R24 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | * - * ------------------------------------------------- * - * | 96 | 100 | 104 | 108 | 112 | 116 | 120 | 124 | * - * ------------------------------------------------- * - * | R25 | R26 | R27 | R28 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | * - * ------------------------------------------------- * - * | 128 | 132 | 136 | 140 | 144 | 148 | 152 | 156 | * - * ------------------------------------------------- * - * | R29 | R30 | R31 | hidden | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | * - * ------------------------------------------------- * - * | 160 | 164 | 168 | 172 | 176 | 180 | 184 | 188 | * - * ------------------------------------------------- * - * | CR | LR | PC | back-chain| * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | * - * ------------------------------------------------- * - * | 192 | 196 | 200 | 204 | 208 | 212 | 216 | 220 | * - * ------------------------------------------------- * - * | cr saved | lr saved | compiler | linker | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | * - * ------------------------------------------------- * - * | 224 | 228 | 232 | 236 | 240 | 244 | 248 | 252 | * - * ------------------------------------------------- * - * | TOC saved | FCTX | DATA | | * - * ------------------------------------------------- * - * * - *******************************************************/ - - .file "ontop_ppc64_sysv_xcoff_gas.S" - .toc - .csect .text[PR], 5 - .align 2 - .globl ontop_fcontext[DS] - .globl .ontop_fcontext - .csect ontop_fcontext[DS], 3 -ontop_fcontext: - .llong .ontop_fcontext[PR], TOC[tc0], 0 - .csect .text[PR], 5 -.ontop_fcontext: - # reserve space on stack - subi 1, 1, 184 - - std 2, 0(1) # save TOC - std 14, 8(1) # save R14 - std 15, 16(1) # save R15 - std 16, 24(1) # save R16 - std 17, 32(1) # save R17 - std 18, 40(1) # save R18 - std 19, 48(1) # save R19 - std 20, 56(1) # save R20 - std 21, 64(1) # save R21 - std 22, 72(1) # save R22 - std 23, 80(1) # save R23 - std 24, 88(1) # save R24 - std 25, 96(1) # save R25 - std 26, 104(1) # save R26 - std 27, 112(1) # save R27 - std 28, 120(1) # save R28 - std 29, 128(1) # save R29 - std 30, 136(1) # save R30 - std 31, 144(1) # save R31 - std 3, 152(1) # save hidden - - # save CR - mfcr 0 - std 0, 160(1) - # save LR - mflr 0 - std 0, 168(1) - # save LR as PC - std 0, 176(1) - - # store RSP (pointing to context-data) in R7 - mr 7, 1 - - # restore RSP (pointing to context-data) from R4 - mr 1, 4 - - ld 14, 8(1) # restore R14 - ld 15, 16(1) # restore R15 - ld 16, 24(1) # restore R16 - ld 17, 32(1) # restore R17 - ld 18, 40(1) # restore R18 - ld 19, 48(1) # restore R19 - ld 20, 56(1) # restore R20 - ld 21, 64(1) # restore R21 - ld 22, 72(1) # restore R22 - ld 23, 80(1) # restore R23 - ld 24, 88(1) # restore R24 - ld 25, 96(1) # restore R25 - ld 26, 104(1) # restore R26 - ld 27, 112(1) # restore R27 - ld 28, 120(1) # restore R28 - ld 29, 128(1) # restore R29 - ld 30, 136(1) # restore R30 - ld 31, 144(1) # restore R31 - ld 3, 152(1) # restore hidden - - # restore CR - ld 0, 160(1) - mtcr 0 - - # copy transfer_t into ontop_fn arg registers - mr 4, 7 - # arg pointer already in r5 - # hidden arg already in r3 - - # restore CTR - ld 7, 0(6) - mtctr 7 - # restore TOC - ld 2, 8(6) - - # zero in r3 indicates first jump to context-function - cmpdi 3, 0 - beq use_entry_arg - -return_to_ctx: - # restore LR - ld 0, 168(1) - mtlr 0 - - # adjust stack - addi 1, 1, 184 - - # jump to context - bctr - -use_entry_arg: - # compute return-value struct address - # (passed has hidden arg to ontop_fn) - addi 3, 1, 8 - - # jump to context and update LR - bctrl - - # restore CTR - ld 7, 176(1) - mtctr 7 - # restore TOC - ld 2, 0(1) - - # copy returned transfer_t into entry_fn arg registers - ld 3, 8(1) - ld 4, 16(1) - - b return_to_ctx diff --git a/contrib/restricted/boost/context/src/asm/ontop_riscv64_sysv_elf_gas.S b/contrib/restricted/boost/context/src/asm/ontop_riscv64_sysv_elf_gas.S deleted file mode 100644 index f57d1f3996b..00000000000 --- a/contrib/restricted/boost/context/src/asm/ontop_riscv64_sysv_elf_gas.S +++ /dev/null @@ -1,150 +0,0 @@ -/* - 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 | * - * ------------------------------------------------- * - * | 0x0 | 0x4 | 0x8 | 0xc | 0x10| 0x14| 0x18| 0x1c| * - * ------------------------------------------------- * - * | fs0 | fs1 | fs2 | fs3 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | * - * ------------------------------------------------- * - * | 0x20| 0x24| 0x28| 0x2c| 0x30| 0x34| 0x38| 0x3c| * - * ------------------------------------------------- * - * | fs4 | fs5 | fs6 | fs7 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | * - * ------------------------------------------------- * - * | 0x40| 0x44| 0x48| 0x4c| 0x50| 0x54| 0x58| 0x5c| * - * ------------------------------------------------- * - * | fs8 | fs9 | fs10 | fs11 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | * - * ------------------------------------------------- * - * | 0x60| 0x64| 0x68| 0x6c| 0x70| 0x74| 0x78| 0x7c| * - * ------------------------------------------------- * - * | s0 | s1 | s2 | s3 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | * - * ------------------------------------------------- * - * | 0x80| 0x84| 0x88| 0x8c| 0x90| 0x94| 0x98| 0x9c| * - * ------------------------------------------------- * - * | s4 | s5 | s6 | s7 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | * - * ------------------------------------------------- * - * | 0xa0| 0xa4| 0xa8| 0xac| 0xb0| 0xb4| 0xb8| 0xbc| * - * ------------------------------------------------- * - * | s8 | s9 | s10 | s11 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 48 | 49 | 50 | 51 | | | | | * - * ------------------------------------------------- * - * | 0xc0| 0xc4| 0xc8| 0xcc| | | | | * - * ------------------------------------------------- * - * | ra | pc | | | * - * ------------------------------------------------- * - * * - *******************************************************/ - -.file "ontop_riscv64_sysv_elf_gas.S" -.text -.align 1 -.global ontop_fcontext -.hidden ontop_fcontext -.type ontop_fcontext, %function -ontop_fcontext: - # prepare stack for GP + FPU - addi sp, sp, -0xd0 - - # save fs0 - fs11 - fsd fs0, 0x00(sp) - fsd fs1, 0x08(sp) - fsd fs2, 0x10(sp) - fsd fs3, 0x18(sp) - fsd fs4, 0x20(sp) - fsd fs5, 0x28(sp) - fsd fs6, 0x30(sp) - fsd fs7, 0x38(sp) - fsd fs8, 0x40(sp) - fsd fs9, 0x48(sp) - fsd fs10, 0x50(sp) - fsd fs11, 0x58(sp) - - # save s0-s11, ra - sd s0, 0x60(sp) - sd s1, 0x68(sp) - sd s2, 0x70(sp) - sd s3, 0x78(sp) - sd s4, 0x80(sp) - sd s5, 0x88(sp) - sd s6, 0x90(sp) - sd s7, 0x98(sp) - sd s8, 0xa0(sp) - sd s9, 0xa8(sp) - sd s10, 0xb0(sp) - sd s11, 0xb8(sp) - sd ra, 0xc0(sp) - - # save RA as PC - sd ra, 0xc8(sp) - - # store SP (pointing to context-data) in A3 - mv a3, sp - - # restore SP (pointing to context-data) from A0 - mv sp, a0 - - # load fs0 - fs11 - fld fs0, 0x00(sp) - fld fs1, 0x08(sp) - fld fs2, 0x10(sp) - fld fs3, 0x18(sp) - fld fs4, 0x20(sp) - fld fs5, 0x28(sp) - fld fs6, 0x30(sp) - fld fs7, 0x38(sp) - fld fs8, 0x40(sp) - fld fs9, 0x48(sp) - fld fs10, 0x50(sp) - fld fs11, 0x58(sp) - - # load s0-s11,ra - ld s0, 0x60(sp) - ld s1, 0x68(sp) - ld s2, 0x70(sp) - ld s3, 0x78(sp) - ld s4, 0x80(sp) - ld s5, 0x88(sp) - ld s6, 0x90(sp) - ld s7, 0x98(sp) - ld s8, 0xa0(sp) - ld s9, 0xa8(sp) - ld s10, 0xb0(sp) - ld s11, 0xb8(sp) - ld ra, 0xc0(sp) - - # return transfer_t from jump - # pass transfer_t as first arg in context function - # a0 == FCTX, a1 == DATA - mv a0, a3 - - # skip pc - # restore stack from GP + FPU - addi sp, sp, 0xd0 - - # jump to ontop-function - jr a2 -.size ontop_fcontext,.-ontop_fcontext -# Mark that we don't need executable stack. -.section .note.GNU-stack,"",%progbits diff --git a/contrib/restricted/boost/context/src/asm/ontop_s390x_sysv_elf_gas.S b/contrib/restricted/boost/context/src/asm/ontop_s390x_sysv_elf_gas.S deleted file mode 100644 index 3a0d864e9cb..00000000000 --- a/contrib/restricted/boost/context/src/asm/ontop_s390x_sysv_elf_gas.S +++ /dev/null @@ -1,146 +0,0 @@ -/******************************************************* - * ------------------------------------------------- * - * | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | * - * ------------------------------------------------- * - * | 0 | 8 | 16 | 24 | * - * ------------------------------------------------- * - * | t.fctx | t.data | r2 | r6 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | * - * ------------------------------------------------- * - * | 32 | 40 | 48 | 56 | * - * ------------------------------------------------- * - * | r7 | r8 | r9 | r10 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | * - * ------------------------------------------------- * - * | 64 | 72 | 80 | 88 | * - * ------------------------------------------------- * - * | r11 | r12 | r13 | r14 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | * - * ------------------------------------------------- * - * | 96 | 104 | 112 | 120 | * - * ------------------------------------------------- * - * | f8 | f9 | f10 | f11 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | * - * ------------------------------------------------- * - * | 128 | 136 | 144 | 152 | * - * ------------------------------------------------- * - * | f12 | f13 | f14 | f15 | * - * ------------------------------------------------- * - * ------------------------------------------------- * - * | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | * - * ------------------------------------------------- * - * | 160 | 168 | 176 | | * - * ------------------------------------------------- * - * | fpc | pc | | | * - * ------------------------------------------------- * - *******************************************************/ - -.text -.align 8 -.global ontop_fcontext -.hidden ontop_fcontext -.type ontop_fcontext, @function - -#define ARG_OFFSET 0 -#define GR_OFFSET 16 -#define R14_OFFSET 88 -#define FP_OFFSET 96 -#define FPC_OFFSET 160 -#define PC_OFFSET 168 -#define CONTEXT_SIZE 176 - -/* - -typedef void* fcontext_t; - -struct transfer_t { - fcontext_t fctx; - void * data; -}; - -transfer_t ontop_fcontext( fcontext_t const to, - void * vp, - transfer_t (* fn)( transfer_t) ); - -Incoming args -r2 - Hidden argument to the location where the return transfer_t needs to be returned -r3 - Target context -r4 - Data pointer -r5 - Function to be executed - -This implementation assumes that ontop_fcontext will never be called with target contexts -created via make_fcontext. - -*/ - -ontop_fcontext: - /* Reserve stack space to store the current context. */ - aghi %r15,-CONTEXT_SIZE - - /* Save the argument register holding the location of the return value. */ - stg %r2,GR_OFFSET(%r15) - - /* Save the call-saved general purpose registers. */ - stmg %r6,%r14,GR_OFFSET+8(%r15) - - /* Save call-saved floating point registers. */ - std %f8,FP_OFFSET(%r15) - std %f9,FP_OFFSET+8(%r15) - std %f10,FP_OFFSET+16(%r15) - std %f11,FP_OFFSET+24(%r15) - std %f12,FP_OFFSET+32(%r15) - std %f13,FP_OFFSET+40(%r15) - std %f14,FP_OFFSET+48(%r15) - std %f15,FP_OFFSET+56(%r15) - - /* Save the return address as current pc. */ - stg %r14,PC_OFFSET(%r15) - - /* Save the floating point control register. */ - stfpc FPC_OFFSET(%r15) - - /* Backup the stack pointer pointing to the old context-data into r1. */ - lgr %r1,%r15 - - /* Load the new context pointer as stack pointer. */ - lgr %r15,%r3 - - /* Restore the call-saved GPRs from the new context. */ - lmg %r6,%r14,GR_OFFSET+8(%r15) - - /* Restore call-saved floating point registers. */ - ld %f8,FP_OFFSET(%r15) - ld %f9,FP_OFFSET+8(%r15) - ld %f10,FP_OFFSET+16(%r15) - ld %f11,FP_OFFSET+24(%r15) - ld %f12,FP_OFFSET+32(%r15) - ld %f13,FP_OFFSET+40(%r15) - ld %f14,FP_OFFSET+48(%r15) - ld %f15,FP_OFFSET+56(%r15) - - /* Load the floating point control register. */ - lfpc FPC_OFFSET(%r15) - - /* Store the transfer_t values located in the saved context. */ - stg %r1,0(%r1) /* transfer_t.fctx = old context */ - stg %r4,8(%r1) /* transfer_t.data = data */ - - /* Set up the arguments for the target function. */ - lg %r2,GR_OFFSET(%r15) - lgr %r3,%r1 - - /* Deallocate the context. */ - aghi %r15,CONTEXT_SIZE - - br %r5 - -.size ontop_fcontext,.-ontop_fcontext -.section .note.GNU-stack,"",%progbits diff --git a/contrib/restricted/boost/context/src/asm/ontop_sparc64_sysv_elf_gas.S b/contrib/restricted/boost/context/src/asm/ontop_sparc64_sysv_elf_gas.S deleted file mode 100644 index 2fcdb891056..00000000000 --- a/contrib/restricted/boost/context/src/asm/ontop_sparc64_sysv_elf_gas.S +++ /dev/null @@ -1,50 +0,0 @@ -/* - Copyright Claudio Jeker 2024 - 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) -*/ - -/* - * transfer_t ontop_fcontext(fcontext_t const to, void *vp, transfer_t (*fn)(transfer_t)); - */ -#define CC64FSZ 176 -#define BIAS 2047 -#define SP 128 -#define I7 136 - -.file "ontop_sparc64_sysv_elf_gas.S" -.text -.align 4 -.global ontop_fcontext -.type ontop_fcontext, %function -ontop_fcontext: - # prepare stack - save %sp, -CC64FSZ, %sp - - # store framepointer and return address in slots reserved - # for arguments - stx %fp, [%sp + BIAS + SP] - stx %i7, [%sp + BIAS + I7] - mov %sp, %o0 - # force flush register windows to stack and with that save context - flushw - # get SP (pointing to new context-data) from %i0 param - mov %i0, %sp - # load framepointer and return address from context - ldx [%sp + BIAS + SP], %fp - ldx [%sp + BIAS + I7], %i7 - - # ontop_fcontext requires to directly call a function on top of the - # current frame so restore register window before doing the jump - # to the context function which then is in %o2. Do not clobber - # %o7 in the jump so that (*fn)() returns to that address. - restore %o0, %g0, %o0 - # restore old %sp (pointing to old context-data) in %o0 - # *data stored in %o1 was not modified - - jmpl %o2, %g0 - nop -.size jump_fcontext,.-jump_fcontext -# Mark that we don't need executable stack. -.section .note.GNU-stack,"",%progbits diff --git a/contrib/restricted/boost/context/src/asm/tail_ontop_ppc32_sysv.cpp b/contrib/restricted/boost/context/src/asm/tail_ontop_ppc32_sysv.cpp deleted file mode 100644 index 348608460f8..00000000000 --- a/contrib/restricted/boost/context/src/asm/tail_ontop_ppc32_sysv.cpp +++ /dev/null @@ -1,18 +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) - -#include <boost/context/detail/fcontext.hpp> - -using boost::context::detail::fcontext_t; -using boost::context::detail::transfer_t; - -// This C++ tail of ontop_fcontext() allocates transfer_t{ from, vp } -// on the stack. If fn() throws a C++ exception, then the C++ runtime -// must remove this tail's stack frame. -extern "C" transfer_t -ontop_fcontext_tail( int ignore, void * vp, transfer_t (* fn)(transfer_t), fcontext_t const from) { - return fn( transfer_t{ from, vp }); -} |
