...

Text file src/github.com/bytedance/sonic/internal/native/neon/vsigned_arm64.s

Documentation: github.com/bytedance/sonic/internal/native/neon

     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
     8TEXT ·__vsigned_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_vsigned:
    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 $0xf9400028  // ldr	x8, [x1]
    20	WORD $0xa940240a  // ldp	x10, x9, [x0]
    21	WORD $0x5280012b  // mov	w11, #9
    22	WORD $0xa900fc5f  // stp	xzr, xzr, [x2, #8]
    23	WORD $0xf900004b  // str	x11, [x2]
    24	WORD $0xf940002b  // ldr	x11, [x1]
    25	WORD $0xf9000c4b  // str	x11, [x2, #24]
    26	WORD $0xeb09011f  // cmp	x8, x9
    27	WORD $0x54000642  // b.hs	LBB0_12 $200(%rip)
    28	WORD $0x3868694c  // ldrb	w12, [x10, x8]
    29	WORD $0x7100b59f  // cmp	w12, #45
    30	WORD $0x540006a1  // b.ne	LBB0_13 $212(%rip)
    31	WORD $0x91000508  // add	x8, x8, #1
    32	WORD $0xeb09011f  // cmp	x8, x9
    33	WORD $0x54000582  // b.hs	LBB0_12 $176(%rip)
    34	WORD $0x3868694c  // ldrb	w12, [x10, x8]
    35	WORD $0x9280000b  // mov	x11, #-1
    36	WORD $0x5100e98d  // sub	w13, w12, #58
    37	WORD $0x31002dbf  // cmn	w13, #11
    38	WORD $0x54000629  // b.ls	LBB0_14 $196(%rip)
    39LBB0_4:
    40	WORD $0x7100c19f  // cmp	w12, #48
    41	WORD $0x54000181  // b.ne	LBB0_6 $48(%rip)
    42	WORD $0x8b08014c  // add	x12, x10, x8
    43	WORD $0x3940058c  // ldrb	w12, [x12, #1]
    44	WORD $0x5100b98c  // sub	w12, w12, #46
    45	WORD $0x7100dd9f  // cmp	w12, #55
    46	WORD $0x5280002d  // mov	w13, #1
    47	WORD $0x9acc21ac  // lsl	x12, x13, x12
    48	WORD $0xb20903ed  // mov	x13, #36028797027352576
    49	WORD $0xf280002d  // movk	x13, #1
    50	WORD $0x8a0d018c  // and	x12, x12, x13
    51	WORD $0xfa409984  // ccmp	x12, #0, #4, ls
    52	WORD $0x540007e0  // b.eq	LBB0_22 $252(%rip)
    53LBB0_6:
    54	WORD $0xd280000c  // mov	x12, #0
    55	WORD $0x5280014d  // mov	w13, #10
    56LBB0_7:
    57	WORD $0xeb08013f  // cmp	x9, x8
    58	WORD $0x540006c0  // b.eq	LBB0_21 $216(%rip)
    59	WORD $0x3868694e  // ldrb	w14, [x10, x8]
    60	WORD $0x5100c1ce  // sub	w14, w14, #48
    61	WORD $0x710025df  // cmp	w14, #9
    62	WORD $0x54000448  // b.hi	LBB0_15 $136(%rip)
    63	WORD $0x9b4d7d8f  // smulh	x15, x12, x13
    64	WORD $0x8b0c098c  // add	x12, x12, x12, lsl #2
    65	WORD $0xd37ff98c  // lsl	x12, x12, #1
    66	WORD $0xeb8cfdff  // cmp	x15, x12, asr #63
    67	WORD $0x540000c1  // b.ne	LBB0_11 $24(%rip)
    68	WORD $0x91000508  // add	x8, x8, #1
    69	WORD $0x92401dce  // and	x14, x14, #0xff
    70	WORD $0x9b2e7d6e  // smull	x14, w11, w14
    71	WORD $0xab0e018c  // adds	x12, x12, x14
    72	WORD $0x54fffe27  // b.vc	LBB0_7 $-60(%rip)
    73LBB0_11:
    74	WORD $0xd1000508  // sub	x8, x8, #1
    75	WORD $0xf9000028  // str	x8, [x1]
    76	WORD $0x92800088  // mov	x8, #-5
    77	WORD $0xf9000048  // str	x8, [x2]
    78	WORD $0xa940fbfd  // ldp	fp, lr, [sp, #8]
    79	WORD $0x910083ff  // add	sp, sp, #32
    80	WORD $0xd65f03c0  // ret
    81LBB0_12:
    82	WORD $0xf9000029  // str	x9, [x1]
    83	WORD $0x92800008  // mov	x8, #-1
    84	WORD $0xf9000048  // str	x8, [x2]
    85	WORD $0xa940fbfd  // ldp	fp, lr, [sp, #8]
    86	WORD $0x910083ff  // add	sp, sp, #32
    87	WORD $0xd65f03c0  // ret
    88LBB0_13:
    89	WORD $0x5280002b  // mov	w11, #1
    90	WORD $0x5100e98d  // sub	w13, w12, #58
    91	WORD $0x31002dbf  // cmn	w13, #11
    92	WORD $0x54fffa28  // b.hi	LBB0_4 $-188(%rip)
    93LBB0_14:
    94	WORD $0xf9000028  // str	x8, [x1]
    95	WORD $0x92800028  // mov	x8, #-2
    96	WORD $0xf9000048  // str	x8, [x2]
    97	WORD $0xa940fbfd  // ldp	fp, lr, [sp, #8]
    98	WORD $0x910083ff  // add	sp, sp, #32
    99	WORD $0xd65f03c0  // ret
   100LBB0_15:
   101	WORD $0xeb09011f  // cmp	x8, x9
   102	WORD $0x540001c2  // b.hs	LBB0_20 $56(%rip)
   103	WORD $0x38686949  // ldrb	w9, [x10, x8]
   104	WORD $0x7100b93f  // cmp	w9, #46
   105	WORD $0x540000a0  // b.eq	LBB0_19 $20(%rip)
   106	WORD $0x7101153f  // cmp	w9, #69
   107	WORD $0x54000060  // b.eq	LBB0_19 $12(%rip)
   108	WORD $0x7101953f  // cmp	w9, #101
   109	WORD $0x540000e1  // b.ne	LBB0_20 $28(%rip)
   110LBB0_19:
   111	WORD $0xf9000028  // str	x8, [x1]
   112	WORD $0x928000a8  // mov	x8, #-6
   113	WORD $0xf9000048  // str	x8, [x2]
   114	WORD $0xa940fbfd  // ldp	fp, lr, [sp, #8]
   115	WORD $0x910083ff  // add	sp, sp, #32
   116	WORD $0xd65f03c0  // ret
   117LBB0_20:
   118	WORD $0xaa0803e9  // mov	x9, x8
   119LBB0_21:
   120	WORD $0xf9000029  // str	x9, [x1]
   121	WORD $0xf900084c  // str	x12, [x2, #16]
   122	WORD $0xa940fbfd  // ldp	fp, lr, [sp, #8]
   123	WORD $0x910083ff  // add	sp, sp, #32
   124	WORD $0xd65f03c0  // ret
   125LBB0_22:
   126	WORD $0x91000508  // add	x8, x8, #1
   127	WORD $0xf9000028  // str	x8, [x1]
   128	WORD $0xa940fbfd  // ldp	fp, lr, [sp, #8]
   129	WORD $0x910083ff  // add	sp, sp, #32
   130	WORD $0xd65f03c0  // ret
   131	  // .p2align 2, 0x00
   132_MASK_USE_NUMBER:
   133	WORD $0x00000002  // .long 2
   134
   135TEXT ·__vsigned(SB), NOSPLIT, $0-24
   136	NO_LOCAL_POINTERS
   137
   138_entry:
   139	MOVD 16(g), R16
   140	SUB $96, RSP, R17
   141	CMP  R16, R17
   142	BLS  _stack_grow
   143
   144_vsigned:
   145	MOVD s+0(FP), R0
   146	MOVD p+8(FP), R1
   147	MOVD v+16(FP), R2
   148	MOVD ·_subr__vsigned(SB), R11
   149	WORD $0x1000005e // adr x30, .+8
   150	JMP (R11)
   151	RET
   152
   153_stack_grow:
   154	MOVD R30, R3
   155	CALL runtime·morestack_noctxt<>(SB)
   156	JMP  _entry

View as plain text