github.com/bytedance/sonic@v1.11.7-0.20240517092252-d2edb31b167b/internal/native/neon/vunsigned_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 ·__vunsigned_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 _vunsigned: 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 $0x54000162 // b.hs LBB0_3 $44(%rip) 28 WORD $0x8b08014b // add x11, x10, x8 29 WORD $0x3940016c // ldrb w12, [x11] 30 WORD $0x7100b59f // cmp w12, #45 31 WORD $0x540001a1 // b.ne LBB0_4 $52(%rip) 32 LBB0_2: 33 WORD $0xf9000028 // str x8, [x1] 34 WORD $0x928000a8 // mov x8, #-6 35 WORD $0xf9000048 // str x8, [x2] 36 WORD $0xa940fbfd // ldp fp, lr, [sp, #8] 37 WORD $0x910083ff // add sp, sp, #32 38 WORD $0xd65f03c0 // ret 39 LBB0_3: 40 WORD $0xf9000029 // str x9, [x1] 41 WORD $0x92800008 // mov x8, #-1 42 WORD $0xf9000048 // str x8, [x2] 43 WORD $0xa940fbfd // ldp fp, lr, [sp, #8] 44 WORD $0x910083ff // add sp, sp, #32 45 WORD $0xd65f03c0 // ret 46 LBB0_4: 47 WORD $0x5100e98d // sub w13, w12, #58 48 WORD $0x31002dbf // cmn w13, #11 49 WORD $0x540000e8 // b.hi LBB0_6 $28(%rip) 50 WORD $0xf9000028 // str x8, [x1] 51 WORD $0x92800028 // mov x8, #-2 52 WORD $0xf9000048 // str x8, [x2] 53 WORD $0xa940fbfd // ldp fp, lr, [sp, #8] 54 WORD $0x910083ff // add sp, sp, #32 55 WORD $0xd65f03c0 // ret 56 LBB0_6: 57 WORD $0x7100c19f // cmp w12, #48 58 WORD $0x54000161 // b.ne LBB0_8 $44(%rip) 59 WORD $0x3940056b // ldrb w11, [x11, #1] 60 WORD $0x5100b96b // sub w11, w11, #46 61 WORD $0x7100dd7f // cmp w11, #55 62 WORD $0x5280002c // mov w12, #1 63 WORD $0x9acb218b // lsl x11, x12, x11 64 WORD $0xb20903ec // mov x12, #36028797027352576 65 WORD $0xf280002c // movk x12, #1 66 WORD $0x8a0c016b // and x11, x11, x12 67 WORD $0xfa409964 // ccmp x11, #0, #4, ls 68 WORD $0x540005a0 // b.eq LBB0_21 $180(%rip) 69 LBB0_8: 70 WORD $0xd280000b // mov x11, #0 71 WORD $0xeb08013f // cmp x9, x8 72 WORD $0x9a88812c // csel x12, x9, x8, hi 73 WORD $0x5280014d // mov w13, #10 74 LBB0_9: 75 WORD $0xeb08019f // cmp x12, x8 76 WORD $0x54000440 // b.eq LBB0_20 $136(%rip) 77 WORD $0x3868694e // ldrb w14, [x10, x8] 78 WORD $0x5100c1ce // sub w14, w14, #48 79 WORD $0x710025df // cmp w14, #9 80 WORD $0x54000288 // b.hi LBB0_15 $80(%rip) 81 WORD $0x9bcd7d6f // umulh x15, x11, x13 82 WORD $0xeb0f03ff // cmp xzr, x15 83 WORD $0x54000141 // b.ne LBB0_14 $40(%rip) 84 WORD $0x8b0b096b // add x11, x11, x11, lsl #2 85 WORD $0xd37ff96b // lsl x11, x11, #1 86 WORD $0x91000508 // add x8, x8, #1 87 WORD $0xab2e016b // adds x11, x11, w14, uxtb 88 WORD $0x1a9f37ef // cset w15, hs 89 WORD $0x934001ee // sbfx x14, x15, #0, #1 90 WORD $0xca0f01cf // eor x15, x14, x15 91 WORD $0xb500004f // cbnz x15, LBB0_14 $8(%rip) 92 WORD $0xb6fffdee // tbz x14, #63, LBB0_9 $-68(%rip) 93 LBB0_14: 94 WORD $0xd1000508 // sub x8, x8, #1 95 WORD $0xf9000028 // str x8, [x1] 96 WORD $0x92800088 // mov x8, #-5 97 WORD $0xf9000048 // str x8, [x2] 98 WORD $0xa940fbfd // ldp fp, lr, [sp, #8] 99 WORD $0x910083ff // add sp, sp, #32 100 WORD $0xd65f03c0 // ret 101 LBB0_15: 102 WORD $0xeb09011f // cmp x8, x9 103 WORD $0x54000102 // b.hs LBB0_19 $32(%rip) 104 WORD $0x38686949 // ldrb w9, [x10, x8] 105 WORD $0x7100b93f // cmp w9, #46 106 WORD $0x54fff7c0 // b.eq LBB0_2 $-264(%rip) 107 WORD $0x7101153f // cmp w9, #69 108 WORD $0x54fff780 // b.eq LBB0_2 $-272(%rip) 109 WORD $0x7101953f // cmp w9, #101 110 WORD $0x54fff740 // b.eq LBB0_2 $-280(%rip) 111 LBB0_19: 112 WORD $0xaa0803ec // mov x12, x8 113 LBB0_20: 114 WORD $0xf900002c // str x12, [x1] 115 WORD $0xf900084b // str x11, [x2, #16] 116 WORD $0xa940fbfd // ldp fp, lr, [sp, #8] 117 WORD $0x910083ff // add sp, sp, #32 118 WORD $0xd65f03c0 // ret 119 LBB0_21: 120 WORD $0x91000508 // add x8, x8, #1 121 WORD $0xf9000028 // str x8, [x1] 122 WORD $0xa940fbfd // ldp fp, lr, [sp, #8] 123 WORD $0x910083ff // add sp, sp, #32 124 WORD $0xd65f03c0 // ret 125 // .p2align 2, 0x00 126 _MASK_USE_NUMBER: 127 WORD $0x00000002 // .long 2 128 129 TEXT ·__vunsigned(SB), NOSPLIT, $0-24 130 NO_LOCAL_POINTERS 131 132 _entry: 133 MOVD 16(g), R16 134 SUB $96, RSP, R17 135 CMP R16, R17 136 BLS _stack_grow 137 138 _vunsigned: 139 MOVD s+0(FP), R0 140 MOVD p+8(FP), R1 141 MOVD v+16(FP), R2 142 MOVD ·_subr__vunsigned(SB), R11 143 WORD $0x1000005e // adr x30, .+8 144 JMP (R11) 145 RET 146 147 _stack_grow: 148 MOVD R30, R3 149 CALL runtime·morestack_noctxt<>(SB) 150 JMP _entry