github.com/primecitizens/pcz/std@v0.2.1/runtime/panic_mips64x.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 && (mips64 || mips64le)
     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  TEXT runtime·panicIndex(SB),NOSPLIT,$0-16
    19  	MOVV R1, x+0(FP)
    20  	MOVV R2, y+8(FP)
    21  	JMP runtime·goPanicIndex(SB)
    22  
    23  TEXT runtime·panicIndexU(SB),NOSPLIT,$0-16
    24  	MOVV R1, x+0(FP)
    25  	MOVV R2, y+8(FP)
    26  	JMP runtime·goPanicIndexU(SB)
    27  
    28  TEXT runtime·panicSliceAlen(SB),NOSPLIT,$0-16
    29  	MOVV R2, x+0(FP)
    30  	MOVV R3, y+8(FP)
    31  	JMP runtime·goPanicSliceAlen(SB)
    32  
    33  TEXT runtime·panicSliceAlenU(SB),NOSPLIT,$0-16
    34  	MOVV R2, x+0(FP)
    35  	MOVV R3, y+8(FP)
    36  	JMP runtime·goPanicSliceAlenU(SB)
    37  
    38  TEXT runtime·panicSliceAcap(SB),NOSPLIT,$0-16
    39  	MOVV R2, x+0(FP)
    40  	MOVV R3, y+8(FP)
    41  	JMP runtime·goPanicSliceAcap(SB)
    42  
    43  TEXT runtime·panicSliceAcapU(SB),NOSPLIT,$0-16
    44  	MOVV R2, x+0(FP)
    45  	MOVV R3, y+8(FP)
    46  	JMP runtime·goPanicSliceAcapU(SB)
    47  
    48  TEXT runtime·panicSliceB(SB),NOSPLIT,$0-16
    49  	MOVV R1, x+0(FP)
    50  	MOVV R2, y+8(FP)
    51  	JMP runtime·goPanicSliceB(SB)
    52  
    53  TEXT runtime·panicSliceBU(SB),NOSPLIT,$0-16
    54  	MOVV R1, x+0(FP)
    55  	MOVV R2, y+8(FP)
    56  	JMP runtime·goPanicSliceBU(SB)
    57  
    58  TEXT runtime·panicSlice3Alen(SB),NOSPLIT,$0-16
    59  	MOVV R3, x+0(FP)
    60  	MOVV R4, y+8(FP)
    61  	JMP runtime·goPanicSlice3Alen(SB)
    62  
    63  TEXT runtime·panicSlice3AlenU(SB),NOSPLIT,$0-16
    64  	MOVV R3, x+0(FP)
    65  	MOVV R4, y+8(FP)
    66  	JMP runtime·goPanicSlice3AlenU(SB)
    67  
    68  TEXT runtime·panicSlice3Acap(SB),NOSPLIT,$0-16
    69  	MOVV R3, x+0(FP)
    70  	MOVV R4, y+8(FP)
    71  	JMP runtime·goPanicSlice3Acap(SB)
    72  
    73  TEXT runtime·panicSlice3AcapU(SB),NOSPLIT,$0-16
    74  	MOVV R3, x+0(FP)
    75  	MOVV R4, y+8(FP)
    76  	JMP runtime·goPanicSlice3AcapU(SB)
    77  
    78  TEXT runtime·panicSlice3B(SB),NOSPLIT,$0-16
    79  	MOVV R2, x+0(FP)
    80  	MOVV R3, y+8(FP)
    81  	JMP runtime·goPanicSlice3B(SB)
    82  
    83  TEXT runtime·panicSlice3BU(SB),NOSPLIT,$0-16
    84  	MOVV R2, x+0(FP)
    85  	MOVV R3, y+8(FP)
    86  	JMP runtime·goPanicSlice3BU(SB)
    87  
    88  TEXT runtime·panicSlice3C(SB),NOSPLIT,$0-16
    89  	MOVV R1, x+0(FP)
    90  	MOVV R2, y+8(FP)
    91  	JMP runtime·goPanicSlice3C(SB)
    92  
    93  TEXT runtime·panicSlice3CU(SB),NOSPLIT,$0-16
    94  	MOVV R1, x+0(FP)
    95  	MOVV R2, y+8(FP)
    96  	JMP runtime·goPanicSlice3CU(SB)
    97  
    98  TEXT runtime·panicSliceConvert(SB),NOSPLIT,$0-16
    99  	MOVV R3, x+0(FP)
   100  	MOVV R4, y+8(FP)
   101  	JMP runtime·goPanicSliceConvert(SB)