| Server IP : 217.160.0.212 / Your IP : 216.73.216.141 Web Server : Apache System : Linux www 6.18.51-i1-ampere #1196 SMP Fri Sep 11 20:43:55 CEST 2026 aarch64 User : sws1073854427 ( 1073854427) PHP Version : 8.4.23 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /usr/lib/go-1.23/src/runtime/cgo/ |
Upload File : |
// Copyright 2016 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. .file "gcc_s390x.S" /* * void crosscall_s390x(void (*fn)(void), void *g) * * Calling into the go tool chain, where all registers are caller save. * Called from standard s390x C ABI, where r6-r13, r15, and f8-f15 are * callee-save, so they must be saved explicitly. */ .globl crosscall_s390x crosscall_s390x: /* save r6-r15 in the register save area of the calling function */ stmg %r6, %r15, 48(%r15) /* allocate 64 bytes of stack space to save f8-f15 */ lay %r15, -64(%r15) /* save callee-saved floating point registers */ std %f8, 0(%r15) std %f9, 8(%r15) std %f10, 16(%r15) std %f11, 24(%r15) std %f12, 32(%r15) std %f13, 40(%r15) std %f14, 48(%r15) std %f15, 56(%r15) /* restore g pointer */ lgr %r13, %r3 /* call fn */ basr %r14, %r2 /* restore floating point registers */ ld %f8, 0(%r15) ld %f9, 8(%r15) ld %f10, 16(%r15) ld %f11, 24(%r15) ld %f12, 32(%r15) ld %f13, 40(%r15) ld %f14, 48(%r15) ld %f15, 56(%r15) /* de-allocate stack frame */ la %r15, 64(%r15) /* restore general purpose registers */ lmg %r6, %r15, 48(%r15) br %r14 /* restored by lmg */ #ifdef __ELF__ .section .note.GNU-stack,"",%progbits #endif