github.com/bytedance/sonic@v1.11.7-0.20240517092252-d2edb31b167b/internal/native/neon/vsigned_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 ·__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) 39 LBB0_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) 53 LBB0_6: 54 WORD $0xd280000c // mov x12, #0 55 WORD $0x5280014d // mov w13, #10 56 LBB0_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) 73 LBB0_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 81 LBB0_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 88 LBB0_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) 93 LBB0_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 100 LBB0_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) 110 LBB0_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 117 LBB0_20: 118 WORD $0xaa0803e9 // mov x9, x8 119 LBB0_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 125 LBB0_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 135 TEXT ·__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