| Server IP : 157.230.181.24 / Your IP : 216.73.217.11 Web Server : Apache/2.4.58 (Ubuntu) System : Linux conductive 6.8.0-117-generic #117-Ubuntu SMP PREEMPT_DYNAMIC Tue May 5 19:26:24 UTC 2026 x86_64 User : ( 1000) PHP Version : 8.3.31 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /lib/go/src/runtime/cgo/ |
Upload File : |
// Copyright 2022 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. // Macros for transitioning from the host ABI to Go ABI0. // // These macros save and restore the callee-saved registers // from the stack, but they don't adjust stack pointer, so // the user should prepare stack space in advance. // SAVE_R22_TO_R31(offset) saves R22 ~ R31 to the stack space // of ((offset)+0*8)(R3) ~ ((offset)+9*8)(R3). // // SAVE_F24_TO_F31(offset) saves F24 ~ F31 to the stack space // of ((offset)+0*8)(R3) ~ ((offset)+7*8)(R3). // // Note: g is R22 #define SAVE_R22_TO_R31(offset) \ MOVV g, ((offset)+(0*8))(R3) \ MOVV R23, ((offset)+(1*8))(R3) \ MOVV R24, ((offset)+(2*8))(R3) \ MOVV R25, ((offset)+(3*8))(R3) \ MOVV R26, ((offset)+(4*8))(R3) \ MOVV R27, ((offset)+(5*8))(R3) \ MOVV R28, ((offset)+(6*8))(R3) \ MOVV R29, ((offset)+(7*8))(R3) \ MOVV R30, ((offset)+(8*8))(R3) \ MOVV R31, ((offset)+(9*8))(R3) #define SAVE_F24_TO_F31(offset) \ MOVD F24, ((offset)+(0*8))(R3) \ MOVD F25, ((offset)+(1*8))(R3) \ MOVD F26, ((offset)+(2*8))(R3) \ MOVD F27, ((offset)+(3*8))(R3) \ MOVD F28, ((offset)+(4*8))(R3) \ MOVD F29, ((offset)+(5*8))(R3) \ MOVD F30, ((offset)+(6*8))(R3) \ MOVD F31, ((offset)+(7*8))(R3) #define RESTORE_R22_TO_R31(offset) \ MOVV ((offset)+(0*8))(R3), g \ MOVV ((offset)+(1*8))(R3), R23 \ MOVV ((offset)+(2*8))(R3), R24 \ MOVV ((offset)+(3*8))(R3), R25 \ MOVV ((offset)+(4*8))(R3), R26 \ MOVV ((offset)+(5*8))(R3), R27 \ MOVV ((offset)+(6*8))(R3), R28 \ MOVV ((offset)+(7*8))(R3), R29 \ MOVV ((offset)+(8*8))(R3), R30 \ MOVV ((offset)+(9*8))(R3), R31 #define RESTORE_F24_TO_F31(offset) \ MOVD ((offset)+(0*8))(R3), F24 \ MOVD ((offset)+(1*8))(R3), F25 \ MOVD ((offset)+(2*8))(R3), F26 \ MOVD ((offset)+(3*8))(R3), F27 \ MOVD ((offset)+(4*8))(R3), F28 \ MOVD ((offset)+(5*8))(R3), F29 \ MOVD ((offset)+(6*8))(R3), F30 \ MOVD ((offset)+(7*8))(R3), F31