github.com/apache/arrow/go/v14@v14.0.2/parquet/internal/utils/unpack_bool_neon_arm64.s (about) 1 //+build !noasm !appengine 2 3 // ARROW-15440 4 // (C2GOASM doesn't work correctly for Arm64) 5 // Partly GENERATED BY asm2plan9s. 6 7 // func _bytes_to_bools_neon(in unsafe.Pointer, len int, out unsafe.Pointer, outlen int) 8 TEXT ยท_bytes_to_bools_neon(SB), $0-32 9 10 MOVD in+0(FP), R0 11 MOVD len+8(FP), R1 12 MOVD out+16(FP), R2 13 MOVD outlen+24(FP), R3 14 15 WORD $0xa9bf7bfd // stp x29, x30, [sp, #-16]! 16 WORD $0x7100043f // cmp w1, #1 17 WORD $0x910003fd // mov x29, sp 18 BLT LBB0_12 19 WORD $0x2a0103e9 // mov w9, w1 20 WORD $0xaa1f03e8 // mov x8, xzr 21 WORD $0xd37df129 // lsl x9, x9, #3 22 WORD $0x528000aa // mov w10, #5 23 JMP LBB0_3 24 LBB0_2: 25 WORD $0x91002108 // add x8, x8, #8 26 WORD $0xeb08013f // cmp x9, x8 27 WORD $0x91000400 // add x0, x0, #1 28 BEQ LBB0_12 29 LBB0_3: 30 WORD $0x6b03011f // cmp w8, w3 31 BGE LBB0_2 32 WORD $0x3940000c // ldrb w12, [x0] 33 WORD $0x92407d0b // and x11, x8, #0xffffffff 34 WORD $0xb240016d // orr x13, x11, #0x1 35 WORD $0x6b0301bf // cmp w13, w3 36 WORD $0x1200018c // and w12, w12, #0x1 37 WORD $0x382b684c // strb w12, [x2, x11] 38 BGE LBB0_2 39 WORD $0x3940000e // ldrb w14, [x0] 40 WORD $0xb27f016c // orr x12, x11, #0x2 41 WORD $0x6b03019f // cmp w12, w3 42 WORD $0x530105ce // ubfx w14, w14, #1, #1 43 WORD $0x382d684e // strb w14, [x2, x13] 44 BGE LBB0_2 45 WORD $0x3940000e // ldrb w14, [x0] 46 WORD $0xb240056d // orr x13, x11, #0x3 47 WORD $0x6b0301bf // cmp w13, w3 48 WORD $0x530209ce // ubfx w14, w14, #2, #1 49 WORD $0x382c684e // strb w14, [x2, x12] 50 BGE LBB0_2 51 WORD $0x3940000e // ldrb w14, [x0] 52 WORD $0xb27e016c // orr x12, x11, #0x4 53 WORD $0x6b03019f // cmp w12, w3 54 WORD $0x53030dce // ubfx w14, w14, #3, #1 55 WORD $0x382d684e // strb w14, [x2, x13] 56 BGE LBB0_2 57 WORD $0x3940000e // ldrb w14, [x0] 58 WORD $0xaa0a016d // orr x13, x11, x10 59 WORD $0x6b0301bf // cmp w13, w3 60 WORD $0x530411ce // ubfx w14, w14, #4, #1 61 WORD $0x382c684e // strb w14, [x2, x12] 62 BGE LBB0_2 63 WORD $0x3940000e // ldrb w14, [x0] 64 WORD $0xb27f056c // orr x12, x11, #0x6 65 WORD $0x6b03019f // cmp w12, w3 66 WORD $0x530515ce // ubfx w14, w14, #5, #1 67 WORD $0x382d684e // strb w14, [x2, x13] 68 BGE LBB0_2 69 WORD $0x3940000d // ldrb w13, [x0] 70 WORD $0xb240096b // orr x11, x11, #0x7 71 WORD $0x6b03017f // cmp w11, w3 72 WORD $0x530619ad // ubfx w13, w13, #6, #1 73 WORD $0x382c684d // strb w13, [x2, x12] 74 BGE LBB0_2 75 WORD $0x3940000c // ldrb w12, [x0] 76 WORD $0x53077d8c // lsr w12, w12, #7 77 WORD $0x382b684c // strb w12, [x2, x11] 78 JMP LBB0_2 79 LBB0_12: 80 WORD $0xa8c17bfd // ldp x29, x30, [sp], #16 81 RET