Thanks to visit codestin.com
Credit goes to gist.github.com

Skip to content

Instantly share code, notes, and snippets.

@EgorBot
Created May 27, 2024 00:19
Show Gist options
  • Save EgorBot/23344fa03e67903245ec5b8a1d60e046 to your computer and use it in GitHub Desktop.
Save EgorBot/23344fa03e67903245ec5b8a1d60e046 to your computer and use it in GitHub Desktop.
base_asm.asm
Percent | Source code & Disassembly of jitted-35241-17721.so for cpu-clock (182272 samples, percent: local period)
------------------------------------------------------------------------------------------------------------------------
:
:
:
: 3 Disassembly of section .text:
:
: 5 0000000000000080 <native uint [System.Private.CoreLib] System.Text.Ascii::WidenAsciiToUtf16(uint8*,char*,native uint)[OptimizedTier1]>:
: 6 native uint [System.Private.CoreLib] System.Text.Ascii::WidenAsciiToUtf16(uint8*,char*,native uint)[OptimizedTier1]():
0.00 : 80: stp x29, x30, [sp, #-16]!
0.00 : 84: mov x29, sp
0.00 : 88: mov x3, xzr
0.00 : 8c: cmp x2, #0x10
0.00 : 90: b.cc 124 <native uint [System.Private.CoreLib] System.Text.Ascii::WidenAsciiToUtf16(uint8*,char*,native uint)[OptimizedTier1]+0xa4> // b.lo, b.ul, b.last
2.13 : 94: sub x4, x2, #0x10
0.00 : 98: ldr q16, [x0]
0.00 : 9c: movi v17.16b, #0x80
0.00 : a0: and v17.16b, v16.16b, v17.16b
0.00 : a4: umaxp v17.4s, v17.4s, v17.4s
0.00 : a8: mov x5, v17.d[0]
0.00 : ac: cmp x5, #0x0
0.00 : b0: b.ne 124 <native uint [System.Private.CoreLib] System.Text.Ascii::WidenAsciiToUtf16(uint8*,char*,native uint)[OptimizedTier1]+0xa4> // b.any
14.82 : b4: mov v17.16b, v16.16b
0.00 : b8: uxtl v17.8h, v17.8b
0.00 : bc: uxtl2 v16.8h, v16.16b
0.00 : c0: stp q17, q16, [x1]
0.00 : c4: add x5, x1, #0x20
0.00 : c8: tbz w5, #0, d4 <native uint [System.Private.CoreLib] System.Text.Ascii::WidenAsciiToUtf16(uint8*,char*,native uint)[OptimizedTier1]+0x54>
0.00 : cc: mov x3, #0x10 // #16
0.00 : d0: b e0 <native uint [System.Private.CoreLib] System.Text.Ascii::WidenAsciiToUtf16(uint8*,char*,native uint)[OptimizedTier1]+0x60>
0.00 : d4: and x5, x5, #0xfffffffffffffff0
2.29 : d8: sub x3, x5, x1
0.00 : dc: lsr x3, x3, #1
0.00 : e0: cmp x3, x4
0.00 : e4: b.hi 124 <native uint [System.Private.CoreLib] System.Text.Ascii::WidenAsciiToUtf16(uint8*,char*,native uint)[OptimizedTier1]+0xa4> // b.pmore
0.00 : e8: ldr q16, [x0, x3]
0.00 : ec: movi v17.16b, #0x80
0.00 : f0: and v17.16b, v16.16b, v17.16b
0.00 : f4: umaxp v17.4s, v17.4s, v17.4s
2.18 : f8: mov x6, v17.d[0]
0.00 : fc: cmp x6, #0x0
0.00 : 100: b.ne 124 <native uint [System.Private.CoreLib] System.Text.Ascii::WidenAsciiToUtf16(uint8*,char*,native uint)[OptimizedTier1]+0xa4> // b.any
60.94 : 104: mov v17.16b, v16.16b
0.00 : 108: uxtl v17.8h, v17.8b
0.00 : 10c: uxtl2 v16.8h, v16.16b
0.00 : 110: stp q17, q16, [x5]
0.00 : 114: add x3, x3, #0x10
0.00 : 118: add x5, x5, #0x20
0.00 : 11c: cmp x3, x4
15.45 : 120: b.ls e8 <native uint [System.Private.CoreLib] System.Text.Ascii::WidenAsciiToUtf16(uint8*,char*,native uint)[OptimizedTier1]+0x68> // b.plast
0.00 : 124: sub x2, x2, x3
0.00 : 128: cmp x2, #0x4
0.00 : 12c: b.cs 144 <native uint [System.Private.CoreLib] System.Text.Ascii::WidenAsciiToUtf16(uint8*,char*,native uint)[OptimizedTier1]+0xc4> // b.hs, b.nlast
0.00 : 130: tbnz w2, #1, 180 <native uint [System.Private.CoreLib] System.Text.Ascii::WidenAsciiToUtf16(uint8*,char*,native uint)[OptimizedTier1]+0x100>
0.00 : 134: tbnz w2, #0, 1a8 <native uint [System.Private.CoreLib] System.Text.Ascii::WidenAsciiToUtf16(uint8*,char*,native uint)[OptimizedTier1]+0x128>
0.00 : 138: mov x0, x3
0.00 : 13c: ldp x29, x30, [sp], #16
2.17 : 140: ret
0.00 : 144: add x4, x3, x2
0.00 : 148: sub x4, x4, #0x4
0.00 : 14c: ldr w5, [x0, x3]
0.00 : 150: tst w5, #0x80808080
0.00 : 154: b.ne 1bc <native uint [System.Private.CoreLib] System.Text.Ascii::WidenAsciiToUtf16(uint8*,char*,native uint)[OptimizedTier1]+0x13c> // b.any
0.00 : 158: add x6, x1, x3, lsl #1
0.00 : 15c: dup v16.4s, w5
0.00 : 160: movi v17.4s, #0x0
0.00 : 164: zip1 v16.16b, v16.16b, v17.16b
0.00 : 168: mov x5, v16.d[0]
0.00 : 16c: str x5, [x6]
0.00 : 170: add x3, x3, #0x4
0.00 : 174: cmp x3, x4
0.00 : 178: b.ls 14c <native uint [System.Private.CoreLib] System.Text.Ascii::WidenAsciiToUtf16(uint8*,char*,native uint)[OptimizedTier1]+0xcc> // b.plast
0.00 : 17c: b 130 <native uint [System.Private.CoreLib] System.Text.Ascii::WidenAsciiToUtf16(uint8*,char*,native uint)[OptimizedTier1]+0xb0>
0.00 : 180: ldrh w5, [x0, x3]
0.00 : 184: tst w5, #0x80808080
0.00 : 188: b.ne 1bc <native uint [System.Private.CoreLib] System.Text.Ascii::WidenAsciiToUtf16(uint8*,char*,native uint)[OptimizedTier1]+0x13c> // b.any
0.00 : 18c: uxtb w4, w5
0.00 : 190: strh w4, [x1, x3, lsl #1]
0.00 : 194: lsr w5, w5, #8
0.00 : 198: add x4, x1, x3, lsl #1
0.00 : 19c: strh w5, [x4, #2]
0.00 : 1a0: add x3, x3, #0x2
0.00 : 1a4: b 134 <native uint [System.Private.CoreLib] System.Text.Ascii::WidenAsciiToUtf16(uint8*,char*,native uint)[OptimizedTier1]+0xb4>
0.00 : 1a8: ldrb w5, [x0, x3, lsl #0]
0.00 : 1ac: tbnz w5, #7, 138 <native uint [System.Private.CoreLib] System.Text.Ascii::WidenAsciiToUtf16(uint8*,char*,native uint)[OptimizedTier1]+0xb8>
0.00 : 1b0: strh w5, [x1, x3, lsl #1]
0.00 : 1b4: add x3, x3, #0x1
0.00 : 1b8: b 138 <native uint [System.Private.CoreLib] System.Text.Ascii::WidenAsciiToUtf16(uint8*,char*,native uint)[OptimizedTier1]+0xb8>
0.00 : 1bc: uxtb w0, w5
0.00 : 1c0: tbnz w0, #7, 138 <native uint [System.Private.CoreLib] System.Text.Ascii::WidenAsciiToUtf16(uint8*,char*,native uint)[OptimizedTier1]+0xb8>
0.00 : 1c4: uxtb w0, w5
0.00 : 1c8: strh w0, [x1, x3, lsl #1]
0.00 : 1cc: add x3, x3, #0x1
0.00 : 1d0: lsr w5, w5, #8
0.00 : 1d4: b 1bc <native uint [System.Private.CoreLib] System.Text.Ascii::WidenAsciiToUtf16(uint8*,char*,native uint)[OptimizedTier1]+0x13c>
Percent | Source code & Disassembly of jitted-35241-17722.so for cpu-clock (41985 samples, percent: local period)
-----------------------------------------------------------------------------------------------------------------------
:
:
:
: 3 Disassembly of section .text:
:
: 5 0000000000000080 <instance valuetype [System.Runtime]System.Buffers.OperationStatus [benchapp] Perf_Ascii::ToUtf16()[OptimizedTier1]>:
: 6 instance valuetype [System.Runtime]System.Buffers.OperationStatus [benchapp] Perf_Ascii::ToUtf16()[OptimizedTier1]():
0.00 : 80: stp x29, x30, [sp, #-80]!
0.00 : 84: stp x19, x20, [sp, #40]
0.39 : 88: stp x21, x22, [sp, #56]
0.00 : 8c: str x23, [sp, #72]
0.00 : 90: mov x29, sp
5.39 : 94: stp xzr, xzr, [x29, #24]
3.55 : 98: ldr x1, [x0, #8]
12.16 : 9c: cbz x1, ac <instance valuetype [System.Runtime]System.Buffers.OperationStatus [benchapp] Perf_Ascii::ToUtf16()[OptimizedTier1]+0x2c>
7.81 : a0: add x19, x1, #0x10
0.00 : a4: ldr w20, [x1, #8]
27.62 : a8: b b4 <instance valuetype [System.Runtime]System.Buffers.OperationStatus [benchapp] Perf_Ascii::ToUtf16()[OptimizedTier1]+0x34>
0.00 : ac: mov x19, xzr
0.00 : b0: mov w20, wzr
0.00 : b4: ldr x0, [x0, #16]
0.00 : b8: cbz x0, 114 <instance valuetype [System.Runtime]System.Buffers.OperationStatus [benchapp] Perf_Ascii::ToUtf16()[OptimizedTier1]+0x94>
0.00 : bc: add x1, x0, #0x10
0.01 : c0: ldr w21, [x0, #8]
5.26 : c4: cmp w20, w21
0.00 : c8: b.gt 120 <instance valuetype [System.Runtime]System.Buffers.OperationStatus [benchapp] Perf_Ascii::ToUtf16()[OptimizedTier1]+0xa0>
18.92 : cc: mov w22, w20
0.00 : d0: mov w23, wzr
0.00 : d4: stp x1, x19, [x29, #24]
0.00 : d8: mov x0, x19
0.00 : dc: mov x2, x22
0.00 : e0: mov x3, #0x62e0 // #25312
0.00 : e4: movk x3, #0xf52f, lsl #16
0.00 : e8: movk x3, #0xe799, lsl #32
9.37 : ec: ldr x3, [x3]
0.00 : f0: blr x3
0.00 : f4: mov w1, #0x3 // #3
0.00 : f8: cmp x0, x22
0.00 : fc: csel w0, w23, w1, eq // eq = none
0.00 : 100: ldr x23, [sp, #72]
0.00 : 104: ldp x21, x22, [sp, #56]
0.00 : 108: ldp x19, x20, [sp, #40]
9.52 : 10c: ldp x29, x30, [sp], #80
0.00 : 110: ret
0.00 : 114: mov x1, xzr
0.00 : 118: mov w21, wzr
0.00 : 11c: b c4 <instance valuetype [System.Runtime]System.Buffers.OperationStatus [benchapp] Perf_Ascii::ToUtf16()[OptimizedTier1]+0x44>
0.00 : 120: mov w22, w21
0.00 : 124: mov w23, #0x1 // #1
0.00 : 128: b d4 <instance valuetype [System.Runtime]System.Buffers.OperationStatus [benchapp] Perf_Ascii::ToUtf16()[OptimizedTier1]+0x54>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment