diff --git a/internal/native/neon/f32toa_arm64.s b/internal/native/neon/f32toa_arm64.s index 2ec6aaf0b..7f6159bfd 100644 --- a/internal/native/neon/f32toa_arm64.s +++ b/internal/native/neon/f32toa_arm64.s @@ -12,14 +12,13 @@ TEXT ·__f32toa_entry__(SB), NOSPLIT, $16 RET // .p2align 2, 0x00 _f32toa: - WORD $0xd10083ff // sub sp, sp, #32 - WORD $0xa900fbfd // stp fp, lr, [sp, #8] + WORD $0xa9be7bfd // stp fp, lr, [sp, #-32]! WORD $0xa93ffbfd // stp fp, lr, [sp, #-8] WORD $0xd10023fd // sub fp, sp, #8 WORD $0x1e260009 // fmov w9, s0 WORD $0x5317792b // ubfx w11, w9, #23, #8 WORD $0x7103fd7f // cmp w11, #255 - WORD $0x54005b20 // b.eq LBB0_130 $2916(%rip) + WORD $0x54005a20 // b.eq LBB0_130 $2884(%rip) WORD $0x528005a8 // mov w8, #45 WORD $0x39000008 // strb w8, [x0] WORD $0x531f7d2a // lsr w10, w9, #31 @@ -30,7 +29,7 @@ _f32toa: WORD $0x1200592e // and w14, w9, #0x7fffff WORD $0x5290d3e9 // mov w9, #34463 WORD $0x72a00029 // movk w9, #1, lsl #16 - WORD $0x34005a4b // cbz w11, LBB0_131 $2888(%rip) + WORD $0x3400592b // cbz w11, LBB0_131 $2852(%rip) WORD $0x320901cd // orr w13, w14, #0x800000 WORD $0x5102596c // sub w12, w11, #150 WORD $0x5101fd6f // sub w15, w11, #127 @@ -42,7 +41,7 @@ _f32toa: WORD $0x9acf2210 // lsl x16, x16, x15 WORD $0x2a3003f0 // mvn w16, w16 WORD $0xea0d021f // tst x16, x13 - WORD $0x54001120 // b.eq LBB0_17 $548(%rip) + WORD $0x54001100 // b.eq LBB0_17 $544(%rip) LBB0_5: WORD $0x120001af // and w15, w13, #0x1 WORD $0x710001df // cmp w14, #0 @@ -69,7 +68,7 @@ LBB0_5: WORD $0x1100058c // add w12, w12, #1 WORD $0x528003ed // mov w13, #31 Lloh0: - WORD $0x10005c6e // adr x14, _pow10_ceil_sig_f32.g $2956(%rip) + WORD $0x10005b4e // adr x14, _pow10_ceil_sig_f32.g $2920(%rip) Lloh1: WORD $0x910001ce // add x14, x14, _pow10_ceil_sig_f32.g@PAGEOFF $0(%rip) WORD $0x4b0b01ad // sub w13, w13, w11 @@ -109,7 +108,7 @@ Lloh1: WORD $0x1a9f87e1 // cset w1, ls WORD $0x1a8c858c // cinc w12, w12, ls WORD $0x6b01023f // cmp w17, w1 - WORD $0x540004e0 // b.eq LBB0_11 $156(%rip) + WORD $0x540004c0 // b.eq LBB0_11 $152(%rip) LBB0_7: WORD $0xd3427dac // ubfx x12, x13, #2, #30 WORD $0x121e75b1 // and w17, w13, #0xfffffffc @@ -131,30 +130,29 @@ LBB0_7: WORD $0x7200021f // tst w16, #0x1 WORD $0x1a8c11ac // csel w12, w13, w12, ne WORD $0x6b09019f // cmp w12, w9 - WORD $0x540002a9 // b.ls LBB0_12 $84(%rip) + WORD $0x54000289 // b.ls LBB0_12 $80(%rip) LBB0_8: WORD $0x52884809 // mov w9, #16960 WORD $0x72a001e9 // movk w9, #15, lsl #16 WORD $0x6b09019f // cmp w12, w9 - WORD $0x54000322 // b.hs LBB0_14 $100(%rip) + WORD $0x54000302 // b.hs LBB0_14 $96(%rip) WORD $0x528000cd // mov w13, #6 WORD $0x0b0b01a9 // add w9, w13, w11 WORD $0x5100592e // sub w14, w9, #22 WORD $0x310071df // cmn w14, #28 - WORD $0x54000ae8 // b.hi LBB0_22 $348(%rip) - WORD $0x140000bc // b LBB0_43 $752(%rip) + WORD $0x54000ac8 // b.hi LBB0_22 $344(%rip) + WORD $0x140000ba // b LBB0_43 $744(%rip) LBB0_10: WORD $0x52800609 // mov w9, #48 WORD $0x39000109 // strb w9, [x8] WORD $0x4b000108 // sub w8, w8, w0 WORD $0x11000500 // add w0, w8, #1 - WORD $0xa940fbfd // ldp fp, lr, [sp, #8] - WORD $0x910083ff // add sp, sp, #32 + WORD $0xa8c27bfd // ldp fp, lr, [sp], #32 WORD $0xd65f03c0 // ret LBB0_11: WORD $0x1100056b // add w11, w11, #1 WORD $0x6b09019f // cmp w12, w9 - WORD $0x54fffda8 // b.hi LBB0_8 $-76(%rip) + WORD $0x54fffdc8 // b.hi LBB0_8 $-72(%rip) LBB0_12: WORD $0x7100299f // cmp w12, #10 WORD $0x540002c2 // b.hs LBB0_15 $88(%rip) @@ -163,7 +161,7 @@ LBB0_12: WORD $0x5100592e // sub w14, w9, #22 WORD $0x310071df // cmn w14, #28 WORD $0x540008a8 // b.hi LBB0_22 $276(%rip) - WORD $0x140000aa // b LBB0_43 $680(%rip) + WORD $0x140000a9 // b LBB0_43 $676(%rip) LBB0_14: WORD $0x528000e9 // mov w9, #7 WORD $0x5292d00d // mov w13, #38528 @@ -179,7 +177,7 @@ LBB0_14: WORD $0x5100592e // sub w14, w9, #22 WORD $0x310071df // cmn w14, #28 WORD $0x540006c8 // b.hi LBB0_22 $216(%rip) - WORD $0x1400009b // b LBB0_43 $620(%rip) + WORD $0x1400009a // b LBB0_43 $616(%rip) LBB0_15: WORD $0x7101919f // cmp w12, #100 WORD $0x54000582 // b.hs LBB0_20 $176(%rip) @@ -188,15 +186,15 @@ LBB0_15: WORD $0x5100592e // sub w14, w9, #22 WORD $0x310071df // cmn w14, #28 WORD $0x540005c8 // b.hi LBB0_22 $184(%rip) - WORD $0x14000093 // b LBB0_43 $588(%rip) + WORD $0x14000092 // b LBB0_43 $584(%rip) LBB0_17: WORD $0x1acf25ab // lsr w11, w13, w15 Lloh2: - WORD $0x100047ea // adr x10, _Digits $2300(%rip) + WORD $0x100046ea // adr x10, _Digits $2268(%rip) Lloh3: WORD $0x9100014a // add x10, x10, _Digits@PAGEOFF $0(%rip) WORD $0x6b09017f // cmp w11, w9 - WORD $0x54001049 // b.ls LBB0_40 $520(%rip) + WORD $0x54001029 // b.ls LBB0_40 $516(%rip) WORD $0x5292d009 // mov w9, #38528 WORD $0x72a01309 // movk w9, #152, lsl #16 WORD $0x6b09017f // cmp w11, w9 @@ -228,16 +226,16 @@ LBB0_19: WORD $0x7900058e // strh w14, [x12, #2] WORD $0xaa0d03eb // mov x11, x13 WORD $0x7101917f // cmp w11, #100 - WORD $0x540022e2 // b.hs LBB0_77 $1116(%rip) - WORD $0x14000124 // b LBB0_79 $1168(%rip) + WORD $0x54002262 // b.hs LBB0_77 $1100(%rip) + WORD $0x14000120 // b LBB0_79 $1152(%rip) LBB0_20: WORD $0x710fa19f // cmp w12, #1000 - WORD $0x54000c82 // b.hs LBB0_42 $400(%rip) + WORD $0x54000c62 // b.hs LBB0_42 $396(%rip) WORD $0x5280006d // mov w13, #3 WORD $0x0b0b01a9 // add w9, w13, w11 WORD $0x5100592e // sub w14, w9, #22 WORD $0x310071df // cmn w14, #28 - WORD $0x54000ce9 // b.ls LBB0_43 $412(%rip) + WORD $0x54000cc9 // b.ls LBB0_43 $408(%rip) LBB0_22: WORD $0x37f803cb // tbnz w11, #31, LBB0_26 $120(%rip) WORD $0x2a0d03ee // mov w14, w13 @@ -258,7 +256,7 @@ LBB0_22: WORD $0x52800c91 // mov w17, #100 WORD $0x1b11b1ec // msub w12, w15, w17, w12 Lloh4: - WORD $0x10004051 // adr x17, _Digits $2056(%rip) + WORD $0x10003f51 // adr x17, _Digits $2024(%rip) Lloh5: WORD $0x91000231 // add x17, x17, _Digits@PAGEOFF $0(%rip) WORD $0x786c5a2c // ldrh w12, [x17, w12, uxtw #1] @@ -274,16 +272,16 @@ LBB0_25: WORD $0x1400001f // b LBB0_33 $124(%rip) LBB0_26: WORD $0x7100013f // cmp w9, #0 - WORD $0x540024cc // b.gt LBB0_88 $1176(%rip) + WORD $0x5400240c // b.gt LBB0_88 $1152(%rip) WORD $0x5285c60e // mov w14, #11824 WORD $0x7800250e // strh w14, [x8], #2 - WORD $0x36f82469 // tbz w9, #31, LBB0_88 $1164(%rip) + WORD $0x36f823a9 // tbz w9, #31, LBB0_88 $1140(%rip) WORD $0x2a2d03ee // mvn w14, w13 WORD $0x4b0b01ce // sub w14, w14, w11 WORD $0x7100fddf // cmp w14, #63 - WORD $0x54002182 // b.hs LBB0_83 $1072(%rip) + WORD $0x540020c2 // b.hs LBB0_83 $1048(%rip) WORD $0x5280000e // mov w14, #0 - WORD $0x14000117 // b LBB0_86 $1116(%rip) + WORD $0x14000111 // b LBB0_86 $1092(%rip) LBB0_30: WORD $0xaa0b03ef // mov x15, x11 WORD $0x7101919f // cmp w12, #100 @@ -294,7 +292,7 @@ LBB0_31: WORD $0x72aa3d71 // movk w17, #20971, lsl #16 WORD $0x52800c81 // mov w1, #100 Lloh6: - WORD $0x10003c82 // adr x2, _Digits $1936(%rip) + WORD $0x10003b82 // adr x2, _Digits $1904(%rip) Lloh7: WORD $0x91000042 // add x2, x2, _Digits@PAGEOFF $0(%rip) LBB0_32: @@ -311,25 +309,24 @@ LBB0_32: LBB0_33: WORD $0x8b09010c // add x12, x8, x9 WORD $0x710029ff // cmp w15, #10 - WORD $0x54000163 // b.lo LBB0_36 $44(%rip) + WORD $0x54000143 // b.lo LBB0_36 $40(%rip) Lloh8: - WORD $0x10003ab0 // adr x16, _Digits $1876(%rip) + WORD $0x100039b0 // adr x16, _Digits $1844(%rip) Lloh9: WORD $0x91000210 // add x16, x16, _Digits@PAGEOFF $0(%rip) WORD $0x786f5a0f // ldrh w15, [x16, w15, uxtw #1] WORD $0x7900010f // strh w15, [x8] WORD $0x6b0901bf // cmp w13, w9 - WORD $0x54000123 // b.lo LBB0_37 $36(%rip) + WORD $0x54000103 // b.lo LBB0_37 $32(%rip) LBB0_35: WORD $0x4b000180 // sub w0, w12, w0 - WORD $0xa940fbfd // ldp fp, lr, [sp, #8] - WORD $0x910083ff // add sp, sp, #32 + WORD $0xa8c27bfd // ldp fp, lr, [sp], #32 WORD $0xd65f03c0 // ret LBB0_36: WORD $0x321c05ef // orr w15, w15, #0x30 WORD $0x3900010f // strb w15, [x8] WORD $0x6b0901bf // cmp w13, w9 - WORD $0x54ffff22 // b.hs LBB0_35 $-28(%rip) + WORD $0x54ffff42 // b.hs LBB0_35 $-24(%rip) LBB0_37: WORD $0x8b0a0008 // add x8, x0, x10 WORD $0x8b0e010d // add x13, x8, x14 @@ -339,16 +336,16 @@ LBB0_37: WORD $0x9a8d9508 // csinc x8, x8, x13, ls WORD $0xcb0d0108 // sub x8, x8, x13 WORD $0xf100211f // cmp x8, #8 - WORD $0x54003663 // b.lo LBB0_128 $1740(%rip) + WORD $0x540035a3 // b.lo LBB0_128 $1716(%rip) WORD $0xf101011f // cmp x8, #64 - WORD $0x540012a2 // b.hs LBB0_67 $596(%rip) + WORD $0x54001242 // b.hs LBB0_67 $584(%rip) WORD $0xd2800009 // mov x9, #0 - WORD $0x140000a1 // b LBB0_71 $644(%rip) + WORD $0x1400009e // b LBB0_71 $632(%rip) LBB0_40: WORD $0x7100297f // cmp w11, #10 - WORD $0x540011a2 // b.hs LBB0_65 $564(%rip) + WORD $0x54001142 // b.hs LBB0_65 $552(%rip) WORD $0x52800029 // mov w9, #1 - WORD $0x140000ad // b LBB0_76 $692(%rip) + WORD $0x140000aa // b LBB0_76 $680(%rip) LBB0_42: WORD $0x53047d89 // lsr w9, w12, #4 WORD $0x7109c53f // cmp w9, #625 @@ -357,7 +354,7 @@ LBB0_42: WORD $0x0b0b01a9 // add w9, w13, w11 WORD $0x5100592e // sub w14, w9, #22 WORD $0x310071df // cmn w14, #28 - WORD $0x54fff368 // b.hi LBB0_22 $-404(%rip) + WORD $0x54fff388 // b.hi LBB0_22 $-400(%rip) LBB0_43: WORD $0x9100050b // add x11, x8, #1 WORD $0x2a0d03ed // mov w13, w13 @@ -380,7 +377,7 @@ LBB0_43: WORD $0x52800c81 // mov w1, #100 WORD $0x1b01b22c // msub w12, w17, w1, w12 Lloh10: - WORD $0x10003341 // adr x1, _Digits $1640(%rip) + WORD $0x10003261 // adr x1, _Digits $1612(%rip) Lloh11: WORD $0x91000021 // add x1, x1, _Digits@PAGEOFF $0(%rip) WORD $0x786c582c // ldrh w12, [x1, w12, uxtw #1] @@ -408,7 +405,7 @@ LBB0_50: WORD $0x72aa3d71 // movk w17, #20971, lsl #16 WORD $0x52800c81 // mov w1, #100 Lloh12: - WORD $0x100030a2 // adr x2, _Digits $1556(%rip) + WORD $0x10002fc2 // adr x2, _Digits $1528(%rip) Lloh13: WORD $0x91000042 // add x2, x2, _Digits@PAGEOFF $0(%rip) LBB0_51: @@ -426,7 +423,7 @@ LBB0_52: WORD $0x7100299f // cmp w12, #10 WORD $0x54000123 // b.lo LBB0_54 $36(%rip) Lloh14: - WORD $0x10002eef // adr x15, _Digits $1500(%rip) + WORD $0x10002e0f // adr x15, _Digits $1472(%rip) Lloh15: WORD $0x910001ef // add x15, x15, _Digits@PAGEOFF $0(%rip) WORD $0x8b2c45ef // add x15, x15, w12, uxtw #1 @@ -471,7 +468,7 @@ LBB0_60: WORD $0x1a89b149 // csel w9, w10, w9, lt WORD $0x3900050b // strb w11, [x8, #1] WORD $0x7101913f // cmp w9, #100 - WORD $0x54000243 // b.lo LBB0_62 $72(%rip) + WORD $0x54000223 // b.lo LBB0_62 $68(%rip) WORD $0x529999aa // mov w10, #52429 WORD $0x72b9998a // movk w10, #52428, lsl #16 WORD $0x9baa7d2a // umull x10, w9, w10 @@ -479,7 +476,7 @@ LBB0_60: WORD $0x5280014b // mov w11, #10 WORD $0x1b0ba549 // msub w9, w10, w11, w9 Lloh16: - WORD $0x1000292b // adr x11, _Digits $1316(%rip) + WORD $0x1000284b // adr x11, _Digits $1288(%rip) Lloh17: WORD $0x9100016b // add x11, x11, _Digits@PAGEOFF $0(%rip) WORD $0x786a796a // ldrh w10, [x11, x10, lsl #1] @@ -488,30 +485,27 @@ Lloh17: WORD $0x39001109 // strb w9, [x8, #4] WORD $0x9100150c // add x12, x8, #5 WORD $0x4b000180 // sub w0, w12, w0 - WORD $0xa940fbfd // ldp fp, lr, [sp, #8] - WORD $0x910083ff // add sp, sp, #32 + WORD $0xa8c27bfd // ldp fp, lr, [sp], #32 WORD $0xd65f03c0 // ret LBB0_62: WORD $0x7100293f // cmp w9, #10 - WORD $0x54000143 // b.lo LBB0_64 $40(%rip) + WORD $0x54000123 // b.lo LBB0_64 $36(%rip) Lloh18: - WORD $0x1000278a // adr x10, _Digits $1264(%rip) + WORD $0x100026ca // adr x10, _Digits $1240(%rip) Lloh19: WORD $0x9100014a // add x10, x10, _Digits@PAGEOFF $0(%rip) WORD $0x78695949 // ldrh w9, [x10, w9, uxtw #1] WORD $0x79000509 // strh w9, [x8, #2] WORD $0x9100110c // add x12, x8, #4 WORD $0x4b000180 // sub w0, w12, w0 - WORD $0xa940fbfd // ldp fp, lr, [sp, #8] - WORD $0x910083ff // add sp, sp, #32 + WORD $0xa8c27bfd // ldp fp, lr, [sp], #32 WORD $0xd65f03c0 // ret LBB0_64: WORD $0x321c0529 // orr w9, w9, #0x30 WORD $0x91000d0c // add x12, x8, #3 WORD $0x39000909 // strb w9, [x8, #2] WORD $0x4b000180 // sub w0, w12, w0 - WORD $0xa940fbfd // ldp fp, lr, [sp, #8] - WORD $0x910083ff // add sp, sp, #32 + WORD $0xa8c27bfd // ldp fp, lr, [sp], #32 WORD $0xd65f03c0 // ret LBB0_65: WORD $0x7101917f // cmp w11, #100 @@ -531,9 +525,9 @@ LBB0_68: WORD $0xf10101ef // subs x15, x15, #64 WORD $0x54ffffa1 // b.ne LBB0_68 $-12(%rip) WORD $0xeb09011f // cmp x8, x9 - WORD $0x54ffe9c0 // b.eq LBB0_35 $-712(%rip) + WORD $0x54ffea40 // b.eq LBB0_35 $-696(%rip) WORD $0xf27d091f // tst x8, #0x38 - WORD $0x540021c0 // b.eq LBB0_127 $1080(%rip) + WORD $0x54002160 // b.eq LBB0_127 $1068(%rip) LBB0_71: WORD $0x927df10d // and x13, x8, #0xfffffffffffffff8 WORD $0x8b0d016b // add x11, x11, x13 @@ -547,11 +541,11 @@ LBB0_72: WORD $0xb1002129 // adds x9, x9, #8 WORD $0x54ffffc1 // b.ne LBB0_72 $-8(%rip) WORD $0xeb0d011f // cmp x8, x13 - WORD $0x54ffe800 // b.eq LBB0_35 $-768(%rip) - WORD $0x14000102 // b LBB0_128 $1032(%rip) + WORD $0x54ffe880 // b.eq LBB0_35 $-752(%rip) + WORD $0x140000ff // b LBB0_128 $1020(%rip) LBB0_74: WORD $0x710f9d7f // cmp w11, #999 - WORD $0x54000448 // b.hi LBB0_82 $136(%rip) + WORD $0x54000408 // b.hi LBB0_82 $128(%rip) WORD $0x52800069 // mov w9, #3 LBB0_76: WORD $0x8b090109 // add x9, x8, x9 @@ -576,19 +570,17 @@ LBB0_78: WORD $0x54fffee8 // b.hi LBB0_78 $-36(%rip) LBB0_79: WORD $0x7100297f // cmp w11, #10 - WORD $0x540000e3 // b.lo LBB0_81 $28(%rip) + WORD $0x540000c3 // b.lo LBB0_81 $24(%rip) WORD $0x786b594a // ldrh w10, [x10, w11, uxtw #1] WORD $0x7900010a // strh w10, [x8] WORD $0x4b000120 // sub w0, w9, w0 - WORD $0xa940fbfd // ldp fp, lr, [sp, #8] - WORD $0x910083ff // add sp, sp, #32 + WORD $0xa8c27bfd // ldp fp, lr, [sp], #32 WORD $0xd65f03c0 // ret LBB0_81: WORD $0x321c056a // orr w10, w11, #0x30 WORD $0x3900010a // strb w10, [x8] WORD $0x4b000120 // sub w0, w9, w0 - WORD $0xa940fbfd // ldp fp, lr, [sp, #8] - WORD $0x910083ff // add sp, sp, #32 + WORD $0xa8c27bfd // ldp fp, lr, [sp], #32 WORD $0xd65f03c0 // ret LBB0_82: WORD $0x53047d69 // lsr w9, w11, #4 @@ -597,8 +589,8 @@ LBB0_82: WORD $0x9a8c3589 // cinc x9, x12, hs WORD $0x8b09010c // add x12, x8, x9 WORD $0xaa0c03e9 // mov x9, x12 - WORD $0x54ffd682 // b.hs LBB0_19 $-1328(%rip) - WORD $0x17ffffdd // b LBB0_77 $-140(%rip) + WORD $0x54ffd742 // b.hs LBB0_19 $-1304(%rip) + WORD $0x17ffffdf // b LBB0_77 $-132(%rip) LBB0_83: WORD $0x910005cf // add x15, x14, #1 WORD $0x927a69ee // and x14, x15, #0x1ffffffc0 @@ -643,7 +635,7 @@ LBB0_88: WORD $0x52800c91 // mov w17, #100 WORD $0x1b11b20c // msub w12, w16, w17, w12 Lloh20: - WORD $0x10001791 // adr x17, _Digits $752(%rip) + WORD $0x10001751 // adr x17, _Digits $744(%rip) Lloh21: WORD $0x91000231 // add x17, x17, _Digits@PAGEOFF $0(%rip) WORD $0x786c5a2c // ldrh w12, [x17, w12, uxtw #1] @@ -672,7 +664,7 @@ LBB0_95: WORD $0x72aa3d71 // movk w17, #20971, lsl #16 WORD $0x52800c81 // mov w1, #100 Lloh22: - WORD $0x100014c2 // adr x2, _Digits $664(%rip) + WORD $0x10001482 // adr x2, _Digits $656(%rip) Lloh23: WORD $0x91000042 // add x2, x2, _Digits@PAGEOFF $0(%rip) LBB0_96: @@ -690,7 +682,7 @@ LBB0_97: WORD $0x71002a1f // cmp w16, #10 WORD $0x540000c3 // b.lo LBB0_99 $24(%rip) Lloh24: - WORD $0x1000130a // adr x10, _Digits $608(%rip) + WORD $0x100012ca // adr x10, _Digits $600(%rip) Lloh25: WORD $0x9100014a // add x10, x10, _Digits@PAGEOFF $0(%rip) WORD $0x7870594a // ldrh w10, [x10, w16, uxtw #1] @@ -716,7 +708,7 @@ LBB0_101: WORD $0x8b0a01ac // add x12, x13, x10 WORD $0x9100058c // add x12, x12, #1 WORD $0x7100053f // cmp w9, #1 - WORD $0x54ffd66b // b.lt LBB0_35 $-1332(%rip) + WORD $0x54ffd72b // b.lt LBB0_35 $-1308(%rip) WORD $0x0b0e01e2 // add w2, w15, w14 WORD $0x0b0a0042 // add w2, w2, w10 WORD $0x11000442 // add w2, w2, #1 @@ -735,7 +727,7 @@ LBB0_101: LBB0_107: WORD $0xcb0a0029 // sub x9, x1, x10 WORD $0x7100053f // cmp w9, #1 - WORD $0x54ffd42b // b.lt LBB0_35 $-1404(%rip) + WORD $0x54ffd4eb // b.lt LBB0_35 $-1380(%rip) WORD $0x4b0f016b // sub w11, w11, w15 WORD $0x4b0a016b // sub w11, w11, w10 WORD $0x5100096b // sub w11, w11, #2 @@ -775,7 +767,7 @@ LBB0_113: WORD $0xeb01011f // cmp x8, x1 WORD $0x54ffff01 // b.ne LBB0_113 $-32(%rip) WORD $0xeb0b023f // cmp x17, x11 - WORD $0x54ffcf80 // b.eq LBB0_35 $-1552(%rip) + WORD $0x54ffd040 // b.eq LBB0_35 $-1528(%rip) LBB0_115: WORD $0x52800608 // mov w8, #48 LBB0_116: @@ -783,7 +775,7 @@ LBB0_116: WORD $0x1100056b // add w11, w11, #1 WORD $0x6b09017f // cmp w11, w9 WORD $0x54ffffab // b.lt LBB0_116 $-12(%rip) - WORD $0x17fffe76 // b LBB0_35 $-1576(%rip) + WORD $0x17fffe7c // b LBB0_35 $-1552(%rip) LBB0_117: WORD $0xd280000f // mov x15, #0 WORD $0x927a616c // and x12, x11, #0x7fffffc0 @@ -843,8 +835,7 @@ LBB0_126: WORD $0x8b0a01a8 // add x8, x13, x10 WORD $0x9100090c // add x12, x8, #2 WORD $0x4b000180 // sub w0, w12, w0 - WORD $0xa940fbfd // ldp fp, lr, [sp, #8] - WORD $0x910083ff // add sp, sp, #32 + WORD $0xa8c27bfd // ldp fp, lr, [sp], #32 WORD $0xd65f03c0 // ret LBB0_127: WORD $0x8b09016b // add x11, x11, x9 @@ -854,16 +845,15 @@ LBB0_129: WORD $0x38001568 // strb w8, [x11], #1 WORD $0xeb0c017f // cmp x11, x12 WORD $0x54ffffc3 // b.lo LBB0_129 $-8(%rip) - WORD $0x17fffe39 // b LBB0_35 $-1820(%rip) + WORD $0x17fffe40 // b LBB0_35 $-1792(%rip) LBB0_130: WORD $0x52800000 // mov w0, #0 - WORD $0xa940fbfd // ldp fp, lr, [sp, #8] - WORD $0x910083ff // add sp, sp, #32 + WORD $0xa8c27bfd // ldp fp, lr, [sp], #32 WORD $0xd65f03c0 // ret LBB0_131: WORD $0x1280128c // mov w12, #-149 WORD $0xaa0e03ed // mov x13, x14 - WORD $0x17fffd39 // b LBB0_5 $-2844(%rip) + WORD $0x17fffd42 // b LBB0_5 $-2808(%rip) _Digits: WORD $0x31303030 // .ascii 4, '0001020304050607' WORD $0x33303230 // .ascii 4, '0203040506070809' @@ -916,7 +906,7 @@ _Digits: WORD $0x37393639 // .ascii 4, '96979899' WORD $0x39393839 // .ascii 4, '9899' WORD $0x00000000 // .p2align 3, 0x00 -_LB_0c2486d9: // _pow10_ceil_sig_f32.g +_LB_2bbb0b22: // _pow10_ceil_sig_f32.g WORD $0x4b43fcf5; WORD $0x81ceb32c // .quad -9093133594791772939 WORD $0x5e14fc32; WORD $0xa2425ff7 // .quad -6754730975062328270 WORD $0x359a3b3f; WORD $0xcad2f7f5 // .quad -3831727700400522433 diff --git a/internal/native/neon/f64toa_arm64.s b/internal/native/neon/f64toa_arm64.s index 0dec7512d..7ad358564 100644 --- a/internal/native/neon/f64toa_arm64.s +++ b/internal/native/neon/f64toa_arm64.s @@ -12,14 +12,13 @@ TEXT ·__f64toa_entry__(SB), NOSPLIT, $16 RET // .p2align 2, 0x00 _f64toa: - WORD $0xd10083ff // sub sp, sp, #32 - WORD $0xa900fbfd // stp fp, lr, [sp, #8] + WORD $0xa9be7bfd // stp fp, lr, [sp, #-32]! WORD $0xa93ffbfd // stp fp, lr, [sp, #-8] WORD $0xd10023fd // sub fp, sp, #8 WORD $0x9e660009 // fmov x9, d0 WORD $0xd374f92b // ubfx x11, x9, #52, #11 WORD $0x711ffd7f // cmp w11, #2047 - WORD $0x54007c20 // b.eq LBB0_171 $3972(%rip) + WORD $0x54007b20 // b.eq LBB0_171 $3940(%rip) WORD $0x528005a8 // mov w8, #45 WORD $0x39000008 // strb w8, [x0] WORD $0xd37ffd2a // lsr x10, x9, #63 @@ -31,7 +30,7 @@ _f64toa: WORD $0xd29c7fed // mov x13, #58367 WORD $0xf2aa816d // movk x13, #21515, lsl #16 WORD $0xf2c0004d // movk x13, #2, lsl #32 - WORD $0x34007c0b // cbz w11, LBB0_174 $3968(%rip) + WORD $0x34007aeb // cbz w11, LBB0_174 $3932(%rip) WORD $0xb24c01c9 // orr x9, x14, #0x10000000000000 WORD $0x5110cd6c // sub w12, w11, #1075 WORD $0x510ffd6f // sub w15, w11, #1023 @@ -42,7 +41,7 @@ _f64toa: WORD $0x92800010 // mov x16, #-1 WORD $0x9acf2210 // lsl x16, x16, x15 WORD $0xea30013f // bics xzr, x9, x16 - WORD $0x54000fe0 // b.eq LBB0_18 $508(%rip) + WORD $0x54000fc0 // b.eq LBB0_18 $504(%rip) LBB0_5: WORD $0xf10001df // cmp x14, #0 WORD $0x1a9f17ee // cset w14, eq @@ -69,7 +68,7 @@ LBB0_5: WORD $0x5280248e // mov w14, #292 WORD $0x4b0b01ce // sub w14, w14, w11 Lloh0: - WORD $0x10008031 // adr x17, _pow10_ceil_sig.g $4100(%rip) + WORD $0x10007f11 // adr x17, _pow10_ceil_sig.g $4064(%rip) Lloh1: WORD $0x91000231 // add x17, x17, _pow10_ceil_sig.g@PAGEOFF $0(%rip) WORD $0x8b2e522e // add x14, x17, w14, uxtw #4 @@ -119,7 +118,7 @@ Lloh1: WORD $0x1a9f87e1 // cset w1, ls WORD $0x9a8c858c // cinc x12, x12, ls WORD $0x6b01023f // cmp w17, w1 - WORD $0x54000460 // b.eq LBB0_11 $140(%rip) + WORD $0x54000440 // b.eq LBB0_11 $136(%rip) LBB0_7: WORD $0xd342fdcc // lsr x12, x14, #2 WORD $0x927ef5d1 // and x17, x14, #0xfffffffffffffffc @@ -140,32 +139,31 @@ LBB0_7: WORD $0x7200021f // tst w16, #0x1 WORD $0x9a8911cc // csel x12, x14, x9, ne WORD $0xeb0d019f // cmp x12, x13 - WORD $0x54000249 // b.ls LBB0_12 $72(%rip) + WORD $0x54000229 // b.ls LBB0_12 $68(%rip) LBB0_8: WORD $0xd29d0009 // mov x9, #59392 WORD $0xf2a90ec9 // movk x9, #18550, lsl #16 WORD $0xf2c002e9 // movk x9, #23, lsl #32 WORD $0xeb09019f // cmp x12, x9 - WORD $0x54000222 // b.hs LBB0_14 $68(%rip) + WORD $0x54000202 // b.hs LBB0_14 $64(%rip) WORD $0x5280016d // mov w13, #11 - WORD $0x140000f3 // b LBB0_67 $972(%rip) + WORD $0x140000f0 // b LBB0_67 $960(%rip) LBB0_10: WORD $0x52800609 // mov w9, #48 WORD $0x39000109 // strb w9, [x8] WORD $0x4b000108 // sub w8, w8, w0 WORD $0x11000500 // add w0, w8, #1 - WORD $0xa940fbfd // ldp fp, lr, [sp, #8] - WORD $0x910083ff // add sp, sp, #32 + WORD $0xa8c27bfd // ldp fp, lr, [sp], #32 WORD $0xd65f03c0 // ret LBB0_11: WORD $0x1100056b // add w11, w11, #1 WORD $0xeb0d019f // cmp x12, x13 - WORD $0x54fffe08 // b.hi LBB0_8 $-64(%rip) + WORD $0x54fffe28 // b.hi LBB0_8 $-60(%rip) LBB0_12: WORD $0xf100299f // cmp x12, #10 WORD $0x54000142 // b.hs LBB0_16 $40(%rip) WORD $0x5280002d // mov w13, #1 - WORD $0x140000e5 // b LBB0_67 $916(%rip) + WORD $0x140000e3 // b LBB0_67 $908(%rip) LBB0_14: WORD $0xd2820009 // mov x9, #4096 WORD $0xf2ba94a9 // movk x9, #54437, lsl #16 @@ -173,16 +171,16 @@ LBB0_14: WORD $0xeb09019f // cmp x12, x9 WORD $0x54000262 // b.hs LBB0_21 $76(%rip) WORD $0x5280018d // mov w13, #12 - WORD $0x140000de // b LBB0_67 $888(%rip) + WORD $0x140000dc // b LBB0_67 $880(%rip) LBB0_16: WORD $0xf101919f // cmp x12, #100 WORD $0x540002c2 // b.hs LBB0_23 $88(%rip) WORD $0x5280004d // mov w13, #2 - WORD $0x140000da // b LBB0_67 $872(%rip) + WORD $0x140000d8 // b LBB0_67 $864(%rip) LBB0_18: WORD $0x9acf252a // lsr x10, x9, x15 Lloh2: - WORD $0x10006d09 // adr x9, _Digits $3488(%rip) + WORD $0x10006c09 // adr x9, _Digits $3456(%rip) Lloh3: WORD $0x91000129 // add x9, x9, _Digits@PAGEOFF $0(%rip) WORD $0xeb0d015f // cmp x10, x13 @@ -201,18 +199,18 @@ LBB0_21: WORD $0xeb09019f // cmp x12, x9 WORD $0x54000182 // b.hs LBB0_27 $48(%rip) WORD $0x528001ad // mov w13, #13 - WORD $0x140000c7 // b LBB0_67 $796(%rip) + WORD $0x140000c5 // b LBB0_67 $788(%rip) LBB0_23: WORD $0xf10fa19f // cmp x12, #1000 WORD $0x540001e2 // b.hs LBB0_29 $60(%rip) WORD $0x5280006d // mov w13, #3 - WORD $0x140000c3 // b LBB0_67 $780(%rip) + WORD $0x140000c1 // b LBB0_67 $772(%rip) LBB0_25: WORD $0xf100295f // cmp x10, #10 WORD $0x540002e2 // b.hs LBB0_33 $92(%rip) WORD $0x5280002b // mov w11, #1 WORD $0x8b0b010b // add x11, x8, x11 - WORD $0x14000346 // b LBB0_176 $3352(%rip) + WORD $0x1400033e // b LBB0_176 $3320(%rip) LBB0_27: WORD $0xd2880009 // mov x9, #16384 WORD $0xf2a20f49 // movk x9, #4218, lsl #16 @@ -220,13 +218,13 @@ LBB0_27: WORD $0xeb09019f // cmp x12, x9 WORD $0x54000282 // b.hs LBB0_35 $80(%rip) WORD $0x528001cd // mov w13, #14 - WORD $0x140000b7 // b LBB0_67 $732(%rip) + WORD $0x140000b5 // b LBB0_67 $724(%rip) LBB0_29: WORD $0xd344fd89 // lsr x9, x12, #4 WORD $0xf109c53f // cmp x9, #625 WORD $0x540002c2 // b.hs LBB0_37 $88(%rip) WORD $0x5280008d // mov w13, #4 - WORD $0x140000b2 // b LBB0_67 $712(%rip) + WORD $0x140000b0 // b LBB0_67 $704(%rip) LBB0_31: WORD $0xd282000b // mov x11, #4096 WORD $0xf2ba94ab // movk x11, #54437, lsl #16 @@ -240,7 +238,7 @@ LBB0_33: WORD $0x540002e2 // b.hs LBB0_41 $92(%rip) WORD $0x5280004b // mov w11, #2 WORD $0x8b0b010b // add x11, x8, x11 - WORD $0x1400032e // b LBB0_176 $3256(%rip) + WORD $0x14000326 // b LBB0_176 $3224(%rip) LBB0_35: WORD $0xb2718be9 // mov x9, #1125899906809856 WORD $0xf2b498c9 // movk x9, #42182, lsl #16 @@ -248,13 +246,13 @@ LBB0_35: WORD $0xeb09019f // cmp x12, x9 WORD $0x54000282 // b.hs LBB0_43 $80(%rip) WORD $0x528001ed // mov w13, #15 - WORD $0x1400009f // b LBB0_67 $636(%rip) + WORD $0x1400009d // b LBB0_67 $628(%rip) LBB0_37: WORD $0xd345fd89 // lsr x9, x12, #5 WORD $0xf130d53f // cmp x9, #3125 WORD $0x540002c2 // b.hs LBB0_45 $88(%rip) WORD $0x528000ad // mov w13, #5 - WORD $0x1400009a // b LBB0_67 $616(%rip) + WORD $0x14000098 // b LBB0_67 $608(%rip) LBB0_39: WORD $0xd294000b // mov x11, #40960 WORD $0xf2a9ce4b // movk x11, #20082, lsl #16 @@ -268,7 +266,7 @@ LBB0_41: WORD $0x54000302 // b.hs LBB0_49 $96(%rip) WORD $0x5280006b // mov w11, #3 WORD $0x8b0b010b // add x11, x8, x11 - WORD $0x14000316 // b LBB0_176 $3160(%rip) + WORD $0x1400030e // b LBB0_176 $3128(%rip) LBB0_43: WORD $0xd2adf829 // mov x9, #1874919424 WORD $0xf2d0de49 // movk x9, #34546, lsl #32 @@ -277,14 +275,14 @@ LBB0_43: WORD $0x52800209 // mov w9, #16 LBB0_44: WORD $0x1a89352d // cinc w13, w9, hs - WORD $0x14000087 // b LBB0_67 $540(%rip) + WORD $0x14000085 // b LBB0_67 $532(%rip) LBB0_45: WORD $0x52884809 // mov w9, #16960 WORD $0x72a001e9 // movk w9, #15, lsl #16 WORD $0xeb09019f // cmp x12, x9 WORD $0x54000202 // b.hs LBB0_51 $64(%rip) WORD $0x528000cd // mov w13, #6 - WORD $0x14000081 // b LBB0_67 $516(%rip) + WORD $0x1400007f // b LBB0_67 $508(%rip) LBB0_47: WORD $0xd288000b // mov x11, #16384 WORD $0xf2a20f4b // movk x11, #4218, lsl #16 @@ -296,17 +294,17 @@ LBB0_47: LBB0_49: WORD $0xd344fd4b // lsr x11, x10, #4 WORD $0xf109c57f // cmp x11, #625 - WORD $0x54000d82 // b.hs LBB0_63 $432(%rip) + WORD $0x54000d42 // b.hs LBB0_63 $424(%rip) WORD $0x5280008b // mov w11, #4 WORD $0x8b0b010b // add x11, x8, x11 - WORD $0x140002fc // b LBB0_176 $3056(%rip) + WORD $0x140002f4 // b LBB0_176 $3024(%rip) LBB0_51: WORD $0x5292d009 // mov w9, #38528 WORD $0x72a01309 // movk w9, #152, lsl #16 WORD $0xeb09019f // cmp x12, x9 - WORD $0x54000d62 // b.hs LBB0_65 $428(%rip) + WORD $0x54000d22 // b.hs LBB0_65 $420(%rip) WORD $0x528000ed // mov w13, #7 - WORD $0x1400006e // b LBB0_67 $440(%rip) + WORD $0x1400006c // b LBB0_67 $432(%rip) LBB0_53: WORD $0xb2718beb // mov x11, #1125899906809856 WORD $0xf2b498cb // movk x11, #42182, lsl #16 @@ -360,7 +358,7 @@ LBB0_55: WORD $0xaa0d03ea // mov x10, x13 WORD $0xd3447dad // ubfx x13, x13, #4, #28 WORD $0x7109c5bf // cmp w13, #625 - WORD $0x540058e3 // b.lo LBB0_177 $2844(%rip) + WORD $0x540057e3 // b.lo LBB0_177 $2812(%rip) LBB0_56: WORD $0x529c1fee // mov w14, #57599 WORD $0x72a0beae // movk w14, #1525, lsl #16 @@ -399,32 +397,30 @@ LBB0_59: WORD $0xaa0a03ed // mov x13, x10 LBB0_60: WORD $0x710029bf // cmp w13, #10 - WORD $0x540000e3 // b.lo LBB0_62 $28(%rip) + WORD $0x540000c3 // b.lo LBB0_62 $24(%rip) WORD $0x786d5928 // ldrh w8, [x9, w13, uxtw #1] WORD $0x781fe188 // sturh w8, [x12, #-2] WORD $0x4b000160 // sub w0, w11, w0 - WORD $0xa940fbfd // ldp fp, lr, [sp, #8] - WORD $0x910083ff // add sp, sp, #32 + WORD $0xa8c27bfd // ldp fp, lr, [sp], #32 WORD $0xd65f03c0 // ret LBB0_62: WORD $0x321c05a9 // orr w9, w13, #0x30 WORD $0x39000109 // strb w9, [x8] WORD $0x4b000160 // sub w0, w11, w0 - WORD $0xa940fbfd // ldp fp, lr, [sp, #8] - WORD $0x910083ff // add sp, sp, #32 + WORD $0xa8c27bfd // ldp fp, lr, [sp], #32 WORD $0xd65f03c0 // ret LBB0_63: WORD $0xd345fd4b // lsr x11, x10, #5 WORD $0xf130d57f // cmp x11, #3125 - WORD $0x54004d02 // b.hs LBB0_166 $2464(%rip) + WORD $0x54004c62 // b.hs LBB0_166 $2444(%rip) WORD $0x528000ab // mov w11, #5 WORD $0x8b0b010b // add x11, x8, x11 - WORD $0x1400028e // b LBB0_176 $2616(%rip) + WORD $0x14000288 // b LBB0_176 $2592(%rip) LBB0_65: WORD $0x529c2009 // mov w9, #57600 WORD $0x72a0bea9 // movk w9, #1525, lsl #16 WORD $0xeb09019f // cmp x12, x9 - WORD $0x54004d02 // b.hs LBB0_168 $2464(%rip) + WORD $0x54004c62 // b.hs LBB0_168 $2444(%rip) WORD $0x5280010d // mov w13, #8 LBB0_67: WORD $0x0b0b01a9 // add w9, w13, w11 @@ -439,10 +435,10 @@ LBB0_67: WORD $0xaa0c03f0 // mov x16, x12 WORD $0x53047e0c // lsr w12, w16, #4 WORD $0x7109c59f // cmp w12, #625 - WORD $0x540017c2 // b.hs LBB0_94 $760(%rip) + WORD $0x540017a2 // b.hs LBB0_94 $756(%rip) LBB0_70: WORD $0xaa1003ec // mov x12, x16 - WORD $0x140000d3 // b LBB0_96 $844(%rip) + WORD $0x140000d2 // b LBB0_96 $840(%rip) LBB0_71: WORD $0x37f8074b // tbnz w11, #31, LBB0_77 $232(%rip) WORD $0x2a0d03ee // mov w14, w13 @@ -465,7 +461,7 @@ LBB0_75: WORD $0x5283e00f // mov w15, #7936 WORD $0x72bf414f // movk w15, #64010, lsl #16 WORD $0x1b0f320c // madd w12, w16, w15, w12 - WORD $0x3400146c // cbz w12, LBB0_93 $652(%rip) + WORD $0x3400144c // cbz w12, LBB0_93 $648(%rip) WORD $0xd280000f // mov x15, #0 WORD $0x5282eb31 // mov w17, #5977 WORD $0x72ba36f1 // movk w17, #53687, lsl #16 @@ -488,7 +484,7 @@ LBB0_75: WORD $0x1b027e22 // mul w2, w17, w2 WORD $0x53137c42 // lsr w2, w2, #19 Lloh4: - WORD $0x10004b04 // adr x4, _Digits $2400(%rip) + WORD $0x10004a44 // adr x4, _Digits $2376(%rip) Lloh5: WORD $0x91000084 // add x4, x4, _Digits@PAGEOFF $0(%rip) WORD $0x786c788c // ldrh w12, [x4, x12, lsl #1] @@ -505,19 +501,19 @@ Lloh5: WORD $0x53047e0c // lsr w12, w16, #4 WORD $0x7109c59f // cmp w12, #625 WORD $0x54fff8c3 // b.lo LBB0_70 $-232(%rip) - WORD $0x14000082 // b LBB0_94 $520(%rip) + WORD $0x14000081 // b LBB0_94 $516(%rip) LBB0_77: WORD $0x7100013f // cmp w9, #0 - WORD $0x540023cc // b.gt LBB0_123 $1144(%rip) + WORD $0x5400234c // b.gt LBB0_123 $1128(%rip) WORD $0x5285c60e // mov w14, #11824 WORD $0x7800250e // strh w14, [x8], #2 - WORD $0x36f82369 // tbz w9, #31, LBB0_123 $1132(%rip) + WORD $0x36f822e9 // tbz w9, #31, LBB0_123 $1116(%rip) WORD $0x2a2d03ee // mvn w14, w13 WORD $0x4b0b01ce // sub w14, w14, w11 WORD $0x7100fddf // cmp w14, #63 - WORD $0x54002082 // b.hs LBB0_118 $1040(%rip) + WORD $0x54002002 // b.hs LBB0_118 $1024(%rip) WORD $0x5280000e // mov w14, #0 - WORD $0x1400010f // b LBB0_121 $1084(%rip) + WORD $0x1400010b // b LBB0_121 $1068(%rip) LBB0_81: WORD $0xd29cefef // mov x15, #59263 WORD $0xf2b8460f // movk x15, #49712, lsl #16 @@ -550,7 +546,7 @@ LBB0_81: WORD $0x53137c21 // lsr w1, w1, #19 WORD $0x1b02bc22 // msub w2, w1, w2, w15 Lloh6: - WORD $0x100043c3 // adr x3, _Digits $2168(%rip) + WORD $0x10004303 // adr x3, _Digits $2144(%rip) Lloh7: WORD $0x91000063 // add x3, x3, _Digits@PAGEOFF $0(%rip) WORD $0x786c786c // ldrh w12, [x3, x12, lsl #1] @@ -577,7 +573,7 @@ LBB0_82: WORD $0x72aa3d63 // movk w3, #20971, lsl #16 WORD $0x52800c84 // mov w4, #100 Lloh8: - WORD $0x100040c5 // adr x5, _Digits $2072(%rip) + WORD $0x10004005 // adr x5, _Digits $2048(%rip) Lloh9: WORD $0x910000a5 // add x5, x5, _Digits@PAGEOFF $0(%rip) LBB0_83: @@ -604,7 +600,7 @@ LBB0_84: WORD $0x52800c91 // mov w17, #100 WORD $0x1b11c190 // msub w16, w12, w17, w16 Lloh10: - WORD $0x10003df1 // adr x17, _Digits $1980(%rip) + WORD $0x10003d31 // adr x17, _Digits $1956(%rip) Lloh11: WORD $0x91000231 // add x17, x17, _Digits@PAGEOFF $0(%rip) WORD $0x92403e10 // and x16, x16, #0xffff @@ -614,25 +610,24 @@ Lloh11: LBB0_86: WORD $0x8b09010c // add x12, x8, x9 WORD $0x71002a1f // cmp w16, #10 - WORD $0x54000163 // b.lo LBB0_89 $44(%rip) + WORD $0x54000143 // b.lo LBB0_89 $40(%rip) Lloh12: - WORD $0x10003cc8 // adr x8, _Digits $1944(%rip) + WORD $0x10003c08 // adr x8, _Digits $1920(%rip) Lloh13: WORD $0x91000108 // add x8, x8, _Digits@PAGEOFF $0(%rip) WORD $0x78705908 // ldrh w8, [x8, w16, uxtw #1] WORD $0x781fe1e8 // sturh w8, [x15, #-2] WORD $0x6b0901bf // cmp w13, w9 - WORD $0x54000123 // b.lo LBB0_90 $36(%rip) + WORD $0x54000103 // b.lo LBB0_90 $32(%rip) LBB0_88: WORD $0x4b000180 // sub w0, w12, w0 - WORD $0xa940fbfd // ldp fp, lr, [sp, #8] - WORD $0x910083ff // add sp, sp, #32 + WORD $0xa8c27bfd // ldp fp, lr, [sp], #32 WORD $0xd65f03c0 // ret LBB0_89: WORD $0x321c060f // orr w15, w16, #0x30 WORD $0x3900010f // strb w15, [x8] WORD $0x6b0901bf // cmp w13, w9 - WORD $0x54ffff22 // b.hs LBB0_88 $-28(%rip) + WORD $0x54ffff42 // b.hs LBB0_88 $-24(%rip) LBB0_90: WORD $0x8b000148 // add x8, x10, x0 WORD $0x8b0e010d // add x13, x8, x14 @@ -642,17 +637,17 @@ LBB0_90: WORD $0x9a8d9508 // csinc x8, x8, x13, ls WORD $0xcb0d0108 // sub x8, x8, x13 WORD $0xf100211f // cmp x8, #8 - WORD $0x54003343 // b.lo LBB0_164 $1640(%rip) + WORD $0x540032c3 // b.lo LBB0_164 $1624(%rip) WORD $0xf101011f // cmp x8, #64 - WORD $0x54000f02 // b.hs LBB0_111 $480(%rip) + WORD $0x54000ea2 // b.hs LBB0_111 $468(%rip) WORD $0xd2800009 // mov x9, #0 - WORD $0x14000084 // b LBB0_115 $528(%rip) + WORD $0x14000081 // b LBB0_115 $516(%rip) LBB0_93: WORD $0x928000ef // mov x15, #-8 WORD $0xd10021ce // sub x14, x14, #8 WORD $0x53047e0c // lsr w12, w16, #4 WORD $0x7109c59f // cmp w12, #625 - WORD $0x54ffe883 // b.lo LBB0_70 $-752(%rip) + WORD $0x54ffe8a3 // b.lo LBB0_70 $-748(%rip) LBB0_94: WORD $0x529c1ff1 // mov w17, #57599 WORD $0x72a0beb1 // movk w17, #1525, lsl #16 @@ -663,7 +658,7 @@ LBB0_94: WORD $0x72aa3d63 // movk w3, #20971, lsl #16 WORD $0x52800c84 // mov w4, #100 Lloh14: - WORD $0x100037c5 // adr x5, _Digits $1784(%rip) + WORD $0x10003725 // adr x5, _Digits $1764(%rip) Lloh15: WORD $0x910000a5 // add x5, x5, _Digits@PAGEOFF $0(%rip) LBB0_95: @@ -690,7 +685,7 @@ LBB0_96: WORD $0x52800c91 // mov w17, #100 WORD $0x1b11b20c // msub w12, w16, w17, w12 Lloh16: - WORD $0x100034f1 // adr x17, _Digits $1692(%rip) + WORD $0x10003451 // adr x17, _Digits $1672(%rip) Lloh17: WORD $0x91000231 // add x17, x17, _Digits@PAGEOFF $0(%rip) WORD $0x92403d8c // and x12, x12, #0xffff @@ -701,7 +696,7 @@ LBB0_98: WORD $0x7100299f // cmp w12, #10 WORD $0x540000c3 // b.lo LBB0_100 $24(%rip) Lloh18: - WORD $0x100033f0 // adr x16, _Digits $1660(%rip) + WORD $0x10003350 // adr x16, _Digits $1640(%rip) Lloh19: WORD $0x91000210 // add x16, x16, _Digits@PAGEOFF $0(%rip) WORD $0x786c5a0c // ldrh w12, [x16, w12, uxtw #1] @@ -744,7 +739,7 @@ LBB0_106: WORD $0x1a89b149 // csel w9, w10, w9, lt WORD $0x3900050b // strb w11, [x8, #1] WORD $0x7101913f // cmp w9, #100 - WORD $0x54000243 // b.lo LBB0_108 $72(%rip) + WORD $0x54000223 // b.lo LBB0_108 $68(%rip) WORD $0x529999aa // mov w10, #52429 WORD $0x72b9998a // movk w10, #52428, lsl #16 WORD $0x9baa7d2a // umull x10, w9, w10 @@ -752,7 +747,7 @@ LBB0_106: WORD $0x5280014b // mov w11, #10 WORD $0x1b0ba549 // msub w9, w10, w11, w9 Lloh20: - WORD $0x10002e6b // adr x11, _Digits $1484(%rip) + WORD $0x10002dcb // adr x11, _Digits $1464(%rip) Lloh21: WORD $0x9100016b // add x11, x11, _Digits@PAGEOFF $0(%rip) WORD $0x786a796a // ldrh w10, [x11, x10, lsl #1] @@ -761,30 +756,27 @@ Lloh21: WORD $0x39001109 // strb w9, [x8, #4] WORD $0x9100150c // add x12, x8, #5 WORD $0x4b000180 // sub w0, w12, w0 - WORD $0xa940fbfd // ldp fp, lr, [sp, #8] - WORD $0x910083ff // add sp, sp, #32 + WORD $0xa8c27bfd // ldp fp, lr, [sp], #32 WORD $0xd65f03c0 // ret LBB0_108: WORD $0x7100293f // cmp w9, #10 - WORD $0x54000143 // b.lo LBB0_110 $40(%rip) + WORD $0x54000123 // b.lo LBB0_110 $36(%rip) Lloh22: - WORD $0x10002cca // adr x10, _Digits $1432(%rip) + WORD $0x10002c4a // adr x10, _Digits $1416(%rip) Lloh23: WORD $0x9100014a // add x10, x10, _Digits@PAGEOFF $0(%rip) WORD $0x78695949 // ldrh w9, [x10, w9, uxtw #1] WORD $0x79000509 // strh w9, [x8, #2] WORD $0x9100110c // add x12, x8, #4 WORD $0x4b000180 // sub w0, w12, w0 - WORD $0xa940fbfd // ldp fp, lr, [sp, #8] - WORD $0x910083ff // add sp, sp, #32 + WORD $0xa8c27bfd // ldp fp, lr, [sp], #32 WORD $0xd65f03c0 // ret LBB0_110: WORD $0x321c0529 // orr w9, w9, #0x30 WORD $0x91000d0c // add x12, x8, #3 WORD $0x39000909 // strb w9, [x8, #2] WORD $0x4b000180 // sub w0, w12, w0 - WORD $0xa940fbfd // ldp fp, lr, [sp, #8] - WORD $0x910083ff // add sp, sp, #32 + WORD $0xa8c27bfd // ldp fp, lr, [sp], #32 WORD $0xd65f03c0 // ret LBB0_111: WORD $0x927ae509 // and x9, x8, #0xffffffffffffffc0 @@ -799,9 +791,9 @@ LBB0_112: WORD $0xf10101ef // subs x15, x15, #64 WORD $0x54ffffa1 // b.ne LBB0_112 $-12(%rip) WORD $0xeb09011f // cmp x8, x9 - WORD $0x54ffed60 // b.eq LBB0_88 $-596(%rip) + WORD $0x54ffede0 // b.eq LBB0_88 $-580(%rip) WORD $0xf27d091f // tst x8, #0x38 - WORD $0x54002240 // b.eq LBB0_163 $1096(%rip) + WORD $0x54002220 // b.eq LBB0_163 $1092(%rip) LBB0_115: WORD $0x927df10d // and x13, x8, #0xfffffffffffffff8 WORD $0x8b0d016b // add x11, x11, x13 @@ -815,8 +807,8 @@ LBB0_116: WORD $0xb1002129 // adds x9, x9, #8 WORD $0x54ffffc1 // b.ne LBB0_116 $-8(%rip) WORD $0xeb0d011f // cmp x8, x13 - WORD $0x54ffeba0 // b.eq LBB0_88 $-652(%rip) - WORD $0x14000106 // b LBB0_164 $1048(%rip) + WORD $0x54ffec20 // b.eq LBB0_88 $-636(%rip) + WORD $0x14000105 // b LBB0_164 $1044(%rip) LBB0_118: WORD $0x910005d0 // add x16, x14, #1 WORD $0x927a6a0e // and x14, x16, #0x1ffffffc0 @@ -885,7 +877,7 @@ LBB0_126: WORD $0x1b017e01 // mul w1, w16, w1 WORD $0x53137c21 // lsr w1, w1, #19 Lloh24: - WORD $0x10001fe3 // adr x3, _Digits $1020(%rip) + WORD $0x10001fa3 // adr x3, _Digits $1012(%rip) Lloh25: WORD $0x91000063 // add x3, x3, _Digits@PAGEOFF $0(%rip) WORD $0x786c786c // ldrh w12, [x3, x12, lsl #1] @@ -919,7 +911,7 @@ LBB0_129: WORD $0x72aa3d63 // movk w3, #20971, lsl #16 WORD $0x52800c84 // mov w4, #100 Lloh26: - WORD $0x10001c25 // adr x5, _Digits $900(%rip) + WORD $0x10001be5 // adr x5, _Digits $892(%rip) Lloh27: WORD $0x910000a5 // add x5, x5, _Digits@PAGEOFF $0(%rip) LBB0_130: @@ -946,7 +938,7 @@ LBB0_131: WORD $0x52800c91 // mov w17, #100 WORD $0x1b11c1b0 // msub w16, w13, w17, w16 Lloh28: - WORD $0x10001951 // adr x17, _Digits $808(%rip) + WORD $0x10001911 // adr x17, _Digits $800(%rip) Lloh29: WORD $0x91000231 // add x17, x17, _Digits@PAGEOFF $0(%rip) WORD $0x92403e10 // and x16, x16, #0xffff @@ -957,7 +949,7 @@ LBB0_133: WORD $0x71002a1f // cmp w16, #10 WORD $0x540000c3 // b.lo LBB0_135 $24(%rip) Lloh30: - WORD $0x1000184d // adr x13, _Digits $776(%rip) + WORD $0x1000180d // adr x13, _Digits $768(%rip) Lloh31: WORD $0x910001ad // add x13, x13, _Digits@PAGEOFF $0(%rip) WORD $0x787059ad // ldrh w13, [x13, w16, uxtw #1] @@ -983,7 +975,7 @@ LBB0_137: WORD $0x8b0d01cc // add x12, x14, x13 WORD $0x9100058c // add x12, x12, #1 WORD $0x7100053f // cmp w9, #1 - WORD $0x54ffd98b // b.lt LBB0_88 $-1232(%rip) + WORD $0x54ffda0b // b.lt LBB0_88 $-1216(%rip) WORD $0x0b0a01e2 // add w2, w15, w10 WORD $0x0b0d0042 // add w2, w2, w13 WORD $0x11000442 // add w2, w2, #1 @@ -1002,7 +994,7 @@ LBB0_137: LBB0_143: WORD $0xcb0d0029 // sub x9, x1, x13 WORD $0x7100053f // cmp w9, #1 - WORD $0x54ffd74b // b.lt LBB0_88 $-1304(%rip) + WORD $0x54ffd7cb // b.lt LBB0_88 $-1288(%rip) WORD $0x4b0f016b // sub w11, w11, w15 WORD $0x4b0d016b // sub w11, w11, w13 WORD $0x5100096b // sub w11, w11, #2 @@ -1042,7 +1034,7 @@ LBB0_149: WORD $0xeb01011f // cmp x8, x1 WORD $0x54ffff01 // b.ne LBB0_149 $-32(%rip) WORD $0xeb0b023f // cmp x17, x11 - WORD $0x54ffd2a0 // b.eq LBB0_88 $-1452(%rip) + WORD $0x54ffd320 // b.eq LBB0_88 $-1436(%rip) LBB0_151: WORD $0x52800608 // mov w8, #48 LBB0_152: @@ -1050,7 +1042,7 @@ LBB0_152: WORD $0x1100056b // add w11, w11, #1 WORD $0x6b09017f // cmp w11, w9 WORD $0x54ffffab // b.lt LBB0_152 $-12(%rip) - WORD $0x17fffe8f // b LBB0_88 $-1476(%rip) + WORD $0x17fffe93 // b LBB0_88 $-1460(%rip) LBB0_153: WORD $0xd280000f // mov x15, #0 WORD $0x927a614b // and x11, x10, #0x7fffffc0 @@ -1110,8 +1102,7 @@ LBB0_162: WORD $0x8b0d01c8 // add x8, x14, x13 WORD $0x9100090c // add x12, x8, #2 WORD $0x4b000180 // sub w0, w12, w0 - WORD $0xa940fbfd // ldp fp, lr, [sp, #8] - WORD $0x910083ff // add sp, sp, #32 + WORD $0xa8c27bfd // ldp fp, lr, [sp], #32 WORD $0xd65f03c0 // ret LBB0_163: WORD $0x8b09016b // add x11, x11, x9 @@ -1121,7 +1112,7 @@ LBB0_165: WORD $0x38001568 // strb w8, [x11], #1 WORD $0xeb0c017f // cmp x11, x12 WORD $0x54ffffc3 // b.lo LBB0_165 $-8(%rip) - WORD $0x17fffe52 // b LBB0_88 $-1720(%rip) + WORD $0x17fffe57 // b LBB0_88 $-1700(%rip) LBB0_166: WORD $0x5288480b // mov w11, #16960 WORD $0x72a001eb // movk w11, #15, lsl #16 @@ -1129,25 +1120,24 @@ LBB0_166: WORD $0x54000122 // b.hs LBB0_169 $36(%rip) WORD $0x528000cb // mov w11, #6 WORD $0x8b0b010b // add x11, x8, x11 - WORD $0x14000023 // b LBB0_176 $140(%rip) + WORD $0x14000022 // b LBB0_176 $136(%rip) LBB0_168: WORD $0x52994009 // mov w9, #51712 WORD $0x72a77349 // movk w9, #15258, lsl #16 WORD $0xeb09019f // cmp x12, x9 WORD $0x52800129 // mov w9, #9 - WORD $0x17fffd0e // b LBB0_44 $-3016(%rip) + WORD $0x17fffd15 // b LBB0_44 $-2988(%rip) LBB0_169: WORD $0x5292d00b // mov w11, #38528 WORD $0x72a0130b // movk w11, #152, lsl #16 WORD $0xeb0b015f // cmp x10, x11 - WORD $0x54000102 // b.hs LBB0_172 $32(%rip) + WORD $0x540000e2 // b.hs LBB0_172 $28(%rip) WORD $0x528000eb // mov w11, #7 WORD $0x8b0b010b // add x11, x8, x11 - WORD $0x14000017 // b LBB0_176 $92(%rip) + WORD $0x14000016 // b LBB0_176 $88(%rip) LBB0_171: WORD $0x52800000 // mov w0, #0 - WORD $0xa940fbfd // ldp fp, lr, [sp, #8] - WORD $0x910083ff // add sp, sp, #32 + WORD $0xa8c27bfd // ldp fp, lr, [sp], #32 WORD $0xd65f03c0 // ret LBB0_172: WORD $0x529c200b // mov w11, #57600 @@ -1160,7 +1150,7 @@ LBB0_172: LBB0_174: WORD $0x1280862c // mov w12, #-1074 WORD $0xaa0e03e9 // mov x9, x14 - WORD $0x17fffc2a // b LBB0_5 $-3928(%rip) + WORD $0x17fffc33 // b LBB0_5 $-3892(%rip) LBB0_175: WORD $0x5299400b // mov w11, #51712 WORD $0x72a7734b // movk w11, #15258, lsl #16 @@ -1169,17 +1159,17 @@ LBB0_175: WORD $0x9a8b356b // cinc x11, x11, hs WORD $0x8b0b010b // add x11, x8, x11 WORD $0xd360fd4c // lsr x12, x10, #32 - WORD $0xb5ffa26c // cbnz x12, LBB0_55 $-2996(%rip) + WORD $0xb5ffa36c // cbnz x12, LBB0_55 $-2964(%rip) LBB0_176: WORD $0xaa0b03ec // mov x12, x11 WORD $0xd3447d4d // ubfx x13, x10, #4, #28 WORD $0x7109c5bf // cmp w13, #625 - WORD $0x54ffa762 // b.hs LBB0_56 $-2836(%rip) + WORD $0x54ffa862 // b.hs LBB0_56 $-2804(%rip) LBB0_177: WORD $0xaa0a03ed // mov x13, x10 WORD $0x710191bf // cmp w13, #100 - WORD $0x54ffa9e2 // b.hs LBB0_59 $-2756(%rip) - WORD $0x17fffd58 // b LBB0_60 $-2720(%rip) + WORD $0x54ffaae2 // b.hs LBB0_59 $-2724(%rip) + WORD $0x17fffd60 // b LBB0_60 $-2688(%rip) _Digits: WORD $0x31303030 // .ascii 4, '0001020304050607' WORD $0x33303230 // .ascii 4, '0203040506070809' @@ -1232,7 +1222,7 @@ _Digits: WORD $0x37393639 // .ascii 4, '96979899' WORD $0x39393839 // .ascii 4, '9899' // .p2align 3, 0x00 -_LB_fe6a4ef9: // _pow10_ceil_sig.g +_LB_1c672955: // _pow10_ceil_sig.g WORD $0xbebcdc4f; WORD $0xff77b1fc // .quad -38366372719436721 WORD $0x13bb0f7b; WORD $0x25e8e89c // .quad 2731688931043774331 WORD $0xf73609b1; WORD $0x9faacf3d // .quad -6941508010590729807 diff --git a/internal/native/neon/get_by_path_arm64.s b/internal/native/neon/get_by_path_arm64.s index 558a7877d..5a862af70 100644 --- a/internal/native/neon/get_by_path_arm64.s +++ b/internal/native/neon/get_by_path_arm64.s @@ -61,12 +61,12 @@ lCPI0_2: // .p2align 2, 0x00 _get_by_path: WORD $0xd10343ff // sub sp, sp, #208 - WORD $0xa906effc // stp x28, x27, [sp, #104] - WORD $0xa907e7fa // stp x26, x25, [sp, #120] - WORD $0xa908dff8 // stp x24, x23, [sp, #136] - WORD $0xa909d7f6 // stp x22, x21, [sp, #152] - WORD $0xa90acff4 // stp x20, x19, [sp, #168] - WORD $0xa90bfbfd // stp fp, lr, [sp, #184] + WORD $0xa9066ffc // stp x28, x27, [sp, #96] + WORD $0xa90767fa // stp x26, x25, [sp, #112] + WORD $0xa9085ff8 // stp x24, x23, [sp, #128] + WORD $0xa90957f6 // stp x22, x21, [sp, #144] + WORD $0xa90a4ff4 // stp x20, x19, [sp, #160] + WORD $0xa90b7bfd // stp fp, lr, [sp, #176] WORD $0xa93ffbfd // stp fp, lr, [sp, #-8] WORD $0xd10023fd // sub fp, sp, #8 WORD $0xf9400448 // ldr x8, [x2, #8] @@ -4668,12 +4668,12 @@ LBB0_831: WORD $0x92800028 // mov x8, #-2 LBB0_832: WORD $0xaa0803e0 // mov x0, x8 - WORD $0xa94bfbfd // ldp fp, lr, [sp, #184] - WORD $0xa94acff4 // ldp x20, x19, [sp, #168] - WORD $0xa949d7f6 // ldp x22, x21, [sp, #152] - WORD $0xa948dff8 // ldp x24, x23, [sp, #136] - WORD $0xa947e7fa // ldp x26, x25, [sp, #120] - WORD $0xa946effc // ldp x28, x27, [sp, #104] + WORD $0xa94b7bfd // ldp fp, lr, [sp, #176] + WORD $0xa94a4ff4 // ldp x20, x19, [sp, #160] + WORD $0xa94957f6 // ldp x22, x21, [sp, #144] + WORD $0xa9485ff8 // ldp x24, x23, [sp, #128] + WORD $0xa94767fa // ldp x26, x25, [sp, #112] + WORD $0xa9466ffc // ldp x28, x27, [sp, #96] WORD $0x910343ff // add sp, sp, #208 WORD $0xd65f03c0 // ret LBB0_833: diff --git a/internal/native/neon/html_escape_arm64.s b/internal/native/neon/html_escape_arm64.s index c8e25e179..233a0b2d5 100644 --- a/internal/native/neon/html_escape_arm64.s +++ b/internal/native/neon/html_escape_arm64.s @@ -56,8 +56,7 @@ lCPI0_1: // .byte 15 _html_escape: - WORD $0xd10083ff // sub sp, sp, #32 - WORD $0xa900fbfd // stp fp, lr, [sp, #8] + WORD $0xa9be7bfd // stp fp, lr, [sp, #-32]! WORD $0xa93ffbfd // stp fp, lr, [sp, #-8] WORD $0xd10023fd // sub fp, sp, #8 WORD $0xaa0203e8 // mov x8, x2 @@ -69,12 +68,12 @@ _html_escape: WORD $0x4f07e441 // movi.16b v1, #226 WORD $0x4f07e7a2 // movi.16b v2, #253 Lloh0: - WORD $0x10fffd88 // adr x8, lCPI0_0 $-80(%rip) + WORD $0x10fffda8 // adr x8, lCPI0_0 $-76(%rip) Lloh1: WORD $0x3dc00103 // ldr q3, [x8, lCPI0_0@PAGEOFF] $0(%rip) WORD $0x4f01e784 // movi.16b v4, #60 Lloh2: - WORD $0x10fffda8 // adr x8, lCPI0_1 $-76(%rip) + WORD $0x10fffdc8 // adr x8, lCPI0_1 $-72(%rip) Lloh3: WORD $0x3dc00105 // ldr q5, [x8, lCPI0_1@PAGEOFF] $0(%rip) WORD $0x52800029 // mov w9, #1 @@ -82,14 +81,14 @@ Lloh3: WORD $0xf2ea000a // movk x10, #20480, lsl #48 WORD $0x52801c4b // mov w11, #226 Lloh4: - WORD $0x10001e2c // adr x12, __HtmlQuoteTab $964(%rip) + WORD $0x10001dcc // adr x12, __HtmlQuoteTab $952(%rip) Lloh5: WORD $0x9100018c // add x12, x12, __HtmlQuoteTab@PAGEOFF $0(%rip) WORD $0xaa0003ee // mov x14, x0 WORD $0xaa0203e8 // mov x8, x2 LBB0_2: WORD $0xf10005bf // cmp x13, #1 - WORD $0x54001ceb // b.lt LBB0_59 $924(%rip) + WORD $0x54001cab // b.lt LBB0_59 $916(%rip) WORD $0xf1003c3f // cmp x1, #15 WORD $0x1a9f97e5 // cset w5, hi WORD $0xaa0d03f1 // mov x17, x13 @@ -191,13 +190,13 @@ LBB0_21: WORD $0xf100009f // cmp x4, #0 WORD $0x9a8f1205 // csel x5, x16, x15, ne WORD $0xb6f803e5 // tbz x5, #63, LBB0_32 $124(%rip) - WORD $0x1400007c // b LBB0_57 $496(%rip) + WORD $0x1400007b // b LBB0_57 $492(%rip) LBB0_22: WORD $0x5ac0020f // rbit w15, w16 WORD $0x5ac011ef // clz w15, w15 WORD $0x8b1101e5 // add x5, x15, x17 WORD $0xb6f80345 // tbz x5, #63, LBB0_32 $104(%rip) - WORD $0x14000077 // b LBB0_57 $476(%rip) + WORD $0x14000076 // b LBB0_57 $472(%rip) LBB0_23: WORD $0x7100209f // cmp w4, #8 WORD $0x540007c3 // b.lo LBB0_42 $248(%rip) @@ -228,7 +227,7 @@ LBB0_30: WORD $0xaa2f03ef // mvn x15, x15 WORD $0x8b0e01e5 // add x5, x15, x14 LBB0_31: - WORD $0xb7f80be5 // tbnz x5, #63, LBB0_57 $380(%rip) + WORD $0xb7f80bc5 // tbnz x5, #63, LBB0_57 $376(%rip) LBB0_32: WORD $0x8b0501ce // add x14, x14, x5 WORD $0x8b050108 // add x8, x8, x5 @@ -243,7 +242,7 @@ LBB0_32: WORD $0x8b315181 // add x1, x12, w17, uxtw #4 WORD $0xb9800031 // ldrsw x17, [x1] WORD $0xeb1101ad // subs x13, x13, x17 - WORD $0x54000b4b // b.lt LBB0_58 $360(%rip) + WORD $0x54000b0b // b.lt LBB0_58 $352(%rip) LBB0_35: WORD $0xf1001224 // subs x4, x17, #4 WORD $0x5400010b // b.lt LBB0_37 $32(%rip) @@ -294,7 +293,7 @@ LBB0_47: WORD $0xcb0e01ef // sub x15, x15, x14 WORD $0x8b0401e5 // add x5, x15, x4 WORD $0xb6fff965 // tbz x5, #63, LBB0_32 $-212(%rip) - WORD $0x14000028 // b LBB0_57 $160(%rip) + WORD $0x14000027 // b LBB0_57 $156(%rip) LBB0_48: WORD $0x78402485 // ldrh w5, [x4], #2 WORD $0x78002605 // strh w5, [x16], #2 @@ -323,10 +322,10 @@ LBB0_50: WORD $0xb9800031 // ldrsw x17, [x1] WORD $0xeb1101ad // subs x13, x13, x17 WORD $0x54fff7ea // b.ge LBB0_35 $-260(%rip) - WORD $0x14000017 // b LBB0_58 $92(%rip) + WORD $0x14000015 // b LBB0_58 $84(%rip) LBB0_54: WORD $0xf10005ad // subs x13, x13, #1 - WORD $0x540002eb // b.lt LBB0_59 $92(%rip) + WORD $0x540002ab // b.lt LBB0_59 $84(%rip) WORD $0x3800150b // strb w11, [x8], #1 WORD $0xaa0e03f0 // mov x16, x14 WORD $0x910005ce // add x14, x14, #1 @@ -336,8 +335,7 @@ LBB0_56: WORD $0xcb020108 // sub x8, x8, x2 WORD $0xf9000068 // str x8, [x3] WORD $0xcb0001c0 // sub x0, x14, x0 - WORD $0xa940fbfd // ldp fp, lr, [sp, #8] - WORD $0x910083ff // add sp, sp, #32 + WORD $0xa8c27bfd // ldp fp, lr, [sp], #32 WORD $0xd65f03c0 // ret LBB0_57: WORD $0x8b0200a9 // add x9, x5, x2 @@ -346,8 +344,7 @@ LBB0_57: WORD $0xf9000068 // str x8, [x3] WORD $0xcb0e0008 // sub x8, x0, x14 WORD $0x8b050100 // add x0, x8, x5 - WORD $0xa940fbfd // ldp fp, lr, [sp, #8] - WORD $0x910083ff // add sp, sp, #32 + WORD $0xa8c27bfd // ldp fp, lr, [sp], #32 WORD $0xd65f03c0 // ret LBB0_58: WORD $0xcb020108 // sub x8, x8, x2 @@ -355,8 +352,7 @@ LBB0_58: LBB0_59: WORD $0xaa2e03e8 // mvn x8, x14 WORD $0x8b000100 // add x0, x8, x0 - WORD $0xa940fbfd // ldp fp, lr, [sp, #8] - WORD $0x910083ff // add sp, sp, #32 + WORD $0xa8c27bfd // ldp fp, lr, [sp], #32 WORD $0xd65f03c0 // ret // .p2align 3, 0x00 __HtmlQuoteTab: diff --git a/internal/native/neon/i64toa_arm64.s b/internal/native/neon/i64toa_arm64.s index a41e8e1c5..dcf5d5053 100644 --- a/internal/native/neon/i64toa_arm64.s +++ b/internal/native/neon/i64toa_arm64.s @@ -72,14 +72,13 @@ lCPI0_3: // .byte 15 _i64toa: - WORD $0xd10083ff // sub sp, sp, #32 - WORD $0xa900fbfd // stp fp, lr, [sp, #8] + WORD $0xa9be7bfd // stp fp, lr, [sp, #-32]! WORD $0xa93ffbfd // stp fp, lr, [sp, #-8] WORD $0xd10023fd // sub fp, sp, #8 - WORD $0xb7f80641 // tbnz x1, #63, LBB0_10 $200(%rip) + WORD $0xb7f80621 // tbnz x1, #63, LBB0_10 $196(%rip) WORD $0xd344fc28 // lsr x8, x1, #4 WORD $0xf109c11f // cmp x8, #624 - WORD $0x540008e8 // b.hi LBB0_13 $284(%rip) + WORD $0x540008c8 // b.hi LBB0_13 $280(%rip) WORD $0x53023c28 // ubfx w8, w1, #2, #14 WORD $0x52828f69 // mov w9, #5243 WORD $0x1b097d08 // mul w8, w8, w9 @@ -92,7 +91,7 @@ _i64toa: WORD $0x710fa03f // cmp w1, #1000 WORD $0x540000e3 // b.lo LBB0_4 $28(%rip) Lloh0: - WORD $0x100054ea // adr x10, _Digits $2716(%rip) + WORD $0x100053ea // adr x10, _Digits $2684(%rip) Lloh1: WORD $0x9100014a // add x10, x10, _Digits@PAGEOFF $0(%rip) WORD $0x3869694a // ldrb w10, [x10, x9] @@ -101,11 +100,11 @@ Lloh1: WORD $0x14000004 // b LBB0_6 $16(%rip) LBB0_4: WORD $0x7101903f // cmp w1, #100 - WORD $0x540002e3 // b.lo LBB0_9 $92(%rip) + WORD $0x540002c3 // b.lo LBB0_9 $88(%rip) WORD $0x5280000a // mov w10, #0 LBB0_6: Lloh2: - WORD $0x100053cb // adr x11, _Digits $2680(%rip) + WORD $0x100052cb // adr x11, _Digits $2648(%rip) Lloh3: WORD $0x9100016b // add x11, x11, _Digits@PAGEOFF $0(%rip) WORD $0x8b294169 // add x9, x11, w9, uxtw @@ -114,7 +113,7 @@ Lloh3: WORD $0x382a480b // strb w11, [x0, w10, uxtw] LBB0_7: Lloh4: - WORD $0x1000530a // adr x10, _Digits $2656(%rip) + WORD $0x1000520a // adr x10, _Digits $2624(%rip) Lloh5: WORD $0x9100014a // add x10, x10, _Digits@PAGEOFF $0(%rip) WORD $0x3868694b // ldrb w11, [x10, x8] @@ -122,7 +121,7 @@ Lloh5: WORD $0x3829480b // strb w11, [x0, w9, uxtw] LBB0_8: Lloh6: - WORD $0x10005269 // adr x9, _Digits $2636(%rip) + WORD $0x10005169 // adr x9, _Digits $2604(%rip) Lloh7: WORD $0x91000129 // add x9, x9, _Digits@PAGEOFF $0(%rip) WORD $0x8b282128 // add x8, x9, w8, uxth @@ -130,15 +129,14 @@ Lloh7: WORD $0x11000548 // add w8, w10, #1 WORD $0x382a4809 // strb w9, [x0, w10, uxtw] WORD $0xaa0803e0 // mov x0, x8 - WORD $0xa940fbfd // ldp fp, lr, [sp, #8] - WORD $0x910083ff // add sp, sp, #32 + WORD $0xa8c27bfd // ldp fp, lr, [sp], #32 WORD $0xd65f03c0 // ret LBB0_9: WORD $0x52800009 // mov w9, #0 WORD $0x5280000a // mov w10, #0 WORD $0x7100283f // cmp w1, #10 - WORD $0x54fffdc2 // b.hs LBB0_7 $-72(%rip) - WORD $0x17fffff2 // b LBB0_8 $-56(%rip) + WORD $0x54fffde2 // b.hs LBB0_7 $-68(%rip) + WORD $0x17fffff3 // b LBB0_8 $-52(%rip) LBB0_10: WORD $0x528005a9 // mov w9, #45 WORD $0xaa0003e8 // mov x8, x0 @@ -146,7 +144,7 @@ LBB0_10: WORD $0xcb0103e9 // neg x9, x1 WORD $0xd344fd2a // lsr x10, x9, #4 WORD $0xf109c15f // cmp x10, #624 - WORD $0x54001068 // b.hi LBB0_28 $524(%rip) + WORD $0x54001028 // b.hi LBB0_28 $516(%rip) WORD $0x53023d2a // ubfx w10, w9, #2, #14 WORD $0x52828f6b // mov w11, #5243 WORD $0x1b0b7d4a // mul w10, w10, w11 @@ -159,7 +157,7 @@ LBB0_10: WORD $0x710fa13f // cmp w9, #1000 WORD $0x540004e3 // b.lo LBB0_16 $156(%rip) Lloh8: - WORD $0x10004e49 // adr x9, _Digits $2504(%rip) + WORD $0x10004d69 // adr x9, _Digits $2476(%rip) Lloh9: WORD $0x91000129 // add x9, x9, _Digits@PAGEOFF $0(%rip) WORD $0x386b6929 // ldrb w9, [x9, x11] @@ -170,7 +168,7 @@ LBB0_13: WORD $0x529c2008 // mov w8, #57600 WORD $0x72a0bea8 // movk w8, #1525, lsl #16 WORD $0xeb08003f // cmp x1, x8 - WORD $0x540011c2 // b.hs LBB0_31 $568(%rip) + WORD $0x54001182 // b.hs LBB0_31 $560(%rip) WORD $0x5282eb28 // mov w8, #5977 WORD $0x72ba36e8 // movk w8, #53687, lsl #16 WORD $0x92407c29 // and x9, x1, #0xffffffff @@ -192,22 +190,22 @@ LBB0_13: WORD $0x5292cfeb // mov w11, #38527 WORD $0x72a0130b // movk w11, #152, lsl #16 WORD $0x6b0b003f // cmp w1, w11 - WORD $0x54000409 // b.ls LBB0_21 $128(%rip) + WORD $0x540003e9 // b.ls LBB0_21 $124(%rip) Lloh10: - WORD $0x10004a4b // adr x11, _Digits $2376(%rip) + WORD $0x1000496b // adr x11, _Digits $2348(%rip) Lloh11: WORD $0x9100016b // add x11, x11, _Digits@PAGEOFF $0(%rip) WORD $0x386a696b // ldrb w11, [x11, x10] WORD $0x3900000b // strb w11, [x0] WORD $0x5280002c // mov w12, #1 - WORD $0x1400001f // b LBB0_23 $124(%rip) + WORD $0x1400001e // b LBB0_23 $120(%rip) LBB0_16: WORD $0x7101913f // cmp w9, #100 - WORD $0x540008a3 // b.lo LBB0_26 $276(%rip) + WORD $0x54000863 // b.lo LBB0_26 $268(%rip) WORD $0x52800009 // mov w9, #0 LBB0_18: Lloh12: - WORD $0x1000492c // adr x12, _Digits $2340(%rip) + WORD $0x1000484c // adr x12, _Digits $2312(%rip) Lloh13: WORD $0x9100018c // add x12, x12, _Digits@PAGEOFF $0(%rip) WORD $0x8b2b418b // add x11, x12, w11, uxtw @@ -216,7 +214,7 @@ Lloh13: WORD $0x3829490c // strb w12, [x8, w9, uxtw] LBB0_19: Lloh14: - WORD $0x10004869 // adr x9, _Digits $2316(%rip) + WORD $0x10004789 // adr x9, _Digits $2288(%rip) Lloh15: WORD $0x91000129 // add x9, x9, _Digits@PAGEOFF $0(%rip) WORD $0x386a6929 // ldrb w9, [x9, x10] @@ -224,7 +222,7 @@ Lloh15: WORD $0x382b4909 // strb w9, [x8, w11, uxtw] LBB0_20: Lloh16: - WORD $0x100047c9 // adr x9, _Digits $2296(%rip) + WORD $0x100046e9 // adr x9, _Digits $2268(%rip) Lloh17: WORD $0x91000129 // add x9, x9, _Digits@PAGEOFF $0(%rip) WORD $0x8b2a2129 // add x9, x9, w10, uxth @@ -233,18 +231,17 @@ Lloh17: WORD $0x382c490a // strb w10, [x8, w12, uxtw] WORD $0x11000528 // add w8, w9, #1 WORD $0xaa0803e0 // mov x0, x8 - WORD $0xa940fbfd // ldp fp, lr, [sp, #8] - WORD $0x910083ff // add sp, sp, #32 + WORD $0xa8c27bfd // ldp fp, lr, [sp], #32 WORD $0xd65f03c0 // ret LBB0_21: WORD $0x528847eb // mov w11, #16959 WORD $0x72a001eb // movk w11, #15, lsl #16 WORD $0x6b0b003f // cmp w1, w11 - WORD $0x540005e9 // b.ls LBB0_27 $188(%rip) + WORD $0x540005c9 // b.ls LBB0_27 $184(%rip) WORD $0x5280000c // mov w12, #0 LBB0_23: Lloh18: - WORD $0x100045cb // adr x11, _Digits $2232(%rip) + WORD $0x1000450b // adr x11, _Digits $2208(%rip) Lloh19: WORD $0x9100016b // add x11, x11, _Digits@PAGEOFF $0(%rip) WORD $0x8b2a416a // add x10, x11, w10, uxtw @@ -253,7 +250,7 @@ Lloh19: WORD $0x382c480a // strb w10, [x0, w12, uxtw] LBB0_24: Lloh20: - WORD $0x1000450a // adr x10, _Digits $2208(%rip) + WORD $0x1000444a // adr x10, _Digits $2184(%rip) Lloh21: WORD $0x9100014a // add x10, x10, _Digits@PAGEOFF $0(%rip) WORD $0x3869694c // ldrb w12, [x10, x9] @@ -271,7 +268,7 @@ LBB0_25: WORD $0x92403d08 // and x8, x8, #0xffff WORD $0xd37ff908 // lsl x8, x8, #1 Lloh22: - WORD $0x1000432c // adr x12, _Digits $2148(%rip) + WORD $0x1000426c // adr x12, _Digits $2124(%rip) Lloh23: WORD $0x9100018c // add x12, x12, _Digits@PAGEOFF $0(%rip) WORD $0x8b292189 // add x9, x12, w9, uxth @@ -288,27 +285,26 @@ Lloh23: WORD $0x11001548 // add w8, w10, #5 WORD $0x390011a9 // strb w9, [x13, #4] WORD $0xaa0803e0 // mov x0, x8 - WORD $0xa940fbfd // ldp fp, lr, [sp, #8] - WORD $0x910083ff // add sp, sp, #32 + WORD $0xa8c27bfd // ldp fp, lr, [sp], #32 WORD $0xd65f03c0 // ret LBB0_26: WORD $0x5280000b // mov w11, #0 WORD $0x5280000c // mov w12, #0 WORD $0x7100293f // cmp w9, #10 - WORD $0x54fff802 // b.hs LBB0_19 $-256(%rip) - WORD $0x17ffffc4 // b LBB0_20 $-240(%rip) + WORD $0x54fff842 // b.hs LBB0_19 $-248(%rip) + WORD $0x17ffffc6 // b LBB0_20 $-232(%rip) LBB0_27: WORD $0x5280000b // mov w11, #0 WORD $0x5280000a // mov w10, #0 WORD $0x53057c2c // lsr w12, w1, #5 WORD $0x7130d59f // cmp w12, #3125 - WORD $0x54fffaa2 // b.hs LBB0_24 $-172(%rip) - WORD $0x17ffffd9 // b LBB0_25 $-156(%rip) + WORD $0x54fffac2 // b.hs LBB0_24 $-168(%rip) + WORD $0x17ffffda // b LBB0_25 $-152(%rip) LBB0_28: WORD $0x529c200a // mov w10, #57600 WORD $0x72a0beaa // movk w10, #1525, lsl #16 WORD $0xeb0a013f // cmp x9, x10 - WORD $0x54001662 // b.hs LBB0_39 $716(%rip) + WORD $0x54001622 // b.hs LBB0_39 $708(%rip) WORD $0x5282eb2a // mov w10, #5977 WORD $0x72ba36ea // movk w10, #53687, lsl #16 WORD $0x9baa7d2a // umull x10, w9, w10 @@ -330,21 +326,21 @@ LBB0_28: WORD $0x5292cfed // mov w13, #38527 WORD $0x72a0130d // movk w13, #152, lsl #16 WORD $0x6b0d013f // cmp w9, w13 - WORD $0x54000d29 // b.ls LBB0_33 $420(%rip) + WORD $0x54000d09 // b.ls LBB0_33 $416(%rip) Lloh24: - WORD $0x10003c2d // adr x13, _Digits $1924(%rip) + WORD $0x10003b8d // adr x13, _Digits $1904(%rip) Lloh25: WORD $0x910001ad // add x13, x13, _Digits@PAGEOFF $0(%rip) WORD $0x386c69ad // ldrb w13, [x13, x12] WORD $0x3900010d // strb w13, [x8] WORD $0x5280002e // mov w14, #1 - WORD $0x14000068 // b LBB0_35 $416(%rip) + WORD $0x14000067 // b LBB0_35 $412(%rip) LBB0_31: WORD $0xd2adf82a // mov x10, #1874919424 WORD $0xf2d0de4a // movk x10, #34546, lsl #32 WORD $0xf2e0046a // movk x10, #35, lsl #48 WORD $0xeb0a003f // cmp x1, x10 - WORD $0x54001ea2 // b.hs LBB0_41 $980(%rip) + WORD $0x54001e42 // b.hs LBB0_41 $968(%rip) WORD $0xd299dfa9 // mov x9, #52989 WORD $0xf2b08c29 // movk x9, #33889, lsl #16 WORD $0xf2cee229 // movk x9, #30481, lsl #32 @@ -371,7 +367,7 @@ LBB0_31: WORD $0x4e413821 // zip1.8h v1, v1, v1 WORD $0x4e813821 // zip1.4s v1, v1, v1 Lloh26: - WORD $0x10ffdee9 // adr x9, lCPI0_0 $-1060(%rip) + WORD $0x10ffdf69 // adr x9, lCPI0_0 $-1044(%rip) Lloh27: WORD $0xfd400122 // ldr d2, [x9, lCPI0_0@PAGEOFF] $0(%rip) WORD $0x2e62c024 // umull.4s v4, v1, v2 @@ -379,7 +375,7 @@ Lloh27: WORD $0x2e62c021 // umull.4s v1, v1, v2 WORD $0x4e415881 // uzp2.8h v1, v4, v1 Lloh28: - WORD $0x10ffde69 // adr x9, lCPI0_1 $-1076(%rip) + WORD $0x10ffdee9 // adr x9, lCPI0_1 $-1060(%rip) Lloh29: WORD $0xfd400124 // ldr d4, [x9, lCPI0_1@PAGEOFF] $0(%rip) WORD $0x2e64c026 // umull.4s v6, v1, v4 @@ -418,12 +414,12 @@ Lloh29: WORD $0x4e208420 // add.16b v0, v1, v0 WORD $0x4e209821 // cmeq.16b v1, v1, #0 Lloh30: - WORD $0x10ffda08 // adr x8, lCPI0_2 $-1216(%rip) + WORD $0x10ffda88 // adr x8, lCPI0_2 $-1200(%rip) Lloh31: WORD $0x3dc00102 // ldr q2, [x8, lCPI0_2@PAGEOFF] $0(%rip) WORD $0x4e221c21 // and.16b v1, v1, v2 Lloh32: - WORD $0x10ffda28 // adr x8, lCPI0_3 $-1212(%rip) + WORD $0x10ffdaa8 // adr x8, lCPI0_3 $-1196(%rip) Lloh33: WORD $0x3dc00102 // ldr q2, [x8, lCPI0_3@PAGEOFF] $0(%rip) WORD $0x4e020021 // tbl.16b v1, { v1 }, v2 @@ -434,7 +430,7 @@ Lloh33: WORD $0x5ac00108 // rbit w8, w8 WORD $0x5ac01108 // clz w8, w8 Lloh34: - WORD $0x10003709 // adr x9, _VecShiftShuffles $1760(%rip) + WORD $0x10003689 // adr x9, _VecShiftShuffles $1744(%rip) Lloh35: WORD $0x91000129 // add x9, x9, _VecShiftShuffles@PAGEOFF $0(%rip) WORD $0x3ce85921 // ldr q1, [x9, w8, uxtw #4] @@ -445,18 +441,17 @@ Lloh35: WORD $0x52800209 // mov w9, #16 WORD $0x4b080128 // sub w8, w9, w8 WORD $0xaa0803e0 // mov x0, x8 - WORD $0xa940fbfd // ldp fp, lr, [sp, #8] - WORD $0x910083ff // add sp, sp, #32 + WORD $0xa8c27bfd // ldp fp, lr, [sp], #32 WORD $0xd65f03c0 // ret LBB0_33: WORD $0x528847ed // mov w13, #16959 WORD $0x72a001ed // movk w13, #15, lsl #16 WORD $0x6b0d013f // cmp w9, w13 - WORD $0x54000569 // b.ls LBB0_38 $172(%rip) + WORD $0x54000549 // b.ls LBB0_38 $168(%rip) WORD $0x5280000e // mov w14, #0 LBB0_35: Lloh36: - WORD $0x10002e8d // adr x13, _Digits $1488(%rip) + WORD $0x10002e0d // adr x13, _Digits $1472(%rip) Lloh37: WORD $0x910001ad // add x13, x13, _Digits@PAGEOFF $0(%rip) WORD $0x8b2c41ac // add x12, x13, w12, uxtw @@ -465,7 +460,7 @@ Lloh37: WORD $0x382e490c // strb w12, [x8, w14, uxtw] LBB0_36: Lloh38: - WORD $0x10002dcc // adr x12, _Digits $1464(%rip) + WORD $0x10002d4c // adr x12, _Digits $1448(%rip) Lloh39: WORD $0x9100018c // add x12, x12, _Digits@PAGEOFF $0(%rip) WORD $0x386b698e // ldrb w14, [x12, x11] @@ -483,7 +478,7 @@ LBB0_37: WORD $0x92403d29 // and x9, x9, #0xffff WORD $0xd37ff929 // lsl x9, x9, #1 Lloh40: - WORD $0x10002bed // adr x13, _Digits $1404(%rip) + WORD $0x10002b6d // adr x13, _Digits $1388(%rip) Lloh41: WORD $0x910001ad // add x13, x13, _Digits@PAGEOFF $0(%rip) WORD $0x8b2b21ab // add x11, x13, w11, uxth @@ -501,22 +496,21 @@ Lloh41: WORD $0x3900110a // strb w10, [x8, #4] WORD $0x11000528 // add w8, w9, #1 WORD $0xaa0803e0 // mov x0, x8 - WORD $0xa940fbfd // ldp fp, lr, [sp, #8] - WORD $0x910083ff // add sp, sp, #32 + WORD $0xa8c27bfd // ldp fp, lr, [sp], #32 WORD $0xd65f03c0 // ret LBB0_38: WORD $0x5280000d // mov w13, #0 WORD $0x5280000c // mov w12, #0 WORD $0x53057d2e // lsr w14, w9, #5 WORD $0x7130d5df // cmp w14, #3125 - WORD $0x54fffb22 // b.hs LBB0_36 $-156(%rip) - WORD $0x17ffffdd // b LBB0_37 $-140(%rip) + WORD $0x54fffb42 // b.hs LBB0_36 $-152(%rip) + WORD $0x17ffffde // b LBB0_37 $-136(%rip) LBB0_39: WORD $0xd2adf82c // mov x12, #1874919424 WORD $0xf2d0de4c // movk x12, #34546, lsl #32 WORD $0xf2e0046c // movk x12, #35, lsl #48 WORD $0xeb0c013f // cmp x9, x12 - WORD $0x540019e2 // b.hs LBB0_47 $828(%rip) + WORD $0x540019a2 // b.hs LBB0_47 $820(%rip) WORD $0xd299dfab // mov x11, #52989 WORD $0xf2b08c2b // movk x11, #33889, lsl #16 WORD $0xf2cee22b // movk x11, #30481, lsl #32 @@ -543,7 +537,7 @@ LBB0_39: WORD $0x4e413821 // zip1.8h v1, v1, v1 WORD $0x4e813821 // zip1.4s v1, v1, v1 Lloh42: - WORD $0x10ffcc2a // adr x10, lCPI0_0 $-1660(%rip) + WORD $0x10ffccea // adr x10, lCPI0_0 $-1636(%rip) Lloh43: WORD $0xfd400142 // ldr d2, [x10, lCPI0_0@PAGEOFF] $0(%rip) WORD $0x2e62c024 // umull.4s v4, v1, v2 @@ -551,7 +545,7 @@ Lloh43: WORD $0x2e62c021 // umull.4s v1, v1, v2 WORD $0x4e415881 // uzp2.8h v1, v4, v1 Lloh44: - WORD $0x10ffcbaa // adr x10, lCPI0_1 $-1676(%rip) + WORD $0x10ffcc6a // adr x10, lCPI0_1 $-1652(%rip) Lloh45: WORD $0xfd400144 // ldr d4, [x10, lCPI0_1@PAGEOFF] $0(%rip) WORD $0x2e64c026 // umull.4s v6, v1, v4 @@ -590,12 +584,12 @@ Lloh45: WORD $0x4e208420 // add.16b v0, v1, v0 WORD $0x4e209821 // cmeq.16b v1, v1, #0 Lloh46: - WORD $0x10ffc749 // adr x9, lCPI0_2 $-1816(%rip) + WORD $0x10ffc809 // adr x9, lCPI0_2 $-1792(%rip) Lloh47: WORD $0x3dc00122 // ldr q2, [x9, lCPI0_2@PAGEOFF] $0(%rip) WORD $0x4e221c21 // and.16b v1, v1, v2 Lloh48: - WORD $0x10ffc769 // adr x9, lCPI0_3 $-1812(%rip) + WORD $0x10ffc829 // adr x9, lCPI0_3 $-1788(%rip) Lloh49: WORD $0x3dc00122 // ldr q2, [x9, lCPI0_3@PAGEOFF] $0(%rip) WORD $0x4e020021 // tbl.16b v1, { v1 }, v2 @@ -606,7 +600,7 @@ Lloh49: WORD $0x5ac00129 // rbit w9, w9 WORD $0x5ac01129 // clz w9, w9 Lloh50: - WORD $0x1000244a // adr x10, _VecShiftShuffles $1160(%rip) + WORD $0x1000240a // adr x10, _VecShiftShuffles $1152(%rip) Lloh51: WORD $0x9100014a // add x10, x10, _VecShiftShuffles@PAGEOFF $0(%rip) WORD $0x3ce95941 // ldr q1, [x10, w9, uxtw #4] @@ -618,8 +612,7 @@ Lloh51: WORD $0x4b090109 // sub w9, w8, w9 WORD $0x11000528 // add w8, w9, #1 WORD $0xaa0803e0 // mov x0, x8 - WORD $0xa940fbfd // ldp fp, lr, [sp, #8] - WORD $0x910083ff // add sp, sp, #32 + WORD $0xa8c27bfd // ldp fp, lr, [sp], #32 WORD $0xd65f03c0 // ret LBB0_41: WORD $0xd28f0ae9 // mov x9, #30807 @@ -638,7 +631,7 @@ LBB0_43: WORD $0x71018d7f // cmp w11, #99 WORD $0x540000e8 // b.hi LBB0_45 $28(%rip) Lloh52: - WORD $0x10001a89 // adr x9, _Digits $848(%rip) + WORD $0x10001a49 // adr x9, _Digits $840(%rip) Lloh53: WORD $0x91000129 // add x9, x9, _Digits@PAGEOFF $0(%rip) WORD $0x786b5929 // ldrh w9, [x9, w11, uxtw #1] @@ -656,7 +649,7 @@ LBB0_45: WORD $0x92403d29 // and x9, x9, #0xffff WORD $0xd37ff929 // lsl x9, x9, #1 Lloh54: - WORD $0x100018ac // adr x12, _Digits $788(%rip) + WORD $0x1000186c // adr x12, _Digits $780(%rip) Lloh55: WORD $0x9100018c // add x12, x12, _Digits@PAGEOFF $0(%rip) WORD $0x3869698d // ldrb w13, [x12, x9] @@ -693,7 +686,7 @@ LBB0_46: WORD $0x4e413821 // zip1.8h v1, v1, v1 WORD $0x4e813821 // zip1.4s v1, v1, v1 Lloh56: - WORD $0x10ffbbac // adr x12, lCPI0_0 $-2188(%rip) + WORD $0x10ffbc8c // adr x12, lCPI0_0 $-2160(%rip) Lloh57: WORD $0xfd400183 // ldr d3, [x12, lCPI0_0@PAGEOFF] $0(%rip) WORD $0x2e63c025 // umull.4s v5, v1, v3 @@ -701,7 +694,7 @@ Lloh57: WORD $0x2e63c021 // umull.4s v1, v1, v3 WORD $0x4e4158a1 // uzp2.8h v1, v5, v1 Lloh58: - WORD $0x10ffbb2c // adr x12, lCPI0_1 $-2204(%rip) + WORD $0x10ffbc0c // adr x12, lCPI0_1 $-2176(%rip) Lloh59: WORD $0xfd400185 // ldr d5, [x12, lCPI0_1@PAGEOFF] $0(%rip) WORD $0x2e65c026 // umull.4s v6, v1, v5 @@ -742,8 +735,7 @@ Lloh59: WORD $0x3ca94800 // str q0, [x0, w9, uxtw] WORD $0x321c0128 // orr w8, w9, #0x10 WORD $0xaa0803e0 // mov x0, x8 - WORD $0xa940fbfd // ldp fp, lr, [sp, #8] - WORD $0x910083ff // add sp, sp, #32 + WORD $0xa8c27bfd // ldp fp, lr, [sp], #32 WORD $0xd65f03c0 // ret LBB0_47: WORD $0xd28f0aeb // mov x11, #30807 @@ -762,7 +754,7 @@ LBB0_49: WORD $0x71018dbf // cmp w13, #99 WORD $0x540000e8 // b.hi LBB0_51 $28(%rip) Lloh60: - WORD $0x10000c8b // adr x11, _Digits $400(%rip) + WORD $0x10000c6b // adr x11, _Digits $396(%rip) Lloh61: WORD $0x9100016b // add x11, x11, _Digits@PAGEOFF $0(%rip) WORD $0x786d596b // ldrh w11, [x11, w13, uxtw #1] @@ -781,7 +773,7 @@ LBB0_51: WORD $0x92403d6b // and x11, x11, #0xffff WORD $0xd37ff96b // lsl x11, x11, #1 Lloh62: - WORD $0x10000a8e // adr x14, _Digits $336(%rip) + WORD $0x10000a6e // adr x14, _Digits $332(%rip) Lloh63: WORD $0x910001ce // add x14, x14, _Digits@PAGEOFF $0(%rip) WORD $0x386b69cf // ldrb w15, [x14, x11] @@ -818,7 +810,7 @@ LBB0_52: WORD $0x4e413821 // zip1.8h v1, v1, v1 WORD $0x4e813821 // zip1.4s v1, v1, v1 Lloh64: - WORD $0x10ffad8d // adr x13, lCPI0_0 $-2640(%rip) + WORD $0x10ffae8d // adr x13, lCPI0_0 $-2608(%rip) Lloh65: WORD $0xfd4001a3 // ldr d3, [x13, lCPI0_0@PAGEOFF] $0(%rip) WORD $0x2e63c025 // umull.4s v5, v1, v3 @@ -826,7 +818,7 @@ Lloh65: WORD $0x2e63c021 // umull.4s v1, v1, v3 WORD $0x4e4158a1 // uzp2.8h v1, v5, v1 Lloh66: - WORD $0x10ffad0d // adr x13, lCPI0_1 $-2656(%rip) + WORD $0x10ffae0d // adr x13, lCPI0_1 $-2624(%rip) Lloh67: WORD $0xfd4001a5 // ldr d5, [x13, lCPI0_1@PAGEOFF] $0(%rip) WORD $0x2e65c026 // umull.4s v6, v1, v5 @@ -868,8 +860,7 @@ Lloh67: WORD $0x321c0169 // orr w9, w11, #0x10 WORD $0x11000528 // add w8, w9, #1 WORD $0xaa0803e0 // mov x0, x8 - WORD $0xa940fbfd // ldp fp, lr, [sp, #8] - WORD $0x910083ff // add sp, sp, #32 + WORD $0xa8c27bfd // ldp fp, lr, [sp], #32 WORD $0xd65f03c0 // ret _Digits: WORD $0x31303030 // .ascii 4, '0001020304050607' @@ -922,7 +913,7 @@ _Digits: WORD $0x35393439 // .ascii 4, '949596979899' WORD $0x37393639 // .ascii 4, '96979899' WORD $0x39393839 // .ascii 4, '9899' - // .p2align 4, 0x00 + WORD $0x00000000 // .p2align 4, 0x00 _VecShiftShuffles: WORD $0x03020100 // .ascii 4, '\x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f' WORD $0x07060504 // .ascii 4, '\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\x01\x02\x03\x04' diff --git a/internal/native/neon/lookup_small_key_arm64.s b/internal/native/neon/lookup_small_key_arm64.s index fb856f144..35b0baf07 100644 --- a/internal/native/neon/lookup_small_key_arm64.s +++ b/internal/native/neon/lookup_small_key_arm64.s @@ -56,8 +56,7 @@ lCPI0_1: // .byte 15 _lookup_small_key: - WORD $0xd10083ff // sub sp, sp, #32 - WORD $0xa900fbfd // stp fp, lr, [sp, #8] + WORD $0xa9be7bfd // stp fp, lr, [sp, #-32]! WORD $0xa93ffbfd // stp fp, lr, [sp, #-8] WORD $0xd10023fd // sub fp, sp, #8 WORD $0xf940040a // ldr x10, [x0, #8] @@ -66,14 +65,14 @@ _lookup_small_key: WORD $0x8b294928 // add x8, x9, w9, uxtw #2 WORD $0x8b08016c // add x12, x11, x8 WORD $0x39400188 // ldrb w8, [x12] - WORD $0x34001be8 // cbz w8, LBB0_46 $892(%rip) + WORD $0x34001ba8 // cbz w8, LBB0_46 $884(%rip) WORD $0xf940000f // ldr x15, [x0] WORD $0xb840118c // ldur w12, [x12, #1] WORD $0x1102958d // add w13, w12, #165 WORD $0x8b0d016d // add x13, x11, x13 WORD $0x92401d4e // and x14, x10, #0xff WORD $0x7100253f // cmp w9, #9 - WORD $0x54000942 // b.hs LBB0_20 $296(%rip) + WORD $0x54000922 // b.hs LBB0_20 $292(%rip) WORD $0x11000530 // add w16, w9, #1 WORD $0x394001f1 // ldrb w17, [x15] WORD $0x528000e0 // mov w0, #7 @@ -86,7 +85,7 @@ LBB0_3: LBB0_4: WORD $0x8b1001ad // add x13, x13, x16 WORD $0x71000421 // subs w1, w1, #1 - WORD $0x54000b60 // b.eq LBB0_23 $364(%rip) + WORD $0x54000b40 // b.eq LBB0_23 $360(%rip) LBB0_5: WORD $0x394001a3 // ldrb w3, [x13] WORD $0x6b11007f // cmp w3, w17 @@ -154,8 +153,7 @@ LBB0_18: LBB0_19: WORD $0x8b0e01a8 // add x8, x13, x14 WORD $0x39400100 // ldrb w0, [x8] - WORD $0xa940fbfd // ldp fp, lr, [sp, #8] - WORD $0x910083ff // add sp, sp, #32 + WORD $0xa8c27bfd // ldp fp, lr, [sp], #32 WORD $0xd65f03c0 // ret LBB0_20: WORD $0xad4001e1 // ldp q1, q0, [x15] @@ -163,11 +161,11 @@ LBB0_20: WORD $0x9ace21ef // lsl x15, x15, x14 WORD $0x11000530 // add w16, w9, #1 Lloh0: - WORD $0x10fff331 // adr x17, lCPI0_0 $-412(%rip) + WORD $0x10fff371 // adr x17, lCPI0_0 $-404(%rip) Lloh1: WORD $0x3dc00222 // ldr q2, [x17, lCPI0_0@PAGEOFF] $0(%rip) Lloh2: - WORD $0x10fff371 // adr x17, lCPI0_1 $-404(%rip) + WORD $0x10fff3b1 // adr x17, lCPI0_1 $-396(%rip) Lloh3: WORD $0x3dc00223 // ldr q3, [x17, lCPI0_1@PAGEOFF] $0(%rip) WORD $0xaa0803f1 // mov x17, x8 @@ -186,7 +184,7 @@ LBB0_21: WORD $0x33103c20 // bfi w0, w1, #16, #16 WORD $0x2a0f0000 // orr w0, w0, w15 WORD $0x3100041f // cmn w0, #1 - WORD $0x54fffc80 // b.eq LBB0_19 $-112(%rip) + WORD $0x54fffca0 // b.eq LBB0_19 $-108(%rip) WORD $0x8b1001ad // add x13, x13, x16 WORD $0x71000631 // subs w17, w17, #1 WORD $0x54fffde1 // b.ne LBB0_21 $-68(%rip) @@ -205,7 +203,7 @@ LBB0_24: WORD $0x8b02016b // add x11, x11, x2 WORD $0x92401d4a // and x10, x10, #0xff WORD $0x7100253f // cmp w9, #9 - WORD $0x54000922 // b.hs LBB0_43 $292(%rip) + WORD $0x54000902 // b.hs LBB0_43 $288(%rip) WORD $0x0e013c2c // umov.b w12, v1[0] WORD $0x0e033c2d // umov.b w13, v1[1] WORD $0x0e053c2e // umov.b w14, v1[2] @@ -224,7 +222,7 @@ LBB0_26: LBB0_27: WORD $0x8b09016b // add x11, x11, x9 WORD $0x71000508 // subs w8, w8, #1 - WORD $0x54000aa0 // b.eq LBB0_46 $340(%rip) + WORD $0x54000a80 // b.eq LBB0_46 $336(%rip) LBB0_28: WORD $0x39400163 // ldrb w3, [x11] WORD $0x6b2c007f // cmp w3, w12, uxtb @@ -285,8 +283,7 @@ LBB0_41: LBB0_42: WORD $0x8b0a0168 // add x8, x11, x10 WORD $0x39400100 // ldrb w0, [x8] - WORD $0xa940fbfd // ldp fp, lr, [sp, #8] - WORD $0x910083ff // add sp, sp, #32 + WORD $0xa8c27bfd // ldp fp, lr, [sp], #32 WORD $0xd65f03c0 // ret LBB0_43: WORD $0x4e228402 // add.16b v2, v0, v2 @@ -297,11 +294,11 @@ LBB0_43: WORD $0x9aca218c // lsl x12, x12, x10 WORD $0x11000529 // add w9, w9, #1 Lloh4: - WORD $0x10ffe4ad // adr x13, lCPI0_0 $-876(%rip) + WORD $0x10ffe50d // adr x13, lCPI0_0 $-864(%rip) Lloh5: WORD $0x3dc001a2 // ldr q2, [x13, lCPI0_0@PAGEOFF] $0(%rip) Lloh6: - WORD $0x10ffe4ed // adr x13, lCPI0_1 $-868(%rip) + WORD $0x10ffe54d // adr x13, lCPI0_1 $-856(%rip) Lloh7: WORD $0x3dc001a3 // ldr q3, [x13, lCPI0_1@PAGEOFF] $0(%rip) LBB0_44: @@ -319,14 +316,13 @@ LBB0_44: WORD $0x33103dcd // bfi w13, w14, #16, #16 WORD $0x2a0c01ad // orr w13, w13, w12 WORD $0x310005bf // cmn w13, #1 - WORD $0x54fffc40 // b.eq LBB0_42 $-120(%rip) + WORD $0x54fffc60 // b.eq LBB0_42 $-116(%rip) WORD $0x8b09016b // add x11, x11, x9 WORD $0x71000508 // subs w8, w8, #1 WORD $0x54fffde1 // b.ne LBB0_44 $-68(%rip) LBB0_46: WORD $0x92800000 // mov x0, #-1 - WORD $0xa940fbfd // ldp fp, lr, [sp, #8] - WORD $0x910083ff // add sp, sp, #32 + WORD $0xa8c27bfd // ldp fp, lr, [sp], #32 WORD $0xd65f03c0 // ret TEXT ·__lookup_small_key(SB), NOSPLIT, $0-32 diff --git a/internal/native/neon/lspace_arm64.s b/internal/native/neon/lspace_arm64.s index c02f087eb..926ce3c23 100644 --- a/internal/native/neon/lspace_arm64.s +++ b/internal/native/neon/lspace_arm64.s @@ -12,8 +12,7 @@ TEXT ·__lspace_entry__(SB), NOSPLIT, $16 RET // .p2align 2, 0x00 _lspace: - WORD $0xd10083ff // sub sp, sp, #32 - WORD $0xa900fbfd // stp fp, lr, [sp, #8] + WORD $0xa9be7bfd // stp fp, lr, [sp, #-32]! WORD $0xa93ffbfd // stp fp, lr, [sp, #-8] WORD $0xd10023fd // sub fp, sp, #8 WORD $0xeb02003f // cmp x1, x2 @@ -39,8 +38,7 @@ LBB0_5: WORD $0xcb000102 // sub x2, x8, x0 LBB0_6: WORD $0xaa0203e0 // mov x0, x2 - WORD $0xa940fbfd // ldp fp, lr, [sp, #8] - WORD $0x910083ff // add sp, sp, #32 + WORD $0xa8c27bfd // ldp fp, lr, [sp], #32 WORD $0xd65f03c0 // ret TEXT ·__lspace(SB), NOSPLIT, $0-32 diff --git a/internal/native/neon/parse_with_padding_arm64.s b/internal/native/neon/parse_with_padding_arm64.s index 007b56b91..7f2677318 100644 --- a/internal/native/neon/parse_with_padding_arm64.s +++ b/internal/native/neon/parse_with_padding_arm64.s @@ -12,61 +12,51 @@ TEXT ·__parse_with_padding_entry__(SB), NOSPLIT, $144 RET // .p2align 2, 0x00 _padding_reader_next: - WORD $0xd10083ff // sub sp, sp, #32 - WORD $0xa900fbfd // stp fp, lr, [sp, #8] + WORD $0xa9be7bfd // stp fp, lr, [sp, #-32]! WORD $0xa93ffbfd // stp fp, lr, [sp, #-8] WORD $0xd10023fd // sub fp, sp, #8 WORD $0xf9400008 // ldr x8, [x0] WORD $0x91000509 // add x9, x8, #1 WORD $0xf9000009 // str x9, [x0] WORD $0x39c00100 // ldrsb w0, [x8] - WORD $0xa940fbfd // ldp fp, lr, [sp, #8] - WORD $0x910083ff // add sp, sp, #32 + WORD $0xa8c27bfd // ldp fp, lr, [sp], #32 WORD $0xd65f03c0 // ret // .p2align 2, 0x00 _padding_reader_peek_n: - WORD $0xd10083ff // sub sp, sp, #32 - WORD $0xa900fbfd // stp fp, lr, [sp, #8] + WORD $0xa9be7bfd // stp fp, lr, [sp, #-32]! WORD $0xa93ffbfd // stp fp, lr, [sp, #-8] WORD $0xd10023fd // sub fp, sp, #8 WORD $0xf9400000 // ldr x0, [x0] - WORD $0xa940fbfd // ldp fp, lr, [sp, #8] - WORD $0x910083ff // add sp, sp, #32 + WORD $0xa8c27bfd // ldp fp, lr, [sp], #32 WORD $0xd65f03c0 // ret // .p2align 2, 0x00 _padding_reader_cur: - WORD $0xd10083ff // sub sp, sp, #32 - WORD $0xa900fbfd // stp fp, lr, [sp, #8] + WORD $0xa9be7bfd // stp fp, lr, [sp, #-32]! WORD $0xa93ffbfd // stp fp, lr, [sp, #-8] WORD $0xd10023fd // sub fp, sp, #8 - WORD $0xa940fbfd // ldp fp, lr, [sp, #8] - WORD $0x910083ff // add sp, sp, #32 + WORD $0xa8c27bfd // ldp fp, lr, [sp], #32 WORD $0xd65f03c0 // ret // .p2align 2, 0x00 _padding_reader_remain: - WORD $0xd10083ff // sub sp, sp, #32 - WORD $0xa900fbfd // stp fp, lr, [sp, #8] + WORD $0xa9be7bfd // stp fp, lr, [sp, #-32]! WORD $0xa93ffbfd // stp fp, lr, [sp, #-8] WORD $0xd10023fd // sub fp, sp, #8 WORD $0xf9400808 // ldr x8, [x0, #16] WORD $0xf9400009 // ldr x9, [x0] WORD $0xcb090100 // sub x0, x8, x9 - WORD $0xa940fbfd // ldp fp, lr, [sp, #8] - WORD $0x910083ff // add sp, sp, #32 + WORD $0xa8c27bfd // ldp fp, lr, [sp], #32 WORD $0xd65f03c0 // ret // .p2align 2, 0x00 _padding_reader_eat: - WORD $0xd10083ff // sub sp, sp, #32 - WORD $0xa900fbfd // stp fp, lr, [sp, #8] + WORD $0xa9be7bfd // stp fp, lr, [sp, #-32]! WORD $0xa93ffbfd // stp fp, lr, [sp, #-8] WORD $0xd10023fd // sub fp, sp, #8 WORD $0xf9400008 // ldr x8, [x0] WORD $0x8b010108 // add x8, x8, x1 WORD $0xf9000008 // str x8, [x0] - WORD $0xa940fbfd // ldp fp, lr, [sp, #8] - WORD $0x910083ff // add sp, sp, #32 + WORD $0xa8c27bfd // ldp fp, lr, [sp], #32 WORD $0xd65f03c0 // ret - WORD $0x00000000; WORD $0x00000000 // .p2align 4, 0x00 + // .p2align 4, 0x00 lCPI5_0: WORD $0x00000020 WORD $0x00000000 @@ -139,12 +129,12 @@ lCPI5_3: // .p2align 2, 0x00 _parse_with_padding: WORD $0xd10283ff // sub sp, sp, #160 - WORD $0xa903effc // stp x28, x27, [sp, #56] - WORD $0xa904e7fa // stp x26, x25, [sp, #72] - WORD $0xa905dff8 // stp x24, x23, [sp, #88] - WORD $0xa906d7f6 // stp x22, x21, [sp, #104] - WORD $0xa907cff4 // stp x20, x19, [sp, #120] - WORD $0xa908fbfd // stp fp, lr, [sp, #136] + WORD $0xa9036ffc // stp x28, x27, [sp, #48] + WORD $0xa90467fa // stp x26, x25, [sp, #64] + WORD $0xa9055ff8 // stp x24, x23, [sp, #80] + WORD $0xa90657f6 // stp x22, x21, [sp, #96] + WORD $0xa9074ff4 // stp x20, x19, [sp, #112] + WORD $0xa9087bfd // stp fp, lr, [sp, #128] WORD $0xa93ffbfd // stp fp, lr, [sp, #-8] WORD $0xd10023fd // sub fp, sp, #8 WORD $0xa9478409 // ldp x9, x1, [x0, #120] @@ -1550,12 +1540,12 @@ LBB5_259: WORD $0x7140051f // cmp w8, #1, lsl #12 WORD $0x1a828128 // csel w8, w9, w2, hi WORD $0x93407d00 // sxtw x0, w8 - WORD $0xa948fbfd // ldp fp, lr, [sp, #136] - WORD $0xa947cff4 // ldp x20, x19, [sp, #120] - WORD $0xa946d7f6 // ldp x22, x21, [sp, #104] - WORD $0xa945dff8 // ldp x24, x23, [sp, #88] - WORD $0xa944e7fa // ldp x26, x25, [sp, #72] - WORD $0xa943effc // ldp x28, x27, [sp, #56] + WORD $0xa9487bfd // ldp fp, lr, [sp, #128] + WORD $0xa9474ff4 // ldp x20, x19, [sp, #112] + WORD $0xa94657f6 // ldp x22, x21, [sp, #96] + WORD $0xa9455ff8 // ldp x24, x23, [sp, #80] + WORD $0xa94467fa // ldp x26, x25, [sp, #64] + WORD $0xa9436ffc // ldp x28, x27, [sp, #48] WORD $0x910283ff // add sp, sp, #160 WORD $0xd65f03c0 // ret LBB5_260: diff --git a/internal/native/neon/parse_with_padding_subr_arm64.go b/internal/native/neon/parse_with_padding_subr_arm64.go index 11c37e44e..f55a7d64b 100644 --- a/internal/native/neon/parse_with_padding_subr_arm64.go +++ b/internal/native/neon/parse_with_padding_subr_arm64.go @@ -9,7 +9,7 @@ package neon func __parse_with_padding_entry__() uintptr var ( - _subr__parse_with_padding uintptr = __parse_with_padding_entry__() + 248 + _subr__parse_with_padding uintptr = __parse_with_padding_entry__() + 200 ) const ( diff --git a/internal/native/neon/quote_arm64.s b/internal/native/neon/quote_arm64.s index 0e19a9ba9..5419b1faf 100644 --- a/internal/native/neon/quote_arm64.s +++ b/internal/native/neon/quote_arm64.s @@ -56,36 +56,35 @@ lCPI0_1: // .byte 15 _quote: - WORD $0xd10083ff // sub sp, sp, #32 - WORD $0xa900fbfd // stp fp, lr, [sp, #8] + WORD $0xa9be7bfd // stp fp, lr, [sp, #-32]! WORD $0xa93ffbfd // stp fp, lr, [sp, #-8] WORD $0xd10023fd // sub fp, sp, #8 WORD $0xf9400069 // ldr x9, [x3] Lloh0: - WORD $0x1000ad68 // adr x8, __DoubleQuoteTab $5548(%rip) + WORD $0x1000acc8 // adr x8, __DoubleQuoteTab $5528(%rip) Lloh1: WORD $0x91000108 // add x8, x8, __DoubleQuoteTab@PAGEOFF $0(%rip) Lloh2: - WORD $0x10002d2a // adr x10, __SingleQuoteTab $1444(%rip) + WORD $0x10002c8a // adr x10, __SingleQuoteTab $1424(%rip) Lloh3: WORD $0x9100014a // add x10, x10, __SingleQuoteTab@PAGEOFF $0(%rip) WORD $0xf240009f // tst x4, #0x1 WORD $0x9a880148 // csel x8, x10, x8, eq WORD $0xeb010d3f // cmp x9, x1, lsl #3 - WORD $0x54001b0a // b.ge LBB0_53 $864(%rip) + WORD $0x54001aea // b.ge LBB0_53 $860(%rip) WORD $0xaa0203eb // mov x11, x2 WORD $0xaa0003ee // mov x14, x0 - WORD $0xb4002a41 // cbz x1, LBB0_76 $1352(%rip) + WORD $0xb4002a01 // cbz x1, LBB0_76 $1344(%rip) WORD $0xd100040c // sub x12, x0, #1 WORD $0x4f01e440 // movi.16b v0, #34 WORD $0x4f02e781 // movi.16b v1, #92 WORD $0x4f01e402 // movi.16b v2, #32 Lloh4: - WORD $0x10fffc8b // adr x11, lCPI0_0 $-112(%rip) + WORD $0x10fffcab // adr x11, lCPI0_0 $-108(%rip) Lloh5: WORD $0x3dc00163 // ldr q3, [x11, lCPI0_0@PAGEOFF] $0(%rip) Lloh6: - WORD $0x10fffccb // adr x11, lCPI0_1 $-104(%rip) + WORD $0x10fffceb // adr x11, lCPI0_1 $-100(%rip) Lloh7: WORD $0x3dc00164 // ldr q4, [x11, lCPI0_1@PAGEOFF] $0(%rip) WORD $0xaa0003ed // mov x13, x0 @@ -203,7 +202,7 @@ LBB0_24: WORD $0x8b0401ae // add x14, x13, x4 WORD $0x8b04016b // add x11, x11, x4 WORD $0xeb040021 // subs x1, x1, x4 - WORD $0x54001c20 // b.eq LBB0_76 $900(%rip) + WORD $0x54001be0 // b.eq LBB0_76 $892(%rip) WORD $0xcb040129 // sub x9, x9, x4 WORD $0x8b0d008d // add x13, x4, x13 WORD $0xcb0d018d // sub x13, x12, x13 @@ -213,7 +212,7 @@ LBB0_26: WORD $0x8b0f016b // add x11, x11, x15 WORD $0xd10005ad // sub x13, x13, #1 WORD $0xd1000421 // sub x1, x1, #1 - WORD $0xb4001b01 // cbz x1, LBB0_76 $864(%rip) + WORD $0xb4001ac1 // cbz x1, LBB0_76 $856(%rip) LBB0_27: WORD $0x394001cf // ldrb w15, [x14] WORD $0x8b0f1111 // add x17, x8, x15, lsl #4 @@ -221,7 +220,7 @@ LBB0_27: WORD $0xb400032f // cbz x15, LBB0_35 $100(%rip) WORD $0x93407def // sxtw x15, w15 WORD $0xeb0f0129 // subs x9, x9, x15 - WORD $0x54001b0b // b.lt LBB0_77 $864(%rip) + WORD $0x54001aab // b.lt LBB0_77 $852(%rip) WORD $0xf10011e4 // subs x4, x15, #4 WORD $0x5400010b // b.lt LBB0_31 $32(%rip) WORD $0xb9400a25 // ldr w5, [x17, #8] @@ -320,23 +319,22 @@ LBB0_52: WORD $0xcb0d0008 // sub x8, x0, x13 WORD $0x8b040101 // add x1, x8, x4 WORD $0xaa0103e0 // mov x0, x1 - WORD $0xa940fbfd // ldp fp, lr, [sp, #8] - WORD $0x910083ff // add sp, sp, #32 + WORD $0xa8c27bfd // ldp fp, lr, [sp], #32 WORD $0xd65f03c0 // ret LBB0_53: WORD $0x4f01e440 // movi.16b v0, #34 WORD $0x4f02e781 // movi.16b v1, #92 WORD $0x4f01e402 // movi.16b v2, #32 Lloh8: - WORD $0x10ffe229 // adr x9, lCPI0_0 $-956(%rip) + WORD $0x10ffe269 // adr x9, lCPI0_0 $-948(%rip) Lloh9: WORD $0x3dc00123 // ldr q3, [x9, lCPI0_0@PAGEOFF] $0(%rip) Lloh10: - WORD $0x10ffe269 // adr x9, lCPI0_1 $-948(%rip) + WORD $0x10ffe2a9 // adr x9, lCPI0_1 $-940(%rip) Lloh11: WORD $0x3dc00124 // ldr q4, [x9, lCPI0_1@PAGEOFF] $0(%rip) Lloh12: - WORD $0x100110aa // adr x10, __EscTab $8724(%rip) + WORD $0x1001102a // adr x10, __EscTab $8708(%rip) Lloh13: WORD $0x9100014a // add x10, x10, __EscTab@PAGEOFF $0(%rip) WORD $0xaa0203e9 // mov x9, x2 @@ -466,26 +464,23 @@ LBB0_75: WORD $0xcb020128 // sub x8, x9, x2 WORD $0xf9000068 // str x8, [x3] WORD $0xaa0103e0 // mov x0, x1 - WORD $0xa940fbfd // ldp fp, lr, [sp, #8] - WORD $0x910083ff // add sp, sp, #32 + WORD $0xa8c27bfd // ldp fp, lr, [sp], #32 WORD $0xd65f03c0 // ret LBB0_76: WORD $0xcb020168 // sub x8, x11, x2 WORD $0xf9000068 // str x8, [x3] WORD $0xcb0001c1 // sub x1, x14, x0 WORD $0xaa0103e0 // mov x0, x1 - WORD $0xa940fbfd // ldp fp, lr, [sp, #8] - WORD $0x910083ff // add sp, sp, #32 + WORD $0xa8c27bfd // ldp fp, lr, [sp], #32 WORD $0xd65f03c0 // ret LBB0_77: WORD $0xcb020168 // sub x8, x11, x2 WORD $0xf9000068 // str x8, [x3] WORD $0xaa0d03e1 // mov x1, x13 WORD $0xaa0103e0 // mov x0, x1 - WORD $0xa940fbfd // ldp fp, lr, [sp, #8] - WORD $0x910083ff // add sp, sp, #32 + WORD $0xa8c27bfd // ldp fp, lr, [sp], #32 WORD $0xd65f03c0 // ret - WORD $0x00000000 // .p2align 3, 0x00 + // .p2align 3, 0x00 __SingleQuoteTab: WORD $0x00000006; WORD $0x00000000 // .quad 6 WORD $0x3030755c // .asciz 4, '\\u0000\x00\x00' diff --git a/internal/native/neon/skip_array_arm64.s b/internal/native/neon/skip_array_arm64.s index f551d994b..b293d46f0 100644 --- a/internal/native/neon/skip_array_arm64.s +++ b/internal/native/neon/skip_array_arm64.s @@ -59,17 +59,16 @@ lCPI0_2: // .byte 15 _skip_array: - WORD $0xd101c3ff // sub sp, sp, #112 - WORD $0xa900effc // stp x28, x27, [sp, #8] - WORD $0xa901e7fa // stp x26, x25, [sp, #24] - WORD $0xa902dff8 // stp x24, x23, [sp, #40] - WORD $0xa903d7f6 // stp x22, x21, [sp, #56] - WORD $0xa904cff4 // stp x20, x19, [sp, #72] - WORD $0xa905fbfd // stp fp, lr, [sp, #88] + WORD $0xa9b96ffc // stp x28, x27, [sp, #-112]! + WORD $0xa90167fa // stp x26, x25, [sp, #16] + WORD $0xa9025ff8 // stp x24, x23, [sp, #32] + WORD $0xa90357f6 // stp x22, x21, [sp, #48] + WORD $0xa9044ff4 // stp x20, x19, [sp, #64] + WORD $0xa9057bfd // stp fp, lr, [sp, #80] WORD $0xa93ffbfd // stp fp, lr, [sp, #-8] WORD $0xd10023fd // sub fp, sp, #8 Lloh0: - WORD $0x10fffd68 // adr x8, lCPI0_0 $-84(%rip) + WORD $0x10fffd88 // adr x8, lCPI0_0 $-80(%rip) Lloh1: WORD $0x3dc00100 // ldr q0, [x8, lCPI0_0@PAGEOFF] $0(%rip) WORD $0xaa0203ea // mov x10, x2 @@ -88,11 +87,11 @@ Lloh1: WORD $0x4f01e440 // movi.16b v0, #34 WORD $0x4f02e781 // movi.16b v1, #92 Lloh2: - WORD $0x10fffbc8 // adr x8, lCPI0_1 $-136(%rip) + WORD $0x10fffbe8 // adr x8, lCPI0_1 $-132(%rip) Lloh3: WORD $0x3dc00102 // ldr q2, [x8, lCPI0_1@PAGEOFF] $0(%rip) Lloh4: - WORD $0x10fffc08 // adr x8, lCPI0_2 $-128(%rip) + WORD $0x10fffc28 // adr x8, lCPI0_2 $-124(%rip) Lloh5: WORD $0x3dc00103 // ldr q3, [x8, lCPI0_2@PAGEOFF] $0(%rip) WORD $0x92f00006 // mov x6, #9223372036854775807 @@ -160,7 +159,7 @@ LBB0_14: LBB0_18: WORD $0x9100139b // add x27, x28, #4 WORD $0xeb08037f // cmp x27, x8 - WORD $0x5400e922 // b.hs LBB0_395 $7460(%rip) + WORD $0x5400e902 // b.hs LBB0_395 $7456(%rip) LBB0_19: WORD $0x387b6931 // ldrb w17, [x9, x27] WORD $0x7100823f // cmp w17, #32 @@ -194,13 +193,13 @@ LBB0_22: WORD $0x71000d1f // cmp w8, #3 WORD $0x540019c1 // b.ne LBB0_58 $824(%rip) WORD $0x71008abf // cmp w21, #34 - WORD $0x5400f101 // b.ne LBB0_425 $7712(%rip) + WORD $0x5400f0e1 // b.ne LBB0_425 $7708(%rip) WORD $0x3200f3e6 // mov w6, #1431655765 WORD $0xf8347944 // str x4, [x10, x20, lsl #3] WORD $0xf9400408 // ldr x8, [x0, #8] WORD $0xeb1c0114 // subs x20, x8, x28 WORD $0x372831a3 // tbnz w3, #5, LBB0_109 $1588(%rip) - WORD $0x5400e560 // b.eq LBB0_398 $7340(%rip) + WORD $0x5400e540 // b.eq LBB0_398 $7336(%rip) WORD $0xf101029f // cmp x20, #64 WORD $0x54009103 // b.lo LBB0_250 $4640(%rip) WORD $0xd2800005 // mov x5, #0 @@ -306,7 +305,7 @@ LBB0_39: WORD $0xf9400408 // ldr x8, [x0, #8] WORD $0xeb1c0114 // subs x20, x8, x28 WORD $0x37283923 // tbnz w3, #5, LBB0_138 $1828(%rip) - WORD $0x5400d8e0 // b.eq LBB0_398 $6940(%rip) + WORD $0x5400d8c0 // b.eq LBB0_398 $6936(%rip) WORD $0xf101029f // cmp x20, #64 WORD $0x54009423 // b.lo LBB0_277 $4740(%rip) WORD $0xd2800005 // mov x5, #0 @@ -402,10 +401,10 @@ LBB0_54: WORD $0x540017e0 // b.eq LBB0_105 $764(%rip) WORD $0x710176bf // cmp w21, #93 WORD $0x54001420 // b.eq LBB0_97 $644(%rip) - WORD $0x140006c4 // b LBB0_425 $6928(%rip) + WORD $0x140006c3 // b LBB0_425 $6924(%rip) LBB0_56: WORD $0x7100eabf // cmp w21, #58 - WORD $0x5400d841 // b.ne LBB0_425 $6920(%rip) + WORD $0x5400d821 // b.ne LBB0_425 $6916(%rip) WORD $0xf834795f // str xzr, [x10, x20, lsl #3] WORD $0xf9400045 // ldr x5, [x2] WORD $0xaa0e03e8 // mov x8, x14 @@ -422,7 +421,7 @@ LBB0_59: WORD $0x54003d02 // b.hs LBB0_154 $1952(%rip) WORD $0xf9400408 // ldr x8, [x0, #8] WORD $0xeb1b0115 // subs x21, x8, x27 - WORD $0x5400cbe0 // b.eq LBB0_399 $6524(%rip) + WORD $0x5400cbc0 // b.eq LBB0_399 $6520(%rip) WORD $0x394003c8 // ldrb w8, [lr] WORD $0x7100c11f // cmp w8, #48 WORD $0x54000141 // b.ne LBB0_65 $40(%rip) @@ -575,7 +574,7 @@ LBB0_94: LBB0_95: WORD $0x7101f6bf // cmp w21, #125 WORD $0x54000080 // b.eq LBB0_97 $16(%rip) - WORD $0x14000627 // b LBB0_425 $6300(%rip) + WORD $0x14000626 // b LBB0_425 $6296(%rip) LBB0_96: WORD $0x710176bf // cmp w21, #93 WORD $0x540000c1 // b.ne LBB0_98 $24(%rip) @@ -601,7 +600,7 @@ LBB0_99: WORD $0x5400b5a1 // b.ne LBB0_394 $5812(%rip) WORD $0xf9400048 // ldr x8, [x2] WORD $0xf13ffd1f // cmp x8, #4095 - WORD $0x5400b6cc // b.gt LBB0_396 $5848(%rip) + WORD $0x5400b6ac // b.gt LBB0_396 $5844(%rip) WORD $0x91000511 // add x17, x8, #1 WORD $0xf9000051 // str x17, [x2] WORD $0x528000d1 // mov w17, #6 @@ -612,7 +611,7 @@ LBB0_99: WORD $0x140005a2 // b LBB0_394 $5768(%rip) LBB0_105: WORD $0xf13ffcbf // cmp x5, #4095 - WORD $0x5400b58c // b.gt LBB0_396 $5808(%rip) + WORD $0x5400b56c // b.gt LBB0_396 $5804(%rip) WORD $0x910004a8 // add x8, x5, #1 WORD $0xf9000048 // str x8, [x2] WORD $0xf825795f // str xzr, [x10, x5, lsl #3] @@ -622,7 +621,7 @@ LBB0_105: WORD $0x14000599 // b LBB0_394 $5732(%rip) LBB0_107: WORD $0xf13ffcbf // cmp x5, #4095 - WORD $0x5400b46c // b.gt LBB0_396 $5772(%rip) + WORD $0x5400b44c // b.gt LBB0_396 $5768(%rip) WORD $0x910004a8 // add x8, x5, #1 WORD $0xf9000048 // str x8, [x2] WORD $0xf8257953 // str x19, [x10, x5, lsl #3] @@ -631,7 +630,7 @@ LBB0_107: WORD $0xb5ffc425 // cbnz x5, LBB0_1 $-1916(%rip) WORD $0x14000590 // b LBB0_394 $5696(%rip) LBB0_109: - WORD $0x5400b3e0 // b.eq LBB0_398 $5756(%rip) + WORD $0x5400b3c0 // b.eq LBB0_398 $5752(%rip) WORD $0xf101029f // cmp x20, #64 WORD $0x54006403 // b.lo LBB0_256 $3200(%rip) WORD $0xd2800005 // mov x5, #0 @@ -719,7 +718,7 @@ LBB0_114: WORD $0xaa1502d5 // orr x21, x22, x21 WORD $0xaa1102b1 // orr x17, x21, x17 WORD $0xb50002e7 // cbnz x7, LBB0_119 $92(%rip) - WORD $0xb500aa71 // cbnz x17, LBB0_404 $5452(%rip) + WORD $0xb500aa51 // cbnz x17, LBB0_404 $5448(%rip) WORD $0xd1010294 // sub x20, x20, #64 WORD $0x9101039c // add x28, x28, #64 WORD $0xf100fe9f // cmp x20, #63 @@ -749,7 +748,7 @@ LBB0_119: WORD $0xdac00231 // rbit x17, x17 WORD $0xdac01231 // clz x17, x17 WORD $0xeb05023f // cmp x17, x5 - WORD $0x5400b143 // b.lo LBB0_427 $5672(%rip) + WORD $0x5400b123 // b.lo LBB0_427 $5668(%rip) LBB0_120: WORD $0x8b1c00b1 // add x17, x5, x28 LBB0_121: @@ -760,16 +759,16 @@ LBB0_122: WORD $0xb20903e7 // mov x7, #36028797027352576 WORD $0xf2800027 // movk x7, #1 WORD $0xb6f81c9c // tbz x28, #63, LBB0_170 $912(%rip) - WORD $0x14000524 // b LBB0_397 $5264(%rip) + WORD $0x14000523 // b LBB0_397 $5260(%rip) LBB0_123: WORD $0x8b2743d1 // add x17, lr, w7, uxtw WORD $0x8b1c0236 // add x22, x17, x28 LBB0_124: WORD $0x92800015 // mov x21, #-1 - WORD $0xb400a4c8 // cbz x8, LBB0_400 $5272(%rip) + WORD $0xb400a4a8 // cbz x8, LBB0_400 $5268(%rip) LBB0_125: - WORD $0xb400a4b4 // cbz x20, LBB0_400 $5268(%rip) - WORD $0xb400a485 // cbz x5, LBB0_400 $5264(%rip) + WORD $0xb400a494 // cbz x20, LBB0_400 $5264(%rip) + WORD $0xb400a465 // cbz x5, LBB0_400 $5260(%rip) WORD $0xcb1e02c7 // sub x7, x22, lr WORD $0xd10004f1 // sub x17, x7, #1 WORD $0xeb11011f // cmp x8, x17 @@ -781,12 +780,12 @@ LBB0_125: WORD $0xf1000691 // subs x17, x20, #1 WORD $0x5400006b // b.lt LBB0_132 $12(%rip) WORD $0xeb1100bf // cmp x5, x17 - WORD $0x5400a321 // b.ne LBB0_401 $5220(%rip) + WORD $0x5400a301 // b.ne LBB0_401 $5216(%rip) LBB0_132: WORD $0xaa050111 // orr x17, x8, x5 WORD $0xb7f80071 // tbnz x17, #63, LBB0_134 $12(%rip) WORD $0xeb05011f // cmp x8, x5 - WORD $0x5400a44a // b.ge LBB0_407 $5256(%rip) + WORD $0x5400a42a // b.ge LBB0_407 $5252(%rip) LBB0_134: WORD $0xd37ffe31 // lsr x17, x17, #63 WORD $0x52000231 // eor w17, w17, #0x1 @@ -803,11 +802,11 @@ LBB0_136: WORD $0x92f00006 // mov x6, #9223372036854775807 WORD $0xb20903e7 // mov x7, #36028797027352576 WORD $0xf2800027 // movk x7, #1 - WORD $0xb7f8a0d5 // tbnz x21, #63, LBB0_400 $5144(%rip) + WORD $0xb7f8a0b5 // tbnz x21, #63, LBB0_400 $5140(%rip) WORD $0x8b15037c // add x28, x27, x21 WORD $0x140000bd // b LBB0_170 $756(%rip) LBB0_138: - WORD $0x54009fe0 // b.eq LBB0_398 $5116(%rip) + WORD $0x54009fc0 // b.eq LBB0_398 $5112(%rip) WORD $0xf101029f // cmp x20, #64 WORD $0x54005fa3 // b.lo LBB0_283 $3060(%rip) WORD $0xd2800005 // mov x5, #0 @@ -895,7 +894,7 @@ LBB0_143: WORD $0xaa1502d5 // orr x21, x22, x21 WORD $0xaa1102b1 // orr x17, x21, x17 WORD $0xb50002e7 // cbnz x7, LBB0_148 $92(%rip) - WORD $0xb5009671 // cbnz x17, LBB0_404 $4812(%rip) + WORD $0xb5009651 // cbnz x17, LBB0_404 $4808(%rip) WORD $0xd1010294 // sub x20, x20, #64 WORD $0x9101039c // add x28, x28, #64 WORD $0xf100fe9f // cmp x20, #63 @@ -925,7 +924,7 @@ LBB0_148: WORD $0xdac00231 // rbit x17, x17 WORD $0xdac01231 // clz x17, x17 WORD $0xeb05023f // cmp x17, x5 - WORD $0x54009d43 // b.lo LBB0_427 $5032(%rip) + WORD $0x54009d23 // b.lo LBB0_427 $5028(%rip) WORD $0x8b1c00b1 // add x17, x5, x28 LBB0_150: WORD $0x9100063c // add x28, x17, #1 @@ -933,7 +932,7 @@ LBB0_150: WORD $0x92f00006 // mov x6, #9223372036854775807 WORD $0xb20903e7 // mov x7, #36028797027352576 WORD $0xf2800027 // movk x7, #1 - WORD $0xb7f890bc // tbnz x28, #63, LBB0_397 $4628(%rip) + WORD $0xb7f8909c // tbnz x28, #63, LBB0_397 $4624(%rip) LBB0_151: WORD $0xf900003c // str x28, [x1] WORD $0xaa1b03e8 // mov x8, x27 @@ -942,7 +941,7 @@ LBB0_151: WORD $0x54008e48 // b.hi LBB0_394 $4552(%rip) WORD $0xf9400048 // ldr x8, [x2] WORD $0xf13ffd1f // cmp x8, #4095 - WORD $0x54008f6c // b.gt LBB0_396 $4588(%rip) + WORD $0x54008f4c // b.gt LBB0_396 $4584(%rip) WORD $0x91000511 // add x17, x8, #1 WORD $0xf9000051 // str x17, [x2] WORD $0xf8287944 // str x4, [x10, x8, lsl #3] @@ -957,7 +956,7 @@ LBB0_154: WORD $0x54008c81 // b.ne LBB0_394 $4496(%rip) WORD $0xf9400408 // ldr x8, [x0, #8] WORD $0xeb1c0118 // subs x24, x8, x28 - WORD $0x540090c0 // b.eq LBB0_408 $4632(%rip) + WORD $0x540090a0 // b.eq LBB0_408 $4628(%rip) WORD $0xb20903e4 // mov x4, #36028797027352576 WORD $0xf2800024 // movk x4, #1 WORD $0x8b1c0128 // add x8, x9, x28 @@ -977,35 +976,35 @@ LBB0_160: WORD $0xf9400408 // ldr x8, [x0, #8] WORD $0xd1001111 // sub x17, x8, #4 WORD $0xeb11037f // cmp x27, x17 - WORD $0x54008de2 // b.hs LBB0_406 $4540(%rip) + WORD $0x54008dc2 // b.hs LBB0_406 $4536(%rip) WORD $0xb87c6928 // ldr w8, [x9, x28] WORD $0x528d8c31 // mov w17, #27745 WORD $0x72acae71 // movk w17, #25971, lsl #16 WORD $0x6b11011f // cmp w8, w17 - WORD $0x54009381 // b.ne LBB0_420 $4720(%rip) + WORD $0x54009361 // b.ne LBB0_420 $4716(%rip) WORD $0x9100177c // add x28, x27, #5 WORD $0x14000015 // b LBB0_170 $84(%rip) LBB0_165: WORD $0xf9400408 // ldr x8, [x0, #8] WORD $0xd1000d11 // sub x17, x8, #3 WORD $0xeb11037f // cmp x27, x17 - WORD $0x54008c82 // b.hs LBB0_406 $4496(%rip) + WORD $0x54008c62 // b.hs LBB0_406 $4492(%rip) WORD $0xb87b6928 // ldr w8, [x9, x27] WORD $0x528e4e91 // mov w17, #29300 WORD $0x72acaeb1 // movk w17, #25973, lsl #16 WORD $0x6b11011f // cmp w8, w17 WORD $0x54000160 // b.eq LBB0_169 $44(%rip) - WORD $0x1400047b // b LBB0_415 $4588(%rip) + WORD $0x1400047a // b LBB0_415 $4584(%rip) LBB0_167: WORD $0xf9400408 // ldr x8, [x0, #8] WORD $0xd1000d11 // sub x17, x8, #3 WORD $0xeb11037f // cmp x27, x17 - WORD $0x54008b42 // b.hs LBB0_406 $4456(%rip) + WORD $0x54008b22 // b.hs LBB0_406 $4452(%rip) WORD $0xb87b6928 // ldr w8, [x9, x27] WORD $0x528eadd1 // mov w17, #30062 WORD $0x72ad8d91 // movk w17, #27756, lsl #16 WORD $0x6b11011f // cmp w8, w17 - WORD $0x54008bc1 // b.ne LBB0_411 $4472(%rip) + WORD $0x54008ba1 // b.ne LBB0_411 $4468(%rip) LBB0_169: WORD $0x9100137c // add x28, x27, #4 LBB0_170: @@ -1021,7 +1020,7 @@ LBB0_171: LBB0_172: WORD $0xf9400048 // ldr x8, [x2] WORD $0xf13ffd1f // cmp x8, #4095 - WORD $0x540086ac // b.gt LBB0_396 $4308(%rip) + WORD $0x5400868c // b.gt LBB0_396 $4304(%rip) WORD $0x91000511 // add x17, x8, #1 WORD $0xf9000051 // str x17, [x2] WORD $0x528000b1 // mov w17, #5 @@ -1035,7 +1034,7 @@ LBB0_174: WORD $0xf9400408 // ldr x8, [x0, #8] WORD $0xeb1c0114 // subs x20, x8, x28 WORD $0x37280b43 // tbnz w3, #5, LBB0_185 $360(%rip) - WORD $0x54008580 // b.eq LBB0_398 $4272(%rip) + WORD $0x54008560 // b.eq LBB0_398 $4268(%rip) WORD $0xf101029f // cmp x20, #64 WORD $0x540051e3 // b.lo LBB0_307 $2620(%rip) WORD $0xd2800005 // mov x5, #0 @@ -1128,9 +1127,9 @@ LBB0_184: WORD $0xaa1803f6 // mov x22, x24 WORD $0x92800015 // mov x21, #-1 WORD $0xb5ffd688 // cbnz x8, LBB0_125 $-1328(%rip) - WORD $0x140003d8 // b LBB0_400 $3936(%rip) + WORD $0x140003d7 // b LBB0_400 $3932(%rip) LBB0_185: - WORD $0x54007a60 // b.eq LBB0_398 $3916(%rip) + WORD $0x54007a40 // b.eq LBB0_398 $3912(%rip) WORD $0xf101029f // cmp x20, #64 WORD $0x54004b43 // b.lo LBB0_313 $2408(%rip) WORD $0xd2800005 // mov x5, #0 @@ -1218,7 +1217,7 @@ LBB0_190: WORD $0xaa0400c4 // orr x4, x6, x4 WORD $0xaa110091 // orr x17, x4, x17 WORD $0xb50002e7 // cbnz x7, LBB0_195 $92(%rip) - WORD $0xb50070f1 // cbnz x17, LBB0_404 $3612(%rip) + WORD $0xb50070d1 // cbnz x17, LBB0_404 $3608(%rip) WORD $0xd1010294 // sub x20, x20, #64 WORD $0x9101039c // add x28, x28, #64 WORD $0xf100fe9f // cmp x20, #63 @@ -1250,7 +1249,7 @@ LBB0_195: WORD $0xeb05023f // cmp x17, x5 WORD $0x52800073 // mov w19, #3 WORD $0x54ffc682 // b.hs LBB0_120 $-1840(%rip) - WORD $0x140003bc // b LBB0_427 $3824(%rip) + WORD $0x140003bb // b LBB0_427 $3820(%rip) LBB0_196: WORD $0x39400511 // ldrb w17, [x8, #1] WORD $0x5100ba31 // sub w17, w17, #46 @@ -1400,10 +1399,10 @@ LBB0_230: WORD $0x52800073 // mov w19, #3 LBB0_231: WORD $0x92800007 // mov x7, #-1 - WORD $0xb4005dd4 // cbz x20, LBB0_409 $3000(%rip) + WORD $0xb4005db4 // cbz x20, LBB0_409 $2996(%rip) LBB0_232: - WORD $0xb4005dbe // cbz lr, LBB0_409 $2996(%rip) - WORD $0xb4005d85 // cbz x5, LBB0_409 $2992(%rip) + WORD $0xb4005d9e // cbz lr, LBB0_409 $2992(%rip) + WORD $0xb4005d65 // cbz x5, LBB0_409 $2988(%rip) WORD $0xcb0802c8 // sub x8, x22, x8 WORD $0xd1000511 // sub x17, x8, #1 WORD $0xeb11029f // cmp x20, x17 @@ -1415,12 +1414,12 @@ LBB0_232: WORD $0xf10007d1 // subs x17, lr, #1 WORD $0x5400006b // b.lt LBB0_239 $12(%rip) WORD $0xeb1100bf // cmp x5, x17 - WORD $0x54005c21 // b.ne LBB0_410 $2948(%rip) + WORD $0x54005c01 // b.ne LBB0_410 $2944(%rip) LBB0_239: WORD $0xaa050291 // orr x17, x20, x5 WORD $0xb7f80071 // tbnz x17, #63, LBB0_241 $12(%rip) WORD $0xeb05029f // cmp x20, x5 - WORD $0x540063ea // b.ge LBB0_426 $3196(%rip) + WORD $0x540063ca // b.ge LBB0_426 $3192(%rip) LBB0_241: WORD $0xd37ffe31 // lsr x17, x17, #63 WORD $0x52000231 // eor w17, w17, #0x1 @@ -1433,7 +1432,7 @@ LBB0_241: LBB0_242: WORD $0xcb0803e7 // neg x7, x8 LBB0_243: - WORD $0xb7f85a47 // tbnz x7, #63, LBB0_409 $2888(%rip) + WORD $0xb7f85a27 // tbnz x7, #63, LBB0_409 $2884(%rip) LBB0_244: WORD $0x8b1c00fc // add x28, x7, x28 WORD $0xf900003c // str x28, [x1] @@ -1465,7 +1464,7 @@ LBB0_249: WORD $0xaa0603f6 // mov x22, x6 WORD $0x92800007 // mov x7, #-1 WORD $0xb5fff994 // cbnz x20, LBB0_232 $-208(%rip) - WORD $0x140002b8 // b LBB0_409 $2784(%rip) + WORD $0x140002b7 // b LBB0_409 $2780(%rip) LBB0_250: WORD $0xd2800005 // mov x5, #0 WORD $0x8b1c013c // add x28, x9, x28 @@ -1556,16 +1555,16 @@ LBB0_260: WORD $0xdac010a7 // clz x7, x5 WORD $0xcb090385 // sub x5, x28, x9 WORD $0xeb07023f // cmp x17, x7 - WORD $0x54005563 // b.lo LBB0_428 $2732(%rip) + WORD $0x54005543 // b.lo LBB0_428 $2728(%rip) WORD $0x8b0700b1 // add x17, x5, x7 WORD $0x17fffd1f // b LBB0_121 $-2948(%rip) LBB0_263: - WORD $0x35005547 // cbnz w7, LBB0_429 $2728(%rip) + WORD $0x35005527 // cbnz w7, LBB0_429 $2724(%rip) WORD $0x9100839c // add x28, x28, #32 WORD $0xaa1503f4 // mov x20, x21 LBB0_265: WORD $0xb5003965 // cbnz x5, LBB0_368 $1836(%rip) - WORD $0xb40048d4 // cbz x20, LBB0_398 $2328(%rip) + WORD $0xb40048b4 // cbz x20, LBB0_398 $2324(%rip) LBB0_267: WORD $0xd2800005 // mov x5, #0 LBB0_268: @@ -1575,15 +1574,15 @@ LBB0_268: WORD $0x7101723f // cmp w17, #92 WORD $0x540000e0 // b.eq LBB0_272 $28(%rip) WORD $0x71007e3f // cmp w17, #31 - WORD $0x54005429 // b.ls LBB0_430 $2692(%rip) + WORD $0x54005409 // b.ls LBB0_430 $2688(%rip) WORD $0x910004a5 // add x5, x5, #1 WORD $0xeb05029f // cmp x20, x5 WORD $0x54fffee1 // b.ne LBB0_268 $-36(%rip) - WORD $0x1400023a // b LBB0_398 $2280(%rip) + WORD $0x14000239 // b LBB0_398 $2276(%rip) LBB0_272: WORD $0xd1000691 // sub x17, x20, #1 WORD $0xeb05023f // cmp x17, x5 - WORD $0x540046e0 // b.eq LBB0_398 $2268(%rip) + WORD $0x540046c0 // b.eq LBB0_398 $2264(%rip) WORD $0x8b050391 // add x17, x28, x5 WORD $0x8b0c0227 // add x7, x17, x12 WORD $0xb100051f // cmn x8, #1 @@ -1594,7 +1593,7 @@ LBB0_272: WORD $0xd1000a34 // sub x20, x17, #2 WORD $0xeb0500ff // cmp x7, x5 WORD $0x54fffd01 // b.ne LBB0_267 $-96(%rip) - WORD $0x1400022c // b LBB0_398 $2224(%rip) + WORD $0x1400022b // b LBB0_398 $2220(%rip) LBB0_274: WORD $0x8b1c0191 // add x17, x12, x28 WORD $0x8b050231 // add x17, x17, x5 @@ -1695,16 +1694,16 @@ LBB0_287: WORD $0xdac010a7 // clz x7, x5 WORD $0xcb090385 // sub x5, x28, x9 WORD $0xeb07023f // cmp x17, x7 - WORD $0x540045c3 // b.lo LBB0_428 $2232(%rip) + WORD $0x540045a3 // b.lo LBB0_428 $2228(%rip) WORD $0x8b0700b1 // add x17, x5, x7 WORD $0x17fffd42 // b LBB0_150 $-2808(%rip) LBB0_290: - WORD $0x350045a7 // cbnz w7, LBB0_429 $2228(%rip) + WORD $0x35004587 // cbnz w7, LBB0_429 $2224(%rip) WORD $0x9100839c // add x28, x28, #32 WORD $0xaa1503f4 // mov x20, x21 LBB0_292: WORD $0xb5002bc5 // cbnz x5, LBB0_372 $1400(%rip) - WORD $0xb4003934 // cbz x20, LBB0_398 $1828(%rip) + WORD $0xb4003914 // cbz x20, LBB0_398 $1824(%rip) LBB0_294: WORD $0xd2800005 // mov x5, #0 LBB0_295: @@ -1714,15 +1713,15 @@ LBB0_295: WORD $0x7101723f // cmp w17, #92 WORD $0x540000e0 // b.eq LBB0_299 $28(%rip) WORD $0x71007e3f // cmp w17, #31 - WORD $0x54004489 // b.ls LBB0_430 $2192(%rip) + WORD $0x54004469 // b.ls LBB0_430 $2188(%rip) WORD $0x910004a5 // add x5, x5, #1 WORD $0xeb05029f // cmp x20, x5 WORD $0x54fffee1 // b.ne LBB0_295 $-36(%rip) - WORD $0x140001bd // b LBB0_398 $1780(%rip) + WORD $0x140001bc // b LBB0_398 $1776(%rip) LBB0_299: WORD $0xd1000691 // sub x17, x20, #1 WORD $0xeb05023f // cmp x17, x5 - WORD $0x54003740 // b.eq LBB0_398 $1768(%rip) + WORD $0x54003720 // b.eq LBB0_398 $1764(%rip) WORD $0x8b050391 // add x17, x28, x5 WORD $0x8b0c0227 // add x7, x17, x12 WORD $0xb100051f // cmn x8, #1 @@ -1733,7 +1732,7 @@ LBB0_299: WORD $0xd1000a34 // sub x20, x17, #2 WORD $0xeb0500ff // cmp x7, x5 WORD $0x54fffd01 // b.ne LBB0_294 $-96(%rip) - WORD $0x140001af // b LBB0_398 $1724(%rip) + WORD $0x140001ae // b LBB0_398 $1720(%rip) LBB0_301: WORD $0x8b1c0191 // add x17, x12, x28 WORD $0x8b050231 // add x17, x17, x5 @@ -1849,16 +1848,16 @@ LBB0_317: WORD $0xdac01087 // clz x7, x4 WORD $0xcb090385 // sub x5, x28, x9 WORD $0xeb07023f // cmp x17, x7 - WORD $0x540034a3 // b.lo LBB0_428 $1684(%rip) + WORD $0x54003483 // b.lo LBB0_428 $1680(%rip) WORD $0x8b0700b1 // add x17, x5, x7 WORD $0x14000022 // b LBB0_332 $136(%rip) LBB0_320: - WORD $0x35003487 // cbnz w7, LBB0_429 $1680(%rip) + WORD $0x35003467 // cbnz w7, LBB0_429 $1676(%rip) WORD $0x9100839c // add x28, x28, #32 WORD $0xaa1503f4 // mov x20, x21 LBB0_322: WORD $0xb5002505 // cbnz x5, LBB0_391 $1184(%rip) - WORD $0xb4002814 // cbz x20, LBB0_398 $1280(%rip) + WORD $0xb40027f4 // cbz x20, LBB0_398 $1276(%rip) LBB0_324: WORD $0xd2800005 // mov x5, #0 LBB0_325: @@ -1868,15 +1867,15 @@ LBB0_325: WORD $0x7101723f // cmp w17, #92 WORD $0x540000e0 // b.eq LBB0_329 $28(%rip) WORD $0x71007e3f // cmp w17, #31 - WORD $0x54003369 // b.ls LBB0_430 $1644(%rip) + WORD $0x54003349 // b.ls LBB0_430 $1640(%rip) WORD $0x910004a5 // add x5, x5, #1 WORD $0xeb05029f // cmp x20, x5 WORD $0x54fffee1 // b.ne LBB0_325 $-36(%rip) - WORD $0x14000134 // b LBB0_398 $1232(%rip) + WORD $0x14000133 // b LBB0_398 $1228(%rip) LBB0_329: WORD $0xd1000691 // sub x17, x20, #1 WORD $0xeb05023f // cmp x17, x5 - WORD $0x54002620 // b.eq LBB0_398 $1220(%rip) + WORD $0x54002600 // b.eq LBB0_398 $1216(%rip) WORD $0x8b050391 // add x17, x28, x5 WORD $0x8b0c0224 // add x4, x17, x12 WORD $0xb100051f // cmn x8, #1 @@ -1887,7 +1886,7 @@ LBB0_329: WORD $0xd1000a34 // sub x20, x17, #2 WORD $0xeb05009f // cmp x4, x5 WORD $0x54fffd01 // b.ne LBB0_324 $-96(%rip) - WORD $0x14000126 // b LBB0_398 $1176(%rip) + WORD $0x14000125 // b LBB0_398 $1172(%rip) LBB0_331: WORD $0x8b1c0191 // add x17, x12, x28 WORD $0x8b050231 // add x17, x17, x5 @@ -1955,7 +1954,7 @@ LBB0_341: WORD $0xb5fffef1 // cbnz x17, LBB0_341 $-36(%rip) WORD $0x14000009 // b LBB0_346 $36(%rip) LBB0_344: - WORD $0xb4001db1 // cbz x17, LBB0_398 $948(%rip) + WORD $0xb4001d91 // cbz x17, LBB0_398 $944(%rip) WORD $0x8b0b00f1 // add x17, x7, x11 WORD $0xb100051f // cmn x8, #1 WORD $0x9a880228 // csel x8, x17, x8, eq @@ -1966,7 +1965,7 @@ LBB0_344: LBB0_346: WORD $0x710088bf // cmp w5, #34 WORD $0x54000060 // b.eq LBB0_348 $12(%rip) - WORD $0x140000e3 // b LBB0_398 $908(%rip) + WORD $0x140000e2 // b LBB0_398 $904(%rip) LBB0_347: WORD $0xaa0703fc // mov x28, x7 LBB0_348: @@ -2033,7 +2032,7 @@ LBB0_356: WORD $0xb5fffef1 // cbnz x17, LBB0_356 $-36(%rip) WORD $0x14000009 // b LBB0_361 $36(%rip) LBB0_359: - WORD $0xb4001551 // cbz x17, LBB0_398 $680(%rip) + WORD $0xb4001531 // cbz x17, LBB0_398 $676(%rip) WORD $0x8b0b00f1 // add x17, x7, x11 WORD $0xb100051f // cmn x8, #1 WORD $0x9a880228 // csel x8, x17, x8, eq @@ -2044,7 +2043,7 @@ LBB0_359: LBB0_361: WORD $0x710088bf // cmp w5, #34 WORD $0x54000060 // b.eq LBB0_363 $12(%rip) - WORD $0x140000a0 // b LBB0_398 $640(%rip) + WORD $0x1400009f // b LBB0_398 $636(%rip) LBB0_362: WORD $0xaa0703fc // mov x28, x7 LBB0_363: @@ -2054,7 +2053,7 @@ LBB0_363: WORD $0xb20903e7 // mov x7, #36028797027352576 WORD $0xf2800027 // movk x7, #1 WORD $0xb6ff827c // tbz x28, #63, LBB0_151 $-4020(%rip) - WORD $0x14000096 // b LBB0_397 $600(%rip) + WORD $0x14000095 // b LBB0_397 $596(%rip) LBB0_364: WORD $0xdac000f1 // rbit x17, x7 WORD $0xdac01231 // clz x17, x17 @@ -2077,7 +2076,7 @@ LBB0_365: WORD $0x52800073 // mov w19, #3 WORD $0x17fffea3 // b LBB0_287 $-1396(%rip) LBB0_366: - WORD $0xb4001094 // cbz x20, LBB0_398 $528(%rip) + WORD $0xb4001074 // cbz x20, LBB0_398 $524(%rip) WORD $0x8b0b0391 // add x17, x28, x11 WORD $0xb100051f // cmn x8, #1 WORD $0x9a880228 // csel x8, x17, x8, eq @@ -2086,16 +2085,16 @@ LBB0_366: WORD $0xb5fff0d4 // cbnz x20, LBB0_341 $-488(%rip) WORD $0x17ffff9c // b LBB0_348 $-400(%rip) LBB0_368: - WORD $0xb4000f94 // cbz x20, LBB0_398 $496(%rip) + WORD $0xb4000f74 // cbz x20, LBB0_398 $492(%rip) WORD $0x8b0b0391 // add x17, x28, x11 WORD $0xb100051f // cmn x8, #1 WORD $0x9a880228 // csel x8, x17, x8, eq WORD $0x9100079c // add x28, x28, #1 WORD $0xd1000694 // sub x20, x20, #1 WORD $0xb5ffc634 // cbnz x20, LBB0_267 $-1852(%rip) - WORD $0x14000075 // b LBB0_398 $468(%rip) + WORD $0x14000074 // b LBB0_398 $464(%rip) LBB0_370: - WORD $0xb4000e94 // cbz x20, LBB0_398 $464(%rip) + WORD $0xb4000e74 // cbz x20, LBB0_398 $460(%rip) WORD $0x8b0b0391 // add x17, x28, x11 WORD $0xb100051f // cmn x8, #1 WORD $0x9a880228 // csel x8, x17, x8, eq @@ -2104,14 +2103,14 @@ LBB0_370: WORD $0xb5fff734 // cbnz x20, LBB0_356 $-284(%rip) WORD $0x17ffffcf // b LBB0_363 $-196(%rip) LBB0_372: - WORD $0xb4000d94 // cbz x20, LBB0_398 $432(%rip) + WORD $0xb4000d74 // cbz x20, LBB0_398 $428(%rip) WORD $0x8b0b0391 // add x17, x28, x11 WORD $0xb100051f // cmn x8, #1 WORD $0x9a880228 // csel x8, x17, x8, eq WORD $0x9100079c // add x28, x28, #1 WORD $0xd1000694 // sub x20, x20, #1 WORD $0xb5ffd3d4 // cbnz x20, LBB0_294 $-1416(%rip) - WORD $0x14000065 // b LBB0_398 $404(%rip) + WORD $0x14000064 // b LBB0_398 $400(%rip) LBB0_374: WORD $0xdac002b1 // rbit x17, x21 WORD $0xdac01231 // clz x17, x17 @@ -2151,7 +2150,7 @@ LBB0_379: WORD $0xb5fffef1 // cbnz x17, LBB0_379 $-36(%rip) WORD $0x14000009 // b LBB0_384 $36(%rip) LBB0_382: - WORD $0xb4000871 // cbz x17, LBB0_398 $268(%rip) + WORD $0xb4000851 // cbz x17, LBB0_398 $264(%rip) WORD $0x8b0b00f1 // add x17, x7, x11 WORD $0xb100051f // cmn x8, #1 WORD $0x9a880228 // csel x8, x17, x8, eq @@ -2163,7 +2162,7 @@ LBB0_384: WORD $0x710088bf // cmp w5, #34 WORD $0x52800073 // mov w19, #3 WORD $0x54ffeb00 // b.eq LBB0_348 $-672(%rip) - WORD $0x14000038 // b LBB0_398 $224(%rip) + WORD $0x14000037 // b LBB0_398 $220(%rip) LBB0_385: WORD $0xaa0703fc // mov x28, x7 WORD $0x52800073 // mov w19, #3 @@ -2189,7 +2188,7 @@ LBB0_387: WORD $0x8a140234 // and x20, x17, x20 WORD $0x17fffeca // b LBB0_317 $-1240(%rip) LBB0_388: - WORD $0xb4000454 // cbz x20, LBB0_398 $136(%rip) + WORD $0xb4000434 // cbz x20, LBB0_398 $132(%rip) WORD $0x8b0b0391 // add x17, x28, x11 WORD $0xb100051f // cmn x8, #1 WORD $0x9a880228 // csel x8, x17, x8, eq @@ -2200,25 +2199,24 @@ LBB0_390: WORD $0x52800073 // mov w19, #3 WORD $0x17ffff39 // b LBB0_348 $-796(%rip) LBB0_391: - WORD $0xb4000334 // cbz x20, LBB0_398 $100(%rip) + WORD $0xb4000314 // cbz x20, LBB0_398 $96(%rip) WORD $0x8b0b0391 // add x17, x28, x11 WORD $0xb100051f // cmn x8, #1 WORD $0x9a880228 // csel x8, x17, x8, eq WORD $0x9100079c // add x28, x28, #1 WORD $0xd1000694 // sub x20, x20, #1 WORD $0xb5ffda94 // cbnz x20, LBB0_324 $-1200(%rip) - WORD $0x14000012 // b LBB0_398 $72(%rip) + WORD $0x14000011 // b LBB0_398 $68(%rip) LBB0_393: WORD $0x92800008 // mov x8, #-1 LBB0_394: WORD $0xaa0803e0 // mov x0, x8 - WORD $0xa945fbfd // ldp fp, lr, [sp, #88] - WORD $0xa944cff4 // ldp x20, x19, [sp, #72] - WORD $0xa943d7f6 // ldp x22, x21, [sp, #56] - WORD $0xa942dff8 // ldp x24, x23, [sp, #40] - WORD $0xa941e7fa // ldp x26, x25, [sp, #24] - WORD $0xa940effc // ldp x28, x27, [sp, #8] - WORD $0x9101c3ff // add sp, sp, #112 + WORD $0xa9457bfd // ldp fp, lr, [sp, #80] + WORD $0xa9444ff4 // ldp x20, x19, [sp, #64] + WORD $0xa94357f6 // ldp x22, x21, [sp, #48] + WORD $0xa9425ff8 // ldp x24, x23, [sp, #32] + WORD $0xa94167fa // ldp x26, x25, [sp, #16] + WORD $0xa8c76ffc // ldp x28, x27, [sp], #112 WORD $0xd65f03c0 // ret LBB0_395: WORD $0x9280001c // mov x28, #-1 @@ -2226,7 +2224,7 @@ LBB0_395: WORD $0x1400000c // b LBB0_403 $48(%rip) LBB0_396: WORD $0x928000c8 // mov x8, #-7 - WORD $0x17fffff3 // b LBB0_394 $-52(%rip) + WORD $0x17fffff4 // b LBB0_394 $-48(%rip) LBB0_397: WORD $0xb100079f // cmn x28, #1 WORD $0x54000101 // b.ne LBB0_403 $32(%rip) @@ -2245,7 +2243,7 @@ LBB0_402: LBB0_403: WORD $0xf9000028 // str x8, [x1] WORD $0xaa1c03e8 // mov x8, x28 - WORD $0x17ffffe7 // b LBB0_394 $-100(%rip) + WORD $0x17ffffe8 // b LBB0_394 $-96(%rip) LBB0_404: WORD $0xb100051f // cmn x8, #1 WORD $0x54ffff61 // b.ne LBB0_402 $-20(%rip) @@ -2335,7 +2333,7 @@ LBB0_420: WORD $0x17ffffb0 // b LBB0_402 $-320(%rip) LBB0_425: WORD $0x92800028 // mov x8, #-2 - WORD $0x17ffff98 // b LBB0_394 $-416(%rip) + WORD $0x17ffff99 // b LBB0_394 $-412(%rip) LBB0_426: WORD $0xaa1403fe // mov lr, x20 WORD $0x8b140388 // add x8, x28, x20 diff --git a/internal/native/neon/skip_number_arm64.s b/internal/native/neon/skip_number_arm64.s index 887e75a2d..e779e47d0 100644 --- a/internal/native/neon/skip_number_arm64.s +++ b/internal/native/neon/skip_number_arm64.s @@ -56,9 +56,8 @@ lCPI0_1: // .byte 15 _skip_number: - WORD $0xd100c3ff // sub sp, sp, #48 - WORD $0xa900cff4 // stp x20, x19, [sp, #8] - WORD $0xa901fbfd // stp fp, lr, [sp, #24] + WORD $0xa9bd4ff4 // stp x20, x19, [sp, #-48]! + WORD $0xa9017bfd // stp fp, lr, [sp, #16] WORD $0xa93ffbfd // stp fp, lr, [sp, #-8] WORD $0xd10023fd // sub fp, sp, #8 WORD $0xaa0003e8 // mov x8, x0 @@ -72,18 +71,23 @@ _skip_number: WORD $0x9a8b1108 // csel x8, x8, x11, ne WORD $0xcb00014a // sub x10, x10, x0 WORD $0xeb0d014e // subs x14, x10, x13 - WORD $0x54001c40 // b.eq LBB0_59 $904(%rip) + WORD $0x54001ca0 // b.eq LBB0_59 $916(%rip) WORD $0x3940010a // ldrb w10, [x8] WORD $0x5100e94b // sub w11, w10, #58 WORD $0x3100297f // cmn w11, #10 - WORD $0x540017a3 // b.lo LBB0_52 $756(%rip) + WORD $0x54001823 // b.lo LBB0_52 $772(%rip) WORD $0x7100c15f // cmp w10, #48 - WORD $0x540001e1 // b.ne LBB0_6 $60(%rip) + WORD $0x54000281 // b.ne LBB0_6 $80(%rip) WORD $0xf10005df // cmp x14, #1 - WORD $0x54000061 // b.ne LBB0_5 $12(%rip) + WORD $0x54000101 // b.ne LBB0_5 $32(%rip) LBB0_4: WORD $0x5280002d // mov w13, #1 - WORD $0x140000a9 // b LBB0_47 $676(%rip) + WORD $0x8b0d0108 // add x8, x8, x13 + WORD $0xcb090108 // sub x8, x8, x9 + WORD $0xf9000028 // str x8, [x1] + WORD $0xa9417bfd // ldp fp, lr, [sp, #16] + WORD $0xa8c34ff4 // ldp x20, x19, [sp], #48 + WORD $0xd65f03c0 // ret LBB0_5: WORD $0x3940050a // ldrb w10, [x8, #1] WORD $0x5100b94a // sub w10, w10, #46 @@ -94,10 +98,10 @@ LBB0_5: WORD $0xf280002b // movk x11, #1 WORD $0x8a0b014a // and x10, x10, x11 WORD $0xfa409944 // ccmp x10, #0, #4, ls - WORD $0x54fffea0 // b.eq LBB0_4 $-44(%rip) + WORD $0x54fffe00 // b.eq LBB0_4 $-64(%rip) LBB0_6: WORD $0xf10041df // cmp x14, #16 - WORD $0x54001a63 // b.lo LBB0_60 $844(%rip) + WORD $0x54001a03 // b.lo LBB0_60 $832(%rip) WORD $0xd2800010 // mov x16, #0 WORD $0xd280000f // mov x15, #0 WORD $0x9280000a // mov x10, #-1 @@ -107,13 +111,13 @@ LBB0_6: WORD $0x4f06e603 // movi.16b v3, #208 WORD $0x4f00e544 // movi.16b v4, #10 Lloh0: - WORD $0x10fff92b // adr x11, lCPI0_0 $-220(%rip) + WORD $0x10fff8ab // adr x11, lCPI0_0 $-236(%rip) Lloh1: WORD $0x3dc00165 // ldr q5, [x11, lCPI0_0@PAGEOFF] $0(%rip) WORD $0x4f06e7e6 // movi.16b v6, #223 WORD $0x4f02e4a7 // movi.16b v7, #69 Lloh2: - WORD $0x10fff92b // adr x11, lCPI0_1 $-220(%rip) + WORD $0x10fff8ab // adr x11, lCPI0_1 $-236(%rip) Lloh3: WORD $0x3dc00170 // ldr q16, [x11, lCPI0_1@PAGEOFF] $0(%rip) WORD $0x12800011 // mov w17, #-1 @@ -162,32 +166,32 @@ LBB0_8: WORD $0x1a9400c3 // csel w3, w6, w20, eq WORD $0x510004a6 // sub w6, w5, #1 WORD $0x6a0500c6 // ands w6, w6, w5 - WORD $0x54001041 // b.ne LBB0_55 $520(%rip) + WORD $0x54001001 // b.ne LBB0_55 $512(%rip) WORD $0x51000486 // sub w6, w4, #1 WORD $0x6a0400c6 // ands w6, w6, w4 - WORD $0x54000fe1 // b.ne LBB0_55 $508(%rip) + WORD $0x54000fa1 // b.ne LBB0_55 $500(%rip) WORD $0x51000466 // sub w6, w3, #1 WORD $0x6a0300c6 // ands w6, w6, w3 - WORD $0x54000f81 // b.ne LBB0_55 $496(%rip) + WORD $0x54000f41 // b.ne LBB0_55 $488(%rip) WORD $0x340000c5 // cbz w5, LBB0_14 $24(%rip) WORD $0x5ac000a5 // rbit w5, w5 WORD $0x5ac010a5 // clz w5, w5 WORD $0xb100057f // cmn x11, #1 - WORD $0x54000f81 // b.ne LBB0_56 $496(%rip) + WORD $0x54000f41 // b.ne LBB0_56 $488(%rip) WORD $0x8b0501eb // add x11, x15, x5 LBB0_14: WORD $0x340000c4 // cbz w4, LBB0_17 $24(%rip) WORD $0x5ac00084 // rbit w4, w4 WORD $0x5ac01084 // clz w4, w4 WORD $0xb100059f // cmn x12, #1 - WORD $0x54000f21 // b.ne LBB0_57 $484(%rip) + WORD $0x54000ee1 // b.ne LBB0_57 $476(%rip) WORD $0x8b0401ec // add x12, x15, x4 LBB0_17: WORD $0x340000c3 // cbz w3, LBB0_20 $24(%rip) WORD $0x5ac00063 // rbit w3, w3 WORD $0x5ac01063 // clz w3, w3 WORD $0xb100055f // cmn x10, #1 - WORD $0x54000ec1 // b.ne LBB0_58 $472(%rip) + WORD $0x54000e81 // b.ne LBB0_58 $464(%rip) WORD $0x8b0301ea // add x10, x15, x3 LBB0_20: WORD $0x7100405f // cmp w2, #16 @@ -218,7 +222,7 @@ LBB0_25: WORD $0x910005ef // add x15, x15, #1 WORD $0xaa1103f0 // mov x16, x17 WORD $0xd1000442 // sub x2, x2, #1 - WORD $0xb4000882 // cbz x2, LBB0_53 $272(%rip) + WORD $0xb4000842 // cbz x2, LBB0_53 $264(%rip) LBB0_26: WORD $0x38401623 // ldrb w3, [x17], #1 WORD $0x5100c064 // sub w4, w3, #48 @@ -251,10 +255,10 @@ LBB0_35: WORD $0x8b0f01b0 // add x16, x13, x15 LBB0_36: WORD $0x9280000d // mov x13, #-1 - WORD $0xb40003eb // cbz x11, LBB0_51 $124(%rip) + WORD $0xb40003cb // cbz x11, LBB0_51 $120(%rip) LBB0_37: - WORD $0xb40003ca // cbz x10, LBB0_51 $120(%rip) - WORD $0xb40003ac // cbz x12, LBB0_51 $116(%rip) + WORD $0xb40003aa // cbz x10, LBB0_51 $116(%rip) + WORD $0xb400038c // cbz x12, LBB0_51 $112(%rip) WORD $0xcb08020d // sub x13, x16, x8 WORD $0xd10005ae // sub x14, x13, #1 WORD $0xeb0e017f // cmp x11, x14 @@ -264,28 +268,26 @@ LBB0_37: WORD $0xeb0e019f // cmp x12, x14 WORD $0x540000e0 // b.eq LBB0_45 $28(%rip) WORD $0xf100054e // subs x14, x10, #1 - WORD $0x540001cb // b.lt LBB0_48 $56(%rip) + WORD $0x540001ab // b.lt LBB0_48 $52(%rip) WORD $0xeb0e019f // cmp x12, x14 - WORD $0x54000180 // b.eq LBB0_48 $48(%rip) + WORD $0x54000160 // b.eq LBB0_48 $44(%rip) WORD $0xaa2a03ed // mvn x13, x10 - WORD $0x1400000f // b LBB0_51 $60(%rip) + WORD $0x1400000e // b LBB0_51 $56(%rip) LBB0_45: WORD $0xcb0d03ed // neg x13, x13 LBB0_46: - WORD $0xb7f801ad // tbnz x13, #63, LBB0_51 $52(%rip) -LBB0_47: + WORD $0xb7f8018d // tbnz x13, #63, LBB0_51 $48(%rip) WORD $0x8b0d0108 // add x8, x8, x13 WORD $0xcb090108 // sub x8, x8, x9 WORD $0xf9000028 // str x8, [x1] - WORD $0xa941fbfd // ldp fp, lr, [sp, #24] - WORD $0xa940cff4 // ldp x20, x19, [sp, #8] - WORD $0x9100c3ff // add sp, sp, #48 + WORD $0xa9417bfd // ldp fp, lr, [sp, #16] + WORD $0xa8c34ff4 // ldp x20, x19, [sp], #48 WORD $0xd65f03c0 // ret LBB0_48: WORD $0xaa0c016a // orr x10, x11, x12 - WORD $0xb7f8022a // tbnz x10, #63, LBB0_54 $68(%rip) + WORD $0xb7f8020a // tbnz x10, #63, LBB0_54 $64(%rip) WORD $0xeb0c017f // cmp x11, x12 - WORD $0x540001eb // b.lt LBB0_54 $60(%rip) + WORD $0x540001cb // b.lt LBB0_54 $56(%rip) WORD $0xaa2b03ed // mvn x13, x11 LBB0_51: WORD $0xaa2d03ea // mvn x10, x13 @@ -294,15 +296,14 @@ LBB0_52: WORD $0x92800020 // mov x0, #-2 WORD $0xcb090108 // sub x8, x8, x9 WORD $0xf9000028 // str x8, [x1] - WORD $0xa941fbfd // ldp fp, lr, [sp, #24] - WORD $0xa940cff4 // ldp x20, x19, [sp, #8] - WORD $0x9100c3ff // add sp, sp, #48 + WORD $0xa9417bfd // ldp fp, lr, [sp, #16] + WORD $0xa8c34ff4 // ldp x20, x19, [sp], #48 WORD $0xd65f03c0 // ret LBB0_53: WORD $0xaa0e03f0 // mov x16, x14 WORD $0x9280000d // mov x13, #-1 - WORD $0xb5fffaeb // cbnz x11, LBB0_37 $-164(%rip) - WORD $0x17fffff4 // b LBB0_51 $-48(%rip) + WORD $0xb5fffb2b // cbnz x11, LBB0_37 $-156(%rip) + WORD $0x17fffff5 // b LBB0_51 $-44(%rip) LBB0_54: WORD $0xd37ffd4a // lsr x10, x10, #63 WORD $0x5200014a // eor w10, w10, #0x1 @@ -311,32 +312,31 @@ LBB0_54: WORD $0x1a9f17eb // cset w11, eq WORD $0x6a0b015f // tst w10, w11 WORD $0xda8c01ad // csinv x13, x13, x12, eq - WORD $0x17ffffdf // b LBB0_46 $-132(%rip) + WORD $0x17ffffe1 // b LBB0_46 $-124(%rip) LBB0_55: WORD $0x5ac000ca // rbit w10, w6 WORD $0x5ac0114a // clz w10, w10 WORD $0xaa2f03eb // mvn x11, x15 WORD $0xcb0a016d // sub x13, x11, x10 - WORD $0x17ffffda // b LBB0_46 $-152(%rip) + WORD $0x17ffffdc // b LBB0_46 $-144(%rip) LBB0_56: WORD $0xaa2f03ea // mvn x10, x15 WORD $0xcb25414d // sub x13, x10, w5, uxtw - WORD $0x17ffffd7 // b LBB0_46 $-164(%rip) + WORD $0x17ffffd9 // b LBB0_46 $-156(%rip) LBB0_57: WORD $0xaa2f03ea // mvn x10, x15 WORD $0xcb24414d // sub x13, x10, w4, uxtw - WORD $0x17ffffd4 // b LBB0_46 $-176(%rip) + WORD $0x17ffffd6 // b LBB0_46 $-168(%rip) LBB0_58: WORD $0xaa2f03ea // mvn x10, x15 WORD $0xcb23414d // sub x13, x10, w3, uxtw - WORD $0x17ffffd1 // b LBB0_46 $-188(%rip) + WORD $0x17ffffd3 // b LBB0_46 $-180(%rip) LBB0_59: WORD $0x92800000 // mov x0, #-1 WORD $0xcb090108 // sub x8, x8, x9 WORD $0xf9000028 // str x8, [x1] - WORD $0xa941fbfd // ldp fp, lr, [sp, #24] - WORD $0xa940cff4 // ldp x20, x19, [sp, #8] - WORD $0x9100c3ff // add sp, sp, #48 + WORD $0xa9417bfd // ldp fp, lr, [sp, #16] + WORD $0xa8c34ff4 // ldp x20, x19, [sp], #48 WORD $0xd65f03c0 // ret LBB0_60: WORD $0x9280000b // mov x11, #-1 @@ -344,7 +344,7 @@ LBB0_60: WORD $0xaa0e03e2 // mov x2, x14 WORD $0x9280000c // mov x12, #-1 WORD $0x9280000a // mov x10, #-1 - WORD $0x17ffff87 // b LBB0_23 $-484(%rip) + WORD $0x17ffff8a // b LBB0_23 $-472(%rip) // .p2align 2, 0x00 _MASK_USE_NUMBER: WORD $0x00000002 // .long 2 diff --git a/internal/native/neon/skip_object_arm64.s b/internal/native/neon/skip_object_arm64.s index 6e46115bf..b108a34af 100644 --- a/internal/native/neon/skip_object_arm64.s +++ b/internal/native/neon/skip_object_arm64.s @@ -59,17 +59,16 @@ lCPI0_2: // .byte 15 _skip_object: - WORD $0xd101c3ff // sub sp, sp, #112 - WORD $0xa900effc // stp x28, x27, [sp, #8] - WORD $0xa901e7fa // stp x26, x25, [sp, #24] - WORD $0xa902dff8 // stp x24, x23, [sp, #40] - WORD $0xa903d7f6 // stp x22, x21, [sp, #56] - WORD $0xa904cff4 // stp x20, x19, [sp, #72] - WORD $0xa905fbfd // stp fp, lr, [sp, #88] + WORD $0xa9b96ffc // stp x28, x27, [sp, #-112]! + WORD $0xa90167fa // stp x26, x25, [sp, #16] + WORD $0xa9025ff8 // stp x24, x23, [sp, #32] + WORD $0xa90357f6 // stp x22, x21, [sp, #48] + WORD $0xa9044ff4 // stp x20, x19, [sp, #64] + WORD $0xa9057bfd // stp fp, lr, [sp, #80] WORD $0xa93ffbfd // stp fp, lr, [sp, #-8] WORD $0xd10023fd // sub fp, sp, #8 Lloh0: - WORD $0x10fffd68 // adr x8, lCPI0_0 $-84(%rip) + WORD $0x10fffd88 // adr x8, lCPI0_0 $-80(%rip) Lloh1: WORD $0x3dc00100 // ldr q0, [x8, lCPI0_0@PAGEOFF] $0(%rip) WORD $0xaa0203ea // mov x10, x2 @@ -88,11 +87,11 @@ Lloh1: WORD $0x4f01e440 // movi.16b v0, #34 WORD $0x4f02e781 // movi.16b v1, #92 Lloh2: - WORD $0x10fffbc8 // adr x8, lCPI0_1 $-136(%rip) + WORD $0x10fffbe8 // adr x8, lCPI0_1 $-132(%rip) Lloh3: WORD $0x3dc00102 // ldr q2, [x8, lCPI0_1@PAGEOFF] $0(%rip) Lloh4: - WORD $0x10fffc08 // adr x8, lCPI0_2 $-128(%rip) + WORD $0x10fffc28 // adr x8, lCPI0_2 $-124(%rip) Lloh5: WORD $0x3dc00103 // ldr q3, [x8, lCPI0_2@PAGEOFF] $0(%rip) WORD $0x92f00006 // mov x6, #9223372036854775807 @@ -160,7 +159,7 @@ LBB0_14: LBB0_18: WORD $0x9100139b // add x27, x28, #4 WORD $0xeb08037f // cmp x27, x8 - WORD $0x5400e922 // b.hs LBB0_395 $7460(%rip) + WORD $0x5400e902 // b.hs LBB0_395 $7456(%rip) LBB0_19: WORD $0x387b6931 // ldrb w17, [x9, x27] WORD $0x7100823f // cmp w17, #32 @@ -194,13 +193,13 @@ LBB0_22: WORD $0x71000d1f // cmp w8, #3 WORD $0x540019c1 // b.ne LBB0_58 $824(%rip) WORD $0x71008abf // cmp w21, #34 - WORD $0x5400f101 // b.ne LBB0_425 $7712(%rip) + WORD $0x5400f0e1 // b.ne LBB0_425 $7708(%rip) WORD $0x3200f3e6 // mov w6, #1431655765 WORD $0xf8347944 // str x4, [x10, x20, lsl #3] WORD $0xf9400408 // ldr x8, [x0, #8] WORD $0xeb1c0114 // subs x20, x8, x28 WORD $0x372831a3 // tbnz w3, #5, LBB0_109 $1588(%rip) - WORD $0x5400e560 // b.eq LBB0_398 $7340(%rip) + WORD $0x5400e540 // b.eq LBB0_398 $7336(%rip) WORD $0xf101029f // cmp x20, #64 WORD $0x54009103 // b.lo LBB0_250 $4640(%rip) WORD $0xd2800005 // mov x5, #0 @@ -306,7 +305,7 @@ LBB0_39: WORD $0xf9400408 // ldr x8, [x0, #8] WORD $0xeb1c0114 // subs x20, x8, x28 WORD $0x37283923 // tbnz w3, #5, LBB0_138 $1828(%rip) - WORD $0x5400d8e0 // b.eq LBB0_398 $6940(%rip) + WORD $0x5400d8c0 // b.eq LBB0_398 $6936(%rip) WORD $0xf101029f // cmp x20, #64 WORD $0x54009423 // b.lo LBB0_277 $4740(%rip) WORD $0xd2800005 // mov x5, #0 @@ -402,10 +401,10 @@ LBB0_54: WORD $0x540017e0 // b.eq LBB0_105 $764(%rip) WORD $0x710176bf // cmp w21, #93 WORD $0x54001420 // b.eq LBB0_97 $644(%rip) - WORD $0x140006c4 // b LBB0_425 $6928(%rip) + WORD $0x140006c3 // b LBB0_425 $6924(%rip) LBB0_56: WORD $0x7100eabf // cmp w21, #58 - WORD $0x5400d841 // b.ne LBB0_425 $6920(%rip) + WORD $0x5400d821 // b.ne LBB0_425 $6916(%rip) WORD $0xf834795f // str xzr, [x10, x20, lsl #3] WORD $0xf9400045 // ldr x5, [x2] WORD $0xaa0e03e8 // mov x8, x14 @@ -422,7 +421,7 @@ LBB0_59: WORD $0x54003d02 // b.hs LBB0_154 $1952(%rip) WORD $0xf9400408 // ldr x8, [x0, #8] WORD $0xeb1b0115 // subs x21, x8, x27 - WORD $0x5400cbe0 // b.eq LBB0_399 $6524(%rip) + WORD $0x5400cbc0 // b.eq LBB0_399 $6520(%rip) WORD $0x394003c8 // ldrb w8, [lr] WORD $0x7100c11f // cmp w8, #48 WORD $0x54000141 // b.ne LBB0_65 $40(%rip) @@ -575,7 +574,7 @@ LBB0_94: LBB0_95: WORD $0x7101f6bf // cmp w21, #125 WORD $0x54000080 // b.eq LBB0_97 $16(%rip) - WORD $0x14000627 // b LBB0_425 $6300(%rip) + WORD $0x14000626 // b LBB0_425 $6296(%rip) LBB0_96: WORD $0x710176bf // cmp w21, #93 WORD $0x540000c1 // b.ne LBB0_98 $24(%rip) @@ -601,7 +600,7 @@ LBB0_99: WORD $0x5400b5a1 // b.ne LBB0_394 $5812(%rip) WORD $0xf9400048 // ldr x8, [x2] WORD $0xf13ffd1f // cmp x8, #4095 - WORD $0x5400b6cc // b.gt LBB0_396 $5848(%rip) + WORD $0x5400b6ac // b.gt LBB0_396 $5844(%rip) WORD $0x91000511 // add x17, x8, #1 WORD $0xf9000051 // str x17, [x2] WORD $0x528000d1 // mov w17, #6 @@ -612,7 +611,7 @@ LBB0_99: WORD $0x140005a2 // b LBB0_394 $5768(%rip) LBB0_105: WORD $0xf13ffcbf // cmp x5, #4095 - WORD $0x5400b58c // b.gt LBB0_396 $5808(%rip) + WORD $0x5400b56c // b.gt LBB0_396 $5804(%rip) WORD $0x910004a8 // add x8, x5, #1 WORD $0xf9000048 // str x8, [x2] WORD $0xf825795f // str xzr, [x10, x5, lsl #3] @@ -622,7 +621,7 @@ LBB0_105: WORD $0x14000599 // b LBB0_394 $5732(%rip) LBB0_107: WORD $0xf13ffcbf // cmp x5, #4095 - WORD $0x5400b46c // b.gt LBB0_396 $5772(%rip) + WORD $0x5400b44c // b.gt LBB0_396 $5768(%rip) WORD $0x910004a8 // add x8, x5, #1 WORD $0xf9000048 // str x8, [x2] WORD $0xf8257953 // str x19, [x10, x5, lsl #3] @@ -631,7 +630,7 @@ LBB0_107: WORD $0xb5ffc425 // cbnz x5, LBB0_1 $-1916(%rip) WORD $0x14000590 // b LBB0_394 $5696(%rip) LBB0_109: - WORD $0x5400b3e0 // b.eq LBB0_398 $5756(%rip) + WORD $0x5400b3c0 // b.eq LBB0_398 $5752(%rip) WORD $0xf101029f // cmp x20, #64 WORD $0x54006403 // b.lo LBB0_256 $3200(%rip) WORD $0xd2800005 // mov x5, #0 @@ -719,7 +718,7 @@ LBB0_114: WORD $0xaa1502d5 // orr x21, x22, x21 WORD $0xaa1102b1 // orr x17, x21, x17 WORD $0xb50002e7 // cbnz x7, LBB0_119 $92(%rip) - WORD $0xb500aa71 // cbnz x17, LBB0_404 $5452(%rip) + WORD $0xb500aa51 // cbnz x17, LBB0_404 $5448(%rip) WORD $0xd1010294 // sub x20, x20, #64 WORD $0x9101039c // add x28, x28, #64 WORD $0xf100fe9f // cmp x20, #63 @@ -749,7 +748,7 @@ LBB0_119: WORD $0xdac00231 // rbit x17, x17 WORD $0xdac01231 // clz x17, x17 WORD $0xeb05023f // cmp x17, x5 - WORD $0x5400b143 // b.lo LBB0_427 $5672(%rip) + WORD $0x5400b123 // b.lo LBB0_427 $5668(%rip) LBB0_120: WORD $0x8b1c00b1 // add x17, x5, x28 LBB0_121: @@ -760,16 +759,16 @@ LBB0_122: WORD $0xb20903e7 // mov x7, #36028797027352576 WORD $0xf2800027 // movk x7, #1 WORD $0xb6f81c9c // tbz x28, #63, LBB0_170 $912(%rip) - WORD $0x14000524 // b LBB0_397 $5264(%rip) + WORD $0x14000523 // b LBB0_397 $5260(%rip) LBB0_123: WORD $0x8b2743d1 // add x17, lr, w7, uxtw WORD $0x8b1c0236 // add x22, x17, x28 LBB0_124: WORD $0x92800015 // mov x21, #-1 - WORD $0xb400a4c8 // cbz x8, LBB0_400 $5272(%rip) + WORD $0xb400a4a8 // cbz x8, LBB0_400 $5268(%rip) LBB0_125: - WORD $0xb400a4b4 // cbz x20, LBB0_400 $5268(%rip) - WORD $0xb400a485 // cbz x5, LBB0_400 $5264(%rip) + WORD $0xb400a494 // cbz x20, LBB0_400 $5264(%rip) + WORD $0xb400a465 // cbz x5, LBB0_400 $5260(%rip) WORD $0xcb1e02c7 // sub x7, x22, lr WORD $0xd10004f1 // sub x17, x7, #1 WORD $0xeb11011f // cmp x8, x17 @@ -781,12 +780,12 @@ LBB0_125: WORD $0xf1000691 // subs x17, x20, #1 WORD $0x5400006b // b.lt LBB0_132 $12(%rip) WORD $0xeb1100bf // cmp x5, x17 - WORD $0x5400a321 // b.ne LBB0_401 $5220(%rip) + WORD $0x5400a301 // b.ne LBB0_401 $5216(%rip) LBB0_132: WORD $0xaa050111 // orr x17, x8, x5 WORD $0xb7f80071 // tbnz x17, #63, LBB0_134 $12(%rip) WORD $0xeb05011f // cmp x8, x5 - WORD $0x5400a44a // b.ge LBB0_407 $5256(%rip) + WORD $0x5400a42a // b.ge LBB0_407 $5252(%rip) LBB0_134: WORD $0xd37ffe31 // lsr x17, x17, #63 WORD $0x52000231 // eor w17, w17, #0x1 @@ -803,11 +802,11 @@ LBB0_136: WORD $0x92f00006 // mov x6, #9223372036854775807 WORD $0xb20903e7 // mov x7, #36028797027352576 WORD $0xf2800027 // movk x7, #1 - WORD $0xb7f8a0d5 // tbnz x21, #63, LBB0_400 $5144(%rip) + WORD $0xb7f8a0b5 // tbnz x21, #63, LBB0_400 $5140(%rip) WORD $0x8b15037c // add x28, x27, x21 WORD $0x140000bd // b LBB0_170 $756(%rip) LBB0_138: - WORD $0x54009fe0 // b.eq LBB0_398 $5116(%rip) + WORD $0x54009fc0 // b.eq LBB0_398 $5112(%rip) WORD $0xf101029f // cmp x20, #64 WORD $0x54005fa3 // b.lo LBB0_283 $3060(%rip) WORD $0xd2800005 // mov x5, #0 @@ -895,7 +894,7 @@ LBB0_143: WORD $0xaa1502d5 // orr x21, x22, x21 WORD $0xaa1102b1 // orr x17, x21, x17 WORD $0xb50002e7 // cbnz x7, LBB0_148 $92(%rip) - WORD $0xb5009671 // cbnz x17, LBB0_404 $4812(%rip) + WORD $0xb5009651 // cbnz x17, LBB0_404 $4808(%rip) WORD $0xd1010294 // sub x20, x20, #64 WORD $0x9101039c // add x28, x28, #64 WORD $0xf100fe9f // cmp x20, #63 @@ -925,7 +924,7 @@ LBB0_148: WORD $0xdac00231 // rbit x17, x17 WORD $0xdac01231 // clz x17, x17 WORD $0xeb05023f // cmp x17, x5 - WORD $0x54009d43 // b.lo LBB0_427 $5032(%rip) + WORD $0x54009d23 // b.lo LBB0_427 $5028(%rip) WORD $0x8b1c00b1 // add x17, x5, x28 LBB0_150: WORD $0x9100063c // add x28, x17, #1 @@ -933,7 +932,7 @@ LBB0_150: WORD $0x92f00006 // mov x6, #9223372036854775807 WORD $0xb20903e7 // mov x7, #36028797027352576 WORD $0xf2800027 // movk x7, #1 - WORD $0xb7f890bc // tbnz x28, #63, LBB0_397 $4628(%rip) + WORD $0xb7f8909c // tbnz x28, #63, LBB0_397 $4624(%rip) LBB0_151: WORD $0xf900003c // str x28, [x1] WORD $0xaa1b03e8 // mov x8, x27 @@ -942,7 +941,7 @@ LBB0_151: WORD $0x54008e48 // b.hi LBB0_394 $4552(%rip) WORD $0xf9400048 // ldr x8, [x2] WORD $0xf13ffd1f // cmp x8, #4095 - WORD $0x54008f6c // b.gt LBB0_396 $4588(%rip) + WORD $0x54008f4c // b.gt LBB0_396 $4584(%rip) WORD $0x91000511 // add x17, x8, #1 WORD $0xf9000051 // str x17, [x2] WORD $0xf8287944 // str x4, [x10, x8, lsl #3] @@ -957,7 +956,7 @@ LBB0_154: WORD $0x54008c81 // b.ne LBB0_394 $4496(%rip) WORD $0xf9400408 // ldr x8, [x0, #8] WORD $0xeb1c0118 // subs x24, x8, x28 - WORD $0x540090c0 // b.eq LBB0_408 $4632(%rip) + WORD $0x540090a0 // b.eq LBB0_408 $4628(%rip) WORD $0xb20903e4 // mov x4, #36028797027352576 WORD $0xf2800024 // movk x4, #1 WORD $0x8b1c0128 // add x8, x9, x28 @@ -977,35 +976,35 @@ LBB0_160: WORD $0xf9400408 // ldr x8, [x0, #8] WORD $0xd1001111 // sub x17, x8, #4 WORD $0xeb11037f // cmp x27, x17 - WORD $0x54008de2 // b.hs LBB0_406 $4540(%rip) + WORD $0x54008dc2 // b.hs LBB0_406 $4536(%rip) WORD $0xb87c6928 // ldr w8, [x9, x28] WORD $0x528d8c31 // mov w17, #27745 WORD $0x72acae71 // movk w17, #25971, lsl #16 WORD $0x6b11011f // cmp w8, w17 - WORD $0x54009381 // b.ne LBB0_420 $4720(%rip) + WORD $0x54009361 // b.ne LBB0_420 $4716(%rip) WORD $0x9100177c // add x28, x27, #5 WORD $0x14000015 // b LBB0_170 $84(%rip) LBB0_165: WORD $0xf9400408 // ldr x8, [x0, #8] WORD $0xd1000d11 // sub x17, x8, #3 WORD $0xeb11037f // cmp x27, x17 - WORD $0x54008c82 // b.hs LBB0_406 $4496(%rip) + WORD $0x54008c62 // b.hs LBB0_406 $4492(%rip) WORD $0xb87b6928 // ldr w8, [x9, x27] WORD $0x528e4e91 // mov w17, #29300 WORD $0x72acaeb1 // movk w17, #25973, lsl #16 WORD $0x6b11011f // cmp w8, w17 WORD $0x54000160 // b.eq LBB0_169 $44(%rip) - WORD $0x1400047b // b LBB0_415 $4588(%rip) + WORD $0x1400047a // b LBB0_415 $4584(%rip) LBB0_167: WORD $0xf9400408 // ldr x8, [x0, #8] WORD $0xd1000d11 // sub x17, x8, #3 WORD $0xeb11037f // cmp x27, x17 - WORD $0x54008b42 // b.hs LBB0_406 $4456(%rip) + WORD $0x54008b22 // b.hs LBB0_406 $4452(%rip) WORD $0xb87b6928 // ldr w8, [x9, x27] WORD $0x528eadd1 // mov w17, #30062 WORD $0x72ad8d91 // movk w17, #27756, lsl #16 WORD $0x6b11011f // cmp w8, w17 - WORD $0x54008bc1 // b.ne LBB0_411 $4472(%rip) + WORD $0x54008ba1 // b.ne LBB0_411 $4468(%rip) LBB0_169: WORD $0x9100137c // add x28, x27, #4 LBB0_170: @@ -1021,7 +1020,7 @@ LBB0_171: LBB0_172: WORD $0xf9400048 // ldr x8, [x2] WORD $0xf13ffd1f // cmp x8, #4095 - WORD $0x540086ac // b.gt LBB0_396 $4308(%rip) + WORD $0x5400868c // b.gt LBB0_396 $4304(%rip) WORD $0x91000511 // add x17, x8, #1 WORD $0xf9000051 // str x17, [x2] WORD $0x528000b1 // mov w17, #5 @@ -1035,7 +1034,7 @@ LBB0_174: WORD $0xf9400408 // ldr x8, [x0, #8] WORD $0xeb1c0114 // subs x20, x8, x28 WORD $0x37280b43 // tbnz w3, #5, LBB0_185 $360(%rip) - WORD $0x54008580 // b.eq LBB0_398 $4272(%rip) + WORD $0x54008560 // b.eq LBB0_398 $4268(%rip) WORD $0xf101029f // cmp x20, #64 WORD $0x540051e3 // b.lo LBB0_307 $2620(%rip) WORD $0xd2800005 // mov x5, #0 @@ -1128,9 +1127,9 @@ LBB0_184: WORD $0xaa1803f6 // mov x22, x24 WORD $0x92800015 // mov x21, #-1 WORD $0xb5ffd688 // cbnz x8, LBB0_125 $-1328(%rip) - WORD $0x140003d8 // b LBB0_400 $3936(%rip) + WORD $0x140003d7 // b LBB0_400 $3932(%rip) LBB0_185: - WORD $0x54007a60 // b.eq LBB0_398 $3916(%rip) + WORD $0x54007a40 // b.eq LBB0_398 $3912(%rip) WORD $0xf101029f // cmp x20, #64 WORD $0x54004b43 // b.lo LBB0_313 $2408(%rip) WORD $0xd2800005 // mov x5, #0 @@ -1218,7 +1217,7 @@ LBB0_190: WORD $0xaa0400c4 // orr x4, x6, x4 WORD $0xaa110091 // orr x17, x4, x17 WORD $0xb50002e7 // cbnz x7, LBB0_195 $92(%rip) - WORD $0xb50070f1 // cbnz x17, LBB0_404 $3612(%rip) + WORD $0xb50070d1 // cbnz x17, LBB0_404 $3608(%rip) WORD $0xd1010294 // sub x20, x20, #64 WORD $0x9101039c // add x28, x28, #64 WORD $0xf100fe9f // cmp x20, #63 @@ -1250,7 +1249,7 @@ LBB0_195: WORD $0xeb05023f // cmp x17, x5 WORD $0x52800073 // mov w19, #3 WORD $0x54ffc682 // b.hs LBB0_120 $-1840(%rip) - WORD $0x140003bc // b LBB0_427 $3824(%rip) + WORD $0x140003bb // b LBB0_427 $3820(%rip) LBB0_196: WORD $0x39400511 // ldrb w17, [x8, #1] WORD $0x5100ba31 // sub w17, w17, #46 @@ -1400,10 +1399,10 @@ LBB0_230: WORD $0x52800073 // mov w19, #3 LBB0_231: WORD $0x92800007 // mov x7, #-1 - WORD $0xb4005dd4 // cbz x20, LBB0_409 $3000(%rip) + WORD $0xb4005db4 // cbz x20, LBB0_409 $2996(%rip) LBB0_232: - WORD $0xb4005dbe // cbz lr, LBB0_409 $2996(%rip) - WORD $0xb4005d85 // cbz x5, LBB0_409 $2992(%rip) + WORD $0xb4005d9e // cbz lr, LBB0_409 $2992(%rip) + WORD $0xb4005d65 // cbz x5, LBB0_409 $2988(%rip) WORD $0xcb0802c8 // sub x8, x22, x8 WORD $0xd1000511 // sub x17, x8, #1 WORD $0xeb11029f // cmp x20, x17 @@ -1415,12 +1414,12 @@ LBB0_232: WORD $0xf10007d1 // subs x17, lr, #1 WORD $0x5400006b // b.lt LBB0_239 $12(%rip) WORD $0xeb1100bf // cmp x5, x17 - WORD $0x54005c21 // b.ne LBB0_410 $2948(%rip) + WORD $0x54005c01 // b.ne LBB0_410 $2944(%rip) LBB0_239: WORD $0xaa050291 // orr x17, x20, x5 WORD $0xb7f80071 // tbnz x17, #63, LBB0_241 $12(%rip) WORD $0xeb05029f // cmp x20, x5 - WORD $0x540063ea // b.ge LBB0_426 $3196(%rip) + WORD $0x540063ca // b.ge LBB0_426 $3192(%rip) LBB0_241: WORD $0xd37ffe31 // lsr x17, x17, #63 WORD $0x52000231 // eor w17, w17, #0x1 @@ -1433,7 +1432,7 @@ LBB0_241: LBB0_242: WORD $0xcb0803e7 // neg x7, x8 LBB0_243: - WORD $0xb7f85a47 // tbnz x7, #63, LBB0_409 $2888(%rip) + WORD $0xb7f85a27 // tbnz x7, #63, LBB0_409 $2884(%rip) LBB0_244: WORD $0x8b1c00fc // add x28, x7, x28 WORD $0xf900003c // str x28, [x1] @@ -1465,7 +1464,7 @@ LBB0_249: WORD $0xaa0603f6 // mov x22, x6 WORD $0x92800007 // mov x7, #-1 WORD $0xb5fff994 // cbnz x20, LBB0_232 $-208(%rip) - WORD $0x140002b8 // b LBB0_409 $2784(%rip) + WORD $0x140002b7 // b LBB0_409 $2780(%rip) LBB0_250: WORD $0xd2800005 // mov x5, #0 WORD $0x8b1c013c // add x28, x9, x28 @@ -1556,16 +1555,16 @@ LBB0_260: WORD $0xdac010a7 // clz x7, x5 WORD $0xcb090385 // sub x5, x28, x9 WORD $0xeb07023f // cmp x17, x7 - WORD $0x54005563 // b.lo LBB0_428 $2732(%rip) + WORD $0x54005543 // b.lo LBB0_428 $2728(%rip) WORD $0x8b0700b1 // add x17, x5, x7 WORD $0x17fffd1f // b LBB0_121 $-2948(%rip) LBB0_263: - WORD $0x35005547 // cbnz w7, LBB0_429 $2728(%rip) + WORD $0x35005527 // cbnz w7, LBB0_429 $2724(%rip) WORD $0x9100839c // add x28, x28, #32 WORD $0xaa1503f4 // mov x20, x21 LBB0_265: WORD $0xb5003965 // cbnz x5, LBB0_368 $1836(%rip) - WORD $0xb40048d4 // cbz x20, LBB0_398 $2328(%rip) + WORD $0xb40048b4 // cbz x20, LBB0_398 $2324(%rip) LBB0_267: WORD $0xd2800005 // mov x5, #0 LBB0_268: @@ -1575,15 +1574,15 @@ LBB0_268: WORD $0x7101723f // cmp w17, #92 WORD $0x540000e0 // b.eq LBB0_272 $28(%rip) WORD $0x71007e3f // cmp w17, #31 - WORD $0x54005429 // b.ls LBB0_430 $2692(%rip) + WORD $0x54005409 // b.ls LBB0_430 $2688(%rip) WORD $0x910004a5 // add x5, x5, #1 WORD $0xeb05029f // cmp x20, x5 WORD $0x54fffee1 // b.ne LBB0_268 $-36(%rip) - WORD $0x1400023a // b LBB0_398 $2280(%rip) + WORD $0x14000239 // b LBB0_398 $2276(%rip) LBB0_272: WORD $0xd1000691 // sub x17, x20, #1 WORD $0xeb05023f // cmp x17, x5 - WORD $0x540046e0 // b.eq LBB0_398 $2268(%rip) + WORD $0x540046c0 // b.eq LBB0_398 $2264(%rip) WORD $0x8b050391 // add x17, x28, x5 WORD $0x8b0c0227 // add x7, x17, x12 WORD $0xb100051f // cmn x8, #1 @@ -1594,7 +1593,7 @@ LBB0_272: WORD $0xd1000a34 // sub x20, x17, #2 WORD $0xeb0500ff // cmp x7, x5 WORD $0x54fffd01 // b.ne LBB0_267 $-96(%rip) - WORD $0x1400022c // b LBB0_398 $2224(%rip) + WORD $0x1400022b // b LBB0_398 $2220(%rip) LBB0_274: WORD $0x8b1c0191 // add x17, x12, x28 WORD $0x8b050231 // add x17, x17, x5 @@ -1695,16 +1694,16 @@ LBB0_287: WORD $0xdac010a7 // clz x7, x5 WORD $0xcb090385 // sub x5, x28, x9 WORD $0xeb07023f // cmp x17, x7 - WORD $0x540045c3 // b.lo LBB0_428 $2232(%rip) + WORD $0x540045a3 // b.lo LBB0_428 $2228(%rip) WORD $0x8b0700b1 // add x17, x5, x7 WORD $0x17fffd42 // b LBB0_150 $-2808(%rip) LBB0_290: - WORD $0x350045a7 // cbnz w7, LBB0_429 $2228(%rip) + WORD $0x35004587 // cbnz w7, LBB0_429 $2224(%rip) WORD $0x9100839c // add x28, x28, #32 WORD $0xaa1503f4 // mov x20, x21 LBB0_292: WORD $0xb5002bc5 // cbnz x5, LBB0_372 $1400(%rip) - WORD $0xb4003934 // cbz x20, LBB0_398 $1828(%rip) + WORD $0xb4003914 // cbz x20, LBB0_398 $1824(%rip) LBB0_294: WORD $0xd2800005 // mov x5, #0 LBB0_295: @@ -1714,15 +1713,15 @@ LBB0_295: WORD $0x7101723f // cmp w17, #92 WORD $0x540000e0 // b.eq LBB0_299 $28(%rip) WORD $0x71007e3f // cmp w17, #31 - WORD $0x54004489 // b.ls LBB0_430 $2192(%rip) + WORD $0x54004469 // b.ls LBB0_430 $2188(%rip) WORD $0x910004a5 // add x5, x5, #1 WORD $0xeb05029f // cmp x20, x5 WORD $0x54fffee1 // b.ne LBB0_295 $-36(%rip) - WORD $0x140001bd // b LBB0_398 $1780(%rip) + WORD $0x140001bc // b LBB0_398 $1776(%rip) LBB0_299: WORD $0xd1000691 // sub x17, x20, #1 WORD $0xeb05023f // cmp x17, x5 - WORD $0x54003740 // b.eq LBB0_398 $1768(%rip) + WORD $0x54003720 // b.eq LBB0_398 $1764(%rip) WORD $0x8b050391 // add x17, x28, x5 WORD $0x8b0c0227 // add x7, x17, x12 WORD $0xb100051f // cmn x8, #1 @@ -1733,7 +1732,7 @@ LBB0_299: WORD $0xd1000a34 // sub x20, x17, #2 WORD $0xeb0500ff // cmp x7, x5 WORD $0x54fffd01 // b.ne LBB0_294 $-96(%rip) - WORD $0x140001af // b LBB0_398 $1724(%rip) + WORD $0x140001ae // b LBB0_398 $1720(%rip) LBB0_301: WORD $0x8b1c0191 // add x17, x12, x28 WORD $0x8b050231 // add x17, x17, x5 @@ -1849,16 +1848,16 @@ LBB0_317: WORD $0xdac01087 // clz x7, x4 WORD $0xcb090385 // sub x5, x28, x9 WORD $0xeb07023f // cmp x17, x7 - WORD $0x540034a3 // b.lo LBB0_428 $1684(%rip) + WORD $0x54003483 // b.lo LBB0_428 $1680(%rip) WORD $0x8b0700b1 // add x17, x5, x7 WORD $0x14000022 // b LBB0_332 $136(%rip) LBB0_320: - WORD $0x35003487 // cbnz w7, LBB0_429 $1680(%rip) + WORD $0x35003467 // cbnz w7, LBB0_429 $1676(%rip) WORD $0x9100839c // add x28, x28, #32 WORD $0xaa1503f4 // mov x20, x21 LBB0_322: WORD $0xb5002505 // cbnz x5, LBB0_391 $1184(%rip) - WORD $0xb4002814 // cbz x20, LBB0_398 $1280(%rip) + WORD $0xb40027f4 // cbz x20, LBB0_398 $1276(%rip) LBB0_324: WORD $0xd2800005 // mov x5, #0 LBB0_325: @@ -1868,15 +1867,15 @@ LBB0_325: WORD $0x7101723f // cmp w17, #92 WORD $0x540000e0 // b.eq LBB0_329 $28(%rip) WORD $0x71007e3f // cmp w17, #31 - WORD $0x54003369 // b.ls LBB0_430 $1644(%rip) + WORD $0x54003349 // b.ls LBB0_430 $1640(%rip) WORD $0x910004a5 // add x5, x5, #1 WORD $0xeb05029f // cmp x20, x5 WORD $0x54fffee1 // b.ne LBB0_325 $-36(%rip) - WORD $0x14000134 // b LBB0_398 $1232(%rip) + WORD $0x14000133 // b LBB0_398 $1228(%rip) LBB0_329: WORD $0xd1000691 // sub x17, x20, #1 WORD $0xeb05023f // cmp x17, x5 - WORD $0x54002620 // b.eq LBB0_398 $1220(%rip) + WORD $0x54002600 // b.eq LBB0_398 $1216(%rip) WORD $0x8b050391 // add x17, x28, x5 WORD $0x8b0c0224 // add x4, x17, x12 WORD $0xb100051f // cmn x8, #1 @@ -1887,7 +1886,7 @@ LBB0_329: WORD $0xd1000a34 // sub x20, x17, #2 WORD $0xeb05009f // cmp x4, x5 WORD $0x54fffd01 // b.ne LBB0_324 $-96(%rip) - WORD $0x14000126 // b LBB0_398 $1176(%rip) + WORD $0x14000125 // b LBB0_398 $1172(%rip) LBB0_331: WORD $0x8b1c0191 // add x17, x12, x28 WORD $0x8b050231 // add x17, x17, x5 @@ -1955,7 +1954,7 @@ LBB0_341: WORD $0xb5fffef1 // cbnz x17, LBB0_341 $-36(%rip) WORD $0x14000009 // b LBB0_346 $36(%rip) LBB0_344: - WORD $0xb4001db1 // cbz x17, LBB0_398 $948(%rip) + WORD $0xb4001d91 // cbz x17, LBB0_398 $944(%rip) WORD $0x8b0b00f1 // add x17, x7, x11 WORD $0xb100051f // cmn x8, #1 WORD $0x9a880228 // csel x8, x17, x8, eq @@ -1966,7 +1965,7 @@ LBB0_344: LBB0_346: WORD $0x710088bf // cmp w5, #34 WORD $0x54000060 // b.eq LBB0_348 $12(%rip) - WORD $0x140000e3 // b LBB0_398 $908(%rip) + WORD $0x140000e2 // b LBB0_398 $904(%rip) LBB0_347: WORD $0xaa0703fc // mov x28, x7 LBB0_348: @@ -2033,7 +2032,7 @@ LBB0_356: WORD $0xb5fffef1 // cbnz x17, LBB0_356 $-36(%rip) WORD $0x14000009 // b LBB0_361 $36(%rip) LBB0_359: - WORD $0xb4001551 // cbz x17, LBB0_398 $680(%rip) + WORD $0xb4001531 // cbz x17, LBB0_398 $676(%rip) WORD $0x8b0b00f1 // add x17, x7, x11 WORD $0xb100051f // cmn x8, #1 WORD $0x9a880228 // csel x8, x17, x8, eq @@ -2044,7 +2043,7 @@ LBB0_359: LBB0_361: WORD $0x710088bf // cmp w5, #34 WORD $0x54000060 // b.eq LBB0_363 $12(%rip) - WORD $0x140000a0 // b LBB0_398 $640(%rip) + WORD $0x1400009f // b LBB0_398 $636(%rip) LBB0_362: WORD $0xaa0703fc // mov x28, x7 LBB0_363: @@ -2054,7 +2053,7 @@ LBB0_363: WORD $0xb20903e7 // mov x7, #36028797027352576 WORD $0xf2800027 // movk x7, #1 WORD $0xb6ff827c // tbz x28, #63, LBB0_151 $-4020(%rip) - WORD $0x14000096 // b LBB0_397 $600(%rip) + WORD $0x14000095 // b LBB0_397 $596(%rip) LBB0_364: WORD $0xdac000f1 // rbit x17, x7 WORD $0xdac01231 // clz x17, x17 @@ -2077,7 +2076,7 @@ LBB0_365: WORD $0x52800073 // mov w19, #3 WORD $0x17fffea3 // b LBB0_287 $-1396(%rip) LBB0_366: - WORD $0xb4001094 // cbz x20, LBB0_398 $528(%rip) + WORD $0xb4001074 // cbz x20, LBB0_398 $524(%rip) WORD $0x8b0b0391 // add x17, x28, x11 WORD $0xb100051f // cmn x8, #1 WORD $0x9a880228 // csel x8, x17, x8, eq @@ -2086,16 +2085,16 @@ LBB0_366: WORD $0xb5fff0d4 // cbnz x20, LBB0_341 $-488(%rip) WORD $0x17ffff9c // b LBB0_348 $-400(%rip) LBB0_368: - WORD $0xb4000f94 // cbz x20, LBB0_398 $496(%rip) + WORD $0xb4000f74 // cbz x20, LBB0_398 $492(%rip) WORD $0x8b0b0391 // add x17, x28, x11 WORD $0xb100051f // cmn x8, #1 WORD $0x9a880228 // csel x8, x17, x8, eq WORD $0x9100079c // add x28, x28, #1 WORD $0xd1000694 // sub x20, x20, #1 WORD $0xb5ffc634 // cbnz x20, LBB0_267 $-1852(%rip) - WORD $0x14000075 // b LBB0_398 $468(%rip) + WORD $0x14000074 // b LBB0_398 $464(%rip) LBB0_370: - WORD $0xb4000e94 // cbz x20, LBB0_398 $464(%rip) + WORD $0xb4000e74 // cbz x20, LBB0_398 $460(%rip) WORD $0x8b0b0391 // add x17, x28, x11 WORD $0xb100051f // cmn x8, #1 WORD $0x9a880228 // csel x8, x17, x8, eq @@ -2104,14 +2103,14 @@ LBB0_370: WORD $0xb5fff734 // cbnz x20, LBB0_356 $-284(%rip) WORD $0x17ffffcf // b LBB0_363 $-196(%rip) LBB0_372: - WORD $0xb4000d94 // cbz x20, LBB0_398 $432(%rip) + WORD $0xb4000d74 // cbz x20, LBB0_398 $428(%rip) WORD $0x8b0b0391 // add x17, x28, x11 WORD $0xb100051f // cmn x8, #1 WORD $0x9a880228 // csel x8, x17, x8, eq WORD $0x9100079c // add x28, x28, #1 WORD $0xd1000694 // sub x20, x20, #1 WORD $0xb5ffd3d4 // cbnz x20, LBB0_294 $-1416(%rip) - WORD $0x14000065 // b LBB0_398 $404(%rip) + WORD $0x14000064 // b LBB0_398 $400(%rip) LBB0_374: WORD $0xdac002b1 // rbit x17, x21 WORD $0xdac01231 // clz x17, x17 @@ -2151,7 +2150,7 @@ LBB0_379: WORD $0xb5fffef1 // cbnz x17, LBB0_379 $-36(%rip) WORD $0x14000009 // b LBB0_384 $36(%rip) LBB0_382: - WORD $0xb4000871 // cbz x17, LBB0_398 $268(%rip) + WORD $0xb4000851 // cbz x17, LBB0_398 $264(%rip) WORD $0x8b0b00f1 // add x17, x7, x11 WORD $0xb100051f // cmn x8, #1 WORD $0x9a880228 // csel x8, x17, x8, eq @@ -2163,7 +2162,7 @@ LBB0_384: WORD $0x710088bf // cmp w5, #34 WORD $0x52800073 // mov w19, #3 WORD $0x54ffeb00 // b.eq LBB0_348 $-672(%rip) - WORD $0x14000038 // b LBB0_398 $224(%rip) + WORD $0x14000037 // b LBB0_398 $220(%rip) LBB0_385: WORD $0xaa0703fc // mov x28, x7 WORD $0x52800073 // mov w19, #3 @@ -2189,7 +2188,7 @@ LBB0_387: WORD $0x8a140234 // and x20, x17, x20 WORD $0x17fffeca // b LBB0_317 $-1240(%rip) LBB0_388: - WORD $0xb4000454 // cbz x20, LBB0_398 $136(%rip) + WORD $0xb4000434 // cbz x20, LBB0_398 $132(%rip) WORD $0x8b0b0391 // add x17, x28, x11 WORD $0xb100051f // cmn x8, #1 WORD $0x9a880228 // csel x8, x17, x8, eq @@ -2200,25 +2199,24 @@ LBB0_390: WORD $0x52800073 // mov w19, #3 WORD $0x17ffff39 // b LBB0_348 $-796(%rip) LBB0_391: - WORD $0xb4000334 // cbz x20, LBB0_398 $100(%rip) + WORD $0xb4000314 // cbz x20, LBB0_398 $96(%rip) WORD $0x8b0b0391 // add x17, x28, x11 WORD $0xb100051f // cmn x8, #1 WORD $0x9a880228 // csel x8, x17, x8, eq WORD $0x9100079c // add x28, x28, #1 WORD $0xd1000694 // sub x20, x20, #1 WORD $0xb5ffda94 // cbnz x20, LBB0_324 $-1200(%rip) - WORD $0x14000012 // b LBB0_398 $72(%rip) + WORD $0x14000011 // b LBB0_398 $68(%rip) LBB0_393: WORD $0x92800008 // mov x8, #-1 LBB0_394: WORD $0xaa0803e0 // mov x0, x8 - WORD $0xa945fbfd // ldp fp, lr, [sp, #88] - WORD $0xa944cff4 // ldp x20, x19, [sp, #72] - WORD $0xa943d7f6 // ldp x22, x21, [sp, #56] - WORD $0xa942dff8 // ldp x24, x23, [sp, #40] - WORD $0xa941e7fa // ldp x26, x25, [sp, #24] - WORD $0xa940effc // ldp x28, x27, [sp, #8] - WORD $0x9101c3ff // add sp, sp, #112 + WORD $0xa9457bfd // ldp fp, lr, [sp, #80] + WORD $0xa9444ff4 // ldp x20, x19, [sp, #64] + WORD $0xa94357f6 // ldp x22, x21, [sp, #48] + WORD $0xa9425ff8 // ldp x24, x23, [sp, #32] + WORD $0xa94167fa // ldp x26, x25, [sp, #16] + WORD $0xa8c76ffc // ldp x28, x27, [sp], #112 WORD $0xd65f03c0 // ret LBB0_395: WORD $0x9280001c // mov x28, #-1 @@ -2226,7 +2224,7 @@ LBB0_395: WORD $0x1400000c // b LBB0_403 $48(%rip) LBB0_396: WORD $0x928000c8 // mov x8, #-7 - WORD $0x17fffff3 // b LBB0_394 $-52(%rip) + WORD $0x17fffff4 // b LBB0_394 $-48(%rip) LBB0_397: WORD $0xb100079f // cmn x28, #1 WORD $0x54000101 // b.ne LBB0_403 $32(%rip) @@ -2245,7 +2243,7 @@ LBB0_402: LBB0_403: WORD $0xf9000028 // str x8, [x1] WORD $0xaa1c03e8 // mov x8, x28 - WORD $0x17ffffe7 // b LBB0_394 $-100(%rip) + WORD $0x17ffffe8 // b LBB0_394 $-96(%rip) LBB0_404: WORD $0xb100051f // cmn x8, #1 WORD $0x54ffff61 // b.ne LBB0_402 $-20(%rip) @@ -2335,7 +2333,7 @@ LBB0_420: WORD $0x17ffffb0 // b LBB0_402 $-320(%rip) LBB0_425: WORD $0x92800028 // mov x8, #-2 - WORD $0x17ffff98 // b LBB0_394 $-416(%rip) + WORD $0x17ffff99 // b LBB0_394 $-412(%rip) LBB0_426: WORD $0xaa1403fe // mov lr, x20 WORD $0x8b140388 // add x8, x28, x20 diff --git a/internal/native/neon/skip_one_arm64.s b/internal/native/neon/skip_one_arm64.s index 91b567888..6dca0875f 100644 --- a/internal/native/neon/skip_one_arm64.s +++ b/internal/native/neon/skip_one_arm64.s @@ -59,17 +59,16 @@ lCPI0_2: // .byte 15 _skip_one: - WORD $0xd101c3ff // sub sp, sp, #112 - WORD $0xa900effc // stp x28, x27, [sp, #8] - WORD $0xa901e7fa // stp x26, x25, [sp, #24] - WORD $0xa902dff8 // stp x24, x23, [sp, #40] - WORD $0xa903d7f6 // stp x22, x21, [sp, #56] - WORD $0xa904cff4 // stp x20, x19, [sp, #72] - WORD $0xa905fbfd // stp fp, lr, [sp, #88] + WORD $0xa9b96ffc // stp x28, x27, [sp, #-112]! + WORD $0xa90167fa // stp x26, x25, [sp, #16] + WORD $0xa9025ff8 // stp x24, x23, [sp, #32] + WORD $0xa90357f6 // stp x22, x21, [sp, #48] + WORD $0xa9044ff4 // stp x20, x19, [sp, #64] + WORD $0xa9057bfd // stp fp, lr, [sp, #80] WORD $0xa93ffbfd // stp fp, lr, [sp, #-8] WORD $0xd10023fd // sub fp, sp, #8 Lloh0: - WORD $0x10fffd68 // adr x8, lCPI0_0 $-84(%rip) + WORD $0x10fffd88 // adr x8, lCPI0_0 $-80(%rip) Lloh1: WORD $0x3dc00100 // ldr q0, [x8, lCPI0_0@PAGEOFF] $0(%rip) WORD $0xaa0203ea // mov x10, x2 @@ -88,11 +87,11 @@ Lloh1: WORD $0x4f01e440 // movi.16b v0, #34 WORD $0x4f02e781 // movi.16b v1, #92 Lloh2: - WORD $0x10fffbc8 // adr x8, lCPI0_1 $-136(%rip) + WORD $0x10fffbe8 // adr x8, lCPI0_1 $-132(%rip) Lloh3: WORD $0x3dc00102 // ldr q2, [x8, lCPI0_1@PAGEOFF] $0(%rip) Lloh4: - WORD $0x10fffc08 // adr x8, lCPI0_2 $-128(%rip) + WORD $0x10fffc28 // adr x8, lCPI0_2 $-124(%rip) Lloh5: WORD $0x3dc00103 // ldr q3, [x8, lCPI0_2@PAGEOFF] $0(%rip) WORD $0x92f00006 // mov x6, #9223372036854775807 @@ -160,7 +159,7 @@ LBB0_14: LBB0_18: WORD $0x9100139b // add x27, x28, #4 WORD $0xeb08037f // cmp x27, x8 - WORD $0x5400e922 // b.hs LBB0_395 $7460(%rip) + WORD $0x5400e902 // b.hs LBB0_395 $7456(%rip) LBB0_19: WORD $0x387b6931 // ldrb w17, [x9, x27] WORD $0x7100823f // cmp w17, #32 @@ -194,13 +193,13 @@ LBB0_22: WORD $0x71000d1f // cmp w8, #3 WORD $0x540019c1 // b.ne LBB0_58 $824(%rip) WORD $0x71008abf // cmp w21, #34 - WORD $0x5400f101 // b.ne LBB0_425 $7712(%rip) + WORD $0x5400f0e1 // b.ne LBB0_425 $7708(%rip) WORD $0x3200f3e6 // mov w6, #1431655765 WORD $0xf8347944 // str x4, [x10, x20, lsl #3] WORD $0xf9400408 // ldr x8, [x0, #8] WORD $0xeb1c0114 // subs x20, x8, x28 WORD $0x372831a3 // tbnz w3, #5, LBB0_109 $1588(%rip) - WORD $0x5400e560 // b.eq LBB0_398 $7340(%rip) + WORD $0x5400e540 // b.eq LBB0_398 $7336(%rip) WORD $0xf101029f // cmp x20, #64 WORD $0x54009103 // b.lo LBB0_250 $4640(%rip) WORD $0xd2800005 // mov x5, #0 @@ -306,7 +305,7 @@ LBB0_39: WORD $0xf9400408 // ldr x8, [x0, #8] WORD $0xeb1c0114 // subs x20, x8, x28 WORD $0x37283923 // tbnz w3, #5, LBB0_138 $1828(%rip) - WORD $0x5400d8e0 // b.eq LBB0_398 $6940(%rip) + WORD $0x5400d8c0 // b.eq LBB0_398 $6936(%rip) WORD $0xf101029f // cmp x20, #64 WORD $0x54009423 // b.lo LBB0_277 $4740(%rip) WORD $0xd2800005 // mov x5, #0 @@ -402,10 +401,10 @@ LBB0_54: WORD $0x540017e0 // b.eq LBB0_105 $764(%rip) WORD $0x710176bf // cmp w21, #93 WORD $0x54001420 // b.eq LBB0_97 $644(%rip) - WORD $0x140006c4 // b LBB0_425 $6928(%rip) + WORD $0x140006c3 // b LBB0_425 $6924(%rip) LBB0_56: WORD $0x7100eabf // cmp w21, #58 - WORD $0x5400d841 // b.ne LBB0_425 $6920(%rip) + WORD $0x5400d821 // b.ne LBB0_425 $6916(%rip) WORD $0xf834795f // str xzr, [x10, x20, lsl #3] WORD $0xf9400045 // ldr x5, [x2] WORD $0xaa0e03e8 // mov x8, x14 @@ -422,7 +421,7 @@ LBB0_59: WORD $0x54003d02 // b.hs LBB0_154 $1952(%rip) WORD $0xf9400408 // ldr x8, [x0, #8] WORD $0xeb1b0115 // subs x21, x8, x27 - WORD $0x5400cbe0 // b.eq LBB0_399 $6524(%rip) + WORD $0x5400cbc0 // b.eq LBB0_399 $6520(%rip) WORD $0x394003c8 // ldrb w8, [lr] WORD $0x7100c11f // cmp w8, #48 WORD $0x54000141 // b.ne LBB0_65 $40(%rip) @@ -575,7 +574,7 @@ LBB0_94: LBB0_95: WORD $0x7101f6bf // cmp w21, #125 WORD $0x54000080 // b.eq LBB0_97 $16(%rip) - WORD $0x14000627 // b LBB0_425 $6300(%rip) + WORD $0x14000626 // b LBB0_425 $6296(%rip) LBB0_96: WORD $0x710176bf // cmp w21, #93 WORD $0x540000c1 // b.ne LBB0_98 $24(%rip) @@ -601,7 +600,7 @@ LBB0_99: WORD $0x5400b5a1 // b.ne LBB0_394 $5812(%rip) WORD $0xf9400048 // ldr x8, [x2] WORD $0xf13ffd1f // cmp x8, #4095 - WORD $0x5400b6cc // b.gt LBB0_396 $5848(%rip) + WORD $0x5400b6ac // b.gt LBB0_396 $5844(%rip) WORD $0x91000511 // add x17, x8, #1 WORD $0xf9000051 // str x17, [x2] WORD $0x528000d1 // mov w17, #6 @@ -612,7 +611,7 @@ LBB0_99: WORD $0x140005a2 // b LBB0_394 $5768(%rip) LBB0_105: WORD $0xf13ffcbf // cmp x5, #4095 - WORD $0x5400b58c // b.gt LBB0_396 $5808(%rip) + WORD $0x5400b56c // b.gt LBB0_396 $5804(%rip) WORD $0x910004a8 // add x8, x5, #1 WORD $0xf9000048 // str x8, [x2] WORD $0xf825795f // str xzr, [x10, x5, lsl #3] @@ -622,7 +621,7 @@ LBB0_105: WORD $0x14000599 // b LBB0_394 $5732(%rip) LBB0_107: WORD $0xf13ffcbf // cmp x5, #4095 - WORD $0x5400b46c // b.gt LBB0_396 $5772(%rip) + WORD $0x5400b44c // b.gt LBB0_396 $5768(%rip) WORD $0x910004a8 // add x8, x5, #1 WORD $0xf9000048 // str x8, [x2] WORD $0xf8257953 // str x19, [x10, x5, lsl #3] @@ -631,7 +630,7 @@ LBB0_107: WORD $0xb5ffc425 // cbnz x5, LBB0_1 $-1916(%rip) WORD $0x14000590 // b LBB0_394 $5696(%rip) LBB0_109: - WORD $0x5400b3e0 // b.eq LBB0_398 $5756(%rip) + WORD $0x5400b3c0 // b.eq LBB0_398 $5752(%rip) WORD $0xf101029f // cmp x20, #64 WORD $0x54006403 // b.lo LBB0_256 $3200(%rip) WORD $0xd2800005 // mov x5, #0 @@ -719,7 +718,7 @@ LBB0_114: WORD $0xaa1502d5 // orr x21, x22, x21 WORD $0xaa1102b1 // orr x17, x21, x17 WORD $0xb50002e7 // cbnz x7, LBB0_119 $92(%rip) - WORD $0xb500aa71 // cbnz x17, LBB0_404 $5452(%rip) + WORD $0xb500aa51 // cbnz x17, LBB0_404 $5448(%rip) WORD $0xd1010294 // sub x20, x20, #64 WORD $0x9101039c // add x28, x28, #64 WORD $0xf100fe9f // cmp x20, #63 @@ -749,7 +748,7 @@ LBB0_119: WORD $0xdac00231 // rbit x17, x17 WORD $0xdac01231 // clz x17, x17 WORD $0xeb05023f // cmp x17, x5 - WORD $0x5400b143 // b.lo LBB0_427 $5672(%rip) + WORD $0x5400b123 // b.lo LBB0_427 $5668(%rip) LBB0_120: WORD $0x8b1c00b1 // add x17, x5, x28 LBB0_121: @@ -760,16 +759,16 @@ LBB0_122: WORD $0xb20903e7 // mov x7, #36028797027352576 WORD $0xf2800027 // movk x7, #1 WORD $0xb6f81c9c // tbz x28, #63, LBB0_170 $912(%rip) - WORD $0x14000524 // b LBB0_397 $5264(%rip) + WORD $0x14000523 // b LBB0_397 $5260(%rip) LBB0_123: WORD $0x8b2743d1 // add x17, lr, w7, uxtw WORD $0x8b1c0236 // add x22, x17, x28 LBB0_124: WORD $0x92800015 // mov x21, #-1 - WORD $0xb400a4c8 // cbz x8, LBB0_400 $5272(%rip) + WORD $0xb400a4a8 // cbz x8, LBB0_400 $5268(%rip) LBB0_125: - WORD $0xb400a4b4 // cbz x20, LBB0_400 $5268(%rip) - WORD $0xb400a485 // cbz x5, LBB0_400 $5264(%rip) + WORD $0xb400a494 // cbz x20, LBB0_400 $5264(%rip) + WORD $0xb400a465 // cbz x5, LBB0_400 $5260(%rip) WORD $0xcb1e02c7 // sub x7, x22, lr WORD $0xd10004f1 // sub x17, x7, #1 WORD $0xeb11011f // cmp x8, x17 @@ -781,12 +780,12 @@ LBB0_125: WORD $0xf1000691 // subs x17, x20, #1 WORD $0x5400006b // b.lt LBB0_132 $12(%rip) WORD $0xeb1100bf // cmp x5, x17 - WORD $0x5400a321 // b.ne LBB0_401 $5220(%rip) + WORD $0x5400a301 // b.ne LBB0_401 $5216(%rip) LBB0_132: WORD $0xaa050111 // orr x17, x8, x5 WORD $0xb7f80071 // tbnz x17, #63, LBB0_134 $12(%rip) WORD $0xeb05011f // cmp x8, x5 - WORD $0x5400a44a // b.ge LBB0_407 $5256(%rip) + WORD $0x5400a42a // b.ge LBB0_407 $5252(%rip) LBB0_134: WORD $0xd37ffe31 // lsr x17, x17, #63 WORD $0x52000231 // eor w17, w17, #0x1 @@ -803,11 +802,11 @@ LBB0_136: WORD $0x92f00006 // mov x6, #9223372036854775807 WORD $0xb20903e7 // mov x7, #36028797027352576 WORD $0xf2800027 // movk x7, #1 - WORD $0xb7f8a0d5 // tbnz x21, #63, LBB0_400 $5144(%rip) + WORD $0xb7f8a0b5 // tbnz x21, #63, LBB0_400 $5140(%rip) WORD $0x8b15037c // add x28, x27, x21 WORD $0x140000bd // b LBB0_170 $756(%rip) LBB0_138: - WORD $0x54009fe0 // b.eq LBB0_398 $5116(%rip) + WORD $0x54009fc0 // b.eq LBB0_398 $5112(%rip) WORD $0xf101029f // cmp x20, #64 WORD $0x54005fa3 // b.lo LBB0_283 $3060(%rip) WORD $0xd2800005 // mov x5, #0 @@ -895,7 +894,7 @@ LBB0_143: WORD $0xaa1502d5 // orr x21, x22, x21 WORD $0xaa1102b1 // orr x17, x21, x17 WORD $0xb50002e7 // cbnz x7, LBB0_148 $92(%rip) - WORD $0xb5009671 // cbnz x17, LBB0_404 $4812(%rip) + WORD $0xb5009651 // cbnz x17, LBB0_404 $4808(%rip) WORD $0xd1010294 // sub x20, x20, #64 WORD $0x9101039c // add x28, x28, #64 WORD $0xf100fe9f // cmp x20, #63 @@ -925,7 +924,7 @@ LBB0_148: WORD $0xdac00231 // rbit x17, x17 WORD $0xdac01231 // clz x17, x17 WORD $0xeb05023f // cmp x17, x5 - WORD $0x54009d43 // b.lo LBB0_427 $5032(%rip) + WORD $0x54009d23 // b.lo LBB0_427 $5028(%rip) WORD $0x8b1c00b1 // add x17, x5, x28 LBB0_150: WORD $0x9100063c // add x28, x17, #1 @@ -933,7 +932,7 @@ LBB0_150: WORD $0x92f00006 // mov x6, #9223372036854775807 WORD $0xb20903e7 // mov x7, #36028797027352576 WORD $0xf2800027 // movk x7, #1 - WORD $0xb7f890bc // tbnz x28, #63, LBB0_397 $4628(%rip) + WORD $0xb7f8909c // tbnz x28, #63, LBB0_397 $4624(%rip) LBB0_151: WORD $0xf900003c // str x28, [x1] WORD $0xaa1b03e8 // mov x8, x27 @@ -942,7 +941,7 @@ LBB0_151: WORD $0x54008e48 // b.hi LBB0_394 $4552(%rip) WORD $0xf9400048 // ldr x8, [x2] WORD $0xf13ffd1f // cmp x8, #4095 - WORD $0x54008f6c // b.gt LBB0_396 $4588(%rip) + WORD $0x54008f4c // b.gt LBB0_396 $4584(%rip) WORD $0x91000511 // add x17, x8, #1 WORD $0xf9000051 // str x17, [x2] WORD $0xf8287944 // str x4, [x10, x8, lsl #3] @@ -957,7 +956,7 @@ LBB0_154: WORD $0x54008c81 // b.ne LBB0_394 $4496(%rip) WORD $0xf9400408 // ldr x8, [x0, #8] WORD $0xeb1c0118 // subs x24, x8, x28 - WORD $0x540090c0 // b.eq LBB0_408 $4632(%rip) + WORD $0x540090a0 // b.eq LBB0_408 $4628(%rip) WORD $0xb20903e4 // mov x4, #36028797027352576 WORD $0xf2800024 // movk x4, #1 WORD $0x8b1c0128 // add x8, x9, x28 @@ -977,35 +976,35 @@ LBB0_160: WORD $0xf9400408 // ldr x8, [x0, #8] WORD $0xd1001111 // sub x17, x8, #4 WORD $0xeb11037f // cmp x27, x17 - WORD $0x54008de2 // b.hs LBB0_406 $4540(%rip) + WORD $0x54008dc2 // b.hs LBB0_406 $4536(%rip) WORD $0xb87c6928 // ldr w8, [x9, x28] WORD $0x528d8c31 // mov w17, #27745 WORD $0x72acae71 // movk w17, #25971, lsl #16 WORD $0x6b11011f // cmp w8, w17 - WORD $0x54009381 // b.ne LBB0_420 $4720(%rip) + WORD $0x54009361 // b.ne LBB0_420 $4716(%rip) WORD $0x9100177c // add x28, x27, #5 WORD $0x14000015 // b LBB0_170 $84(%rip) LBB0_165: WORD $0xf9400408 // ldr x8, [x0, #8] WORD $0xd1000d11 // sub x17, x8, #3 WORD $0xeb11037f // cmp x27, x17 - WORD $0x54008c82 // b.hs LBB0_406 $4496(%rip) + WORD $0x54008c62 // b.hs LBB0_406 $4492(%rip) WORD $0xb87b6928 // ldr w8, [x9, x27] WORD $0x528e4e91 // mov w17, #29300 WORD $0x72acaeb1 // movk w17, #25973, lsl #16 WORD $0x6b11011f // cmp w8, w17 WORD $0x54000160 // b.eq LBB0_169 $44(%rip) - WORD $0x1400047b // b LBB0_415 $4588(%rip) + WORD $0x1400047a // b LBB0_415 $4584(%rip) LBB0_167: WORD $0xf9400408 // ldr x8, [x0, #8] WORD $0xd1000d11 // sub x17, x8, #3 WORD $0xeb11037f // cmp x27, x17 - WORD $0x54008b42 // b.hs LBB0_406 $4456(%rip) + WORD $0x54008b22 // b.hs LBB0_406 $4452(%rip) WORD $0xb87b6928 // ldr w8, [x9, x27] WORD $0x528eadd1 // mov w17, #30062 WORD $0x72ad8d91 // movk w17, #27756, lsl #16 WORD $0x6b11011f // cmp w8, w17 - WORD $0x54008bc1 // b.ne LBB0_411 $4472(%rip) + WORD $0x54008ba1 // b.ne LBB0_411 $4468(%rip) LBB0_169: WORD $0x9100137c // add x28, x27, #4 LBB0_170: @@ -1021,7 +1020,7 @@ LBB0_171: LBB0_172: WORD $0xf9400048 // ldr x8, [x2] WORD $0xf13ffd1f // cmp x8, #4095 - WORD $0x540086ac // b.gt LBB0_396 $4308(%rip) + WORD $0x5400868c // b.gt LBB0_396 $4304(%rip) WORD $0x91000511 // add x17, x8, #1 WORD $0xf9000051 // str x17, [x2] WORD $0x528000b1 // mov w17, #5 @@ -1035,7 +1034,7 @@ LBB0_174: WORD $0xf9400408 // ldr x8, [x0, #8] WORD $0xeb1c0114 // subs x20, x8, x28 WORD $0x37280b43 // tbnz w3, #5, LBB0_185 $360(%rip) - WORD $0x54008580 // b.eq LBB0_398 $4272(%rip) + WORD $0x54008560 // b.eq LBB0_398 $4268(%rip) WORD $0xf101029f // cmp x20, #64 WORD $0x540051e3 // b.lo LBB0_307 $2620(%rip) WORD $0xd2800005 // mov x5, #0 @@ -1128,9 +1127,9 @@ LBB0_184: WORD $0xaa1803f6 // mov x22, x24 WORD $0x92800015 // mov x21, #-1 WORD $0xb5ffd688 // cbnz x8, LBB0_125 $-1328(%rip) - WORD $0x140003d8 // b LBB0_400 $3936(%rip) + WORD $0x140003d7 // b LBB0_400 $3932(%rip) LBB0_185: - WORD $0x54007a60 // b.eq LBB0_398 $3916(%rip) + WORD $0x54007a40 // b.eq LBB0_398 $3912(%rip) WORD $0xf101029f // cmp x20, #64 WORD $0x54004b43 // b.lo LBB0_313 $2408(%rip) WORD $0xd2800005 // mov x5, #0 @@ -1218,7 +1217,7 @@ LBB0_190: WORD $0xaa0400c4 // orr x4, x6, x4 WORD $0xaa110091 // orr x17, x4, x17 WORD $0xb50002e7 // cbnz x7, LBB0_195 $92(%rip) - WORD $0xb50070f1 // cbnz x17, LBB0_404 $3612(%rip) + WORD $0xb50070d1 // cbnz x17, LBB0_404 $3608(%rip) WORD $0xd1010294 // sub x20, x20, #64 WORD $0x9101039c // add x28, x28, #64 WORD $0xf100fe9f // cmp x20, #63 @@ -1250,7 +1249,7 @@ LBB0_195: WORD $0xeb05023f // cmp x17, x5 WORD $0x52800073 // mov w19, #3 WORD $0x54ffc682 // b.hs LBB0_120 $-1840(%rip) - WORD $0x140003bc // b LBB0_427 $3824(%rip) + WORD $0x140003bb // b LBB0_427 $3820(%rip) LBB0_196: WORD $0x39400511 // ldrb w17, [x8, #1] WORD $0x5100ba31 // sub w17, w17, #46 @@ -1400,10 +1399,10 @@ LBB0_230: WORD $0x52800073 // mov w19, #3 LBB0_231: WORD $0x92800007 // mov x7, #-1 - WORD $0xb4005dd4 // cbz x20, LBB0_409 $3000(%rip) + WORD $0xb4005db4 // cbz x20, LBB0_409 $2996(%rip) LBB0_232: - WORD $0xb4005dbe // cbz lr, LBB0_409 $2996(%rip) - WORD $0xb4005d85 // cbz x5, LBB0_409 $2992(%rip) + WORD $0xb4005d9e // cbz lr, LBB0_409 $2992(%rip) + WORD $0xb4005d65 // cbz x5, LBB0_409 $2988(%rip) WORD $0xcb0802c8 // sub x8, x22, x8 WORD $0xd1000511 // sub x17, x8, #1 WORD $0xeb11029f // cmp x20, x17 @@ -1415,12 +1414,12 @@ LBB0_232: WORD $0xf10007d1 // subs x17, lr, #1 WORD $0x5400006b // b.lt LBB0_239 $12(%rip) WORD $0xeb1100bf // cmp x5, x17 - WORD $0x54005c21 // b.ne LBB0_410 $2948(%rip) + WORD $0x54005c01 // b.ne LBB0_410 $2944(%rip) LBB0_239: WORD $0xaa050291 // orr x17, x20, x5 WORD $0xb7f80071 // tbnz x17, #63, LBB0_241 $12(%rip) WORD $0xeb05029f // cmp x20, x5 - WORD $0x540063ea // b.ge LBB0_426 $3196(%rip) + WORD $0x540063ca // b.ge LBB0_426 $3192(%rip) LBB0_241: WORD $0xd37ffe31 // lsr x17, x17, #63 WORD $0x52000231 // eor w17, w17, #0x1 @@ -1433,7 +1432,7 @@ LBB0_241: LBB0_242: WORD $0xcb0803e7 // neg x7, x8 LBB0_243: - WORD $0xb7f85a47 // tbnz x7, #63, LBB0_409 $2888(%rip) + WORD $0xb7f85a27 // tbnz x7, #63, LBB0_409 $2884(%rip) LBB0_244: WORD $0x8b1c00fc // add x28, x7, x28 WORD $0xf900003c // str x28, [x1] @@ -1465,7 +1464,7 @@ LBB0_249: WORD $0xaa0603f6 // mov x22, x6 WORD $0x92800007 // mov x7, #-1 WORD $0xb5fff994 // cbnz x20, LBB0_232 $-208(%rip) - WORD $0x140002b8 // b LBB0_409 $2784(%rip) + WORD $0x140002b7 // b LBB0_409 $2780(%rip) LBB0_250: WORD $0xd2800005 // mov x5, #0 WORD $0x8b1c013c // add x28, x9, x28 @@ -1556,16 +1555,16 @@ LBB0_260: WORD $0xdac010a7 // clz x7, x5 WORD $0xcb090385 // sub x5, x28, x9 WORD $0xeb07023f // cmp x17, x7 - WORD $0x54005563 // b.lo LBB0_428 $2732(%rip) + WORD $0x54005543 // b.lo LBB0_428 $2728(%rip) WORD $0x8b0700b1 // add x17, x5, x7 WORD $0x17fffd1f // b LBB0_121 $-2948(%rip) LBB0_263: - WORD $0x35005547 // cbnz w7, LBB0_429 $2728(%rip) + WORD $0x35005527 // cbnz w7, LBB0_429 $2724(%rip) WORD $0x9100839c // add x28, x28, #32 WORD $0xaa1503f4 // mov x20, x21 LBB0_265: WORD $0xb5003965 // cbnz x5, LBB0_368 $1836(%rip) - WORD $0xb40048d4 // cbz x20, LBB0_398 $2328(%rip) + WORD $0xb40048b4 // cbz x20, LBB0_398 $2324(%rip) LBB0_267: WORD $0xd2800005 // mov x5, #0 LBB0_268: @@ -1575,15 +1574,15 @@ LBB0_268: WORD $0x7101723f // cmp w17, #92 WORD $0x540000e0 // b.eq LBB0_272 $28(%rip) WORD $0x71007e3f // cmp w17, #31 - WORD $0x54005429 // b.ls LBB0_430 $2692(%rip) + WORD $0x54005409 // b.ls LBB0_430 $2688(%rip) WORD $0x910004a5 // add x5, x5, #1 WORD $0xeb05029f // cmp x20, x5 WORD $0x54fffee1 // b.ne LBB0_268 $-36(%rip) - WORD $0x1400023a // b LBB0_398 $2280(%rip) + WORD $0x14000239 // b LBB0_398 $2276(%rip) LBB0_272: WORD $0xd1000691 // sub x17, x20, #1 WORD $0xeb05023f // cmp x17, x5 - WORD $0x540046e0 // b.eq LBB0_398 $2268(%rip) + WORD $0x540046c0 // b.eq LBB0_398 $2264(%rip) WORD $0x8b050391 // add x17, x28, x5 WORD $0x8b0c0227 // add x7, x17, x12 WORD $0xb100051f // cmn x8, #1 @@ -1594,7 +1593,7 @@ LBB0_272: WORD $0xd1000a34 // sub x20, x17, #2 WORD $0xeb0500ff // cmp x7, x5 WORD $0x54fffd01 // b.ne LBB0_267 $-96(%rip) - WORD $0x1400022c // b LBB0_398 $2224(%rip) + WORD $0x1400022b // b LBB0_398 $2220(%rip) LBB0_274: WORD $0x8b1c0191 // add x17, x12, x28 WORD $0x8b050231 // add x17, x17, x5 @@ -1695,16 +1694,16 @@ LBB0_287: WORD $0xdac010a7 // clz x7, x5 WORD $0xcb090385 // sub x5, x28, x9 WORD $0xeb07023f // cmp x17, x7 - WORD $0x540045c3 // b.lo LBB0_428 $2232(%rip) + WORD $0x540045a3 // b.lo LBB0_428 $2228(%rip) WORD $0x8b0700b1 // add x17, x5, x7 WORD $0x17fffd42 // b LBB0_150 $-2808(%rip) LBB0_290: - WORD $0x350045a7 // cbnz w7, LBB0_429 $2228(%rip) + WORD $0x35004587 // cbnz w7, LBB0_429 $2224(%rip) WORD $0x9100839c // add x28, x28, #32 WORD $0xaa1503f4 // mov x20, x21 LBB0_292: WORD $0xb5002bc5 // cbnz x5, LBB0_372 $1400(%rip) - WORD $0xb4003934 // cbz x20, LBB0_398 $1828(%rip) + WORD $0xb4003914 // cbz x20, LBB0_398 $1824(%rip) LBB0_294: WORD $0xd2800005 // mov x5, #0 LBB0_295: @@ -1714,15 +1713,15 @@ LBB0_295: WORD $0x7101723f // cmp w17, #92 WORD $0x540000e0 // b.eq LBB0_299 $28(%rip) WORD $0x71007e3f // cmp w17, #31 - WORD $0x54004489 // b.ls LBB0_430 $2192(%rip) + WORD $0x54004469 // b.ls LBB0_430 $2188(%rip) WORD $0x910004a5 // add x5, x5, #1 WORD $0xeb05029f // cmp x20, x5 WORD $0x54fffee1 // b.ne LBB0_295 $-36(%rip) - WORD $0x140001bd // b LBB0_398 $1780(%rip) + WORD $0x140001bc // b LBB0_398 $1776(%rip) LBB0_299: WORD $0xd1000691 // sub x17, x20, #1 WORD $0xeb05023f // cmp x17, x5 - WORD $0x54003740 // b.eq LBB0_398 $1768(%rip) + WORD $0x54003720 // b.eq LBB0_398 $1764(%rip) WORD $0x8b050391 // add x17, x28, x5 WORD $0x8b0c0227 // add x7, x17, x12 WORD $0xb100051f // cmn x8, #1 @@ -1733,7 +1732,7 @@ LBB0_299: WORD $0xd1000a34 // sub x20, x17, #2 WORD $0xeb0500ff // cmp x7, x5 WORD $0x54fffd01 // b.ne LBB0_294 $-96(%rip) - WORD $0x140001af // b LBB0_398 $1724(%rip) + WORD $0x140001ae // b LBB0_398 $1720(%rip) LBB0_301: WORD $0x8b1c0191 // add x17, x12, x28 WORD $0x8b050231 // add x17, x17, x5 @@ -1849,16 +1848,16 @@ LBB0_317: WORD $0xdac01087 // clz x7, x4 WORD $0xcb090385 // sub x5, x28, x9 WORD $0xeb07023f // cmp x17, x7 - WORD $0x540034a3 // b.lo LBB0_428 $1684(%rip) + WORD $0x54003483 // b.lo LBB0_428 $1680(%rip) WORD $0x8b0700b1 // add x17, x5, x7 WORD $0x14000022 // b LBB0_332 $136(%rip) LBB0_320: - WORD $0x35003487 // cbnz w7, LBB0_429 $1680(%rip) + WORD $0x35003467 // cbnz w7, LBB0_429 $1676(%rip) WORD $0x9100839c // add x28, x28, #32 WORD $0xaa1503f4 // mov x20, x21 LBB0_322: WORD $0xb5002505 // cbnz x5, LBB0_391 $1184(%rip) - WORD $0xb4002814 // cbz x20, LBB0_398 $1280(%rip) + WORD $0xb40027f4 // cbz x20, LBB0_398 $1276(%rip) LBB0_324: WORD $0xd2800005 // mov x5, #0 LBB0_325: @@ -1868,15 +1867,15 @@ LBB0_325: WORD $0x7101723f // cmp w17, #92 WORD $0x540000e0 // b.eq LBB0_329 $28(%rip) WORD $0x71007e3f // cmp w17, #31 - WORD $0x54003369 // b.ls LBB0_430 $1644(%rip) + WORD $0x54003349 // b.ls LBB0_430 $1640(%rip) WORD $0x910004a5 // add x5, x5, #1 WORD $0xeb05029f // cmp x20, x5 WORD $0x54fffee1 // b.ne LBB0_325 $-36(%rip) - WORD $0x14000134 // b LBB0_398 $1232(%rip) + WORD $0x14000133 // b LBB0_398 $1228(%rip) LBB0_329: WORD $0xd1000691 // sub x17, x20, #1 WORD $0xeb05023f // cmp x17, x5 - WORD $0x54002620 // b.eq LBB0_398 $1220(%rip) + WORD $0x54002600 // b.eq LBB0_398 $1216(%rip) WORD $0x8b050391 // add x17, x28, x5 WORD $0x8b0c0224 // add x4, x17, x12 WORD $0xb100051f // cmn x8, #1 @@ -1887,7 +1886,7 @@ LBB0_329: WORD $0xd1000a34 // sub x20, x17, #2 WORD $0xeb05009f // cmp x4, x5 WORD $0x54fffd01 // b.ne LBB0_324 $-96(%rip) - WORD $0x14000126 // b LBB0_398 $1176(%rip) + WORD $0x14000125 // b LBB0_398 $1172(%rip) LBB0_331: WORD $0x8b1c0191 // add x17, x12, x28 WORD $0x8b050231 // add x17, x17, x5 @@ -1955,7 +1954,7 @@ LBB0_341: WORD $0xb5fffef1 // cbnz x17, LBB0_341 $-36(%rip) WORD $0x14000009 // b LBB0_346 $36(%rip) LBB0_344: - WORD $0xb4001db1 // cbz x17, LBB0_398 $948(%rip) + WORD $0xb4001d91 // cbz x17, LBB0_398 $944(%rip) WORD $0x8b0b00f1 // add x17, x7, x11 WORD $0xb100051f // cmn x8, #1 WORD $0x9a880228 // csel x8, x17, x8, eq @@ -1966,7 +1965,7 @@ LBB0_344: LBB0_346: WORD $0x710088bf // cmp w5, #34 WORD $0x54000060 // b.eq LBB0_348 $12(%rip) - WORD $0x140000e3 // b LBB0_398 $908(%rip) + WORD $0x140000e2 // b LBB0_398 $904(%rip) LBB0_347: WORD $0xaa0703fc // mov x28, x7 LBB0_348: @@ -2033,7 +2032,7 @@ LBB0_356: WORD $0xb5fffef1 // cbnz x17, LBB0_356 $-36(%rip) WORD $0x14000009 // b LBB0_361 $36(%rip) LBB0_359: - WORD $0xb4001551 // cbz x17, LBB0_398 $680(%rip) + WORD $0xb4001531 // cbz x17, LBB0_398 $676(%rip) WORD $0x8b0b00f1 // add x17, x7, x11 WORD $0xb100051f // cmn x8, #1 WORD $0x9a880228 // csel x8, x17, x8, eq @@ -2044,7 +2043,7 @@ LBB0_359: LBB0_361: WORD $0x710088bf // cmp w5, #34 WORD $0x54000060 // b.eq LBB0_363 $12(%rip) - WORD $0x140000a0 // b LBB0_398 $640(%rip) + WORD $0x1400009f // b LBB0_398 $636(%rip) LBB0_362: WORD $0xaa0703fc // mov x28, x7 LBB0_363: @@ -2054,7 +2053,7 @@ LBB0_363: WORD $0xb20903e7 // mov x7, #36028797027352576 WORD $0xf2800027 // movk x7, #1 WORD $0xb6ff827c // tbz x28, #63, LBB0_151 $-4020(%rip) - WORD $0x14000096 // b LBB0_397 $600(%rip) + WORD $0x14000095 // b LBB0_397 $596(%rip) LBB0_364: WORD $0xdac000f1 // rbit x17, x7 WORD $0xdac01231 // clz x17, x17 @@ -2077,7 +2076,7 @@ LBB0_365: WORD $0x52800073 // mov w19, #3 WORD $0x17fffea3 // b LBB0_287 $-1396(%rip) LBB0_366: - WORD $0xb4001094 // cbz x20, LBB0_398 $528(%rip) + WORD $0xb4001074 // cbz x20, LBB0_398 $524(%rip) WORD $0x8b0b0391 // add x17, x28, x11 WORD $0xb100051f // cmn x8, #1 WORD $0x9a880228 // csel x8, x17, x8, eq @@ -2086,16 +2085,16 @@ LBB0_366: WORD $0xb5fff0d4 // cbnz x20, LBB0_341 $-488(%rip) WORD $0x17ffff9c // b LBB0_348 $-400(%rip) LBB0_368: - WORD $0xb4000f94 // cbz x20, LBB0_398 $496(%rip) + WORD $0xb4000f74 // cbz x20, LBB0_398 $492(%rip) WORD $0x8b0b0391 // add x17, x28, x11 WORD $0xb100051f // cmn x8, #1 WORD $0x9a880228 // csel x8, x17, x8, eq WORD $0x9100079c // add x28, x28, #1 WORD $0xd1000694 // sub x20, x20, #1 WORD $0xb5ffc634 // cbnz x20, LBB0_267 $-1852(%rip) - WORD $0x14000075 // b LBB0_398 $468(%rip) + WORD $0x14000074 // b LBB0_398 $464(%rip) LBB0_370: - WORD $0xb4000e94 // cbz x20, LBB0_398 $464(%rip) + WORD $0xb4000e74 // cbz x20, LBB0_398 $460(%rip) WORD $0x8b0b0391 // add x17, x28, x11 WORD $0xb100051f // cmn x8, #1 WORD $0x9a880228 // csel x8, x17, x8, eq @@ -2104,14 +2103,14 @@ LBB0_370: WORD $0xb5fff734 // cbnz x20, LBB0_356 $-284(%rip) WORD $0x17ffffcf // b LBB0_363 $-196(%rip) LBB0_372: - WORD $0xb4000d94 // cbz x20, LBB0_398 $432(%rip) + WORD $0xb4000d74 // cbz x20, LBB0_398 $428(%rip) WORD $0x8b0b0391 // add x17, x28, x11 WORD $0xb100051f // cmn x8, #1 WORD $0x9a880228 // csel x8, x17, x8, eq WORD $0x9100079c // add x28, x28, #1 WORD $0xd1000694 // sub x20, x20, #1 WORD $0xb5ffd3d4 // cbnz x20, LBB0_294 $-1416(%rip) - WORD $0x14000065 // b LBB0_398 $404(%rip) + WORD $0x14000064 // b LBB0_398 $400(%rip) LBB0_374: WORD $0xdac002b1 // rbit x17, x21 WORD $0xdac01231 // clz x17, x17 @@ -2151,7 +2150,7 @@ LBB0_379: WORD $0xb5fffef1 // cbnz x17, LBB0_379 $-36(%rip) WORD $0x14000009 // b LBB0_384 $36(%rip) LBB0_382: - WORD $0xb4000871 // cbz x17, LBB0_398 $268(%rip) + WORD $0xb4000851 // cbz x17, LBB0_398 $264(%rip) WORD $0x8b0b00f1 // add x17, x7, x11 WORD $0xb100051f // cmn x8, #1 WORD $0x9a880228 // csel x8, x17, x8, eq @@ -2163,7 +2162,7 @@ LBB0_384: WORD $0x710088bf // cmp w5, #34 WORD $0x52800073 // mov w19, #3 WORD $0x54ffeb00 // b.eq LBB0_348 $-672(%rip) - WORD $0x14000038 // b LBB0_398 $224(%rip) + WORD $0x14000037 // b LBB0_398 $220(%rip) LBB0_385: WORD $0xaa0703fc // mov x28, x7 WORD $0x52800073 // mov w19, #3 @@ -2189,7 +2188,7 @@ LBB0_387: WORD $0x8a140234 // and x20, x17, x20 WORD $0x17fffeca // b LBB0_317 $-1240(%rip) LBB0_388: - WORD $0xb4000454 // cbz x20, LBB0_398 $136(%rip) + WORD $0xb4000434 // cbz x20, LBB0_398 $132(%rip) WORD $0x8b0b0391 // add x17, x28, x11 WORD $0xb100051f // cmn x8, #1 WORD $0x9a880228 // csel x8, x17, x8, eq @@ -2200,25 +2199,24 @@ LBB0_390: WORD $0x52800073 // mov w19, #3 WORD $0x17ffff39 // b LBB0_348 $-796(%rip) LBB0_391: - WORD $0xb4000334 // cbz x20, LBB0_398 $100(%rip) + WORD $0xb4000314 // cbz x20, LBB0_398 $96(%rip) WORD $0x8b0b0391 // add x17, x28, x11 WORD $0xb100051f // cmn x8, #1 WORD $0x9a880228 // csel x8, x17, x8, eq WORD $0x9100079c // add x28, x28, #1 WORD $0xd1000694 // sub x20, x20, #1 WORD $0xb5ffda94 // cbnz x20, LBB0_324 $-1200(%rip) - WORD $0x14000012 // b LBB0_398 $72(%rip) + WORD $0x14000011 // b LBB0_398 $68(%rip) LBB0_393: WORD $0x92800008 // mov x8, #-1 LBB0_394: WORD $0xaa0803e0 // mov x0, x8 - WORD $0xa945fbfd // ldp fp, lr, [sp, #88] - WORD $0xa944cff4 // ldp x20, x19, [sp, #72] - WORD $0xa943d7f6 // ldp x22, x21, [sp, #56] - WORD $0xa942dff8 // ldp x24, x23, [sp, #40] - WORD $0xa941e7fa // ldp x26, x25, [sp, #24] - WORD $0xa940effc // ldp x28, x27, [sp, #8] - WORD $0x9101c3ff // add sp, sp, #112 + WORD $0xa9457bfd // ldp fp, lr, [sp, #80] + WORD $0xa9444ff4 // ldp x20, x19, [sp, #64] + WORD $0xa94357f6 // ldp x22, x21, [sp, #48] + WORD $0xa9425ff8 // ldp x24, x23, [sp, #32] + WORD $0xa94167fa // ldp x26, x25, [sp, #16] + WORD $0xa8c76ffc // ldp x28, x27, [sp], #112 WORD $0xd65f03c0 // ret LBB0_395: WORD $0x9280001c // mov x28, #-1 @@ -2226,7 +2224,7 @@ LBB0_395: WORD $0x1400000c // b LBB0_403 $48(%rip) LBB0_396: WORD $0x928000c8 // mov x8, #-7 - WORD $0x17fffff3 // b LBB0_394 $-52(%rip) + WORD $0x17fffff4 // b LBB0_394 $-48(%rip) LBB0_397: WORD $0xb100079f // cmn x28, #1 WORD $0x54000101 // b.ne LBB0_403 $32(%rip) @@ -2245,7 +2243,7 @@ LBB0_402: LBB0_403: WORD $0xf9000028 // str x8, [x1] WORD $0xaa1c03e8 // mov x8, x28 - WORD $0x17ffffe7 // b LBB0_394 $-100(%rip) + WORD $0x17ffffe8 // b LBB0_394 $-96(%rip) LBB0_404: WORD $0xb100051f // cmn x8, #1 WORD $0x54ffff61 // b.ne LBB0_402 $-20(%rip) @@ -2335,7 +2333,7 @@ LBB0_420: WORD $0x17ffffb0 // b LBB0_402 $-320(%rip) LBB0_425: WORD $0x92800028 // mov x8, #-2 - WORD $0x17ffff98 // b LBB0_394 $-416(%rip) + WORD $0x17ffff99 // b LBB0_394 $-412(%rip) LBB0_426: WORD $0xaa1403fe // mov lr, x20 WORD $0x8b140388 // add x8, x28, x20 diff --git a/internal/native/neon/skip_one_fast_arm64.s b/internal/native/neon/skip_one_fast_arm64.s index 0caf27875..cf570e909 100644 --- a/internal/native/neon/skip_one_fast_arm64.s +++ b/internal/native/neon/skip_one_fast_arm64.s @@ -57,12 +57,12 @@ lCPI0_1: _skip_one_fast: WORD $0xd10303ff // sub sp, sp, #192 - WORD $0xa905effc // stp x28, x27, [sp, #88] - WORD $0xa906e7fa // stp x26, x25, [sp, #104] - WORD $0xa907dff8 // stp x24, x23, [sp, #120] - WORD $0xa908d7f6 // stp x22, x21, [sp, #136] - WORD $0xa909cff4 // stp x20, x19, [sp, #152] - WORD $0xa90afbfd // stp fp, lr, [sp, #168] + WORD $0xa9056ffc // stp x28, x27, [sp, #80] + WORD $0xa90667fa // stp x26, x25, [sp, #96] + WORD $0xa9075ff8 // stp x24, x23, [sp, #112] + WORD $0xa90857f6 // stp x22, x21, [sp, #128] + WORD $0xa9094ff4 // stp x20, x19, [sp, #144] + WORD $0xa90a7bfd // stp fp, lr, [sp, #160] WORD $0xa93ffbfd // stp fp, lr, [sp, #-8] WORD $0xd10023fd // sub fp, sp, #8 WORD $0xf940002b // ldr x11, [x1] @@ -927,12 +927,12 @@ LBB0_115: LBB0_116: WORD $0x92800000 // mov x0, #-1 LBB0_117: - WORD $0xa94afbfd // ldp fp, lr, [sp, #168] - WORD $0xa949cff4 // ldp x20, x19, [sp, #152] - WORD $0xa948d7f6 // ldp x22, x21, [sp, #136] - WORD $0xa947dff8 // ldp x24, x23, [sp, #120] - WORD $0xa946e7fa // ldp x26, x25, [sp, #104] - WORD $0xa945effc // ldp x28, x27, [sp, #88] + WORD $0xa94a7bfd // ldp fp, lr, [sp, #160] + WORD $0xa9494ff4 // ldp x20, x19, [sp, #144] + WORD $0xa94857f6 // ldp x22, x21, [sp, #128] + WORD $0xa9475ff8 // ldp x24, x23, [sp, #112] + WORD $0xa94667fa // ldp x26, x25, [sp, #96] + WORD $0xa9456ffc // ldp x28, x27, [sp, #80] WORD $0x910303ff // add sp, sp, #192 WORD $0xd65f03c0 // ret LBB0_118: diff --git a/internal/native/neon/u64toa_arm64.s b/internal/native/neon/u64toa_arm64.s index 9acf4497d..dfece7878 100644 --- a/internal/native/neon/u64toa_arm64.s +++ b/internal/native/neon/u64toa_arm64.s @@ -72,13 +72,12 @@ lCPI0_3: // .byte 15 _u64toa: - WORD $0xd10083ff // sub sp, sp, #32 - WORD $0xa900fbfd // stp fp, lr, [sp, #8] + WORD $0xa9be7bfd // stp fp, lr, [sp, #-32]! WORD $0xa93ffbfd // stp fp, lr, [sp, #-8] WORD $0xd10023fd // sub fp, sp, #8 WORD $0xd344fc28 // lsr x8, x1, #4 WORD $0xf109c11f // cmp x8, #624 - WORD $0x540005e8 // b.hi LBB0_9 $188(%rip) + WORD $0x540005c8 // b.hi LBB0_9 $184(%rip) WORD $0x53023c28 // ubfx w8, w1, #2, #14 WORD $0x52828f69 // mov w9, #5243 WORD $0x1b097d08 // mul w8, w8, w9 @@ -91,7 +90,7 @@ _u64toa: WORD $0x710fa03f // cmp w1, #1000 WORD $0x540000e3 // b.lo LBB0_3 $28(%rip) Lloh0: - WORD $0x10002aaa // adr x10, _Digits $1364(%rip) + WORD $0x10002a2a // adr x10, _Digits $1348(%rip) Lloh1: WORD $0x9100014a // add x10, x10, _Digits@PAGEOFF $0(%rip) WORD $0x3869694a // ldrb w10, [x10, x9] @@ -100,11 +99,11 @@ Lloh1: WORD $0x14000004 // b LBB0_5 $16(%rip) LBB0_3: WORD $0x7101903f // cmp w1, #100 - WORD $0x540002e3 // b.lo LBB0_8 $92(%rip) + WORD $0x540002c3 // b.lo LBB0_8 $88(%rip) WORD $0x5280000a // mov w10, #0 LBB0_5: Lloh2: - WORD $0x1000298b // adr x11, _Digits $1328(%rip) + WORD $0x1000290b // adr x11, _Digits $1312(%rip) Lloh3: WORD $0x9100016b // add x11, x11, _Digits@PAGEOFF $0(%rip) WORD $0x8b294169 // add x9, x11, w9, uxtw @@ -113,7 +112,7 @@ Lloh3: WORD $0x382a480b // strb w11, [x0, w10, uxtw] LBB0_6: Lloh4: - WORD $0x100028ca // adr x10, _Digits $1304(%rip) + WORD $0x1000284a // adr x10, _Digits $1288(%rip) Lloh5: WORD $0x9100014a // add x10, x10, _Digits@PAGEOFF $0(%rip) WORD $0x3868694b // ldrb w11, [x10, x8] @@ -121,7 +120,7 @@ Lloh5: WORD $0x3829480b // strb w11, [x0, w9, uxtw] LBB0_7: Lloh6: - WORD $0x10002829 // adr x9, _Digits $1284(%rip) + WORD $0x100027a9 // adr x9, _Digits $1268(%rip) Lloh7: WORD $0x91000129 // add x9, x9, _Digits@PAGEOFF $0(%rip) WORD $0x8b282128 // add x8, x9, w8, uxth @@ -129,20 +128,19 @@ Lloh7: WORD $0x11000548 // add w8, w10, #1 WORD $0x382a4809 // strb w9, [x0, w10, uxtw] WORD $0xaa0803e0 // mov x0, x8 - WORD $0xa940fbfd // ldp fp, lr, [sp, #8] - WORD $0x910083ff // add sp, sp, #32 + WORD $0xa8c27bfd // ldp fp, lr, [sp], #32 WORD $0xd65f03c0 // ret LBB0_8: WORD $0x52800009 // mov w9, #0 WORD $0x5280000a // mov w10, #0 WORD $0x7100283f // cmp w1, #10 - WORD $0x54fffdc2 // b.hs LBB0_6 $-72(%rip) - WORD $0x17fffff2 // b LBB0_7 $-56(%rip) + WORD $0x54fffde2 // b.hs LBB0_6 $-68(%rip) + WORD $0x17fffff3 // b LBB0_7 $-52(%rip) LBB0_9: WORD $0x529c2008 // mov w8, #57600 WORD $0x72a0bea8 // movk w8, #1525, lsl #16 WORD $0xeb08003f // cmp x1, x8 - WORD $0x54000a02 // b.hs LBB0_18 $320(%rip) + WORD $0x540009e2 // b.hs LBB0_18 $316(%rip) WORD $0x5282eb28 // mov w8, #5977 WORD $0x72ba36e8 // movk w8, #53687, lsl #16 WORD $0x92407c29 // and x9, x1, #0xffffffff @@ -166,7 +164,7 @@ LBB0_9: WORD $0x6b0b003f // cmp w1, w11 WORD $0x540000e3 // b.lo LBB0_12 $28(%rip) Lloh8: - WORD $0x1000230b // adr x11, _Digits $1120(%rip) + WORD $0x100022ab // adr x11, _Digits $1108(%rip) Lloh9: WORD $0x9100016b // add x11, x11, _Digits@PAGEOFF $0(%rip) WORD $0x386a696b // ldrb w11, [x11, x10] @@ -177,11 +175,11 @@ LBB0_12: WORD $0x5288480b // mov w11, #16960 WORD $0x72a001eb // movk w11, #15, lsl #16 WORD $0x6b0b003f // cmp w1, w11 - WORD $0x54000543 // b.lo LBB0_17 $168(%rip) + WORD $0x54000523 // b.lo LBB0_17 $164(%rip) WORD $0x5280000c // mov w12, #0 LBB0_14: Lloh10: - WORD $0x100021ab // adr x11, _Digits $1076(%rip) + WORD $0x1000214b // adr x11, _Digits $1064(%rip) Lloh11: WORD $0x9100016b // add x11, x11, _Digits@PAGEOFF $0(%rip) WORD $0x8b2a416a // add x10, x11, w10, uxtw @@ -190,7 +188,7 @@ Lloh11: WORD $0x382c480a // strb w10, [x0, w12, uxtw] LBB0_15: Lloh12: - WORD $0x100020ea // adr x10, _Digits $1052(%rip) + WORD $0x1000208a // adr x10, _Digits $1040(%rip) Lloh13: WORD $0x9100014a // add x10, x10, _Digits@PAGEOFF $0(%rip) WORD $0x3869694c // ldrb w12, [x10, x9] @@ -208,7 +206,7 @@ LBB0_16: WORD $0x92403d08 // and x8, x8, #0xffff WORD $0xd37ff908 // lsl x8, x8, #1 Lloh14: - WORD $0x10001f0c // adr x12, _Digits $992(%rip) + WORD $0x10001eac // adr x12, _Digits $980(%rip) Lloh15: WORD $0x9100018c // add x12, x12, _Digits@PAGEOFF $0(%rip) WORD $0x8b292189 // add x9, x12, w9, uxth @@ -225,22 +223,21 @@ Lloh15: WORD $0x11001548 // add w8, w10, #5 WORD $0x390011a9 // strb w9, [x13, #4] WORD $0xaa0803e0 // mov x0, x8 - WORD $0xa940fbfd // ldp fp, lr, [sp, #8] - WORD $0x910083ff // add sp, sp, #32 + WORD $0xa8c27bfd // ldp fp, lr, [sp], #32 WORD $0xd65f03c0 // ret LBB0_17: WORD $0x5280000b // mov w11, #0 WORD $0x5280000a // mov w10, #0 WORD $0x53057c2c // lsr w12, w1, #5 WORD $0x7130d59f // cmp w12, #3125 - WORD $0x54fffb42 // b.hs LBB0_15 $-152(%rip) - WORD $0x17ffffde // b LBB0_16 $-136(%rip) + WORD $0x54fffb62 // b.hs LBB0_15 $-148(%rip) + WORD $0x17ffffdf // b LBB0_16 $-132(%rip) LBB0_18: WORD $0xd2adf82a // mov x10, #1874919424 WORD $0xf2d0de4a // movk x10, #34546, lsl #32 WORD $0xf2e0046a // movk x10, #35, lsl #48 WORD $0xeb0a003f // cmp x1, x10 - WORD $0x54000bc2 // b.hs LBB0_20 $376(%rip) + WORD $0x54000ba2 // b.hs LBB0_20 $372(%rip) WORD $0xd299dfa9 // mov x9, #52989 WORD $0xf2b08c29 // movk x9, #33889, lsl #16 WORD $0xf2cee229 // movk x9, #30481, lsl #32 @@ -267,7 +264,7 @@ LBB0_18: WORD $0x4e413821 // zip1.8h v1, v1, v1 WORD $0x4e813821 // zip1.4s v1, v1, v1 Lloh16: - WORD $0x10ffe9c9 // adr x9, lCPI0_0 $-712(%rip) + WORD $0x10ffea29 // adr x9, lCPI0_0 $-700(%rip) Lloh17: WORD $0xfd400122 // ldr d2, [x9, lCPI0_0@PAGEOFF] $0(%rip) WORD $0x2e62c024 // umull.4s v4, v1, v2 @@ -275,7 +272,7 @@ Lloh17: WORD $0x2e62c021 // umull.4s v1, v1, v2 WORD $0x4e415881 // uzp2.8h v1, v4, v1 Lloh18: - WORD $0x10ffe949 // adr x9, lCPI0_1 $-728(%rip) + WORD $0x10ffe9a9 // adr x9, lCPI0_1 $-716(%rip) Lloh19: WORD $0xfd400124 // ldr d4, [x9, lCPI0_1@PAGEOFF] $0(%rip) WORD $0x2e64c026 // umull.4s v6, v1, v4 @@ -314,12 +311,12 @@ Lloh19: WORD $0x4e208420 // add.16b v0, v1, v0 WORD $0x4e209821 // cmeq.16b v1, v1, #0 Lloh20: - WORD $0x10ffe4e8 // adr x8, lCPI0_2 $-868(%rip) + WORD $0x10ffe548 // adr x8, lCPI0_2 $-856(%rip) Lloh21: WORD $0x3dc00102 // ldr q2, [x8, lCPI0_2@PAGEOFF] $0(%rip) WORD $0x4e221c21 // and.16b v1, v1, v2 Lloh22: - WORD $0x10ffe508 // adr x8, lCPI0_3 $-864(%rip) + WORD $0x10ffe568 // adr x8, lCPI0_3 $-852(%rip) Lloh23: WORD $0x3dc00102 // ldr q2, [x8, lCPI0_3@PAGEOFF] $0(%rip) WORD $0x4e020021 // tbl.16b v1, { v1 }, v2 @@ -330,7 +327,7 @@ Lloh23: WORD $0x5ac00108 // rbit w8, w8 WORD $0x5ac01108 // clz w8, w8 Lloh24: - WORD $0x100017e9 // adr x9, _VecShiftShuffles $764(%rip) + WORD $0x10001749 // adr x9, _VecShiftShuffles $744(%rip) Lloh25: WORD $0x91000129 // add x9, x9, _VecShiftShuffles@PAGEOFF $0(%rip) WORD $0x3ce85921 // ldr q1, [x9, w8, uxtw #4] @@ -341,8 +338,7 @@ Lloh25: WORD $0x52800209 // mov w9, #16 WORD $0x4b080128 // sub w8, w9, w8 WORD $0xaa0803e0 // mov x0, x8 - WORD $0xa940fbfd // ldp fp, lr, [sp, #8] - WORD $0x910083ff // add sp, sp, #32 + WORD $0xa8c27bfd // ldp fp, lr, [sp], #32 WORD $0xd65f03c0 // ret LBB0_20: WORD $0xd28f0ae9 // mov x9, #30807 @@ -361,7 +357,7 @@ LBB0_22: WORD $0x71018d7f // cmp w11, #99 WORD $0x540000e8 // b.hi LBB0_24 $28(%rip) Lloh26: - WORD $0x10000de9 // adr x9, _Digits $444(%rip) + WORD $0x10000dc9 // adr x9, _Digits $440(%rip) Lloh27: WORD $0x91000129 // add x9, x9, _Digits@PAGEOFF $0(%rip) WORD $0x786b5929 // ldrh w9, [x9, w11, uxtw #1] @@ -380,7 +376,7 @@ LBB0_24: WORD $0x1b0cad29 // msub w9, w9, w12, w11 WORD $0x92403d29 // and x9, x9, #0xffff Lloh28: - WORD $0x10000bec // adr x12, _Digits $380(%rip) + WORD $0x10000bcc // adr x12, _Digits $376(%rip) Lloh29: WORD $0x9100018c // add x12, x12, _Digits@PAGEOFF $0(%rip) WORD $0x78697989 // ldrh w9, [x12, x9, lsl #1] @@ -389,7 +385,7 @@ Lloh29: WORD $0x14000010 // b LBB0_27 $64(%rip) LBB0_26: Lloh30: - WORD $0x10000b2c // adr x12, _Digits $356(%rip) + WORD $0x10000b0c // adr x12, _Digits $352(%rip) Lloh31: WORD $0x9100018c // add x12, x12, _Digits@PAGEOFF $0(%rip) WORD $0x7869598d // ldrh w13, [x12, w9, uxtw #1] @@ -432,7 +428,7 @@ LBB0_27: WORD $0x4e413821 // zip1.8h v1, v1, v1 WORD $0x4e813821 // zip1.4s v1, v1, v1 Lloh32: - WORD $0x10ffd7cc // adr x12, lCPI0_0 $-1288(%rip) + WORD $0x10ffd84c // adr x12, lCPI0_0 $-1272(%rip) Lloh33: WORD $0xfd400183 // ldr d3, [x12, lCPI0_0@PAGEOFF] $0(%rip) WORD $0x2e63c025 // umull.4s v5, v1, v3 @@ -440,7 +436,7 @@ Lloh33: WORD $0x2e63c021 // umull.4s v1, v1, v3 WORD $0x4e4158a1 // uzp2.8h v1, v5, v1 Lloh34: - WORD $0x10ffd74c // adr x12, lCPI0_1 $-1304(%rip) + WORD $0x10ffd7cc // adr x12, lCPI0_1 $-1288(%rip) Lloh35: WORD $0xfd400185 // ldr d5, [x12, lCPI0_1@PAGEOFF] $0(%rip) WORD $0x2e65c026 // umull.4s v6, v1, v5 @@ -481,8 +477,7 @@ Lloh35: WORD $0x3ca94800 // str q0, [x0, w9, uxtw] WORD $0x321c0128 // orr w8, w9, #0x10 WORD $0xaa0803e0 // mov x0, x8 - WORD $0xa940fbfd // ldp fp, lr, [sp, #8] - WORD $0x910083ff // add sp, sp, #32 + WORD $0xa8c27bfd // ldp fp, lr, [sp], #32 WORD $0xd65f03c0 // ret _Digits: WORD $0x31303030 // .ascii 4, '0001020304050607' @@ -535,7 +530,7 @@ _Digits: WORD $0x35393439 // .ascii 4, '949596979899' WORD $0x37393639 // .ascii 4, '96979899' WORD $0x39393839 // .ascii 4, '9899' - WORD $0x00000000; WORD $0x00000000; WORD $0x00000000 // .p2align 4, 0x00 + // .p2align 4, 0x00 _VecShiftShuffles: WORD $0x03020100 // .ascii 4, '\x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f' WORD $0x07060504 // .ascii 4, '\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\x01\x02\x03\x04' diff --git a/internal/native/neon/unquote_arm64.s b/internal/native/neon/unquote_arm64.s index 3fc5b73ad..79b7ab758 100644 --- a/internal/native/neon/unquote_arm64.s +++ b/internal/native/neon/unquote_arm64.s @@ -56,13 +56,12 @@ lCPI0_1: // .byte 15 _unquote: - WORD $0xd101c3ff // sub sp, sp, #112 - WORD $0xa900effc // stp x28, x27, [sp, #8] - WORD $0xa901e7fa // stp x26, x25, [sp, #24] - WORD $0xa902dff8 // stp x24, x23, [sp, #40] - WORD $0xa903d7f6 // stp x22, x21, [sp, #56] - WORD $0xa904cff4 // stp x20, x19, [sp, #72] - WORD $0xa905fbfd // stp fp, lr, [sp, #88] + WORD $0xa9b96ffc // stp x28, x27, [sp, #-112]! + WORD $0xa90167fa // stp x26, x25, [sp, #16] + WORD $0xa9025ff8 // stp x24, x23, [sp, #32] + WORD $0xa90357f6 // stp x22, x21, [sp, #48] + WORD $0xa9044ff4 // stp x20, x19, [sp, #64] + WORD $0xa9057bfd // stp fp, lr, [sp, #80] WORD $0xa93ffbfd // stp fp, lr, [sp, #-8] WORD $0xd10023fd // sub fp, sp, #8 WORD $0xb4002201 // cbz x1, LBB0_62 $1088(%rip) @@ -86,18 +85,18 @@ _unquote: WORD $0x72bf9414 // movk w20, #64672, lsl #16 WORD $0x4f02e780 // movi.16b v0, #92 Lloh0: - WORD $0x10fffb68 // adr x8, lCPI0_0 $-148(%rip) + WORD $0x10fffb88 // adr x8, lCPI0_0 $-144(%rip) Lloh1: WORD $0x3dc00101 // ldr q1, [x8, lCPI0_0@PAGEOFF] $0(%rip) Lloh2: - WORD $0x10fffba8 // adr x8, lCPI0_1 $-140(%rip) + WORD $0x10fffbc8 // adr x8, lCPI0_1 $-136(%rip) Lloh3: WORD $0x3dc00102 // ldr q2, [x8, lCPI0_1@PAGEOFF] $0(%rip) WORD $0xaa0003e8 // mov x8, x0 WORD $0xaa0103f5 // mov x21, x1 WORD $0xaa0203f6 // mov x22, x2 Lloh4: - WORD $0x10002ef7 // adr x23, __UnquoteTab $1500(%rip) + WORD $0x10002ed7 // adr x23, __UnquoteTab $1496(%rip) Lloh5: WORD $0x910002f7 // add x23, x23, __UnquoteTab@PAGEOFF $0(%rip) LBB0_2: @@ -157,7 +156,7 @@ LBB0_14: LBB0_15: WORD $0x91000b19 // add x25, x24, #2 WORD $0xeb1902b5 // subs x21, x21, x25 - WORD $0x54002824 // b.mi LBB0_93 $1284(%rip) + WORD $0x54002804 // b.mi LBB0_93 $1280(%rip) WORD $0x8b190108 // add x8, x8, x25 WORD $0xb5000145 // cbnz x5, LBB0_20 $40(%rip) WORD $0x8b1802da // add x26, x22, x24 @@ -166,26 +165,26 @@ LBB0_15: WORD $0x7103ff3f // cmp w25, #255 WORD $0x540003a0 // b.eq LBB0_28 $116(%rip) LBB0_18: - WORD $0x34001e19 // cbz w25, LBB0_74 $960(%rip) + WORD $0x34001df9 // cbz w25, LBB0_74 $956(%rip) WORD $0x38001759 // strb w25, [x26], #1 WORD $0xaa1a03f6 // mov x22, x26 WORD $0x14000093 // b LBB0_54 $588(%rip) LBB0_20: - WORD $0x340026b5 // cbz w21, LBB0_93 $1236(%rip) + WORD $0x34002695 // cbz w21, LBB0_93 $1232(%rip) WORD $0x385ff119 // ldurb w25, [x8, #-1] WORD $0x7101733f // cmp w25, #92 - WORD $0x540023a1 // b.ne LBB0_86 $1140(%rip) + WORD $0x54002381 // b.ne LBB0_86 $1136(%rip) WORD $0x39400119 // ldrb w25, [x8] WORD $0x7101733f // cmp w25, #92 WORD $0x54000161 // b.ne LBB0_27 $44(%rip) WORD $0x710006bf // cmp w21, #1 - WORD $0x540025ad // b.le LBB0_93 $1204(%rip) + WORD $0x5400258d // b.le LBB0_93 $1200(%rip) WORD $0xaa0803f9 // mov x25, x8 WORD $0x38401f3a // ldrb w26, [x25, #1]! WORD $0x71008b5f // cmp w26, #34 WORD $0x54000060 // b.eq LBB0_26 $12(%rip) WORD $0x7101735f // cmp w26, #92 - WORD $0x540022a1 // b.ne LBB0_87 $1108(%rip) + WORD $0x54002281 // b.ne LBB0_87 $1104(%rip) LBB0_26: WORD $0xd10006b5 // sub x21, x21, #1 WORD $0xaa1903e8 // mov x8, x25 @@ -199,7 +198,7 @@ LBB0_27: WORD $0x54fffca1 // b.ne LBB0_18 $-108(%rip) LBB0_28: WORD $0xf1000ebf // cmp x21, #3 - WORD $0x54002389 // b.ls LBB0_93 $1136(%rip) + WORD $0x54002369 // b.ls LBB0_93 $1132(%rip) WORD $0xb9400119 // ldr w25, [x8] WORD $0x0a39019b // bic w27, w12, w25 WORD $0x0b0a033c // add w28, w25, w10 @@ -209,18 +208,18 @@ LBB0_28: WORD $0x2a19039c // orr w28, w28, w25 WORD $0x0a0c039c // and w28, w28, w12 WORD $0x7a400b80 // ccmp w28, #0, #0, eq - WORD $0x540013e1 // b.ne LBB0_65 $636(%rip) + WORD $0x540013c1 // b.ne LBB0_65 $632(%rip) WORD $0x0a0d033c // and w28, w25, w13 WORD $0x4b1c017e // sub w30, w11, w28 WORD $0x0b0e0387 // add w7, w28, w14 WORD $0x0a1e00e7 // and w7, w7, w30 WORD $0x6a1b00ff // tst w7, w27 - WORD $0x54001321 // b.ne LBB0_65 $612(%rip) + WORD $0x54001301 // b.ne LBB0_65 $608(%rip) WORD $0x4b1c0127 // sub w7, w9, w28 WORD $0x0b0f039c // add w28, w28, w15 WORD $0x0a070387 // and w7, w28, w7 WORD $0x6a1b00ff // tst w7, w27 - WORD $0x54001281 // b.ne LBB0_65 $592(%rip) + WORD $0x54001261 // b.ne LBB0_65 $588(%rip) WORD $0x5ac00b27 // rev w7, w25 WORD $0x0a6710d9 // bic w25, w6, w7, lsr #4 WORD $0x0b190f39 // add w25, w25, w25, lsl #3 @@ -260,22 +259,22 @@ LBB0_38: WORD $0x0b0a0307 // add w7, w24, w10 WORD $0x0a38019a // bic w26, w12, w24 WORD $0x6a07035f // tst w26, w7 - WORD $0x54001421 // b.ne LBB0_77 $644(%rip) + WORD $0x54001401 // b.ne LBB0_77 $640(%rip) WORD $0x0b100307 // add w7, w24, w16 WORD $0x2a1800e7 // orr w7, w7, w24 WORD $0x6a0c00ff // tst w7, w12 - WORD $0x540013a1 // b.ne LBB0_77 $628(%rip) + WORD $0x54001381 // b.ne LBB0_77 $624(%rip) WORD $0x0a0d031b // and w27, w24, w13 WORD $0x4b1b0167 // sub w7, w11, w27 WORD $0x0b0e037c // add w28, w27, w14 WORD $0x0a070387 // and w7, w28, w7 WORD $0x6a1a00ff // tst w7, w26 - WORD $0x540012e1 // b.ne LBB0_77 $604(%rip) + WORD $0x540012c1 // b.ne LBB0_77 $600(%rip) WORD $0x4b1b0127 // sub w7, w9, w27 WORD $0x0b0f037b // add w27, w27, w15 WORD $0x0a070367 // and w7, w27, w7 WORD $0x6a1a00ff // tst w7, w26 - WORD $0x54001241 // b.ne LBB0_77 $584(%rip) + WORD $0x54001221 // b.ne LBB0_77 $580(%rip) WORD $0x5ac00b07 // rev w7, w24 WORD $0x0a6710d8 // bic w24, w6, w7, lsr #4 WORD $0x0b180f18 // add w24, w24, w24, lsl #3 @@ -289,7 +288,7 @@ LBB0_38: WORD $0x33001f58 // bfxil w24, w26, #0, #8 WORD $0x311004ff // cmn w7, #1025 WORD $0x540005e8 // b.hi LBB0_58 $188(%rip) - WORD $0x360816a4 // tbz w4, #1, LBB0_88 $724(%rip) + WORD $0x36081684 // tbz w4, #1, LBB0_88 $720(%rip) WORD $0x5297fde7 // mov w7, #49135 WORD $0x781fe2c7 // sturh w7, [x22, #-2] WORD $0x380036d3 // strb w19, [x22], #3 @@ -299,7 +298,7 @@ LBB0_38: WORD $0x14000037 // b LBB0_59 $220(%rip) LBB0_48: WORD $0xf10002bf // cmp x21, #0 - WORD $0x5400168d // b.le LBB0_91 $720(%rip) + WORD $0x5400166d // b.le LBB0_91 $716(%rip) WORD $0x39400107 // ldrb w7, [x8] WORD $0x710170ff // cmp w7, #92 WORD $0x54000681 // b.ne LBB0_60 $208(%rip) @@ -309,7 +308,7 @@ LBB0_48: WORD $0x7100d8ff // cmp w7, #54 WORD $0x54fff8c9 // b.ls LBB0_38 $-232(%rip) LBB0_51: - WORD $0x36081504 // tbz w4, #1, LBB0_90 $672(%rip) + WORD $0x360814e4 // tbz w4, #1, LBB0_90 $668(%rip) WORD $0x5297fde7 // mov w7, #49135 WORD $0x781fe2c7 // sturh w7, [x22, #-2] WORD $0x380016d3 // strb w19, [x22], #1 @@ -363,7 +362,7 @@ LBB0_59: WORD $0xd1000ada // sub x26, x22, #2 WORD $0x17ffffe5 // b LBB0_56 $-108(%rip) LBB0_60: - WORD $0x36080ea4 // tbz w4, #1, LBB0_88 $468(%rip) + WORD $0x36080e84 // tbz w4, #1, LBB0_88 $464(%rip) WORD $0x5297fde7 // mov w7, #49135 WORD $0x781fe2c7 // sturh w7, [x22, #-2] WORD $0x380016d3 // strb w19, [x22], #1 @@ -375,13 +374,12 @@ LBB0_63: WORD $0x8b1502c8 // add x8, x22, x21 WORD $0xcb020100 // sub x0, x8, x2 LBB0_64: - WORD $0xa945fbfd // ldp fp, lr, [sp, #88] - WORD $0xa944cff4 // ldp x20, x19, [sp, #72] - WORD $0xa943d7f6 // ldp x22, x21, [sp, #56] - WORD $0xa942dff8 // ldp x24, x23, [sp, #40] - WORD $0xa941e7fa // ldp x26, x25, [sp, #24] - WORD $0xa940effc // ldp x28, x27, [sp, #8] - WORD $0x9101c3ff // add sp, sp, #112 + WORD $0xa9457bfd // ldp fp, lr, [sp, #80] + WORD $0xa9444ff4 // ldp x20, x19, [sp, #64] + WORD $0xa94357f6 // ldp x22, x21, [sp, #48] + WORD $0xa9425ff8 // ldp x24, x23, [sp, #32] + WORD $0xa94167fa // ldp x26, x25, [sp, #16] + WORD $0xa8c76ffc // ldp x28, x27, [sp], #112 WORD $0xd65f03c0 // ret LBB0_65: WORD $0xcb000109 // sub x9, x8, x0 @@ -429,19 +427,19 @@ LBB0_71: WORD $0x54000102 // b.hs LBB0_75 $32(%rip) LBB0_73: WORD $0x92800020 // mov x0, #-2 - WORD $0x17ffffcf // b LBB0_64 $-196(%rip) + WORD $0x17ffffd0 // b LBB0_64 $-192(%rip) LBB0_74: WORD $0xaa2003e9 // mvn x9, x0 WORD $0x8b090108 // add x8, x8, x9 WORD $0xf9000068 // str x8, [x3] WORD $0x92800040 // mov x0, #-3 - WORD $0x17ffffca // b LBB0_64 $-216(%rip) + WORD $0x17ffffcb // b LBB0_64 $-212(%rip) LBB0_75: WORD $0x91001128 // add x8, x9, #4 LBB0_76: WORD $0xf9000068 // str x8, [x3] WORD $0x92800020 // mov x0, #-2 - WORD $0x17ffffc6 // b LBB0_64 $-232(%rip) + WORD $0x17ffffc7 // b LBB0_64 $-228(%rip) LBB0_77: WORD $0xcb000109 // sub x9, x8, x0 WORD $0x9100092a // add x10, x9, #2 @@ -504,7 +502,7 @@ LBB0_89: WORD $0xd1001108 // sub x8, x8, #4 WORD $0xf9000068 // str x8, [x3] WORD $0x92800060 // mov x0, #-4 - WORD $0x17ffff90 // b LBB0_64 $-448(%rip) + WORD $0x17ffff91 // b LBB0_64 $-444(%rip) LBB0_90: WORD $0x8b0000a9 // add x9, x5, x0 WORD $0xcb090108 // sub x8, x8, x9 @@ -516,11 +514,11 @@ LBB0_91: WORD $0x781fe2c8 // sturh w8, [x22, #-2] WORD $0x528017a8 // mov w8, #189 WORD $0x380016c8 // strb w8, [x22], #1 - WORD $0x17ffff84 // b LBB0_63 $-496(%rip) + WORD $0x17ffff85 // b LBB0_63 $-492(%rip) LBB0_93: WORD $0xf9000061 // str x1, [x3] WORD $0x92800000 // mov x0, #-1 - WORD $0x17ffff83 // b LBB0_64 $-500(%rip) + WORD $0x17ffff84 // b LBB0_64 $-496(%rip) __UnquoteTab: WORD $0x00000000 // .ascii 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' WORD $0x00000000 // .ascii 4, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' diff --git a/internal/native/neon/validate_one_arm64.s b/internal/native/neon/validate_one_arm64.s index fff483d98..c4ab91f4d 100644 --- a/internal/native/neon/validate_one_arm64.s +++ b/internal/native/neon/validate_one_arm64.s @@ -59,17 +59,16 @@ lCPI0_2: // .byte 15 _validate_one: - WORD $0xd101c3ff // sub sp, sp, #112 - WORD $0xa900effc // stp x28, x27, [sp, #8] - WORD $0xa901e7fa // stp x26, x25, [sp, #24] - WORD $0xa902dff8 // stp x24, x23, [sp, #40] - WORD $0xa903d7f6 // stp x22, x21, [sp, #56] - WORD $0xa904cff4 // stp x20, x19, [sp, #72] - WORD $0xa905fbfd // stp fp, lr, [sp, #88] + WORD $0xa9b96ffc // stp x28, x27, [sp, #-112]! + WORD $0xa90167fa // stp x26, x25, [sp, #16] + WORD $0xa9025ff8 // stp x24, x23, [sp, #32] + WORD $0xa90357f6 // stp x22, x21, [sp, #48] + WORD $0xa9044ff4 // stp x20, x19, [sp, #64] + WORD $0xa9057bfd // stp fp, lr, [sp, #80] WORD $0xa93ffbfd // stp fp, lr, [sp, #-8] WORD $0xd10023fd // sub fp, sp, #8 Lloh0: - WORD $0x10fffd68 // adr x8, lCPI0_0 $-84(%rip) + WORD $0x10fffd88 // adr x8, lCPI0_0 $-80(%rip) Lloh1: WORD $0x3dc00100 // ldr q0, [x8, lCPI0_0@PAGEOFF] $0(%rip) WORD $0xaa0203ea // mov x10, x2 @@ -88,11 +87,11 @@ Lloh1: WORD $0x4f01e440 // movi.16b v0, #34 WORD $0x4f02e781 // movi.16b v1, #92 Lloh2: - WORD $0x10fffbc8 // adr x8, lCPI0_1 $-136(%rip) + WORD $0x10fffbe8 // adr x8, lCPI0_1 $-132(%rip) Lloh3: WORD $0x3dc00102 // ldr q2, [x8, lCPI0_1@PAGEOFF] $0(%rip) Lloh4: - WORD $0x10fffc08 // adr x8, lCPI0_2 $-128(%rip) + WORD $0x10fffc28 // adr x8, lCPI0_2 $-124(%rip) Lloh5: WORD $0x3dc00103 // ldr q3, [x8, lCPI0_2@PAGEOFF] $0(%rip) WORD $0x92f00006 // mov x6, #9223372036854775807 @@ -160,7 +159,7 @@ LBB0_14: LBB0_18: WORD $0x9100139b // add x27, x28, #4 WORD $0xeb08037f // cmp x27, x8 - WORD $0x5400e922 // b.hs LBB0_395 $7460(%rip) + WORD $0x5400e902 // b.hs LBB0_395 $7456(%rip) LBB0_19: WORD $0x387b6931 // ldrb w17, [x9, x27] WORD $0x7100823f // cmp w17, #32 @@ -194,13 +193,13 @@ LBB0_22: WORD $0x71000d1f // cmp w8, #3 WORD $0x540019c1 // b.ne LBB0_58 $824(%rip) WORD $0x71008abf // cmp w21, #34 - WORD $0x5400f101 // b.ne LBB0_425 $7712(%rip) + WORD $0x5400f0e1 // b.ne LBB0_425 $7708(%rip) WORD $0x3200f3e6 // mov w6, #1431655765 WORD $0xf8347944 // str x4, [x10, x20, lsl #3] WORD $0xf9400408 // ldr x8, [x0, #8] WORD $0xeb1c0114 // subs x20, x8, x28 WORD $0x372831a3 // tbnz w3, #5, LBB0_109 $1588(%rip) - WORD $0x5400e560 // b.eq LBB0_398 $7340(%rip) + WORD $0x5400e540 // b.eq LBB0_398 $7336(%rip) WORD $0xf101029f // cmp x20, #64 WORD $0x54009103 // b.lo LBB0_250 $4640(%rip) WORD $0xd2800005 // mov x5, #0 @@ -306,7 +305,7 @@ LBB0_39: WORD $0xf9400408 // ldr x8, [x0, #8] WORD $0xeb1c0114 // subs x20, x8, x28 WORD $0x37283923 // tbnz w3, #5, LBB0_138 $1828(%rip) - WORD $0x5400d8e0 // b.eq LBB0_398 $6940(%rip) + WORD $0x5400d8c0 // b.eq LBB0_398 $6936(%rip) WORD $0xf101029f // cmp x20, #64 WORD $0x54009423 // b.lo LBB0_277 $4740(%rip) WORD $0xd2800005 // mov x5, #0 @@ -402,10 +401,10 @@ LBB0_54: WORD $0x540017e0 // b.eq LBB0_105 $764(%rip) WORD $0x710176bf // cmp w21, #93 WORD $0x54001420 // b.eq LBB0_97 $644(%rip) - WORD $0x140006c4 // b LBB0_425 $6928(%rip) + WORD $0x140006c3 // b LBB0_425 $6924(%rip) LBB0_56: WORD $0x7100eabf // cmp w21, #58 - WORD $0x5400d841 // b.ne LBB0_425 $6920(%rip) + WORD $0x5400d821 // b.ne LBB0_425 $6916(%rip) WORD $0xf834795f // str xzr, [x10, x20, lsl #3] WORD $0xf9400045 // ldr x5, [x2] WORD $0xaa0e03e8 // mov x8, x14 @@ -422,7 +421,7 @@ LBB0_59: WORD $0x54003d02 // b.hs LBB0_154 $1952(%rip) WORD $0xf9400408 // ldr x8, [x0, #8] WORD $0xeb1b0115 // subs x21, x8, x27 - WORD $0x5400cbe0 // b.eq LBB0_399 $6524(%rip) + WORD $0x5400cbc0 // b.eq LBB0_399 $6520(%rip) WORD $0x394003c8 // ldrb w8, [lr] WORD $0x7100c11f // cmp w8, #48 WORD $0x54000141 // b.ne LBB0_65 $40(%rip) @@ -575,7 +574,7 @@ LBB0_94: LBB0_95: WORD $0x7101f6bf // cmp w21, #125 WORD $0x54000080 // b.eq LBB0_97 $16(%rip) - WORD $0x14000627 // b LBB0_425 $6300(%rip) + WORD $0x14000626 // b LBB0_425 $6296(%rip) LBB0_96: WORD $0x710176bf // cmp w21, #93 WORD $0x540000c1 // b.ne LBB0_98 $24(%rip) @@ -601,7 +600,7 @@ LBB0_99: WORD $0x5400b5a1 // b.ne LBB0_394 $5812(%rip) WORD $0xf9400048 // ldr x8, [x2] WORD $0xf13ffd1f // cmp x8, #4095 - WORD $0x5400b6cc // b.gt LBB0_396 $5848(%rip) + WORD $0x5400b6ac // b.gt LBB0_396 $5844(%rip) WORD $0x91000511 // add x17, x8, #1 WORD $0xf9000051 // str x17, [x2] WORD $0x528000d1 // mov w17, #6 @@ -612,7 +611,7 @@ LBB0_99: WORD $0x140005a2 // b LBB0_394 $5768(%rip) LBB0_105: WORD $0xf13ffcbf // cmp x5, #4095 - WORD $0x5400b58c // b.gt LBB0_396 $5808(%rip) + WORD $0x5400b56c // b.gt LBB0_396 $5804(%rip) WORD $0x910004a8 // add x8, x5, #1 WORD $0xf9000048 // str x8, [x2] WORD $0xf825795f // str xzr, [x10, x5, lsl #3] @@ -622,7 +621,7 @@ LBB0_105: WORD $0x14000599 // b LBB0_394 $5732(%rip) LBB0_107: WORD $0xf13ffcbf // cmp x5, #4095 - WORD $0x5400b46c // b.gt LBB0_396 $5772(%rip) + WORD $0x5400b44c // b.gt LBB0_396 $5768(%rip) WORD $0x910004a8 // add x8, x5, #1 WORD $0xf9000048 // str x8, [x2] WORD $0xf8257953 // str x19, [x10, x5, lsl #3] @@ -631,7 +630,7 @@ LBB0_107: WORD $0xb5ffc425 // cbnz x5, LBB0_1 $-1916(%rip) WORD $0x14000590 // b LBB0_394 $5696(%rip) LBB0_109: - WORD $0x5400b3e0 // b.eq LBB0_398 $5756(%rip) + WORD $0x5400b3c0 // b.eq LBB0_398 $5752(%rip) WORD $0xf101029f // cmp x20, #64 WORD $0x54006403 // b.lo LBB0_256 $3200(%rip) WORD $0xd2800005 // mov x5, #0 @@ -719,7 +718,7 @@ LBB0_114: WORD $0xaa1502d5 // orr x21, x22, x21 WORD $0xaa1102b1 // orr x17, x21, x17 WORD $0xb50002e7 // cbnz x7, LBB0_119 $92(%rip) - WORD $0xb500aa71 // cbnz x17, LBB0_404 $5452(%rip) + WORD $0xb500aa51 // cbnz x17, LBB0_404 $5448(%rip) WORD $0xd1010294 // sub x20, x20, #64 WORD $0x9101039c // add x28, x28, #64 WORD $0xf100fe9f // cmp x20, #63 @@ -749,7 +748,7 @@ LBB0_119: WORD $0xdac00231 // rbit x17, x17 WORD $0xdac01231 // clz x17, x17 WORD $0xeb05023f // cmp x17, x5 - WORD $0x5400b143 // b.lo LBB0_427 $5672(%rip) + WORD $0x5400b123 // b.lo LBB0_427 $5668(%rip) LBB0_120: WORD $0x8b1c00b1 // add x17, x5, x28 LBB0_121: @@ -760,16 +759,16 @@ LBB0_122: WORD $0xb20903e7 // mov x7, #36028797027352576 WORD $0xf2800027 // movk x7, #1 WORD $0xb6f81c9c // tbz x28, #63, LBB0_170 $912(%rip) - WORD $0x14000524 // b LBB0_397 $5264(%rip) + WORD $0x14000523 // b LBB0_397 $5260(%rip) LBB0_123: WORD $0x8b2743d1 // add x17, lr, w7, uxtw WORD $0x8b1c0236 // add x22, x17, x28 LBB0_124: WORD $0x92800015 // mov x21, #-1 - WORD $0xb400a4c8 // cbz x8, LBB0_400 $5272(%rip) + WORD $0xb400a4a8 // cbz x8, LBB0_400 $5268(%rip) LBB0_125: - WORD $0xb400a4b4 // cbz x20, LBB0_400 $5268(%rip) - WORD $0xb400a485 // cbz x5, LBB0_400 $5264(%rip) + WORD $0xb400a494 // cbz x20, LBB0_400 $5264(%rip) + WORD $0xb400a465 // cbz x5, LBB0_400 $5260(%rip) WORD $0xcb1e02c7 // sub x7, x22, lr WORD $0xd10004f1 // sub x17, x7, #1 WORD $0xeb11011f // cmp x8, x17 @@ -781,12 +780,12 @@ LBB0_125: WORD $0xf1000691 // subs x17, x20, #1 WORD $0x5400006b // b.lt LBB0_132 $12(%rip) WORD $0xeb1100bf // cmp x5, x17 - WORD $0x5400a321 // b.ne LBB0_401 $5220(%rip) + WORD $0x5400a301 // b.ne LBB0_401 $5216(%rip) LBB0_132: WORD $0xaa050111 // orr x17, x8, x5 WORD $0xb7f80071 // tbnz x17, #63, LBB0_134 $12(%rip) WORD $0xeb05011f // cmp x8, x5 - WORD $0x5400a44a // b.ge LBB0_407 $5256(%rip) + WORD $0x5400a42a // b.ge LBB0_407 $5252(%rip) LBB0_134: WORD $0xd37ffe31 // lsr x17, x17, #63 WORD $0x52000231 // eor w17, w17, #0x1 @@ -803,11 +802,11 @@ LBB0_136: WORD $0x92f00006 // mov x6, #9223372036854775807 WORD $0xb20903e7 // mov x7, #36028797027352576 WORD $0xf2800027 // movk x7, #1 - WORD $0xb7f8a0d5 // tbnz x21, #63, LBB0_400 $5144(%rip) + WORD $0xb7f8a0b5 // tbnz x21, #63, LBB0_400 $5140(%rip) WORD $0x8b15037c // add x28, x27, x21 WORD $0x140000bd // b LBB0_170 $756(%rip) LBB0_138: - WORD $0x54009fe0 // b.eq LBB0_398 $5116(%rip) + WORD $0x54009fc0 // b.eq LBB0_398 $5112(%rip) WORD $0xf101029f // cmp x20, #64 WORD $0x54005fa3 // b.lo LBB0_283 $3060(%rip) WORD $0xd2800005 // mov x5, #0 @@ -895,7 +894,7 @@ LBB0_143: WORD $0xaa1502d5 // orr x21, x22, x21 WORD $0xaa1102b1 // orr x17, x21, x17 WORD $0xb50002e7 // cbnz x7, LBB0_148 $92(%rip) - WORD $0xb5009671 // cbnz x17, LBB0_404 $4812(%rip) + WORD $0xb5009651 // cbnz x17, LBB0_404 $4808(%rip) WORD $0xd1010294 // sub x20, x20, #64 WORD $0x9101039c // add x28, x28, #64 WORD $0xf100fe9f // cmp x20, #63 @@ -925,7 +924,7 @@ LBB0_148: WORD $0xdac00231 // rbit x17, x17 WORD $0xdac01231 // clz x17, x17 WORD $0xeb05023f // cmp x17, x5 - WORD $0x54009d43 // b.lo LBB0_427 $5032(%rip) + WORD $0x54009d23 // b.lo LBB0_427 $5028(%rip) WORD $0x8b1c00b1 // add x17, x5, x28 LBB0_150: WORD $0x9100063c // add x28, x17, #1 @@ -933,7 +932,7 @@ LBB0_150: WORD $0x92f00006 // mov x6, #9223372036854775807 WORD $0xb20903e7 // mov x7, #36028797027352576 WORD $0xf2800027 // movk x7, #1 - WORD $0xb7f890bc // tbnz x28, #63, LBB0_397 $4628(%rip) + WORD $0xb7f8909c // tbnz x28, #63, LBB0_397 $4624(%rip) LBB0_151: WORD $0xf900003c // str x28, [x1] WORD $0xaa1b03e8 // mov x8, x27 @@ -942,7 +941,7 @@ LBB0_151: WORD $0x54008e48 // b.hi LBB0_394 $4552(%rip) WORD $0xf9400048 // ldr x8, [x2] WORD $0xf13ffd1f // cmp x8, #4095 - WORD $0x54008f6c // b.gt LBB0_396 $4588(%rip) + WORD $0x54008f4c // b.gt LBB0_396 $4584(%rip) WORD $0x91000511 // add x17, x8, #1 WORD $0xf9000051 // str x17, [x2] WORD $0xf8287944 // str x4, [x10, x8, lsl #3] @@ -957,7 +956,7 @@ LBB0_154: WORD $0x54008c81 // b.ne LBB0_394 $4496(%rip) WORD $0xf9400408 // ldr x8, [x0, #8] WORD $0xeb1c0118 // subs x24, x8, x28 - WORD $0x540090c0 // b.eq LBB0_408 $4632(%rip) + WORD $0x540090a0 // b.eq LBB0_408 $4628(%rip) WORD $0xb20903e4 // mov x4, #36028797027352576 WORD $0xf2800024 // movk x4, #1 WORD $0x8b1c0128 // add x8, x9, x28 @@ -977,35 +976,35 @@ LBB0_160: WORD $0xf9400408 // ldr x8, [x0, #8] WORD $0xd1001111 // sub x17, x8, #4 WORD $0xeb11037f // cmp x27, x17 - WORD $0x54008de2 // b.hs LBB0_406 $4540(%rip) + WORD $0x54008dc2 // b.hs LBB0_406 $4536(%rip) WORD $0xb87c6928 // ldr w8, [x9, x28] WORD $0x528d8c31 // mov w17, #27745 WORD $0x72acae71 // movk w17, #25971, lsl #16 WORD $0x6b11011f // cmp w8, w17 - WORD $0x54009381 // b.ne LBB0_420 $4720(%rip) + WORD $0x54009361 // b.ne LBB0_420 $4716(%rip) WORD $0x9100177c // add x28, x27, #5 WORD $0x14000015 // b LBB0_170 $84(%rip) LBB0_165: WORD $0xf9400408 // ldr x8, [x0, #8] WORD $0xd1000d11 // sub x17, x8, #3 WORD $0xeb11037f // cmp x27, x17 - WORD $0x54008c82 // b.hs LBB0_406 $4496(%rip) + WORD $0x54008c62 // b.hs LBB0_406 $4492(%rip) WORD $0xb87b6928 // ldr w8, [x9, x27] WORD $0x528e4e91 // mov w17, #29300 WORD $0x72acaeb1 // movk w17, #25973, lsl #16 WORD $0x6b11011f // cmp w8, w17 WORD $0x54000160 // b.eq LBB0_169 $44(%rip) - WORD $0x1400047b // b LBB0_415 $4588(%rip) + WORD $0x1400047a // b LBB0_415 $4584(%rip) LBB0_167: WORD $0xf9400408 // ldr x8, [x0, #8] WORD $0xd1000d11 // sub x17, x8, #3 WORD $0xeb11037f // cmp x27, x17 - WORD $0x54008b42 // b.hs LBB0_406 $4456(%rip) + WORD $0x54008b22 // b.hs LBB0_406 $4452(%rip) WORD $0xb87b6928 // ldr w8, [x9, x27] WORD $0x528eadd1 // mov w17, #30062 WORD $0x72ad8d91 // movk w17, #27756, lsl #16 WORD $0x6b11011f // cmp w8, w17 - WORD $0x54008bc1 // b.ne LBB0_411 $4472(%rip) + WORD $0x54008ba1 // b.ne LBB0_411 $4468(%rip) LBB0_169: WORD $0x9100137c // add x28, x27, #4 LBB0_170: @@ -1021,7 +1020,7 @@ LBB0_171: LBB0_172: WORD $0xf9400048 // ldr x8, [x2] WORD $0xf13ffd1f // cmp x8, #4095 - WORD $0x540086ac // b.gt LBB0_396 $4308(%rip) + WORD $0x5400868c // b.gt LBB0_396 $4304(%rip) WORD $0x91000511 // add x17, x8, #1 WORD $0xf9000051 // str x17, [x2] WORD $0x528000b1 // mov w17, #5 @@ -1035,7 +1034,7 @@ LBB0_174: WORD $0xf9400408 // ldr x8, [x0, #8] WORD $0xeb1c0114 // subs x20, x8, x28 WORD $0x37280b43 // tbnz w3, #5, LBB0_185 $360(%rip) - WORD $0x54008580 // b.eq LBB0_398 $4272(%rip) + WORD $0x54008560 // b.eq LBB0_398 $4268(%rip) WORD $0xf101029f // cmp x20, #64 WORD $0x540051e3 // b.lo LBB0_307 $2620(%rip) WORD $0xd2800005 // mov x5, #0 @@ -1128,9 +1127,9 @@ LBB0_184: WORD $0xaa1803f6 // mov x22, x24 WORD $0x92800015 // mov x21, #-1 WORD $0xb5ffd688 // cbnz x8, LBB0_125 $-1328(%rip) - WORD $0x140003d8 // b LBB0_400 $3936(%rip) + WORD $0x140003d7 // b LBB0_400 $3932(%rip) LBB0_185: - WORD $0x54007a60 // b.eq LBB0_398 $3916(%rip) + WORD $0x54007a40 // b.eq LBB0_398 $3912(%rip) WORD $0xf101029f // cmp x20, #64 WORD $0x54004b43 // b.lo LBB0_313 $2408(%rip) WORD $0xd2800005 // mov x5, #0 @@ -1218,7 +1217,7 @@ LBB0_190: WORD $0xaa0400c4 // orr x4, x6, x4 WORD $0xaa110091 // orr x17, x4, x17 WORD $0xb50002e7 // cbnz x7, LBB0_195 $92(%rip) - WORD $0xb50070f1 // cbnz x17, LBB0_404 $3612(%rip) + WORD $0xb50070d1 // cbnz x17, LBB0_404 $3608(%rip) WORD $0xd1010294 // sub x20, x20, #64 WORD $0x9101039c // add x28, x28, #64 WORD $0xf100fe9f // cmp x20, #63 @@ -1250,7 +1249,7 @@ LBB0_195: WORD $0xeb05023f // cmp x17, x5 WORD $0x52800073 // mov w19, #3 WORD $0x54ffc682 // b.hs LBB0_120 $-1840(%rip) - WORD $0x140003bc // b LBB0_427 $3824(%rip) + WORD $0x140003bb // b LBB0_427 $3820(%rip) LBB0_196: WORD $0x39400511 // ldrb w17, [x8, #1] WORD $0x5100ba31 // sub w17, w17, #46 @@ -1400,10 +1399,10 @@ LBB0_230: WORD $0x52800073 // mov w19, #3 LBB0_231: WORD $0x92800007 // mov x7, #-1 - WORD $0xb4005dd4 // cbz x20, LBB0_409 $3000(%rip) + WORD $0xb4005db4 // cbz x20, LBB0_409 $2996(%rip) LBB0_232: - WORD $0xb4005dbe // cbz lr, LBB0_409 $2996(%rip) - WORD $0xb4005d85 // cbz x5, LBB0_409 $2992(%rip) + WORD $0xb4005d9e // cbz lr, LBB0_409 $2992(%rip) + WORD $0xb4005d65 // cbz x5, LBB0_409 $2988(%rip) WORD $0xcb0802c8 // sub x8, x22, x8 WORD $0xd1000511 // sub x17, x8, #1 WORD $0xeb11029f // cmp x20, x17 @@ -1415,12 +1414,12 @@ LBB0_232: WORD $0xf10007d1 // subs x17, lr, #1 WORD $0x5400006b // b.lt LBB0_239 $12(%rip) WORD $0xeb1100bf // cmp x5, x17 - WORD $0x54005c21 // b.ne LBB0_410 $2948(%rip) + WORD $0x54005c01 // b.ne LBB0_410 $2944(%rip) LBB0_239: WORD $0xaa050291 // orr x17, x20, x5 WORD $0xb7f80071 // tbnz x17, #63, LBB0_241 $12(%rip) WORD $0xeb05029f // cmp x20, x5 - WORD $0x540063ea // b.ge LBB0_426 $3196(%rip) + WORD $0x540063ca // b.ge LBB0_426 $3192(%rip) LBB0_241: WORD $0xd37ffe31 // lsr x17, x17, #63 WORD $0x52000231 // eor w17, w17, #0x1 @@ -1433,7 +1432,7 @@ LBB0_241: LBB0_242: WORD $0xcb0803e7 // neg x7, x8 LBB0_243: - WORD $0xb7f85a47 // tbnz x7, #63, LBB0_409 $2888(%rip) + WORD $0xb7f85a27 // tbnz x7, #63, LBB0_409 $2884(%rip) LBB0_244: WORD $0x8b1c00fc // add x28, x7, x28 WORD $0xf900003c // str x28, [x1] @@ -1465,7 +1464,7 @@ LBB0_249: WORD $0xaa0603f6 // mov x22, x6 WORD $0x92800007 // mov x7, #-1 WORD $0xb5fff994 // cbnz x20, LBB0_232 $-208(%rip) - WORD $0x140002b8 // b LBB0_409 $2784(%rip) + WORD $0x140002b7 // b LBB0_409 $2780(%rip) LBB0_250: WORD $0xd2800005 // mov x5, #0 WORD $0x8b1c013c // add x28, x9, x28 @@ -1556,16 +1555,16 @@ LBB0_260: WORD $0xdac010a7 // clz x7, x5 WORD $0xcb090385 // sub x5, x28, x9 WORD $0xeb07023f // cmp x17, x7 - WORD $0x54005563 // b.lo LBB0_428 $2732(%rip) + WORD $0x54005543 // b.lo LBB0_428 $2728(%rip) WORD $0x8b0700b1 // add x17, x5, x7 WORD $0x17fffd1f // b LBB0_121 $-2948(%rip) LBB0_263: - WORD $0x35005547 // cbnz w7, LBB0_429 $2728(%rip) + WORD $0x35005527 // cbnz w7, LBB0_429 $2724(%rip) WORD $0x9100839c // add x28, x28, #32 WORD $0xaa1503f4 // mov x20, x21 LBB0_265: WORD $0xb5003965 // cbnz x5, LBB0_368 $1836(%rip) - WORD $0xb40048d4 // cbz x20, LBB0_398 $2328(%rip) + WORD $0xb40048b4 // cbz x20, LBB0_398 $2324(%rip) LBB0_267: WORD $0xd2800005 // mov x5, #0 LBB0_268: @@ -1575,15 +1574,15 @@ LBB0_268: WORD $0x7101723f // cmp w17, #92 WORD $0x540000e0 // b.eq LBB0_272 $28(%rip) WORD $0x71007e3f // cmp w17, #31 - WORD $0x54005429 // b.ls LBB0_430 $2692(%rip) + WORD $0x54005409 // b.ls LBB0_430 $2688(%rip) WORD $0x910004a5 // add x5, x5, #1 WORD $0xeb05029f // cmp x20, x5 WORD $0x54fffee1 // b.ne LBB0_268 $-36(%rip) - WORD $0x1400023a // b LBB0_398 $2280(%rip) + WORD $0x14000239 // b LBB0_398 $2276(%rip) LBB0_272: WORD $0xd1000691 // sub x17, x20, #1 WORD $0xeb05023f // cmp x17, x5 - WORD $0x540046e0 // b.eq LBB0_398 $2268(%rip) + WORD $0x540046c0 // b.eq LBB0_398 $2264(%rip) WORD $0x8b050391 // add x17, x28, x5 WORD $0x8b0c0227 // add x7, x17, x12 WORD $0xb100051f // cmn x8, #1 @@ -1594,7 +1593,7 @@ LBB0_272: WORD $0xd1000a34 // sub x20, x17, #2 WORD $0xeb0500ff // cmp x7, x5 WORD $0x54fffd01 // b.ne LBB0_267 $-96(%rip) - WORD $0x1400022c // b LBB0_398 $2224(%rip) + WORD $0x1400022b // b LBB0_398 $2220(%rip) LBB0_274: WORD $0x8b1c0191 // add x17, x12, x28 WORD $0x8b050231 // add x17, x17, x5 @@ -1695,16 +1694,16 @@ LBB0_287: WORD $0xdac010a7 // clz x7, x5 WORD $0xcb090385 // sub x5, x28, x9 WORD $0xeb07023f // cmp x17, x7 - WORD $0x540045c3 // b.lo LBB0_428 $2232(%rip) + WORD $0x540045a3 // b.lo LBB0_428 $2228(%rip) WORD $0x8b0700b1 // add x17, x5, x7 WORD $0x17fffd42 // b LBB0_150 $-2808(%rip) LBB0_290: - WORD $0x350045a7 // cbnz w7, LBB0_429 $2228(%rip) + WORD $0x35004587 // cbnz w7, LBB0_429 $2224(%rip) WORD $0x9100839c // add x28, x28, #32 WORD $0xaa1503f4 // mov x20, x21 LBB0_292: WORD $0xb5002bc5 // cbnz x5, LBB0_372 $1400(%rip) - WORD $0xb4003934 // cbz x20, LBB0_398 $1828(%rip) + WORD $0xb4003914 // cbz x20, LBB0_398 $1824(%rip) LBB0_294: WORD $0xd2800005 // mov x5, #0 LBB0_295: @@ -1714,15 +1713,15 @@ LBB0_295: WORD $0x7101723f // cmp w17, #92 WORD $0x540000e0 // b.eq LBB0_299 $28(%rip) WORD $0x71007e3f // cmp w17, #31 - WORD $0x54004489 // b.ls LBB0_430 $2192(%rip) + WORD $0x54004469 // b.ls LBB0_430 $2188(%rip) WORD $0x910004a5 // add x5, x5, #1 WORD $0xeb05029f // cmp x20, x5 WORD $0x54fffee1 // b.ne LBB0_295 $-36(%rip) - WORD $0x140001bd // b LBB0_398 $1780(%rip) + WORD $0x140001bc // b LBB0_398 $1776(%rip) LBB0_299: WORD $0xd1000691 // sub x17, x20, #1 WORD $0xeb05023f // cmp x17, x5 - WORD $0x54003740 // b.eq LBB0_398 $1768(%rip) + WORD $0x54003720 // b.eq LBB0_398 $1764(%rip) WORD $0x8b050391 // add x17, x28, x5 WORD $0x8b0c0227 // add x7, x17, x12 WORD $0xb100051f // cmn x8, #1 @@ -1733,7 +1732,7 @@ LBB0_299: WORD $0xd1000a34 // sub x20, x17, #2 WORD $0xeb0500ff // cmp x7, x5 WORD $0x54fffd01 // b.ne LBB0_294 $-96(%rip) - WORD $0x140001af // b LBB0_398 $1724(%rip) + WORD $0x140001ae // b LBB0_398 $1720(%rip) LBB0_301: WORD $0x8b1c0191 // add x17, x12, x28 WORD $0x8b050231 // add x17, x17, x5 @@ -1849,16 +1848,16 @@ LBB0_317: WORD $0xdac01087 // clz x7, x4 WORD $0xcb090385 // sub x5, x28, x9 WORD $0xeb07023f // cmp x17, x7 - WORD $0x540034a3 // b.lo LBB0_428 $1684(%rip) + WORD $0x54003483 // b.lo LBB0_428 $1680(%rip) WORD $0x8b0700b1 // add x17, x5, x7 WORD $0x14000022 // b LBB0_332 $136(%rip) LBB0_320: - WORD $0x35003487 // cbnz w7, LBB0_429 $1680(%rip) + WORD $0x35003467 // cbnz w7, LBB0_429 $1676(%rip) WORD $0x9100839c // add x28, x28, #32 WORD $0xaa1503f4 // mov x20, x21 LBB0_322: WORD $0xb5002505 // cbnz x5, LBB0_391 $1184(%rip) - WORD $0xb4002814 // cbz x20, LBB0_398 $1280(%rip) + WORD $0xb40027f4 // cbz x20, LBB0_398 $1276(%rip) LBB0_324: WORD $0xd2800005 // mov x5, #0 LBB0_325: @@ -1868,15 +1867,15 @@ LBB0_325: WORD $0x7101723f // cmp w17, #92 WORD $0x540000e0 // b.eq LBB0_329 $28(%rip) WORD $0x71007e3f // cmp w17, #31 - WORD $0x54003369 // b.ls LBB0_430 $1644(%rip) + WORD $0x54003349 // b.ls LBB0_430 $1640(%rip) WORD $0x910004a5 // add x5, x5, #1 WORD $0xeb05029f // cmp x20, x5 WORD $0x54fffee1 // b.ne LBB0_325 $-36(%rip) - WORD $0x14000134 // b LBB0_398 $1232(%rip) + WORD $0x14000133 // b LBB0_398 $1228(%rip) LBB0_329: WORD $0xd1000691 // sub x17, x20, #1 WORD $0xeb05023f // cmp x17, x5 - WORD $0x54002620 // b.eq LBB0_398 $1220(%rip) + WORD $0x54002600 // b.eq LBB0_398 $1216(%rip) WORD $0x8b050391 // add x17, x28, x5 WORD $0x8b0c0224 // add x4, x17, x12 WORD $0xb100051f // cmn x8, #1 @@ -1887,7 +1886,7 @@ LBB0_329: WORD $0xd1000a34 // sub x20, x17, #2 WORD $0xeb05009f // cmp x4, x5 WORD $0x54fffd01 // b.ne LBB0_324 $-96(%rip) - WORD $0x14000126 // b LBB0_398 $1176(%rip) + WORD $0x14000125 // b LBB0_398 $1172(%rip) LBB0_331: WORD $0x8b1c0191 // add x17, x12, x28 WORD $0x8b050231 // add x17, x17, x5 @@ -1955,7 +1954,7 @@ LBB0_341: WORD $0xb5fffef1 // cbnz x17, LBB0_341 $-36(%rip) WORD $0x14000009 // b LBB0_346 $36(%rip) LBB0_344: - WORD $0xb4001db1 // cbz x17, LBB0_398 $948(%rip) + WORD $0xb4001d91 // cbz x17, LBB0_398 $944(%rip) WORD $0x8b0b00f1 // add x17, x7, x11 WORD $0xb100051f // cmn x8, #1 WORD $0x9a880228 // csel x8, x17, x8, eq @@ -1966,7 +1965,7 @@ LBB0_344: LBB0_346: WORD $0x710088bf // cmp w5, #34 WORD $0x54000060 // b.eq LBB0_348 $12(%rip) - WORD $0x140000e3 // b LBB0_398 $908(%rip) + WORD $0x140000e2 // b LBB0_398 $904(%rip) LBB0_347: WORD $0xaa0703fc // mov x28, x7 LBB0_348: @@ -2033,7 +2032,7 @@ LBB0_356: WORD $0xb5fffef1 // cbnz x17, LBB0_356 $-36(%rip) WORD $0x14000009 // b LBB0_361 $36(%rip) LBB0_359: - WORD $0xb4001551 // cbz x17, LBB0_398 $680(%rip) + WORD $0xb4001531 // cbz x17, LBB0_398 $676(%rip) WORD $0x8b0b00f1 // add x17, x7, x11 WORD $0xb100051f // cmn x8, #1 WORD $0x9a880228 // csel x8, x17, x8, eq @@ -2044,7 +2043,7 @@ LBB0_359: LBB0_361: WORD $0x710088bf // cmp w5, #34 WORD $0x54000060 // b.eq LBB0_363 $12(%rip) - WORD $0x140000a0 // b LBB0_398 $640(%rip) + WORD $0x1400009f // b LBB0_398 $636(%rip) LBB0_362: WORD $0xaa0703fc // mov x28, x7 LBB0_363: @@ -2054,7 +2053,7 @@ LBB0_363: WORD $0xb20903e7 // mov x7, #36028797027352576 WORD $0xf2800027 // movk x7, #1 WORD $0xb6ff827c // tbz x28, #63, LBB0_151 $-4020(%rip) - WORD $0x14000096 // b LBB0_397 $600(%rip) + WORD $0x14000095 // b LBB0_397 $596(%rip) LBB0_364: WORD $0xdac000f1 // rbit x17, x7 WORD $0xdac01231 // clz x17, x17 @@ -2077,7 +2076,7 @@ LBB0_365: WORD $0x52800073 // mov w19, #3 WORD $0x17fffea3 // b LBB0_287 $-1396(%rip) LBB0_366: - WORD $0xb4001094 // cbz x20, LBB0_398 $528(%rip) + WORD $0xb4001074 // cbz x20, LBB0_398 $524(%rip) WORD $0x8b0b0391 // add x17, x28, x11 WORD $0xb100051f // cmn x8, #1 WORD $0x9a880228 // csel x8, x17, x8, eq @@ -2086,16 +2085,16 @@ LBB0_366: WORD $0xb5fff0d4 // cbnz x20, LBB0_341 $-488(%rip) WORD $0x17ffff9c // b LBB0_348 $-400(%rip) LBB0_368: - WORD $0xb4000f94 // cbz x20, LBB0_398 $496(%rip) + WORD $0xb4000f74 // cbz x20, LBB0_398 $492(%rip) WORD $0x8b0b0391 // add x17, x28, x11 WORD $0xb100051f // cmn x8, #1 WORD $0x9a880228 // csel x8, x17, x8, eq WORD $0x9100079c // add x28, x28, #1 WORD $0xd1000694 // sub x20, x20, #1 WORD $0xb5ffc634 // cbnz x20, LBB0_267 $-1852(%rip) - WORD $0x14000075 // b LBB0_398 $468(%rip) + WORD $0x14000074 // b LBB0_398 $464(%rip) LBB0_370: - WORD $0xb4000e94 // cbz x20, LBB0_398 $464(%rip) + WORD $0xb4000e74 // cbz x20, LBB0_398 $460(%rip) WORD $0x8b0b0391 // add x17, x28, x11 WORD $0xb100051f // cmn x8, #1 WORD $0x9a880228 // csel x8, x17, x8, eq @@ -2104,14 +2103,14 @@ LBB0_370: WORD $0xb5fff734 // cbnz x20, LBB0_356 $-284(%rip) WORD $0x17ffffcf // b LBB0_363 $-196(%rip) LBB0_372: - WORD $0xb4000d94 // cbz x20, LBB0_398 $432(%rip) + WORD $0xb4000d74 // cbz x20, LBB0_398 $428(%rip) WORD $0x8b0b0391 // add x17, x28, x11 WORD $0xb100051f // cmn x8, #1 WORD $0x9a880228 // csel x8, x17, x8, eq WORD $0x9100079c // add x28, x28, #1 WORD $0xd1000694 // sub x20, x20, #1 WORD $0xb5ffd3d4 // cbnz x20, LBB0_294 $-1416(%rip) - WORD $0x14000065 // b LBB0_398 $404(%rip) + WORD $0x14000064 // b LBB0_398 $400(%rip) LBB0_374: WORD $0xdac002b1 // rbit x17, x21 WORD $0xdac01231 // clz x17, x17 @@ -2151,7 +2150,7 @@ LBB0_379: WORD $0xb5fffef1 // cbnz x17, LBB0_379 $-36(%rip) WORD $0x14000009 // b LBB0_384 $36(%rip) LBB0_382: - WORD $0xb4000871 // cbz x17, LBB0_398 $268(%rip) + WORD $0xb4000851 // cbz x17, LBB0_398 $264(%rip) WORD $0x8b0b00f1 // add x17, x7, x11 WORD $0xb100051f // cmn x8, #1 WORD $0x9a880228 // csel x8, x17, x8, eq @@ -2163,7 +2162,7 @@ LBB0_384: WORD $0x710088bf // cmp w5, #34 WORD $0x52800073 // mov w19, #3 WORD $0x54ffeb00 // b.eq LBB0_348 $-672(%rip) - WORD $0x14000038 // b LBB0_398 $224(%rip) + WORD $0x14000037 // b LBB0_398 $220(%rip) LBB0_385: WORD $0xaa0703fc // mov x28, x7 WORD $0x52800073 // mov w19, #3 @@ -2189,7 +2188,7 @@ LBB0_387: WORD $0x8a140234 // and x20, x17, x20 WORD $0x17fffeca // b LBB0_317 $-1240(%rip) LBB0_388: - WORD $0xb4000454 // cbz x20, LBB0_398 $136(%rip) + WORD $0xb4000434 // cbz x20, LBB0_398 $132(%rip) WORD $0x8b0b0391 // add x17, x28, x11 WORD $0xb100051f // cmn x8, #1 WORD $0x9a880228 // csel x8, x17, x8, eq @@ -2200,25 +2199,24 @@ LBB0_390: WORD $0x52800073 // mov w19, #3 WORD $0x17ffff39 // b LBB0_348 $-796(%rip) LBB0_391: - WORD $0xb4000334 // cbz x20, LBB0_398 $100(%rip) + WORD $0xb4000314 // cbz x20, LBB0_398 $96(%rip) WORD $0x8b0b0391 // add x17, x28, x11 WORD $0xb100051f // cmn x8, #1 WORD $0x9a880228 // csel x8, x17, x8, eq WORD $0x9100079c // add x28, x28, #1 WORD $0xd1000694 // sub x20, x20, #1 WORD $0xb5ffda94 // cbnz x20, LBB0_324 $-1200(%rip) - WORD $0x14000012 // b LBB0_398 $72(%rip) + WORD $0x14000011 // b LBB0_398 $68(%rip) LBB0_393: WORD $0x92800008 // mov x8, #-1 LBB0_394: WORD $0xaa0803e0 // mov x0, x8 - WORD $0xa945fbfd // ldp fp, lr, [sp, #88] - WORD $0xa944cff4 // ldp x20, x19, [sp, #72] - WORD $0xa943d7f6 // ldp x22, x21, [sp, #56] - WORD $0xa942dff8 // ldp x24, x23, [sp, #40] - WORD $0xa941e7fa // ldp x26, x25, [sp, #24] - WORD $0xa940effc // ldp x28, x27, [sp, #8] - WORD $0x9101c3ff // add sp, sp, #112 + WORD $0xa9457bfd // ldp fp, lr, [sp, #80] + WORD $0xa9444ff4 // ldp x20, x19, [sp, #64] + WORD $0xa94357f6 // ldp x22, x21, [sp, #48] + WORD $0xa9425ff8 // ldp x24, x23, [sp, #32] + WORD $0xa94167fa // ldp x26, x25, [sp, #16] + WORD $0xa8c76ffc // ldp x28, x27, [sp], #112 WORD $0xd65f03c0 // ret LBB0_395: WORD $0x9280001c // mov x28, #-1 @@ -2226,7 +2224,7 @@ LBB0_395: WORD $0x1400000c // b LBB0_403 $48(%rip) LBB0_396: WORD $0x928000c8 // mov x8, #-7 - WORD $0x17fffff3 // b LBB0_394 $-52(%rip) + WORD $0x17fffff4 // b LBB0_394 $-48(%rip) LBB0_397: WORD $0xb100079f // cmn x28, #1 WORD $0x54000101 // b.ne LBB0_403 $32(%rip) @@ -2245,7 +2243,7 @@ LBB0_402: LBB0_403: WORD $0xf9000028 // str x8, [x1] WORD $0xaa1c03e8 // mov x8, x28 - WORD $0x17ffffe7 // b LBB0_394 $-100(%rip) + WORD $0x17ffffe8 // b LBB0_394 $-96(%rip) LBB0_404: WORD $0xb100051f // cmn x8, #1 WORD $0x54ffff61 // b.ne LBB0_402 $-20(%rip) @@ -2335,7 +2333,7 @@ LBB0_420: WORD $0x17ffffb0 // b LBB0_402 $-320(%rip) LBB0_425: WORD $0x92800028 // mov x8, #-2 - WORD $0x17ffff98 // b LBB0_394 $-416(%rip) + WORD $0x17ffff99 // b LBB0_394 $-412(%rip) LBB0_426: WORD $0xaa1403fe // mov lr, x20 WORD $0x8b140388 // add x8, x28, x20 diff --git a/internal/native/neon/validate_utf8_arm64.s b/internal/native/neon/validate_utf8_arm64.s index f36d7ed08..77b53ae4e 100644 --- a/internal/native/neon/validate_utf8_arm64.s +++ b/internal/native/neon/validate_utf8_arm64.s @@ -13,8 +13,8 @@ TEXT ·__validate_utf8_entry__(SB), NOSPLIT, $48 // .p2align 2, 0x00 _validate_utf8: WORD $0xd10103ff // sub sp, sp, #64 - WORD $0xa901cff4 // stp x20, x19, [sp, #24] - WORD $0xa902fbfd // stp fp, lr, [sp, #40] + WORD $0xa9014ff4 // stp x20, x19, [sp, #16] + WORD $0xa9027bfd // stp fp, lr, [sp, #32] WORD $0xa93ffbfd // stp fp, lr, [sp, #-8] WORD $0xd10023fd // sub fp, sp, #8 WORD $0xa9402408 // ldp x8, x9, [x0] @@ -106,28 +106,28 @@ LBB0_17: LBB0_18: WORD $0x39c00120 // ldrsb w0, [x9] WORD $0x36ffff80 // tbz w0, #31, LBB0_17 $-16(%rip) - WORD $0x390053ff // strb wzr, [sp, #20] - WORD $0x39004bff // strb wzr, [sp, #18] + WORD $0x381f43bf // sturb wzr, [fp, #-12] + WORD $0x381f23bf // sturb wzr, [fp, #-14] WORD $0xcb090145 // sub x5, x10, x9 WORD $0xf10008a7 // subs x7, x5, #2 WORD $0x540001a3 // b.lo LBB0_22 $52(%rip) WORD $0x39400120 // ldrb w0, [x9] WORD $0x39400523 // ldrb w3, [x9, #1] - WORD $0x390053e0 // strb w0, [sp, #20] + WORD $0x381f43a0 // sturb w0, [fp, #-12] WORD $0x91000926 // add x6, x9, #2 - WORD $0x91004be4 // add x4, sp, #18 + WORD $0xd1003ba4 // sub x4, fp, #14 WORD $0xaa0703e5 // mov x5, x7 WORD $0xb4000167 // cbz x7, LBB0_23 $44(%rip) LBB0_21: WORD $0x394000c0 // ldrb w0, [x6] WORD $0x39000080 // strb w0, [x4] - WORD $0x394053e0 // ldrb w0, [sp, #20] - WORD $0x39404be4 // ldrb w4, [sp, #18] + WORD $0x385f43a0 // ldurb w0, [fp, #-12] + WORD $0x385f23a4 // ldurb w4, [fp, #-14] WORD $0x14000007 // b LBB0_24 $28(%rip) LBB0_22: WORD $0x52800000 // mov w0, #0 WORD $0x52800003 // mov w3, #0 - WORD $0x910053e4 // add x4, sp, #20 + WORD $0xd10033a4 // sub x4, fp, #12 WORD $0xaa0903e6 // mov x6, x9 WORD $0xb5fffee5 // cbnz x5, LBB0_21 $-36(%rip) LBB0_23: @@ -175,22 +175,22 @@ LBB0_31: WORD $0xd2800000 // mov x0, #0 WORD $0xcb080128 // sub x8, x9, x8 WORD $0xf9000028 // str x8, [x1] - WORD $0xa942fbfd // ldp fp, lr, [sp, #40] - WORD $0xa941cff4 // ldp x20, x19, [sp, #24] + WORD $0xa9427bfd // ldp fp, lr, [sp, #32] + WORD $0xa9414ff4 // ldp x20, x19, [sp, #16] WORD $0x910103ff // add sp, sp, #64 WORD $0xd65f03c0 // ret LBB0_32: WORD $0xf9000020 // str x0, [x1] WORD $0x92800000 // mov x0, #-1 - WORD $0xa942fbfd // ldp fp, lr, [sp, #40] - WORD $0xa941cff4 // ldp x20, x19, [sp, #24] + WORD $0xa9427bfd // ldp fp, lr, [sp, #32] + WORD $0xa9414ff4 // ldp x20, x19, [sp, #16] WORD $0x910103ff // add sp, sp, #64 WORD $0xd65f03c0 // ret LBB0_33: WORD $0xf9000027 // str x7, [x1] WORD $0x92800000 // mov x0, #-1 - WORD $0xa942fbfd // ldp fp, lr, [sp, #40] - WORD $0xa941cff4 // ldp x20, x19, [sp, #24] + WORD $0xa9427bfd // ldp fp, lr, [sp, #32] + WORD $0xa9414ff4 // ldp x20, x19, [sp, #16] WORD $0x910103ff // add sp, sp, #64 WORD $0xd65f03c0 // ret // .p2align 2, 0x00 diff --git a/internal/native/neon/validate_utf8_fast_arm64.s b/internal/native/neon/validate_utf8_fast_arm64.s index 20592cd33..4b2f48551 100644 --- a/internal/native/neon/validate_utf8_fast_arm64.s +++ b/internal/native/neon/validate_utf8_fast_arm64.s @@ -13,7 +13,7 @@ TEXT ·__validate_utf8_fast_entry__(SB), NOSPLIT, $32 // .p2align 2, 0x00 _validate_utf8_fast: WORD $0xd100c3ff // sub sp, sp, #48 - WORD $0xa901fbfd // stp fp, lr, [sp, #24] + WORD $0xa9017bfd // stp fp, lr, [sp, #16] WORD $0xa93ffbfd // stp fp, lr, [sp, #-8] WORD $0xd10023fd // sub fp, sp, #8 WORD $0xa9402408 // ldp x8, x9, [x0] @@ -96,28 +96,28 @@ LBB0_17: LBB0_18: WORD $0x39c00151 // ldrsb w17, [x10] WORD $0x36ffff91 // tbz w17, #31, LBB0_16 $-16(%rip) - WORD $0x390053ff // strb wzr, [sp, #20] - WORD $0x39004bff // strb wzr, [sp, #18] + WORD $0x390013bf // strb wzr, [fp, #4] + WORD $0x39000bbf // strb wzr, [fp, #2] WORD $0xcb0a0122 // sub x2, x9, x10 WORD $0xf1000844 // subs x4, x2, #2 WORD $0x540001a3 // b.lo LBB0_22 $52(%rip) WORD $0x39400151 // ldrb w17, [x10] WORD $0x39400540 // ldrb w0, [x10, #1] - WORD $0x390053f1 // strb w17, [sp, #20] + WORD $0x390013b1 // strb w17, [fp, #4] WORD $0x91000943 // add x3, x10, #2 - WORD $0x91004be1 // add x1, sp, #18 + WORD $0x91000ba1 // add x1, fp, #2 WORD $0xaa0403e2 // mov x2, x4 WORD $0xb4000164 // cbz x4, LBB0_23 $44(%rip) LBB0_21: WORD $0x39400071 // ldrb w17, [x3] WORD $0x39000031 // strb w17, [x1] - WORD $0x394053f1 // ldrb w17, [sp, #20] - WORD $0x39404be1 // ldrb w1, [sp, #18] + WORD $0x394013b1 // ldrb w17, [fp, #4] + WORD $0x39400ba1 // ldrb w1, [fp, #2] WORD $0x14000007 // b LBB0_24 $28(%rip) LBB0_22: WORD $0x52800011 // mov w17, #0 WORD $0x52800000 // mov w0, #0 - WORD $0x910053e1 // add x1, sp, #20 + WORD $0x910013a1 // add x1, fp, #4 WORD $0xaa0a03e3 // mov x3, x10 WORD $0xb5fffee2 // cbnz x2, LBB0_21 $-36(%rip) LBB0_23: @@ -146,13 +146,13 @@ LBB0_28: WORD $0x17ffffd2 // b LBB0_17 $-184(%rip) LBB0_29: WORD $0xd2800000 // mov x0, #0 - WORD $0xa941fbfd // ldp fp, lr, [sp, #24] + WORD $0xa9417bfd // ldp fp, lr, [sp, #16] WORD $0x9100c3ff // add sp, sp, #48 WORD $0xd65f03c0 // ret LBB0_30: WORD $0xaa2a03e9 // mvn x9, x10 WORD $0x8b080120 // add x0, x9, x8 - WORD $0xa941fbfd // ldp fp, lr, [sp, #24] + WORD $0xa9417bfd // ldp fp, lr, [sp, #16] WORD $0x9100c3ff // add sp, sp, #48 WORD $0xd65f03c0 // ret // .p2align 2, 0x00 diff --git a/internal/native/neon/value_arm64.s b/internal/native/neon/value_arm64.s index e7795b0c7..a82fcf36e 100644 --- a/internal/native/neon/value_arm64.s +++ b/internal/native/neon/value_arm64.s @@ -56,13 +56,12 @@ lCPI0_1: // .byte 15 _value: - WORD $0xd101c3ff // sub sp, sp, #112 - WORD $0xa900effc // stp x28, x27, [sp, #8] - WORD $0xa901e7fa // stp x26, x25, [sp, #24] - WORD $0xa902dff8 // stp x24, x23, [sp, #40] - WORD $0xa903d7f6 // stp x22, x21, [sp, #56] - WORD $0xa904cff4 // stp x20, x19, [sp, #72] - WORD $0xa905fbfd // stp fp, lr, [sp, #88] + WORD $0xa9b96ffc // stp x28, x27, [sp, #-112]! + WORD $0xa90167fa // stp x26, x25, [sp, #16] + WORD $0xa9025ff8 // stp x24, x23, [sp, #32] + WORD $0xa90357f6 // stp x22, x21, [sp, #48] + WORD $0xa9044ff4 // stp x20, x19, [sp, #64] + WORD $0xa9057bfd // stp fp, lr, [sp, #80] WORD $0xa93ffbfd // stp fp, lr, [sp, #-8] WORD $0xd10023fd // sub fp, sp, #8 WORD $0xeb01005f // cmp x2, x1 @@ -76,7 +75,7 @@ _value: WORD $0x3100093f // cmn w9, #2 WORD $0x54000062 // b.hs LBB0_5 $12(%rip) WORD $0xaa0203ea // mov x10, x2 - WORD $0x14000042 // b LBB0_27 $264(%rip) + WORD $0x14000041 // b LBB0_27 $260(%rip) LBB0_5: WORD $0x9100044a // add x10, x2, #1 WORD $0xeb01015f // cmp x10, x1 @@ -88,7 +87,7 @@ LBB0_5: WORD $0x54000080 // b.eq LBB0_9 $16(%rip) WORD $0x51002d09 // sub w9, w8, #11 WORD $0x3100093f // cmn w9, #2 - WORD $0x540006e3 // b.lo LBB0_27 $220(%rip) + WORD $0x540006c3 // b.lo LBB0_27 $216(%rip) LBB0_9: WORD $0x9100084a // add x10, x2, #2 WORD $0xeb01015f // cmp x10, x1 @@ -100,7 +99,7 @@ LBB0_9: WORD $0x54000080 // b.eq LBB0_13 $16(%rip) WORD $0x51002d09 // sub w9, w8, #11 WORD $0x3100093f // cmn w9, #2 - WORD $0x54000583 // b.lo LBB0_27 $176(%rip) + WORD $0x54000563 // b.lo LBB0_27 $172(%rip) LBB0_13: WORD $0x91000c4a // add x10, x2, #3 WORD $0xeb01015f // cmp x10, x1 @@ -112,7 +111,7 @@ LBB0_13: WORD $0x54000080 // b.eq LBB0_17 $16(%rip) WORD $0x51002d09 // sub w9, w8, #11 WORD $0x3100093f // cmn w9, #2 - WORD $0x54000423 // b.lo LBB0_27 $132(%rip) + WORD $0x54000403 // b.lo LBB0_27 $128(%rip) LBB0_17: WORD $0x9100104a // add x10, x2, #4 WORD $0xeb01015f // cmp x10, x1 @@ -126,7 +125,7 @@ LBB0_19: WORD $0x9acb210b // lsl x11, x8, x11 WORD $0x8a09016b // and x11, x11, x9 WORD $0xfa409964 // ccmp x11, #0, #4, ls - WORD $0x54000240 // b.eq LBB0_25 $72(%rip) + WORD $0x54000220 // b.eq LBB0_25 $68(%rip) WORD $0x9100054a // add x10, x10, #1 WORD $0xeb0a003f // cmp x1, x10 WORD $0x54ffff01 // b.ne LBB0_19 $-32(%rip) @@ -140,17 +139,16 @@ LBB0_23: WORD $0xaa0203e1 // mov x1, x2 LBB0_24: WORD $0xaa0103e0 // mov x0, x1 - WORD $0xa945fbfd // ldp fp, lr, [sp, #88] - WORD $0xa944cff4 // ldp x20, x19, [sp, #72] - WORD $0xa943d7f6 // ldp x22, x21, [sp, #56] - WORD $0xa942dff8 // ldp x24, x23, [sp, #40] - WORD $0xa941e7fa // ldp x26, x25, [sp, #24] - WORD $0xa940effc // ldp x28, x27, [sp, #8] - WORD $0x9101c3ff // add sp, sp, #112 + WORD $0xa9457bfd // ldp fp, lr, [sp, #80] + WORD $0xa9444ff4 // ldp x20, x19, [sp, #64] + WORD $0xa94357f6 // ldp x22, x21, [sp, #48] + WORD $0xa9425ff8 // ldp x24, x23, [sp, #32] + WORD $0xa94167fa // ldp x26, x25, [sp, #16] + WORD $0xa8c76ffc // ldp x28, x27, [sp], #112 WORD $0xd65f03c0 // ret LBB0_25: WORD $0xeb01015f // cmp x10, x1 - WORD $0x54fffe62 // b.hs LBB0_22 $-52(%rip) + WORD $0x54fffe82 // b.hs LBB0_22 $-48(%rip) WORD $0x386a6808 // ldrb w8, [x0, x10] LBB0_27: WORD $0x7101f51f // cmp w8, #125 @@ -161,7 +159,7 @@ Lloh0: WORD $0x1001142b // adr x11, LJTI0_0 $8836(%rip) Lloh1: WORD $0x9100016b // add x11, x11, LJTI0_0@PAGEOFF $0(%rip) - WORD $0x10fffd6c // adr x12, LBB0_22 $-84(%rip) + WORD $0x10fffd8c // adr x12, LBB0_22 $-80(%rip) WORD $0x7869796d // ldrh w13, [x11, x9, lsl #1] WORD $0x8b0d098c // add x12, x12, x13, lsl #2 WORD $0xd61f0180 // br x12 @@ -208,7 +206,7 @@ LBB0_40: WORD $0x31002dff // cmn w15, #11 WORD $0x54001548 // b.hi LBB0_83 $680(%rip) WORD $0x92800028 // mov x8, #-2 - WORD $0x17ffffc1 // b LBB0_23 $-252(%rip) + WORD $0x17ffffc2 // b LBB0_23 $-248(%rip) LBB0_42: WORD $0x39400509 // ldrb w9, [x8, #1] WORD $0x5280002f // mov w15, #1 @@ -233,13 +231,13 @@ LBB0_44: WORD $0x4f06e603 // movi.16b v3, #208 WORD $0x4f00e544 // movi.16b v4, #10 Lloh2: - WORD $0x10ffeb6b // adr x11, lCPI0_0 $-660(%rip) + WORD $0x10ffebab // adr x11, lCPI0_0 $-652(%rip) Lloh3: WORD $0x3dc00165 // ldr q5, [x11, lCPI0_0@PAGEOFF] $0(%rip) WORD $0x4f06e7e6 // movi.16b v6, #223 WORD $0x4f02e4a7 // movi.16b v7, #69 Lloh4: - WORD $0x10ffeb6b // adr x11, lCPI0_1 $-660(%rip) + WORD $0x10ffebab // adr x11, lCPI0_1 $-652(%rip) Lloh5: WORD $0x3dc00170 // ldr q16, [x11, lCPI0_1@PAGEOFF] $0(%rip) WORD $0x12800011 // mov w17, #-1 @@ -449,7 +447,7 @@ LBB0_90: WORD $0x91001141 // add x1, x10, #4 WORD $0x52800048 // mov w8, #2 WORD $0xf9000068 // str x8, [x3] - WORD $0x17fffee9 // b LBB0_24 $-1116(%rip) + WORD $0x17fffeea // b LBB0_24 $-1112(%rip) LBB0_93: WORD $0xf261009f // tst x4, #0x80000000 WORD $0x1a9f17e8 // cset w8, eq @@ -471,11 +469,11 @@ LBB0_95: WORD $0x4f01e440 // movi.16b v0, #34 WORD $0x4f02e781 // movi.16b v1, #92 Lloh6: - WORD $0x10ffd0ab // adr x11, lCPI0_0 $-1516(%rip) + WORD $0x10ffd0eb // adr x11, lCPI0_0 $-1508(%rip) Lloh7: WORD $0x3dc00162 // ldr q2, [x11, lCPI0_0@PAGEOFF] $0(%rip) Lloh8: - WORD $0x10ffd0eb // adr x11, lCPI0_1 $-1508(%rip) + WORD $0x10ffd12b // adr x11, lCPI0_1 $-1500(%rip) Lloh9: WORD $0x3dc00163 // ldr q3, [x11, lCPI0_1@PAGEOFF] $0(%rip) WORD $0xaa0203eb // mov x11, x2 @@ -580,12 +578,12 @@ LBB0_106: WORD $0x91001141 // add x1, x10, #4 WORD $0x52800068 // mov w8, #3 WORD $0xf9000068 // str x8, [x3] - WORD $0x17fffe73 // b LBB0_24 $-1588(%rip) + WORD $0x17fffe74 // b LBB0_24 $-1584(%rip) LBB0_109: WORD $0x92800028 // mov x8, #-2 WORD $0xf9000068 // str x8, [x3] WORD $0xaa0a03e1 // mov x1, x10 - WORD $0x17fffe6f // b LBB0_24 $-1604(%rip) + WORD $0x17fffe70 // b LBB0_24 $-1600(%rip) LBB0_110: WORD $0xf261009f // tst x4, #0x80000000 WORD $0x1a9f17e8 // cset w8, eq @@ -593,7 +591,7 @@ LBB0_110: WORD $0x14000012 // b LBB0_116 $72(%rip) LBB0_111: WORD $0x528000a8 // mov w8, #5 - WORD $0x17fffe67 // b LBB0_23 $-1636(%rip) + WORD $0x17fffe68 // b LBB0_23 $-1632(%rip) LBB0_112: WORD $0xd1001028 // sub x8, x1, #4 WORD $0xeb08015f // cmp x10, x8 @@ -606,7 +604,7 @@ LBB0_112: WORD $0x91001541 // add x1, x10, #5 WORD $0x52800088 // mov w8, #4 WORD $0xf9000068 // str x8, [x3] - WORD $0x17fffe5d // b LBB0_24 $-1676(%rip) + WORD $0x17fffe5e // b LBB0_24 $-1672(%rip) LBB0_115: WORD $0xf261009f // tst x4, #0x80000000 WORD $0x1a9f17e8 // cset w8, eq @@ -616,10 +614,10 @@ LBB0_116: WORD $0x9a890149 // csel x9, x10, x9, eq WORD $0xf9000069 // str x9, [x3] WORD $0xcb080041 // sub x1, x2, x8 - WORD $0x17fffe55 // b LBB0_24 $-1708(%rip) + WORD $0x17fffe56 // b LBB0_24 $-1704(%rip) LBB0_117: WORD $0x528000c8 // mov w8, #6 - WORD $0x17fffe51 // b LBB0_23 $-1724(%rip) + WORD $0x17fffe52 // b LBB0_23 $-1720(%rip) LBB0_118: WORD $0xcb0d03ef // neg x15, x13 LBB0_119: @@ -631,7 +629,7 @@ LBB0_120: WORD $0x52800108 // mov w8, #8 WORD $0xf9000068 // str x8, [x3] WORD $0xf9000c6a // str x10, [x3, #24] - WORD $0x17fffe4a // b LBB0_24 $-1752(%rip) + WORD $0x17fffe4b // b LBB0_24 $-1748(%rip) LBB0_122: WORD $0xeb02002a // subs x10, x1, x2 WORD $0x5400dec0 // b.eq LBB0_580 $7128(%rip) @@ -641,11 +639,11 @@ LBB0_122: WORD $0x92800008 // mov x8, #-1 WORD $0x4f01e440 // movi.16b v0, #34 Lloh10: - WORD $0x10ffbe0b // adr x11, lCPI0_0 $-2112(%rip) + WORD $0x10ffbe4b // adr x11, lCPI0_0 $-2104(%rip) Lloh11: WORD $0x3dc00161 // ldr q1, [x11, lCPI0_0@PAGEOFF] $0(%rip) Lloh12: - WORD $0x10ffbe4b // adr x11, lCPI0_1 $-2104(%rip) + WORD $0x10ffbe8b // adr x11, lCPI0_1 $-2096(%rip) Lloh13: WORD $0x3dc00162 // ldr q2, [x11, lCPI0_1@PAGEOFF] $0(%rip) WORD $0x4f02e783 // movi.16b v3, #92 @@ -775,7 +773,7 @@ LBB0_134: WORD $0xda9fb108 // csinv x8, x8, xzr, lt WORD $0xa9012062 // stp x2, x8, [x3, #16] WORD $0xaa0c03e1 // mov x1, x12 - WORD $0x17fffdc5 // b LBB0_24 $-2284(%rip) + WORD $0x17fffdc6 // b LBB0_24 $-2280(%rip) LBB0_135: WORD $0x7100b8bf // cmp w5, #46 WORD $0x54000aa1 // b.ne LBB0_161 $340(%rip) @@ -792,7 +790,7 @@ LBB0_135: WORD $0x92800028 // mov x8, #-2 WORD $0xf9000068 // str x8, [x3] WORD $0xaa0f03e1 // mov x1, x15 - WORD $0x17fffdb5 // b LBB0_24 $-2348(%rip) + WORD $0x17fffdb6 // b LBB0_24 $-2344(%rip) LBB0_139: WORD $0xaa0c0169 // orr x9, x11, x12 WORD $0xb7f80ae9 // tbnz x9, #63, LBB0_168 $348(%rip) @@ -807,7 +805,7 @@ LBB0_143: WORD $0x9280002a // mov x10, #-2 LBB0_144: WORD $0xf900006a // str x10, [x3] - WORD $0x17fffdaa // b LBB0_24 $-2392(%rip) + WORD $0x17fffdab // b LBB0_24 $-2388(%rip) LBB0_145: WORD $0xaa0d03f0 // mov x16, x13 WORD $0x9280000f // mov x15, #-1 @@ -851,7 +849,7 @@ LBB0_154: WORD $0x92800028 // mov x8, #-2 WORD $0xaa0a03e1 // mov x1, x10 WORD $0xf9000068 // str x8, [x3] - WORD $0x17fffd82 // b LBB0_24 $-2552(%rip) + WORD $0x17fffd83 // b LBB0_24 $-2548(%rip) LBB0_155: WORD $0x12001d08 // and w8, w8, #0xff WORD $0x7101851f // cmp w8, #97 @@ -873,7 +871,7 @@ LBB0_159: LBB0_160: WORD $0x92800028 // mov x8, #-2 WORD $0xf9000068 // str x8, [x3] - WORD $0x17fffd6f // b LBB0_24 $-2628(%rip) + WORD $0x17fffd70 // b LBB0_24 $-2624(%rip) LBB0_161: WORD $0x52800031 // mov w17, #1 WORD $0x7100021f // cmp w16, #0 @@ -954,12 +952,12 @@ LBB0_182: WORD $0x1400002d // b LBB0_196 $180(%rip) LBB0_183: WORD $0x91000441 // add x1, x2, #1 - WORD $0x17fffd2a // b LBB0_24 $-2904(%rip) + WORD $0x17fffd2b // b LBB0_24 $-2900(%rip) LBB0_184: WORD $0x92800028 // mov x8, #-2 WORD $0xaa0203e1 // mov x1, x2 WORD $0xf9000068 // str x8, [x3] - WORD $0x17fffd26 // b LBB0_24 $-2920(%rip) + WORD $0x17fffd27 // b LBB0_24 $-2916(%rip) LBB0_185: WORD $0x5ac000c9 // rbit w9, w6 WORD $0x5ac01129 // clz w9, w9 @@ -1001,7 +999,7 @@ LBB0_192: LBB0_194: WORD $0x92800008 // mov x8, #-1 WORD $0xf9000068 // str x8, [x3] - WORD $0x17fffd02 // b LBB0_24 $-3064(%rip) + WORD $0x17fffd03 // b LBB0_24 $-3060(%rip) LBB0_195: WORD $0xaa1003e4 // mov x4, x16 WORD $0xaa0203e1 // mov x1, x2 @@ -1148,7 +1146,7 @@ LBB0_223: WORD $0x9e66000a // fmov x10, d0 WORD $0xaa0a0129 // orr x9, x9, x10 WORD $0xa900a069 // stp x9, x8, [x3, #8] - WORD $0x17fffc83 // b LBB0_24 $-3572(%rip) + WORD $0x17fffc84 // b LBB0_24 $-3568(%rip) LBB0_224: WORD $0x927ae52a // and x10, x9, #0xffffffffffffffc0 WORD $0x9100810b // add x11, x8, #32 @@ -1350,7 +1348,7 @@ LBB0_264: WORD $0x92800028 // mov x8, #-2 WORD $0xf9000068 // str x8, [x3] WORD $0xaa1103e1 // mov x1, x17 - WORD $0x17fffbce // b LBB0_24 $-4296(%rip) + WORD $0x17fffbcf // b LBB0_24 $-4292(%rip) LBB0_266: WORD $0x52800004 // mov w4, #0 WORD $0x52800145 // mov w5, #10 @@ -1403,7 +1401,7 @@ LBB0_278: WORD $0xf9000068 // str x8, [x3] LBB0_280: WORD $0xfd000460 // str d0, [x3, #8] - WORD $0x17fffba4 // b LBB0_24 $-4464(%rip) + WORD $0x17fffba5 // b LBB0_24 $-4460(%rip) LBB0_281: WORD $0xb201e7ed // mov x13, #-7378697629483820647 WORD $0xf293334d // movk x13, #39322 @@ -2181,12 +2179,12 @@ LBB0_466: WORD $0x6e248c00 // cmeq.16b v0, v0, v4 WORD $0x6e248c21 // cmeq.16b v1, v1, v4 Lloh26: - WORD $0x10ff1949 // adr x9, lCPI0_0 $-7384(%rip) + WORD $0x10ff1989 // adr x9, lCPI0_0 $-7376(%rip) Lloh27: WORD $0x3dc00124 // ldr q4, [x9, lCPI0_0@PAGEOFF] $0(%rip) WORD $0x4e241c63 // and.16b v3, v3, v4 Lloh28: - WORD $0x10ff1969 // adr x9, lCPI0_1 $-7380(%rip) + WORD $0x10ff19a9 // adr x9, lCPI0_1 $-7372(%rip) Lloh29: WORD $0x3dc00125 // ldr q5, [x9, lCPI0_1@PAGEOFF] $0(%rip) WORD $0x4e050063 // tbl.16b v3, { v3 }, v5 @@ -2224,12 +2222,12 @@ LBB0_472: WORD $0x4f01e442 // movi.16b v2, #34 WORD $0x6e228c03 // cmeq.16b v3, v0, v2 Lloh30: - WORD $0x10ff14ca // adr x10, lCPI0_0 $-7528(%rip) + WORD $0x10ff150a // adr x10, lCPI0_0 $-7520(%rip) Lloh31: WORD $0x3dc00144 // ldr q4, [x10, lCPI0_0@PAGEOFF] $0(%rip) WORD $0x4e241c63 // and.16b v3, v3, v4 Lloh32: - WORD $0x10ff14ea // adr x10, lCPI0_1 $-7524(%rip) + WORD $0x10ff152a // adr x10, lCPI0_1 $-7516(%rip) Lloh33: WORD $0x3dc00145 // ldr q5, [x10, lCPI0_1@PAGEOFF] $0(%rip) WORD $0x4e050063 // tbl.16b v3, { v3 }, v5 @@ -2285,7 +2283,7 @@ LBB0_478: WORD $0xcb000101 // sub x1, x8, x0 WORD $0x9280000a // mov x10, #-1 WORD $0xf900006a // str x10, [x3] - WORD $0x17fff8c1 // b LBB0_24 $-7420(%rip) + WORD $0x17fff8c2 // b LBB0_24 $-7416(%rip) LBB0_479: WORD $0x52800013 // mov w19, #0 LBB0_480: @@ -2690,7 +2688,7 @@ LBB0_571: LBB0_573: WORD $0x9280002c // mov x12, #-2 WORD $0xf900006c // str x12, [x3] - WORD $0x17fff76a // b LBB0_24 $-8792(%rip) + WORD $0x17fff76b // b LBB0_24 $-8788(%rip) LBB0_574: WORD $0xcb000169 // sub x9, x11, x0 WORD $0x8b0d0129 // add x9, x9, x13 @@ -2698,7 +2696,7 @@ LBB0_574: WORD $0xb6ff336c // tbz x12, #63, LBB0_134 $-6548(%rip) LBB0_575: WORD $0xf900006c // str x12, [x3] - WORD $0x17fff764 // b LBB0_24 $-8816(%rip) + WORD $0x17fff765 // b LBB0_24 $-8812(%rip) LBB0_576: WORD $0xb4000229 // cbz x9, LBB0_580 $68(%rip) WORD $0xaa2003ea // mvn x10, x0 @@ -2721,72 +2719,72 @@ LBB0_578: LBB0_580: WORD $0x9280000c // mov x12, #-1 WORD $0xf900006c // str x12, [x3] - WORD $0x17fff750 // b LBB0_24 $-8896(%rip) + WORD $0x17fff751 // b LBB0_24 $-8892(%rip) // .p2align 1, 0x00 LJTI0_0: - WORD $0x01910000 - WORD $0x01910191 - WORD $0x01910191 - WORD $0x01910191 - WORD $0x01910191 - WORD $0x01910191 - WORD $0x01910191 - WORD $0x01910191 - WORD $0x01910191 - WORD $0x01910191 - WORD $0x01910191 - WORD $0x01910191 - WORD $0x01910191 - WORD $0x01910191 - WORD $0x01910191 - WORD $0x01910191 - WORD $0x01910191 - WORD $0x01910123 - WORD $0x01910191 - WORD $0x01910191 - WORD $0x01910191 - WORD $0x01910191 - WORD $0x0019011f - WORD $0x01910191 - WORD $0x00190019 - WORD $0x00190019 - WORD $0x00190019 - WORD $0x00190019 - WORD $0x00190019 - WORD $0x01910195 - WORD $0x01910191 - WORD $0x01910191 - WORD $0x01910191 - WORD $0x01910191 - WORD $0x01910191 - WORD $0x01910191 - WORD $0x01910191 - WORD $0x01910191 - WORD $0x01910191 - WORD $0x01910191 - WORD $0x01910191 - WORD $0x01910191 - WORD $0x01910191 - WORD $0x01910191 - WORD $0x01910191 - WORD $0x01990191 - WORD $0x01a70191 - WORD $0x01910191 - WORD $0x01910191 - WORD $0x01910191 - WORD $0x01910191 - WORD $0x0191019b - WORD $0x01910191 - WORD $0x01910191 - WORD $0x01910191 - WORD $0x0191010e - WORD $0x01910191 - WORD $0x01910191 - WORD $0x01910184 - WORD $0x01910191 - WORD $0x01910191 - WORD $0x01af0191 - WORD $0x011b0191 + WORD $0x01900000 + WORD $0x01900190 + WORD $0x01900190 + WORD $0x01900190 + WORD $0x01900190 + WORD $0x01900190 + WORD $0x01900190 + WORD $0x01900190 + WORD $0x01900190 + WORD $0x01900190 + WORD $0x01900190 + WORD $0x01900190 + WORD $0x01900190 + WORD $0x01900190 + WORD $0x01900190 + WORD $0x01900190 + WORD $0x01900190 + WORD $0x01900122 + WORD $0x01900190 + WORD $0x01900190 + WORD $0x01900190 + WORD $0x01900190 + WORD $0x0018011e + WORD $0x01900190 + WORD $0x00180018 + WORD $0x00180018 + WORD $0x00180018 + WORD $0x00180018 + WORD $0x00180018 + WORD $0x01900194 + WORD $0x01900190 + WORD $0x01900190 + WORD $0x01900190 + WORD $0x01900190 + WORD $0x01900190 + WORD $0x01900190 + WORD $0x01900190 + WORD $0x01900190 + WORD $0x01900190 + WORD $0x01900190 + WORD $0x01900190 + WORD $0x01900190 + WORD $0x01900190 + WORD $0x01900190 + WORD $0x01900190 + WORD $0x01980190 + WORD $0x01a60190 + WORD $0x01900190 + WORD $0x01900190 + WORD $0x01900190 + WORD $0x01900190 + WORD $0x0190019a + WORD $0x01900190 + WORD $0x01900190 + WORD $0x01900190 + WORD $0x0190010d + WORD $0x01900190 + WORD $0x01900190 + WORD $0x01900183 + WORD $0x01900190 + WORD $0x01900190 + WORD $0x01ae0190 + WORD $0x011a0190 // // .word (LBB0_22-LBB0_22)>>2 // .word (LBB0_109-LBB0_22)>>2 // .word (LBB0_109-LBB0_22)>>2 diff --git a/internal/native/neon/vnumber_arm64.s b/internal/native/neon/vnumber_arm64.s index 7d7a8a22f..0d55677f9 100644 --- a/internal/native/neon/vnumber_arm64.s +++ b/internal/native/neon/vnumber_arm64.s @@ -12,13 +12,12 @@ TEXT ·__vnumber_entry__(SB), NOSPLIT, $96 RET // .p2align 2, 0x00 _vnumber: - WORD $0xd101c3ff // sub sp, sp, #112 - WORD $0xa900effc // stp x28, x27, [sp, #8] - WORD $0xa901e7fa // stp x26, x25, [sp, #24] - WORD $0xa902dff8 // stp x24, x23, [sp, #40] - WORD $0xa903d7f6 // stp x22, x21, [sp, #56] - WORD $0xa904cff4 // stp x20, x19, [sp, #72] - WORD $0xa905fbfd // stp fp, lr, [sp, #88] + WORD $0xa9b96ffc // stp x28, x27, [sp, #-112]! + WORD $0xa90167fa // stp x26, x25, [sp, #16] + WORD $0xa9025ff8 // stp x24, x23, [sp, #32] + WORD $0xa90357f6 // stp x22, x21, [sp, #48] + WORD $0xa9044ff4 // stp x20, x19, [sp, #64] + WORD $0xa9057bfd // stp fp, lr, [sp, #80] WORD $0xa93ffbfd // stp fp, lr, [sp, #-8] WORD $0xd10023fd // sub fp, sp, #8 WORD $0xf9400031 // ldr x17, [x1] @@ -129,8 +128,8 @@ LBB0_21: WORD $0xeb11011f // cmp x8, x17 WORD $0x54ffff41 // b.ne LBB0_21 $-24(%rip) WORD $0xd280000d // mov x13, #0 - WORD $0x35000b00 // cbnz w0, LBB0_51 $352(%rip) - WORD $0x14000060 // b LBB0_55 $384(%rip) + WORD $0x35000ae0 // cbnz w0, LBB0_51 $348(%rip) + WORD $0x1400005f // b LBB0_55 $380(%rip) LBB0_24: WORD $0x52800010 // mov w16, #0 LBB0_25: @@ -159,7 +158,7 @@ LBB0_29: WORD $0x54fffe6b // b.lt LBB0_29 $-52(%rip) LBB0_32: WORD $0xeb08023f // cmp x17, x8 - WORD $0x54000782 // b.hs LBB0_50 $240(%rip) + WORD $0x54000762 // b.hs LBB0_50 $236(%rip) WORD $0x38716963 // ldrb w3, [x11, x17] WORD $0x5100c064 // sub w4, w3, #48 WORD $0x7100249f // cmp w4, #9 @@ -178,11 +177,11 @@ LBB0_35: LBB0_37: WORD $0x5280002f // mov w15, #1 WORD $0xaa1003e3 // mov x3, x16 - WORD $0x350005c0 // cbnz w0, LBB0_51 $184(%rip) - WORD $0x14000036 // b LBB0_55 $216(%rip) + WORD $0x350005a0 // cbnz w0, LBB0_51 $180(%rip) + WORD $0x14000035 // b LBB0_55 $212(%rip) LBB0_38: WORD $0x91000628 // add x8, x17, #1 - WORD $0x14000185 // b LBB0_135 $1556(%rip) + WORD $0x14000184 // b LBB0_135 $1552(%rip) LBB0_39: WORD $0x52800000 // mov w0, #0 WORD $0xaa0f03f1 // mov x17, x15 @@ -195,7 +194,7 @@ LBB0_40: LBB0_41: WORD $0x321b0063 // orr w3, w3, #0x20 WORD $0x7101947f // cmp w3, #101 - WORD $0x540003c1 // b.ne LBB0_50 $120(%rip) + WORD $0x540003a1 // b.ne LBB0_50 $116(%rip) WORD $0x91000620 // add x0, x17, #1 WORD $0x52800103 // mov w3, #8 WORD $0xf9000043 // str x3, [x2] @@ -205,7 +204,7 @@ LBB0_41: WORD $0x7100b47f // cmp w3, #45 WORD $0x54000060 // b.eq LBB0_45 $12(%rip) WORD $0x7100ac7f // cmp w3, #43 - WORD $0x54002841 // b.ne LBB0_117 $1288(%rip) + WORD $0x54002821 // b.ne LBB0_117 $1284(%rip) LBB0_45: WORD $0x91000a20 // add x0, x17, #2 WORD $0xeb08001f // cmp x0, x8 @@ -214,20 +213,19 @@ LBB0_45: WORD $0x52800031 // mov w17, #1 WORD $0x5a910631 // cneg w17, w17, ne WORD $0x38606963 // ldrb w3, [x11, x0] - WORD $0x1400013b // b LBB0_118 $1260(%rip) + WORD $0x1400013a // b LBB0_118 $1256(%rip) LBB0_47: WORD $0xf9000028 // str x8, [x1] WORD $0x92800008 // mov x8, #-1 LBB0_48: WORD $0xf9000048 // str x8, [x2] LBB0_49: - WORD $0xa945fbfd // ldp fp, lr, [sp, #88] - WORD $0xa944cff4 // ldp x20, x19, [sp, #72] - WORD $0xa943d7f6 // ldp x22, x21, [sp, #56] - WORD $0xa942dff8 // ldp x24, x23, [sp, #40] - WORD $0xa941e7fa // ldp x26, x25, [sp, #24] - WORD $0xa940effc // ldp x28, x27, [sp, #8] - WORD $0x9101c3ff // add sp, sp, #112 + WORD $0xa9457bfd // ldp fp, lr, [sp, #80] + WORD $0xa9444ff4 // ldp x20, x19, [sp, #64] + WORD $0xa94357f6 // ldp x22, x21, [sp, #48] + WORD $0xa9425ff8 // ldp x24, x23, [sp, #32] + WORD $0xa94167fa // ldp x26, x25, [sp, #16] + WORD $0xa8c76ffc // ldp x28, x27, [sp], #112 WORD $0xd65f03c0 // ret LBB0_50: WORD $0xaa1003e3 // mov x3, x16 @@ -577,7 +575,7 @@ LBB0_118: WORD $0x3100287f // cmn w3, #10 WORD $0x54000062 // b.hs LBB0_120 $12(%rip) WORD $0xf9000020 // str x0, [x1] - WORD $0x17fffe57 // b LBB0_12 $-1700(%rip) + WORD $0x17fffe58 // b LBB0_12 $-1696(%rip) LBB0_120: WORD $0x52800003 // mov w3, #0 WORD $0x52800144 // mov w4, #10 @@ -632,7 +630,7 @@ LBB0_134: WORD $0xfd000440 // str d0, [x2, #8] LBB0_135: WORD $0xf9000028 // str x8, [x1] - WORD $0x17fffe9a // b LBB0_49 $-1432(%rip) + WORD $0x17fffe9b // b LBB0_49 $-1428(%rip) LBB0_136: WORD $0xb201e7ee // mov x14, #-7378697629483820647 WORD $0xf293334e // movk x14, #39322 diff --git a/internal/native/neon/vsigned_arm64.s b/internal/native/neon/vsigned_arm64.s index be88502a1..3df96ba19 100644 --- a/internal/native/neon/vsigned_arm64.s +++ b/internal/native/neon/vsigned_arm64.s @@ -12,8 +12,7 @@ TEXT ·__vsigned_entry__(SB), NOSPLIT, $16 RET // .p2align 2, 0x00 _vsigned: - WORD $0xd10083ff // sub sp, sp, #32 - WORD $0xa900fbfd // stp fp, lr, [sp, #8] + WORD $0xa9be7bfd // stp fp, lr, [sp, #-32]! WORD $0xa93ffbfd // stp fp, lr, [sp, #-8] WORD $0xd10023fd // sub fp, sp, #8 WORD $0xf9400028 // ldr x8, [x1] @@ -24,18 +23,18 @@ _vsigned: WORD $0xf940002b // ldr x11, [x1] WORD $0xf9000c4b // str x11, [x2, #24] WORD $0xeb09011f // cmp x8, x9 - WORD $0x54000642 // b.hs LBB0_12 $200(%rip) + WORD $0x54000622 // b.hs LBB0_12 $196(%rip) WORD $0x3868694c // ldrb w12, [x10, x8] WORD $0x7100b59f // cmp w12, #45 - WORD $0x540006a1 // b.ne LBB0_13 $212(%rip) + WORD $0x54000661 // b.ne LBB0_13 $204(%rip) WORD $0x91000508 // add x8, x8, #1 WORD $0xeb09011f // cmp x8, x9 - WORD $0x54000582 // b.hs LBB0_12 $176(%rip) + WORD $0x54000562 // b.hs LBB0_12 $172(%rip) WORD $0x3868694c // ldrb w12, [x10, x8] WORD $0x9280000b // mov x11, #-1 WORD $0x5100e98d // sub w13, w12, #58 WORD $0x31002dbf // cmn w13, #11 - WORD $0x54000629 // b.ls LBB0_14 $196(%rip) + WORD $0x540005e9 // b.ls LBB0_14 $188(%rip) LBB0_4: WORD $0x7100c19f // cmp w12, #48 WORD $0x54000181 // b.ne LBB0_6 $48(%rip) @@ -49,17 +48,17 @@ LBB0_4: WORD $0xf280002d // movk x13, #1 WORD $0x8a0d018c // and x12, x12, x13 WORD $0xfa409984 // ccmp x12, #0, #4, ls - WORD $0x540007e0 // b.eq LBB0_22 $252(%rip) + WORD $0x54000740 // b.eq LBB0_22 $232(%rip) LBB0_6: WORD $0xd280000c // mov x12, #0 WORD $0x5280014d // mov w13, #10 LBB0_7: WORD $0xeb08013f // cmp x9, x8 - WORD $0x540006c0 // b.eq LBB0_21 $216(%rip) + WORD $0x54000640 // b.eq LBB0_21 $200(%rip) WORD $0x3868694e // ldrb w14, [x10, x8] WORD $0x5100c1ce // sub w14, w14, #48 WORD $0x710025df // cmp w14, #9 - WORD $0x54000448 // b.hi LBB0_15 $136(%rip) + WORD $0x540003e8 // b.hi LBB0_15 $124(%rip) WORD $0x9b4d7d8f // smulh x15, x12, x13 WORD $0x8b0c098c // add x12, x12, x12, lsl #2 WORD $0xd37ff98c // lsl x12, x12, #1 @@ -75,58 +74,52 @@ LBB0_11: WORD $0xf9000028 // str x8, [x1] WORD $0x92800088 // mov x8, #-5 WORD $0xf9000048 // str x8, [x2] - WORD $0xa940fbfd // ldp fp, lr, [sp, #8] - WORD $0x910083ff // add sp, sp, #32 + WORD $0xa8c27bfd // ldp fp, lr, [sp], #32 WORD $0xd65f03c0 // ret LBB0_12: WORD $0xf9000029 // str x9, [x1] WORD $0x92800008 // mov x8, #-1 WORD $0xf9000048 // str x8, [x2] - WORD $0xa940fbfd // ldp fp, lr, [sp, #8] - WORD $0x910083ff // add sp, sp, #32 + WORD $0xa8c27bfd // ldp fp, lr, [sp], #32 WORD $0xd65f03c0 // ret LBB0_13: WORD $0x5280002b // mov w11, #1 WORD $0x5100e98d // sub w13, w12, #58 WORD $0x31002dbf // cmn w13, #11 - WORD $0x54fffa28 // b.hi LBB0_4 $-188(%rip) + WORD $0x54fffa68 // b.hi LBB0_4 $-180(%rip) LBB0_14: WORD $0xf9000028 // str x8, [x1] WORD $0x92800028 // mov x8, #-2 WORD $0xf9000048 // str x8, [x2] - WORD $0xa940fbfd // ldp fp, lr, [sp, #8] - WORD $0x910083ff // add sp, sp, #32 + WORD $0xa8c27bfd // ldp fp, lr, [sp], #32 WORD $0xd65f03c0 // ret LBB0_15: WORD $0xeb09011f // cmp x8, x9 - WORD $0x540001c2 // b.hs LBB0_20 $56(%rip) + WORD $0x540001a2 // b.hs LBB0_20 $52(%rip) WORD $0x38686949 // ldrb w9, [x10, x8] WORD $0x7100b93f // cmp w9, #46 WORD $0x540000a0 // b.eq LBB0_19 $20(%rip) WORD $0x7101153f // cmp w9, #69 WORD $0x54000060 // b.eq LBB0_19 $12(%rip) WORD $0x7101953f // cmp w9, #101 - WORD $0x540000e1 // b.ne LBB0_20 $28(%rip) + WORD $0x540000c1 // b.ne LBB0_20 $24(%rip) LBB0_19: WORD $0xf9000028 // str x8, [x1] WORD $0x928000a8 // mov x8, #-6 WORD $0xf9000048 // str x8, [x2] - WORD $0xa940fbfd // ldp fp, lr, [sp, #8] - WORD $0x910083ff // add sp, sp, #32 + WORD $0xa8c27bfd // ldp fp, lr, [sp], #32 WORD $0xd65f03c0 // ret LBB0_20: WORD $0xaa0803e9 // mov x9, x8 LBB0_21: WORD $0xf9000029 // str x9, [x1] WORD $0xf900084c // str x12, [x2, #16] - WORD $0xa940fbfd // ldp fp, lr, [sp, #8] - WORD $0x910083ff // add sp, sp, #32 + WORD $0xa8c27bfd // ldp fp, lr, [sp], #32 WORD $0xd65f03c0 // ret LBB0_22: WORD $0x91000508 // add x8, x8, #1 WORD $0xf9000028 // str x8, [x1] - WORD $0xa940fbfd // ldp fp, lr, [sp, #8] - WORD $0x910083ff // add sp, sp, #32 + WORD $0xa8c27bfd // ldp fp, lr, [sp], #32 WORD $0xd65f03c0 // ret // .p2align 2, 0x00 _MASK_USE_NUMBER: diff --git a/internal/native/neon/vstring_arm64.s b/internal/native/neon/vstring_arm64.s index 9093dfb44..f7c2f7661 100644 --- a/internal/native/neon/vstring_arm64.s +++ b/internal/native/neon/vstring_arm64.s @@ -56,29 +56,28 @@ lCPI0_1: // .byte 15 _vstring: - WORD $0xd100c3ff // sub sp, sp, #48 - WORD $0xa900cff4 // stp x20, x19, [sp, #8] - WORD $0xa901fbfd // stp fp, lr, [sp, #24] + WORD $0xa9bd4ff4 // stp x20, x19, [sp, #-48]! + WORD $0xa9017bfd // stp fp, lr, [sp, #16] WORD $0xa93ffbfd // stp fp, lr, [sp, #-8] WORD $0xd10023fd // sub fp, sp, #8 WORD $0xf9400028 // ldr x8, [x1] WORD $0xf9400409 // ldr x9, [x0, #8] WORD $0x37280c43 // tbnz w3, #5, LBB0_11 $392(%rip) WORD $0xeb08012b // subs x11, x9, x8 - WORD $0x54003b00 // b.eq LBB0_75 $1888(%rip) + WORD $0x54003d00 // b.eq LBB0_77 $1952(%rip) WORD $0xf940000a // ldr x10, [x0] WORD $0xf101017f // cmp x11, #64 - WORD $0x54001d43 // b.lo LBB0_26 $936(%rip) + WORD $0x54001e03 // b.lo LBB0_27 $960(%rip) WORD $0xd280000c // mov x12, #0 WORD $0x92800009 // mov x9, #-1 WORD $0x4f01e440 // movi.16b v0, #34 WORD $0x4f02e781 // movi.16b v1, #92 Lloh0: - WORD $0x10fffced // adr x13, lCPI0_0 $-100(%rip) + WORD $0x10fffd0d // adr x13, lCPI0_0 $-96(%rip) Lloh1: WORD $0x3dc001a2 // ldr q2, [x13, lCPI0_0@PAGEOFF] $0(%rip) Lloh2: - WORD $0x10fffd2d // adr x13, lCPI0_1 $-92(%rip) + WORD $0x10fffd4d // adr x13, lCPI0_1 $-88(%rip) Lloh3: WORD $0x3dc001a3 // ldr q3, [x13, lCPI0_1@PAGEOFF] $0(%rip) WORD $0xaa0803ed // mov x13, x8 @@ -144,7 +143,7 @@ LBB0_7: WORD $0x910101ad // add x13, x13, #64 WORD $0xf100fd7f // cmp x11, #63 WORD $0x54fff8a8 // b.hi LBB0_4 $-236(%rip) - WORD $0x140000a0 // b LBB0_24 $640(%rip) + WORD $0x1400009f // b LBB0_24 $636(%rip) LBB0_8: WORD $0xb100053f // cmn x9, #1 WORD $0xdac001f0 // rbit x16, x15 @@ -169,15 +168,15 @@ LBB0_10: WORD $0x8b0d014a // add x10, x10, x13 WORD $0x9100054e // add x14, x10, #1 WORD $0xb6f8102e // tbz x14, #63, LBB0_23 $516(%rip) - WORD $0x1400017a // b LBB0_76 $1512(%rip) + WORD $0x1400016b // b LBB0_71 $1452(%rip) LBB0_11: WORD $0xeb08012c // subs x12, x9, x8 - WORD $0x54002ee0 // b.eq LBB0_75 $1500(%rip) + WORD $0x540030e0 // b.eq LBB0_77 $1564(%rip) WORD $0xf940000a // ldr x10, [x0] - WORD $0x10fff18f // adr x15, lCPI0_0 $-464(%rip) - WORD $0x10fff1ee // adr x14, lCPI0_1 $-452(%rip) + WORD $0x10fff1af // adr x15, lCPI0_0 $-460(%rip) + WORD $0x10fff20e // adr x14, lCPI0_1 $-448(%rip) WORD $0xf101019f // cmp x12, #64 - WORD $0x540015e3 // b.lo LBB0_32 $700(%rip) + WORD $0x540016a3 // b.lo LBB0_33 $724(%rip) WORD $0xd280000b // mov x11, #0 WORD $0x92800009 // mov x9, #-1 WORD $0x4f01e440 // movi.16b v0, #34 @@ -269,12 +268,12 @@ LBB0_16: WORD $0xaa030083 // orr x3, x4, x3 WORD $0xaa110071 // orr x17, x3, x17 WORD $0xb50002f0 // cbnz x16, LBB0_21 $92(%rip) - WORD $0xb5002011 // cbnz x17, LBB0_69 $1024(%rip) + WORD $0xb5000551 // cbnz x17, LBB0_25 $168(%rip) WORD $0xd101018c // sub x12, x12, #64 WORD $0x910101ad // add x13, x13, #64 WORD $0xf100fd9f // cmp x12, #63 WORD $0x54fff568 // b.hi LBB0_14 $-340(%rip) - WORD $0x14000026 // b LBB0_25 $152(%rip) + WORD $0x1400002c // b LBB0_26 $176(%rip) LBB0_19: WORD $0xb100053f // cmn x9, #1 WORD $0xdac00223 // rbit x3, x17 @@ -299,10 +298,10 @@ LBB0_21: WORD $0xdac0022b // rbit x11, x17 WORD $0xdac0116b // clz x11, x11 WORD $0xeb0a017f // cmp x11, x10 - WORD $0x54001ca3 // b.lo LBB0_69 $916(%rip) + WORD $0x54001ea3 // b.lo LBB0_72 $980(%rip) WORD $0x8b0d014a // add x10, x10, x13 WORD $0x9100054e // add x14, x10, #1 - WORD $0xb7f81f6e // tbnz x14, #63, LBB0_76 $1004(%rip) + WORD $0xb7f81d8e // tbnz x14, #63, LBB0_71 $944(%rip) LBB0_23: WORD $0xf900002e // str x14, [x1] WORD $0x528000ea // mov w10, #7 @@ -310,23 +309,30 @@ LBB0_23: WORD $0xeb0e013f // cmp x9, x14 WORD $0xda9fb129 // csinv x9, x9, xzr, lt WORD $0xa9012448 // stp x8, x9, [x2, #16] - WORD $0xa941fbfd // ldp fp, lr, [sp, #24] - WORD $0xa940cff4 // ldp x20, x19, [sp, #8] - WORD $0x9100c3ff // add sp, sp, #48 + WORD $0xa9417bfd // ldp fp, lr, [sp, #16] + WORD $0xa8c34ff4 // ldp x20, x19, [sp], #48 WORD $0xd65f03c0 // ret LBB0_24: WORD $0x8b0d014d // add x13, x10, x13 - WORD $0x14000006 // b LBB0_27 $24(%rip) + WORD $0x1400000d // b LBB0_28 $52(%rip) LBB0_25: - WORD $0x8b0d014d // add x13, x10, x13 - WORD $0x1400002c // b LBB0_33 $176(%rip) + WORD $0x9280002e // mov x14, #-2 + WORD $0xf9400408 // ldr x8, [x0, #8] + WORD $0xf9000028 // str x8, [x1] + WORD $0xf900004e // str x14, [x2] + WORD $0xa9417bfd // ldp fp, lr, [sp, #16] + WORD $0xa8c34ff4 // ldp x20, x19, [sp], #48 + WORD $0xd65f03c0 // ret LBB0_26: + WORD $0x8b0d014d // add x13, x10, x13 + WORD $0x1400002c // b LBB0_34 $176(%rip) +LBB0_27: WORD $0xd280000c // mov x12, #0 WORD $0x8b08014d // add x13, x10, x8 WORD $0x92800009 // mov x9, #-1 -LBB0_27: +LBB0_28: WORD $0xf100816e // subs x14, x11, #32 - WORD $0x54000e83 // b.lo LBB0_42 $464(%rip) + WORD $0x54000e83 // b.lo LBB0_43 $464(%rip) WORD $0xad4005a0 // ldp q0, q1, [x13] WORD $0x4f01e442 // movi.16b v2, #34 WORD $0x6e228c03 // cmeq.16b v3, v0, v2 @@ -335,12 +341,12 @@ LBB0_27: WORD $0x6e248c00 // cmeq.16b v0, v0, v4 WORD $0x6e248c21 // cmeq.16b v1, v1, v4 Lloh4: - WORD $0x10ffdecb // adr x11, lCPI0_0 $-1064(%rip) + WORD $0x10ffde2b // adr x11, lCPI0_0 $-1084(%rip) Lloh5: WORD $0x3dc00164 // ldr q4, [x11, lCPI0_0@PAGEOFF] $0(%rip) WORD $0x4e241c63 // and.16b v3, v3, v4 Lloh6: - WORD $0x10ffdeeb // adr x11, lCPI0_1 $-1060(%rip) + WORD $0x10ffde4b // adr x11, lCPI0_1 $-1080(%rip) Lloh7: WORD $0x3dc00165 // ldr q5, [x11, lCPI0_1@PAGEOFF] $0(%rip) WORD $0x4e050063 // tbl.16b v3, { v3 }, v5 @@ -360,20 +366,20 @@ Lloh7: WORD $0x1e260011 // fmov w17, s0 WORD $0x33103e0b // bfi w11, w16, #16, #16 WORD $0x33103e2f // bfi w15, w17, #16, #16 - WORD $0x3500080f // cbnz w15, LBB0_39 $256(%rip) - WORD $0xb50008ac // cbnz x12, LBB0_40 $276(%rip) - WORD $0xb4000a4b // cbz x11, LBB0_41 $328(%rip) -LBB0_31: + WORD $0x3500080f // cbnz w15, LBB0_40 $256(%rip) + WORD $0xb50008ac // cbnz x12, LBB0_41 $276(%rip) + WORD $0xb4000a4b // cbz x11, LBB0_42 $328(%rip) +LBB0_32: WORD $0xdac0016b // rbit x11, x11 WORD $0xdac0116b // clz x11, x11 - WORD $0x14000036 // b LBB0_38 $216(%rip) -LBB0_32: + WORD $0x14000036 // b LBB0_39 $216(%rip) +LBB0_33: WORD $0xd280000b // mov x11, #0 WORD $0x8b08014d // add x13, x10, x8 WORD $0x92800009 // mov x9, #-1 -LBB0_33: +LBB0_34: WORD $0xf1008190 // subs x16, x12, #32 - WORD $0x54001103 // b.lo LBB0_59 $544(%rip) + WORD $0x54001103 // b.lo LBB0_60 $544(%rip) WORD $0xad4005a0 // ldp q0, q1, [x13] WORD $0x4f01e442 // movi.16b v2, #34 WORD $0x6e228c03 // cmeq.16b v3, v0, v2 @@ -413,30 +419,30 @@ LBB0_33: WORD $0x33103e2c // bfi w12, w17, #16, #16 WORD $0x33103c6f // bfi w15, w3, #16, #16 WORD $0x33103c8e // bfi w14, w4, #16, #16 - WORD $0x3500092f // cbnz w15, LBB0_55 $292(%rip) - WORD $0xb50009cb // cbnz x11, LBB0_56 $312(%rip) - WORD $0xb4000b6c // cbz x12, LBB0_57 $364(%rip) -LBB0_37: + WORD $0x3500092f // cbnz w15, LBB0_56 $292(%rip) + WORD $0xb50009cb // cbnz x11, LBB0_57 $312(%rip) + WORD $0xb4000b6c // cbz x12, LBB0_58 $364(%rip) +LBB0_38: WORD $0xdac0018b // rbit x11, x12 WORD $0xdac0116b // clz x11, x11 WORD $0xdac001cc // rbit x12, x14 WORD $0xdac0118c // clz x12, x12 WORD $0xeb0b019f // cmp x12, x11 - WORD $0x54000ee3 // b.lo LBB0_69 $476(%rip) -LBB0_38: + WORD $0x54001023 // b.lo LBB0_72 $516(%rip) +LBB0_39: WORD $0xcb0a01aa // sub x10, x13, x10 WORD $0x8b0b014a // add x10, x10, x11 WORD $0x9100054e // add x14, x10, #1 - WORD $0xb6fff24e // tbz x14, #63, LBB0_23 $-440(%rip) - WORD $0x1400008b // b LBB0_76 $556(%rip) -LBB0_39: + WORD $0xb6fff18e // tbz x14, #63, LBB0_23 $-464(%rip) + WORD $0x14000076 // b LBB0_71 $472(%rip) +LBB0_40: WORD $0xdac001f0 // rbit x16, x15 WORD $0xdac01210 // clz x16, x16 WORD $0xcb0a01b1 // sub x17, x13, x10 WORD $0x8b100230 // add x16, x17, x16 WORD $0xb100053f // cmn x9, #1 WORD $0x9a901129 // csel x9, x9, x16, ne -LBB0_40: +LBB0_41: WORD $0x0a2c01f0 // bic w16, w15, w12 WORD $0x531f7a11 // lsl w17, w16, #1 WORD $0x331f7a0c // bfi w12, w16, #1, #31 @@ -450,31 +456,31 @@ LBB0_40: WORD $0x2a2c03ec // mvn w12, w12 WORD $0x8a0b018b // and x11, x12, x11 WORD $0xaa0f03ec // mov x12, x15 - WORD $0xb5fff60b // cbnz x11, LBB0_31 $-320(%rip) -LBB0_41: + WORD $0xb5fff60b // cbnz x11, LBB0_32 $-320(%rip) +LBB0_42: WORD $0x910081ad // add x13, x13, #32 WORD $0xaa0e03eb // mov x11, x14 -LBB0_42: - WORD $0xb5000c4c // cbnz x12, LBB0_71 $392(%rip) - WORD $0xb40003ab // cbz x11, LBB0_52 $116(%rip) -LBB0_44: - WORD $0xcb0a03ec // neg x12, x10 +LBB0_43: + WORD $0xb5000d8c // cbnz x12, LBB0_73 $432(%rip) + WORD $0xb40003ab // cbz x11, LBB0_53 $116(%rip) LBB0_45: - WORD $0xd280000f // mov x15, #0 + WORD $0xcb0a03ec // neg x12, x10 LBB0_46: + WORD $0xd280000f // mov x15, #0 +LBB0_47: WORD $0x386f69ae // ldrb w14, [x13, x15] WORD $0x710089df // cmp w14, #34 - WORD $0x540002c0 // b.eq LBB0_51 $88(%rip) + WORD $0x540002c0 // b.eq LBB0_52 $88(%rip) WORD $0x710171df // cmp w14, #92 - WORD $0x540000a0 // b.eq LBB0_49 $20(%rip) + WORD $0x540000a0 // b.eq LBB0_50 $20(%rip) WORD $0x910005ef // add x15, x15, #1 WORD $0xeb0f017f // cmp x11, x15 - WORD $0x54ffff21 // b.ne LBB0_46 $-28(%rip) - WORD $0x14000015 // b LBB0_53 $84(%rip) -LBB0_49: + WORD $0x54ffff21 // b.ne LBB0_47 $-28(%rip) + WORD $0x14000015 // b LBB0_54 $84(%rip) +LBB0_50: WORD $0xd100056e // sub x14, x11, #1 WORD $0xeb0f01df // cmp x14, x15 - WORD $0x54000c80 // b.eq LBB0_75 $400(%rip) + WORD $0x54000dc0 // b.eq LBB0_77 $440(%rip) WORD $0x8b0f01ad // add x13, x13, x15 WORD $0x8b0c01ae // add x14, x13, x12 WORD $0xb100053f // cmn x9, #1 @@ -485,28 +491,28 @@ LBB0_49: WORD $0xd10009cb // sub x11, x14, #2 WORD $0x9280000e // mov x14, #-1 WORD $0xeb0f021f // cmp x16, x15 - WORD $0x54fffd21 // b.ne LBB0_45 $-92(%rip) - WORD $0x14000059 // b LBB0_76 $356(%rip) -LBB0_51: + WORD $0x54fffd21 // b.ne LBB0_46 $-92(%rip) + WORD $0x14000044 // b LBB0_71 $272(%rip) +LBB0_52: WORD $0x8b0f01ab // add x11, x13, x15 WORD $0x9100056d // add x13, x11, #1 -LBB0_52: - WORD $0xcb0a01ae // sub x14, x13, x10 - WORD $0xb6ffeb6e // tbz x14, #63, LBB0_23 $-660(%rip) - WORD $0x14000054 // b LBB0_76 $336(%rip) LBB0_53: + WORD $0xcb0a01ae // sub x14, x13, x10 + WORD $0xb6ffeaae // tbz x14, #63, LBB0_23 $-684(%rip) + WORD $0x1400003f // b LBB0_71 $252(%rip) +LBB0_54: WORD $0x710089df // cmp w14, #34 - WORD $0x54000a21 // b.ne LBB0_75 $324(%rip) + WORD $0x54000b61 // b.ne LBB0_77 $364(%rip) WORD $0x8b0f01ad // add x13, x13, x15 - WORD $0x17fffffa // b LBB0_52 $-24(%rip) -LBB0_55: + WORD $0x17fffffa // b LBB0_53 $-24(%rip) +LBB0_56: WORD $0xdac001f1 // rbit x17, x15 WORD $0xdac01231 // clz x17, x17 WORD $0xcb0a01a3 // sub x3, x13, x10 WORD $0x8b110071 // add x17, x3, x17 WORD $0xb100053f // cmn x9, #1 WORD $0x9a911129 // csel x9, x9, x17, ne -LBB0_56: +LBB0_57: WORD $0x0a2b01f1 // bic w17, w15, w11 WORD $0x531f7a23 // lsl w3, w17, #1 WORD $0x331f7a2b // bfi w11, w17, #1, #31 @@ -520,35 +526,35 @@ LBB0_56: WORD $0x2a2b03eb // mvn w11, w11 WORD $0x8a0c016c // and x12, x11, x12 WORD $0xaa0f03eb // mov x11, x15 - WORD $0xb5fff4ec // cbnz x12, LBB0_37 $-356(%rip) -LBB0_57: - WORD $0x3500044e // cbnz w14, LBB0_69 $136(%rip) + WORD $0xb5fff4ec // cbnz x12, LBB0_38 $-356(%rip) +LBB0_58: + WORD $0x3500058e // cbnz w14, LBB0_72 $176(%rip) WORD $0x910081ad // add x13, x13, #32 WORD $0xaa1003ec // mov x12, x16 -LBB0_59: - WORD $0xb50005eb // cbnz x11, LBB0_73 $188(%rip) - WORD $0xb40006cc // cbz x12, LBB0_75 $216(%rip) -LBB0_61: - WORD $0xcb0a03eb // neg x11, x10 +LBB0_60: + WORD $0xb500072b // cbnz x11, LBB0_75 $228(%rip) + WORD $0xb400080c // cbz x12, LBB0_77 $256(%rip) LBB0_62: - WORD $0xd280000f // mov x15, #0 + WORD $0xcb0a03eb // neg x11, x10 LBB0_63: + WORD $0xd280000f // mov x15, #0 +LBB0_64: WORD $0x386f69ae // ldrb w14, [x13, x15] WORD $0x710089df // cmp w14, #34 - WORD $0x54000360 // b.eq LBB0_70 $108(%rip) + WORD $0x54000320 // b.eq LBB0_70 $100(%rip) WORD $0x710171df // cmp w14, #92 - WORD $0x54000100 // b.eq LBB0_67 $32(%rip) + WORD $0x54000100 // b.eq LBB0_68 $32(%rip) WORD $0x710081df // cmp w14, #32 - WORD $0x540002a3 // b.lo LBB0_69 $84(%rip) + WORD $0x540003e3 // b.lo LBB0_72 $124(%rip) WORD $0x910005ef // add x15, x15, #1 WORD $0x9280000e // mov x14, #-1 WORD $0xeb0f019f // cmp x12, x15 - WORD $0x54fffec1 // b.ne LBB0_63 $-40(%rip) - WORD $0x14000029 // b LBB0_76 $164(%rip) -LBB0_67: + WORD $0x54fffec1 // b.ne LBB0_64 $-40(%rip) + WORD $0x14000014 // b LBB0_71 $80(%rip) +LBB0_68: WORD $0xd100058e // sub x14, x12, #1 WORD $0xeb0f01df // cmp x14, x15 - WORD $0x540004a0 // b.eq LBB0_75 $148(%rip) + WORD $0x540005e0 // b.eq LBB0_77 $188(%rip) WORD $0x8b0f01ad // add x13, x13, x15 WORD $0x8b0b01ae // add x14, x13, x11 WORD $0xb100053f // cmn x9, #1 @@ -559,45 +565,54 @@ LBB0_67: WORD $0xd100098c // sub x12, x12, #2 WORD $0x9280000e // mov x14, #-1 WORD $0xeb0f021f // cmp x16, x15 - WORD $0x54fffcc1 // b.ne LBB0_62 $-104(%rip) - WORD $0x1400001a // b LBB0_76 $104(%rip) -LBB0_69: - WORD $0x9280002e // mov x14, #-2 - WORD $0x14000018 // b LBB0_76 $96(%rip) + WORD $0x54fffcc1 // b.ne LBB0_63 $-104(%rip) + WORD $0x14000005 // b LBB0_71 $20(%rip) LBB0_70: WORD $0xcb0a01aa // sub x10, x13, x10 WORD $0x8b0f014a // add x10, x10, x15 WORD $0x9100054e // add x14, x10, #1 - WORD $0xb6ffe34e // tbz x14, #63, LBB0_23 $-920(%rip) - WORD $0x14000013 // b LBB0_76 $76(%rip) + WORD $0xb6ffe2ce // tbz x14, #63, LBB0_23 $-936(%rip) LBB0_71: - WORD $0xb400022b // cbz x11, LBB0_75 $68(%rip) + WORD $0xf9400408 // ldr x8, [x0, #8] + WORD $0xf9000028 // str x8, [x1] + WORD $0xf900004e // str x14, [x2] + WORD $0xa9417bfd // ldp fp, lr, [sp, #16] + WORD $0xa8c34ff4 // ldp x20, x19, [sp], #48 + WORD $0xd65f03c0 // ret +LBB0_72: + WORD $0x9280002e // mov x14, #-2 + WORD $0xf9400408 // ldr x8, [x0, #8] + WORD $0xf9000028 // str x8, [x1] + WORD $0xf900004e // str x14, [x2] + WORD $0xa9417bfd // ldp fp, lr, [sp, #16] + WORD $0xa8c34ff4 // ldp x20, x19, [sp], #48 + WORD $0xd65f03c0 // ret +LBB0_73: + WORD $0xb400022b // cbz x11, LBB0_77 $68(%rip) WORD $0xaa2a03ec // mvn x12, x10 WORD $0x8b0c01ac // add x12, x13, x12 WORD $0xb100053f // cmn x9, #1 WORD $0x9a890189 // csel x9, x12, x9, eq WORD $0x910005ad // add x13, x13, #1 WORD $0xd100056b // sub x11, x11, #1 - WORD $0xb5fff32b // cbnz x11, LBB0_44 $-412(%rip) - WORD $0x17ffffb4 // b LBB0_52 $-304(%rip) -LBB0_73: - WORD $0xb400010c // cbz x12, LBB0_75 $32(%rip) + WORD $0xb5fff1eb // cbnz x11, LBB0_45 $-452(%rip) + WORD $0x17ffffaa // b LBB0_53 $-344(%rip) +LBB0_75: + WORD $0xb400010c // cbz x12, LBB0_77 $32(%rip) WORD $0xaa2a03eb // mvn x11, x10 WORD $0x8b0b01ab // add x11, x13, x11 WORD $0xb100053f // cmn x9, #1 WORD $0x9a890169 // csel x9, x11, x9, eq WORD $0x910005ad // add x13, x13, #1 WORD $0xd100058c // sub x12, x12, #1 - WORD $0xb5fff98c // cbnz x12, LBB0_61 $-208(%rip) -LBB0_75: + WORD $0xb5fff84c // cbnz x12, LBB0_62 $-248(%rip) +LBB0_77: WORD $0x9280000e // mov x14, #-1 -LBB0_76: WORD $0xf9400408 // ldr x8, [x0, #8] WORD $0xf9000028 // str x8, [x1] WORD $0xf900004e // str x14, [x2] - WORD $0xa941fbfd // ldp fp, lr, [sp, #24] - WORD $0xa940cff4 // ldp x20, x19, [sp, #8] - WORD $0x9100c3ff // add sp, sp, #48 + WORD $0xa9417bfd // ldp fp, lr, [sp, #16] + WORD $0xa8c34ff4 // ldp x20, x19, [sp], #48 WORD $0xd65f03c0 // ret // .p2align 2, 0x00 _MASK_USE_NUMBER: diff --git a/internal/native/neon/vunsigned_arm64.s b/internal/native/neon/vunsigned_arm64.s index c73a44894..7cb107948 100644 --- a/internal/native/neon/vunsigned_arm64.s +++ b/internal/native/neon/vunsigned_arm64.s @@ -12,8 +12,7 @@ TEXT ·__vunsigned_entry__(SB), NOSPLIT, $16 RET // .p2align 2, 0x00 _vunsigned: - WORD $0xd10083ff // sub sp, sp, #32 - WORD $0xa900fbfd // stp fp, lr, [sp, #8] + WORD $0xa9be7bfd // stp fp, lr, [sp, #-32]! WORD $0xa93ffbfd // stp fp, lr, [sp, #-8] WORD $0xd10023fd // sub fp, sp, #8 WORD $0xf9400028 // ldr x8, [x1] @@ -24,34 +23,31 @@ _vunsigned: WORD $0xf940002b // ldr x11, [x1] WORD $0xf9000c4b // str x11, [x2, #24] WORD $0xeb09011f // cmp x8, x9 - WORD $0x54000162 // b.hs LBB0_3 $44(%rip) + WORD $0x54000142 // b.hs LBB0_3 $40(%rip) WORD $0x8b08014b // add x11, x10, x8 WORD $0x3940016c // ldrb w12, [x11] WORD $0x7100b59f // cmp w12, #45 - WORD $0x540001a1 // b.ne LBB0_4 $52(%rip) + WORD $0x54000161 // b.ne LBB0_4 $44(%rip) LBB0_2: WORD $0xf9000028 // str x8, [x1] WORD $0x928000a8 // mov x8, #-6 WORD $0xf9000048 // str x8, [x2] - WORD $0xa940fbfd // ldp fp, lr, [sp, #8] - WORD $0x910083ff // add sp, sp, #32 + WORD $0xa8c27bfd // ldp fp, lr, [sp], #32 WORD $0xd65f03c0 // ret LBB0_3: WORD $0xf9000029 // str x9, [x1] WORD $0x92800008 // mov x8, #-1 WORD $0xf9000048 // str x8, [x2] - WORD $0xa940fbfd // ldp fp, lr, [sp, #8] - WORD $0x910083ff // add sp, sp, #32 + WORD $0xa8c27bfd // ldp fp, lr, [sp], #32 WORD $0xd65f03c0 // ret LBB0_4: WORD $0x5100e98d // sub w13, w12, #58 WORD $0x31002dbf // cmn w13, #11 - WORD $0x540000e8 // b.hi LBB0_6 $28(%rip) + WORD $0x540000c8 // b.hi LBB0_6 $24(%rip) WORD $0xf9000028 // str x8, [x1] WORD $0x92800028 // mov x8, #-2 WORD $0xf9000048 // str x8, [x2] - WORD $0xa940fbfd // ldp fp, lr, [sp, #8] - WORD $0x910083ff // add sp, sp, #32 + WORD $0xa8c27bfd // ldp fp, lr, [sp], #32 WORD $0xd65f03c0 // ret LBB0_6: WORD $0x7100c19f // cmp w12, #48 @@ -65,7 +61,7 @@ LBB0_6: WORD $0xf280002c // movk x12, #1 WORD $0x8a0c016b // and x11, x11, x12 WORD $0xfa409964 // ccmp x11, #0, #4, ls - WORD $0x540005a0 // b.eq LBB0_21 $180(%rip) + WORD $0x54000560 // b.eq LBB0_21 $172(%rip) LBB0_8: WORD $0xd280000b // mov x11, #0 WORD $0xeb08013f // cmp x9, x8 @@ -73,11 +69,11 @@ LBB0_8: WORD $0x5280014d // mov w13, #10 LBB0_9: WORD $0xeb08019f // cmp x12, x8 - WORD $0x54000440 // b.eq LBB0_20 $136(%rip) + WORD $0x54000420 // b.eq LBB0_20 $132(%rip) WORD $0x3868694e // ldrb w14, [x10, x8] WORD $0x5100c1ce // sub w14, w14, #48 WORD $0x710025df // cmp w14, #9 - WORD $0x54000288 // b.hi LBB0_15 $80(%rip) + WORD $0x54000268 // b.hi LBB0_15 $76(%rip) WORD $0x9bcd7d6f // umulh x15, x11, x13 WORD $0xeb0f03ff // cmp xzr, x15 WORD $0x54000141 // b.ne LBB0_14 $40(%rip) @@ -95,32 +91,29 @@ LBB0_14: WORD $0xf9000028 // str x8, [x1] WORD $0x92800088 // mov x8, #-5 WORD $0xf9000048 // str x8, [x2] - WORD $0xa940fbfd // ldp fp, lr, [sp, #8] - WORD $0x910083ff // add sp, sp, #32 + WORD $0xa8c27bfd // ldp fp, lr, [sp], #32 WORD $0xd65f03c0 // ret LBB0_15: WORD $0xeb09011f // cmp x8, x9 WORD $0x54000102 // b.hs LBB0_19 $32(%rip) WORD $0x38686949 // ldrb w9, [x10, x8] WORD $0x7100b93f // cmp w9, #46 - WORD $0x54fff7c0 // b.eq LBB0_2 $-264(%rip) + WORD $0x54fff840 // b.eq LBB0_2 $-248(%rip) WORD $0x7101153f // cmp w9, #69 - WORD $0x54fff780 // b.eq LBB0_2 $-272(%rip) + WORD $0x54fff800 // b.eq LBB0_2 $-256(%rip) WORD $0x7101953f // cmp w9, #101 - WORD $0x54fff740 // b.eq LBB0_2 $-280(%rip) + WORD $0x54fff7c0 // b.eq LBB0_2 $-264(%rip) LBB0_19: WORD $0xaa0803ec // mov x12, x8 LBB0_20: WORD $0xf900002c // str x12, [x1] WORD $0xf900084b // str x11, [x2, #16] - WORD $0xa940fbfd // ldp fp, lr, [sp, #8] - WORD $0x910083ff // add sp, sp, #32 + WORD $0xa8c27bfd // ldp fp, lr, [sp], #32 WORD $0xd65f03c0 // ret LBB0_21: WORD $0x91000508 // add x8, x8, #1 WORD $0xf9000028 // str x8, [x1] - WORD $0xa940fbfd // ldp fp, lr, [sp, #8] - WORD $0x910083ff // add sp, sp, #32 + WORD $0xa8c27bfd // ldp fp, lr, [sp], #32 WORD $0xd65f03c0 // ret // .p2align 2, 0x00 _MASK_USE_NUMBER: