github.com/bytedance/sonic@v1.11.7-0.20240517092252-d2edb31b167b/internal/native/neon/lspace_arm64.s (about)

     1  // +build !noasm !appengine
     2  // Code generated by asm2asm, DO NOT EDIT.
     3  
     4  #include "go_asm.h"
     5  #include "funcdata.h"
     6  #include "textflag.h"
     7  
     8  TEXT ·__lspace_entry__(SB), NOSPLIT, $16
     9  	NO_LOCAL_POINTERS
    10  	WORD $0x100000a0 // adr x0, .+20
    11  	MOVD R0, ret(FP)
    12  	RET
    13  	  // .p2align 2, 0x00
    14  _lspace:
    15  	WORD $0xd10083ff  // sub	sp, sp, #32
    16  	WORD $0xa900fbfd  // stp	fp, lr, [sp, #8]
    17  	WORD $0xa93ffbfd  // stp	fp, lr, [sp, #-8]
    18  	WORD $0xd10023fd  // sub	fp, sp, #8
    19  	WORD $0xeb02003f  // cmp	x1, x2
    20  	WORD $0x54000061  // b.ne	LBB0_2 $12(%rip)
    21  	WORD $0x8b020008  // add	x8, x0, x2
    22  	WORD $0x1400000e  // b	LBB0_5 $56(%rip)
    23  LBB0_2:
    24  	WORD $0x8b010008  // add	x8, x0, x1
    25  	WORD $0x52800029  // mov	w9, #1
    26  	WORD $0xd284c00a  // mov	x10, #9728
    27  	WORD $0xf2c0002a  // movk	x10, #1, lsl #32
    28  LBB0_3:
    29  	WORD $0x3862680b  // ldrb	w11, [x0, x2]
    30  	WORD $0x7100817f  // cmp	w11, #32
    31  	WORD $0x9acb212b  // lsl	x11, x9, x11
    32  	WORD $0x8a0a016b  // and	x11, x11, x10
    33  	WORD $0xfa409964  // ccmp	x11, #0, #4, ls
    34  	WORD $0x540000a0  // b.eq	LBB0_6 $20(%rip)
    35  	WORD $0x91000442  // add	x2, x2, #1
    36  	WORD $0xeb02003f  // cmp	x1, x2
    37  	WORD $0x54ffff01  // b.ne	LBB0_3 $-32(%rip)
    38  LBB0_5:
    39  	WORD $0xcb000102  // sub	x2, x8, x0
    40  LBB0_6:
    41  	WORD $0xaa0203e0  // mov	x0, x2
    42  	WORD $0xa940fbfd  // ldp	fp, lr, [sp, #8]
    43  	WORD $0x910083ff  // add	sp, sp, #32
    44  	WORD $0xd65f03c0  // ret
    45  
    46  TEXT ·__lspace(SB), NOSPLIT, $0-32
    47  	NO_LOCAL_POINTERS
    48  
    49  _entry:
    50  	MOVD 16(g), R16
    51  	SUB $96, RSP, R17
    52  	CMP  R16, R17
    53  	BLS  _stack_grow
    54  
    55  _lspace:
    56  	MOVD sp+0(FP), R0
    57  	MOVD nb+8(FP), R1
    58  	MOVD off+16(FP), R2
    59  	MOVD ·_subr__lspace(SB), R11
    60  	WORD $0x1000005e // adr x30, .+8
    61  	JMP (R11)
    62  	MOVD R0, ret+24(FP)
    63  	RET
    64  
    65  _stack_grow:
    66  	MOVD R30, R3
    67  	CALL runtime·morestack_noctxt<>(SB)
    68  	JMP  _entry