summaryrefslogtreecommitdiff
path: root/src/pkg/runtime/cgo/gcc_amd64.S
diff options
context:
space:
mode:
authorMichael Stapelberg <stapelberg@debian.org>2013-03-04 21:27:36 +0100
committerMichael Stapelberg <michael@stapelberg.de>2013-03-04 21:27:36 +0100
commit04b08da9af0c450d645ab7389d1467308cfc2db8 (patch)
treedb247935fa4f2f94408edc3acd5d0d4f997aa0d8 /src/pkg/runtime/cgo/gcc_amd64.S
parent917c5fb8ec48e22459d77e3849e6d388f93d3260 (diff)
downloadgolang-upstream/1.1_hg20130304.tar.gz
Imported Upstream version 1.1~hg20130304upstream/1.1_hg20130304
Diffstat (limited to 'src/pkg/runtime/cgo/gcc_amd64.S')
-rw-r--r--src/pkg/runtime/cgo/gcc_amd64.S48
1 files changed, 0 insertions, 48 deletions
diff --git a/src/pkg/runtime/cgo/gcc_amd64.S b/src/pkg/runtime/cgo/gcc_amd64.S
index 706ee6b58..81b270195 100644
--- a/src/pkg/runtime/cgo/gcc_amd64.S
+++ b/src/pkg/runtime/cgo/gcc_amd64.S
@@ -19,9 +19,6 @@
* are callee-save so they must be saved explicitly.
* The standard x86-64 ABI passes the three arguments m, g, fn
* in %rdi, %rsi, %rdx.
- *
- * Also need to set %r15 to g and %r14 to m (see ../pkg/runtime/mkasmh.sh)
- * during the call.
*/
.globl EXT(crosscall_amd64)
EXT(crosscall_amd64):
@@ -45,48 +42,3 @@ EXT(crosscall_amd64):
popq %rbp
popq %rbx
ret
-
-/*
- * void crosscall2(void (*fn)(void*, int32), void *arg, int32 argsize)
- *
- * Save registers and call fn with two arguments. fn is a Go function
- * which takes parameters on the stack rather than in registers.
- */
-.globl EXT(crosscall2)
-EXT(crosscall2):
- subq $0x58, %rsp /* keeps stack pointer 32-byte aligned */
- movq %rbx, 0x10(%rsp)
- movq %rbp, 0x18(%rsp)
- movq %r12, 0x20(%rsp)
- movq %r13, 0x28(%rsp)
- movq %r14, 0x30(%rsp)
- movq %r15, 0x38(%rsp)
-
-#if defined(_WIN64)
- // Win64 save RBX, RBP, RDI, RSI, RSP, R12, R13, R14, and R15
- movq %rdi, 0x40(%rsp)
- movq %rsi, 0x48(%rsp)
-
- movq %rdx, 0(%rsp) /* arg */
- movq %r8, 8(%rsp) /* argsize (includes padding) */
-
- call *%rcx /* fn */
-#else
- movq %rsi, 0(%rsp) /* arg */
- movq %rdx, 8(%rsp) /* argsize (includes padding) */
-
- call *%rdi /* fn */
-#endif
-
- movq 0x10(%rsp), %rbx
- movq 0x18(%rsp), %rbp
- movq 0x20(%rsp), %r12
- movq 0x28(%rsp), %r13
- movq 0x30(%rsp), %r14
- movq 0x38(%rsp), %r15
-#if defined(__WIN64)
- movq 0x40(%rsp), %rdi
- movq 0x48(%rsp), %rsi
-#endif
- addq $0x58, %rsp
- ret