summaryrefslogtreecommitdiff
path: root/coroutine
diff options
context:
space:
mode:
Diffstat (limited to 'coroutine')
-rw-r--r--coroutine/amd64/Context.S2
-rw-r--r--coroutine/amd64/Context.h2
-rw-r--r--coroutine/arm32/Context.S19
-rw-r--r--coroutine/arm32/Context.h2
-rw-r--r--coroutine/arm64/Context.S11
-rw-r--r--coroutine/arm64/Context.h2
-rw-r--r--coroutine/copy/Context.c2
-rw-r--r--coroutine/copy/Context.h2
-rw-r--r--coroutine/ppc64le/Context.S9
-rw-r--r--coroutine/ucontext/Context.c2
-rw-r--r--coroutine/win32/Context.asm2
-rw-r--r--coroutine/win64/Context.S2
-rw-r--r--coroutine/win64/Context.asm2
-rw-r--r--coroutine/x86/Context.S2
14 files changed, 37 insertions, 24 deletions
diff --git a/coroutine/amd64/Context.S b/coroutine/amd64/Context.S
index ac986b2aa5..051db1c5e8 100644
--- a/coroutine/amd64/Context.S
+++ b/coroutine/amd64/Context.S
@@ -2,7 +2,7 @@
## This file is part of the "Coroutine" project and released under the MIT License.
##
## Created by Samuel Williams on 10/5/2018.
-## Copyright, 2018, by Samuel Williams. All rights reserved.
+## Copyright, 2018, by Samuel Williams.
##
#define TOKEN_PASTE(x,y) x##y
diff --git a/coroutine/amd64/Context.h b/coroutine/amd64/Context.h
index 8fe323c1a1..352ed5555a 100644
--- a/coroutine/amd64/Context.h
+++ b/coroutine/amd64/Context.h
@@ -2,7 +2,7 @@
* This file is part of the "Coroutine" project and released under the MIT License.
*
* Created by Samuel Williams on 10/5/2018.
- * Copyright, 2018, by Samuel Williams. All rights reserved.
+ * Copyright, 2018, by Samuel Williams.
*/
#pragma once
diff --git a/coroutine/arm32/Context.S b/coroutine/arm32/Context.S
index 4308e1d1d2..c5338f0b67 100644
--- a/coroutine/arm32/Context.S
+++ b/coroutine/arm32/Context.S
@@ -2,21 +2,28 @@
## This file is part of the "Coroutine" project and released under the MIT License.
##
## Created by Samuel Williams on 10/5/2018.
-## Copyright, 2018, by Samuel Williams. All rights reserved.
+## Copyright, 2018, by Samuel Williams.
##
+#define TOKEN_PASTE(x,y) x##y
+#define PREFIXED_SYMBOL(prefix,name) TOKEN_PASTE(prefix,name)
+
+.file "Context.S"
.text
+.globl PREFIXED_SYMBOL(SYMBOL_PREFIX,coroutine_transfer)
+.align 2
+.type PREFIXED_SYMBOL(SYMBOL_PREFIX,coroutine_transfer),%function
+.syntax unified
-.globl coroutine_transfer
-coroutine_transfer:
+PREFIXED_SYMBOL(SYMBOL_PREFIX,coroutine_transfer):
# Save caller state (8 registers + return address)
push {r4-r11,lr}
-
+
# Save caller stack pointer
str sp, [r0]
-
+
# Restore callee stack pointer
ldr sp, [r1]
-
+
# Restore callee state (8 registers program counter)
pop {r4-r11,pc}
diff --git a/coroutine/arm32/Context.h b/coroutine/arm32/Context.h
index e29fe1bb63..6b6807904f 100644
--- a/coroutine/arm32/Context.h
+++ b/coroutine/arm32/Context.h
@@ -2,7 +2,7 @@
* This file is part of the "Coroutine" project and released under the MIT License.
*
* Created by Samuel Williams on 10/5/2018.
- * Copyright, 2018, by Samuel Williams. All rights reserved.
+ * Copyright, 2018, by Samuel Williams.
*/
#pragma once
diff --git a/coroutine/arm64/Context.S b/coroutine/arm64/Context.S
index f6e5f0a6bc..04e3f6d1ef 100644
--- a/coroutine/arm64/Context.S
+++ b/coroutine/arm64/Context.S
@@ -2,18 +2,21 @@
## This file is part of the "Coroutine" project and released under the MIT License.
##
## Created by Samuel Williams on 10/5/2018.
-## Copyright, 2018, by Samuel Williams. All rights reserved.
+## Copyright, 2018, by Samuel Williams.
##
+#define TOKEN_PASTE(x,y) x##y
+#define PREFIXED_SYMBOL(prefix,name) TOKEN_PASTE(prefix,name)
+
.text
.align 2
-.global coroutine_transfer
-coroutine_transfer:
+.global PREFIXED_SYMBOL(SYMBOL_PREFIX,coroutine_transfer)
+PREFIXED_SYMBOL(SYMBOL_PREFIX,coroutine_transfer):
# Make space on the stack for caller registers
sub sp, sp, 0xb0
-
+
# Save caller registers
stp d8, d9, [sp, 0x00]
stp d10, d11, [sp, 0x10]
diff --git a/coroutine/arm64/Context.h b/coroutine/arm64/Context.h
index a1ae921144..3bc19b1e4b 100644
--- a/coroutine/arm64/Context.h
+++ b/coroutine/arm64/Context.h
@@ -2,7 +2,7 @@
* This file is part of the "Coroutine" project and released under the MIT License.
*
* Created by Samuel Williams on 10/5/2018.
- * Copyright, 2018, by Samuel Williams. All rights reserved.
+ * Copyright, 2018, by Samuel Williams.
*/
#pragma once
diff --git a/coroutine/copy/Context.c b/coroutine/copy/Context.c
index a1b8a71200..c1b4144e98 100644
--- a/coroutine/copy/Context.c
+++ b/coroutine/copy/Context.c
@@ -2,7 +2,7 @@
* This file is part of the "Coroutine" project and released under the MIT License.
*
* Created by Samuel Williams on 24/6/2019.
- * Copyright, 2019, by Samuel Williams. All rights reserved.
+ * Copyright, 2019, by Samuel Williams.
*/
#include "Context.h"
diff --git a/coroutine/copy/Context.h b/coroutine/copy/Context.h
index 1319f55d16..8514a61dff 100644
--- a/coroutine/copy/Context.h
+++ b/coroutine/copy/Context.h
@@ -2,7 +2,7 @@
* This file is part of the "Coroutine" project and released under the MIT License.
*
* Created by Samuel Williams on 27/6/2019.
- * Copyright, 2019, by Samuel Williams. All rights reserved.
+ * Copyright, 2019, by Samuel Williams.
*/
#pragma once
diff --git a/coroutine/ppc64le/Context.S b/coroutine/ppc64le/Context.S
index 1b39086f8f..61be9efcf0 100644
--- a/coroutine/ppc64le/Context.S
+++ b/coroutine/ppc64le/Context.S
@@ -1,9 +1,12 @@
+#define TOKEN_PASTE(x,y) x##y
+#define PREFIXED_SYMBOL(prefix,name) TOKEN_PASTE(prefix,name)
+
.text
.align 2
-.globl coroutine_transfer
-.type coroutine_transfer, @function
-coroutine_transfer:
+.globl PREFIXED_SYMBOL(SYMBOL_PREFIX,coroutine_transfer)
+.type PREFIXED_SYMBOL(SYMBOL_PREFIX,coroutine_transfer), @function
+PREFIXED_SYMBOL(SYMBOL_PREFIX,coroutine_transfer):
# Make space on the stack for caller registers
addi 1,1,-152
diff --git a/coroutine/ucontext/Context.c b/coroutine/ucontext/Context.c
index eec4ef3956..2dc3f478e8 100644
--- a/coroutine/ucontext/Context.c
+++ b/coroutine/ucontext/Context.c
@@ -2,7 +2,7 @@
* This file is part of the "Coroutine" project and released under the MIT License.
*
* Created by Samuel Williams on 24/6/2019.
- * Copyright, 2019, by Samuel Williams. All rights reserved.
+ * Copyright, 2019, by Samuel Williams.
*/
/* According to Solaris' ucontext.h, makecontext, etc. are removed in SUSv4.
diff --git a/coroutine/win32/Context.asm b/coroutine/win32/Context.asm
index 2647ea4bc4..f8f431239b 100644
--- a/coroutine/win32/Context.asm
+++ b/coroutine/win32/Context.asm
@@ -2,7 +2,7 @@
;; This file is part of the "Coroutine" project and released under the MIT License.
;;
;; Created by Samuel Williams on 10/5/2018.
-;; Copyright, 2018, by Samuel Williams. All rights reserved.
+;; Copyright, 2018, by Samuel Williams.
;;
.386
diff --git a/coroutine/win64/Context.S b/coroutine/win64/Context.S
index 4b16e0ce8c..e0ee38e006 100644
--- a/coroutine/win64/Context.S
+++ b/coroutine/win64/Context.S
@@ -2,7 +2,7 @@
## This file is part of the "Coroutine" project and released under the MIT License.
##
## Created by Samuel Williams on 4/11/2018.
-## Copyright, 2018, by Samuel Williams. All rights reserved.
+## Copyright, 2018, by Samuel Williams.
##
.text
diff --git a/coroutine/win64/Context.asm b/coroutine/win64/Context.asm
index 59673ffa3e..8c4dea1c93 100644
--- a/coroutine/win64/Context.asm
+++ b/coroutine/win64/Context.asm
@@ -2,7 +2,7 @@
;; This file is part of the "Coroutine" project and released under the MIT License.
;;
;; Created by Samuel Williams on 10/5/2018.
-;; Copyright, 2018, by Samuel Williams. All rights reserved.
+;; Copyright, 2018, by Samuel Williams.
;;
.code
diff --git a/coroutine/x86/Context.S b/coroutine/x86/Context.S
index 001b699a30..6983f21c3b 100644
--- a/coroutine/x86/Context.S
+++ b/coroutine/x86/Context.S
@@ -2,7 +2,7 @@
## This file is part of the "Coroutine" project and released under the MIT License.
##
## Created by Samuel Williams on 3/11/2018.
-## Copyright, 2018, by Samuel Williams. All rights reserved.
+## Copyright, 2018, by Samuel Williams.
##
#define TOKEN_PASTE(x,y) x##y