github.com/primecitizens/pcz/std@v0.2.1/runtime/panic_arm64.s (about)

     1  // SPDX-License-Identifier: Apache-2.0
     2  // Copyright 2023 The Prime Citizens
     3  //
     4  // Copyright 2009 The Go Authors. All rights reserved.
     5  // Use of this source code is governed by a BSD-style
     6  // license that can be found in the LICENSE file.
     7  
     8  //go:build pcz && arm64
     9  
    10  #include "textflag.h"
    11  
    12  // Note: these functions use a special calling convention to save generated code space.
    13  // Arguments are passed in registers, but the space for those arguments are allocated
    14  // in the caller's stack frame. These stubs write the args into that stack space and
    15  // then tail call to the corresponding runtime handler.
    16  // The tail call makes these stubs disappear in backtraces.
    17  //
    18  // Defined as ABIInternal since the compiler generates ABIInternal
    19  // calls to it directly and it does not use the stack-based Go ABI.
    20  
    21  TEXT runtime·panicIndex<ABIInternal>(SB),NOSPLIT,$0-16
    22  	JMP runtime·goPanicIndex<ABIInternal>(SB)
    23  
    24  TEXT runtime·panicIndexU<ABIInternal>(SB),NOSPLIT,$0-16
    25  	JMP runtime·goPanicIndexU<ABIInternal>(SB)
    26  
    27  TEXT runtime·panicSliceAlen<ABIInternal>(SB),NOSPLIT,$0-16
    28  	MOVD R1, R0
    29  	MOVD R2, R1
    30  	JMP runtime·goPanicSliceAlen<ABIInternal>(SB)
    31  
    32  TEXT runtime·panicSliceAlenU<ABIInternal>(SB),NOSPLIT,$0-16
    33  	MOVD R1, R0
    34  	MOVD R2, R1
    35  	JMP runtime·goPanicSliceAlenU<ABIInternal>(SB)
    36  
    37  TEXT runtime·panicSliceAcap<ABIInternal>(SB),NOSPLIT,$0-16
    38  	MOVD R1, R0
    39  	MOVD R2, R1
    40  	JMP runtime·goPanicSliceAcap<ABIInternal>(SB)
    41  
    42  TEXT runtime·panicSliceAcapU<ABIInternal>(SB),NOSPLIT,$0-16
    43  	MOVD R1, R0
    44  	MOVD R2, R1
    45  	JMP runtime·goPanicSliceAcapU<ABIInternal>(SB)
    46  
    47  TEXT runtime·panicSliceB<ABIInternal>(SB),NOSPLIT,$0-16
    48  	JMP runtime·goPanicSliceB<ABIInternal>(SB)
    49  
    50  TEXT runtime·panicSliceBU<ABIInternal>(SB),NOSPLIT,$0-16
    51  	JMP runtime·goPanicSliceBU<ABIInternal>(SB)
    52  
    53  TEXT runtime·panicSlice3Alen<ABIInternal>(SB),NOSPLIT,$0-16
    54  	MOVD R2, R0
    55  	MOVD R3, R1
    56  	JMP runtime·goPanicSlice3Alen<ABIInternal>(SB)
    57  
    58  TEXT runtime·panicSlice3AlenU<ABIInternal>(SB),NOSPLIT,$0-16
    59  	MOVD R2, R0
    60  	MOVD R3, R1
    61  	JMP runtime·goPanicSlice3AlenU<ABIInternal>(SB)
    62  
    63  TEXT runtime·panicSlice3Acap<ABIInternal>(SB),NOSPLIT,$0-16
    64  	MOVD R2, R0
    65  	MOVD R3, R1
    66  	JMP runtime·goPanicSlice3Acap<ABIInternal>(SB)
    67  
    68  TEXT runtime·panicSlice3AcapU<ABIInternal>(SB),NOSPLIT,$0-16
    69  	MOVD R2, R0
    70  	MOVD R3, R1
    71  	JMP runtime·goPanicSlice3AcapU<ABIInternal>(SB)
    72  
    73  TEXT runtime·panicSlice3B<ABIInternal>(SB),NOSPLIT,$0-16
    74  	MOVD R1, R0
    75  	MOVD R2, R1
    76  	JMP runtime·goPanicSlice3B<ABIInternal>(SB)
    77  
    78  TEXT runtime·panicSlice3BU<ABIInternal>(SB),NOSPLIT,$0-16
    79  	MOVD R1, R0
    80  	MOVD R2, R1
    81  	JMP runtime·goPanicSlice3BU<ABIInternal>(SB)
    82  
    83  TEXT runtime·panicSlice3C<ABIInternal>(SB),NOSPLIT,$0-16
    84  	JMP runtime·goPanicSlice3C<ABIInternal>(SB)
    85  
    86  TEXT runtime·panicSlice3CU<ABIInternal>(SB),NOSPLIT,$0-16
    87  	JMP runtime·goPanicSlice3CU<ABIInternal>(SB)
    88  
    89  TEXT runtime·panicSliceConvert<ABIInternal>(SB),NOSPLIT,$0-16
    90  	MOVD R2, R0
    91  	MOVD R3, R1
    92  	JMP runtime·goPanicSliceConvert<ABIInternal>(SB)