Skip to content

Instantly share code, notes, and snippets.

@EgorBot
Created January 18, 2025 03:16
diff_asm_8248019b.asm
Samples: 10K of event 'cpu-clock', 1999 Hz, Event count (approx.): 5008503000, [percent: local period]
valuetype MyStruct [benchapp] Benchmark::Test1(valuetype MyStruct,object)[OptimizedTier1]() /tmp/jitted-57326-7256.so
Percent
Disassembly of section .text:
0000000000000080 <valuetype MyStruct [benchapp] Benchmark::Test1(valuetype MyStruct,object)[OptimizedTier1]>:
1.08 stp x29, x30, [sp, #-48]!
mov x29, sp
2.56 stp xzr, xzr, [x29, #24]
1.24 str xzr, [x29, #40]
1.78 add x14, x0, #0x8
add x15, x0, #0x8
1.17 mov x12, #0x1ec0 // #7872
movk x12, #0xd66e, lsl #16
1.12 movk x12, #0xf7bb, lsl #32
1.21 ldp x16, x12, [x12]
1.31 add x13, x0, #0x8
cmp x15, x16
1.35 ccmp x13, x12, #0x4, ge // ge = tcont
1.28 ↓ b.lt 80
2.35 str x1, [x14]
1.17 3c: ldp x13, x14, [x0]
27.43 stp x13, x14, [x29, #24]
1.08 ldr x13, [x0, #16]
5.24 str x13, [x29, #40]
1.24 mov x14, #0x1ec0 // #7872
movk x14, #0xd66e, lsl #16
1.21 movk x14, #0xf7bb, lsl #32
1.28 ldp x13, x14, [x14]
1.67 cmp x8, x13
ccmp x8, x14, #0x4, ge // ge = tcont
1.04 ↓ b.lt 8c
2.38 ldp x13, x14, [x29, #24]
31.69 stp x13, x14, [x8]
1.17 ldr x13, [x29, #40]
5.93 str x13, [x8, #16]
1.06 78: ldp x29, x30, [sp], #48
← ret
80: mov x15, x1
bl ffffffffff657788 <valuetype MyStruct [benchapp] Benchmark::Test1(valuetype MyStruct,object)[OptimizedTier1]+0xffffffffff657708>
↑ b 3c
8c: mov x14, x8
add x13, x29, #0x18
bl ffffffffff657878 <valuetype MyStruct [benchapp] Benchmark::Test1(valuetype MyStruct,object)[OptimizedTier1]+0xffffffffff6577f8>
bl ffffffffff657878 <valuetype MyStruct [benchapp] Benchmark::Test1(valuetype MyStruct,object)[OptimizedTier1]+0xffffffffff6577f8>
bl ffffffffff657878 <valuetype MyStruct [benchapp] Benchmark::Test1(valuetype MyStruct,object)[OptimizedTier1]+0xffffffffff6577f8>
↑ b 78
Samples: 10K of event 'cpu-clock', 1999 Hz, Event count (approx.): 5008503000, [percent: local period]
instance void [benchapp] Benchmark::ReturnBufferWB()[OptimizedTier1]() /tmp/jitted-57326-7255.so
Percent
Disassembly of section .text:
0000000000000080 <instance void [benchapp] Benchmark::ReturnBufferWB()[OptimizedTier1]>:
6.53 stp x29, x30, [sp, #-64]!
mov x29, sp
9.83 add x9, x29, #0x10
0.40 movi v16.16b, #0x0
5.72 stp q16, q16, [x9]
4.91 stp xzr, xzr, [x9, #32]
6.93 stp xzr, xzr, [x29, #16]
5.92 str xzr, [x29, #32]
6.33 add x0, x29, #0x10
add x8, x29, #0x28
5.59 mov x1, xzr
mov x2, #0xccd8 // #52440
6.19 movk x2, #0x89c7, lsl #16
movk x2, #0xf7bb, lsl #32
5.32 ldr x2, [x2]
4.78 → blr x2
31.56 ldp x29, x30, [sp], #64
← ret
Samples: 10K of event 'cpu-clock', 1999 Hz, Event count (approx.): 5008503000, [percent: local period]
instance void [4252477e-df81-4a7d-96a9-77aaa4d90511Emitted] BenchmarkDotNet.Autogenerated.Runnable_0::WorkloadActionUnroll(int64)[Optimized]() /tmp/jitted-57326-7220.so
Percent
Disassembly of section .text:
0000000000000080 <instance void [4252477e-df81-4a7d-96a9-77aaa4d90511Emitted] BenchmarkDotNet.Autogenerated.Runnable_0::WorkloadActionUnroll(int64)[Optimized]>:
stp x29, x30, [sp, #-32]!
stp x19, x20, [sp, #16]
mov x29, sp
mov x19, x0
cmp x1, #0x0
↓ b.le 124
mov x20, x1
0.30 1c: ldr x1, [x19, #48]
0.50 ldr x0, [x1, #8]
1.00 ldr x1, [x1, #24]
1.20 → blr x1
2.00 ldr x1, [x19, #48]
0.50 ldr x0, [x1, #8]
2.90 ldr x1, [x1, #24]
1.10 → blr x1
2.60 ldr x1, [x19, #48]
0.60 ldr x0, [x1, #8]
1.90 ldr x1, [x1, #24]
1.30 → blr x1
2.30 ldr x1, [x19, #48]
0.50 ldr x0, [x1, #8]
2.20 ldr x1, [x1, #24]
1.20 → blr x1
1.60 ldr x1, [x19, #48]
0.90 ldr x0, [x1, #8]
1.80 ldr x1, [x1, #24]
1.80 → blr x1
2.50 ldr x1, [x19, #48]
1.10 ldr x0, [x1, #8]
2.10 ldr x1, [x1, #24]
1.00 → blr x1
2.00 ldr x1, [x19, #48]
0.60 ldr x0, [x1, #8]
1.80 ldr x1, [x1, #24]
1.20 → blr x1
2.40 ldr x1, [x19, #48]
0.40 ldr x0, [x1, #8]
1.40 ldr x1, [x1, #24]
0.90 → blr x1
2.10 ldr x1, [x19, #48]
0.40 ldr x0, [x1, #8]
2.10 ldr x1, [x1, #24]
1.10 → blr x1
3.30 ldr x1, [x19, #48]
0.70 ldr x0, [x1, #8]
2.40 ldr x1, [x1, #24]
1.40 → blr x1
2.40 ldr x1, [x19, #48]
0.60 ldr x0, [x1, #8]
2.20 ldr x1, [x1, #24]
1.30 → blr x1
2.40 ldr x1, [x19, #48]
0.70 ldr x0, [x1, #8]
2.30 ldr x1, [x1, #24]
1.60 → blr x1
2.50 ldr x1, [x19, #48]
0.70 ldr x0, [x1, #8]
1.90 ldr x1, [x1, #24]
1.00 → blr x1
1.50 ldr x1, [x19, #48]
0.50 ldr x0, [x1, #8]
2.10 ldr x1, [x1, #24]
1.20 → blr x1
3.10 ldr x1, [x19, #48]
0.50 ldr x0, [x1, #8]
2.10 ldr x1, [x1, #24]
1.60 → blr x1
2.60 ldr x1, [x19, #48]
0.40 ldr x0, [x1, #8]
2.30 ldr x1, [x1, #24]
0.90 → blr x1
1.90 sub x20, x20, #0x1
0.60 ↑ cbnz x20, 1c
124: ldp x19, x20, [sp, #16]
ldp x29, x30, [sp], #32
← ret
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment