MihuBot / runtime-utils

0 stars 0 forks source link

[JitDiff X64] [xtqqczze] Copy byte array as block in `Guid` ctor #546

Open MihuBot opened 1 month ago

MihuBot commented 1 month ago

Job completed in 14 minutes. https://github.com/dotnet/runtime/pull/105208

Diffs

Found 263 files with textual diffs.

Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 39642171
Total bytes of diff: 39642117
Total bytes of delta: -54 (-0.00 % of base)
Total relative delta: -0.19
    diff is an improvement.
    relative diff is an improvement.

Top file regressions (bytes):
           9 : System.ComponentModel.TypeConverter.dasm (0.00 % of base)

Top file improvements (bytes):
         -63 : System.Private.CoreLib.dasm (-0.00 % of base)

2 total files with Code Size differences (1 improved, 1 regressed), 257 unchanged.

Top method regressions (bytes):
           9 (2.33 % of base) : System.ComponentModel.TypeConverter.dasm - System.ComponentModel.Design.StandardCommands+ShellGuids:.cctor() (FullOpts)

Top method improvements (bytes):
         -63 (-21.80 % of base) : System.Private.CoreLib.dasm - System.Guid:.ctor(int,short,short,ubyte[]):this (FullOpts)

Top method regressions (percentages):
           9 (2.33 % of base) : System.ComponentModel.TypeConverter.dasm - System.ComponentModel.Design.StandardCommands+ShellGuids:.cctor() (FullOpts)

Top method improvements (percentages):
         -63 (-21.80 % of base) : System.Private.CoreLib.dasm - System.Guid:.ctor(int,short,short,ubyte[]):this (FullOpts)

2 total methods with Code Size differences (1 improved, 1 regressed), 231371 unchanged.

--------------------------------------------------------------------------------

Artifacts:

MihuBot commented 1 month ago

Top method regressions

9 (2.33 % of base) - System.ComponentModel.Design.StandardCommands+ShellGuids:.cctor() ```diff ; Assembly listing for method System.ComponentModel.Design.StandardCommands+ShellGuids:.cctor() (FullOpts) ; Emitting BLENDED_CODE for X64 with AVX512 - Unix ; FullOpts code ; optimized code ; rbp based frame ; partially interruptible ; No PGO data -; 0 inlinees with PGO data; 20 single block inlinees; 8 inlinees without PGO data +; 0 inlinees with PGO data; 21 single block inlinees; 10 inlinees without PGO data ; Final local variable assignments ; ;# V00 OutArgs [V00 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V01 tmp1 [V01 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" ;* V02 tmp2 [V02 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" ;* V03 tmp3 [V03 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" ;* V04 tmp4 [V04 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" ; V05 tmp5 [V05,T00] ( 3, 6 ) ref -> rax class-hnd exact single-def "dup spill" -; V06 tmp6 [V06 ] ( 3, 6 ) struct (16) [rbp-0x10] do-not-enreg[XS] addr-exposed ld-addr-op "NewObj constructor temp" +; V06 tmp6 [V06,T01] ( 2, 4 ) struct (16) [rbp-0x10] do-not-enreg[SF] ld-addr-op "NewObj constructor temp" ; V07 tmp7 [V07 ] ( 4, 4 ) struct (24) [rbp-0x28] do-not-enreg[XSF] addr-exposed ld-addr-op "Inline ldloca(s) first use temp" ;* V08 tmp8 [V08 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" ;* V09 tmp9 [V09 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" ;* V10 tmp10 [V10 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" ;* V11 tmp11 [V11 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ; V12 tmp12 [V12 ] ( 4, 4 ) struct (24) [rbp-0x40] do-not-enreg[XSF] addr-exposed ld-addr-op "Inline ldloca(s) first use temp" ;* V13 tmp13 [V13 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" ;* V14 tmp14 [V14 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" ;* V15 tmp15 [V15 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" ;* V16 tmp16 [V16 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ; V17 tmp17 [V17 ] ( 4, 4 ) struct (24) [rbp-0x58] do-not-enreg[XSF] addr-exposed ld-addr-op "Inline ldloca(s) first use temp" ;* V18 tmp18 [V18 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" ;* V19 tmp19 [V19 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" ;* V20 tmp20 [V20 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" ;* V21 tmp21 [V21 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ; V22 tmp22 [V22 ] ( 4, 4 ) struct (24) [rbp-0x70] do-not-enreg[XSF] addr-exposed ld-addr-op "Inline ldloca(s) first use temp" ;* V23 tmp23 [V23 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" ;* V24 tmp24 [V24 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" ;* V25 tmp25 [V25 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" ;* V26 tmp26 [V26 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" -;* V27 tmp27 [V27 ] ( 0, 0 ) byref -> zero-ref "field V08._reference (fldOffset=0x0)" P-INDEP -;* V28 tmp28 [V28 ] ( 0, 0 ) int -> zero-ref "field V08._length (fldOffset=0x8)" P-INDEP -;* V29 tmp29 [V29 ] ( 0, 0 ) byref -> zero-ref "field V09._reference (fldOffset=0x0)" P-INDEP -;* V30 tmp30 [V30 ] ( 0, 0 ) int -> zero-ref "field V09._length (fldOffset=0x8)" P-INDEP -; V31 tmp31 [V31,T01] ( 2, 2 ) byref -> rdi single-def "field V10._reference (fldOffset=0x0)" P-INDEP -;* V32 tmp32 [V32,T05] ( 0, 0 ) int -> zero-ref "field V10._length (fldOffset=0x8)" P-INDEP -;* V33 tmp33 [V33 ] ( 0, 0 ) byref -> zero-ref "field V13._reference (fldOffset=0x0)" P-INDEP -;* V34 tmp34 [V34 ] ( 0, 0 ) int -> zero-ref "field V13._length (fldOffset=0x8)" P-INDEP -;* V35 tmp35 [V35 ] ( 0, 0 ) byref -> zero-ref "field V14._reference (fldOffset=0x0)" P-INDEP -;* V36 tmp36 [V36 ] ( 0, 0 ) int -> zero-ref "field V14._length (fldOffset=0x8)" P-INDEP -; V37 tmp37 [V37,T02] ( 2, 2 ) byref -> rdi single-def "field V15._reference (fldOffset=0x0)" P-INDEP -;* V38 tmp38 [V38,T06] ( 0, 0 ) int -> zero-ref "field V15._length (fldOffset=0x8)" P-INDEP -;* V39 tmp39 [V39 ] ( 0, 0 ) byref -> zero-ref "field V18._reference (fldOffset=0x0)" P-INDEP -;* V40 tmp40 [V40 ] ( 0, 0 ) int -> zero-ref "field V18._length (fldOffset=0x8)" P-INDEP -;* V41 tmp41 [V41 ] ( 0, 0 ) byref -> zero-ref "field V19._reference (fldOffset=0x0)" P-INDEP -;* V42 tmp42 [V42 ] ( 0, 0 ) int -> zero-ref "field V19._length (fldOffset=0x8)" P-INDEP -; V43 tmp43 [V43,T03] ( 2, 2 ) byref -> rdi single-def "field V20._reference (fldOffset=0x0)" P-INDEP -;* V44 tmp44 [V44,T07] ( 0, 0 ) int -> zero-ref "field V20._length (fldOffset=0x8)" P-INDEP -;* V45 tmp45 [V45 ] ( 0, 0 ) byref -> zero-ref "field V23._reference (fldOffset=0x0)" P-INDEP -;* V46 tmp46 [V46 ] ( 0, 0 ) int -> zero-ref "field V23._length (fldOffset=0x8)" P-INDEP -;* V47 tmp47 [V47 ] ( 0, 0 ) byref -> zero-ref "field V24._reference (fldOffset=0x0)" P-INDEP -;* V48 tmp48 [V48 ] ( 0, 0 ) int -> zero-ref "field V24._length (fldOffset=0x8)" P-INDEP -; V49 tmp49 [V49,T04] ( 2, 2 ) byref -> rdi single-def "field V25._reference (fldOffset=0x0)" P-INDEP -;* V50 tmp50 [V50,T08] ( 0, 0 ) int -> zero-ref "field V25._length (fldOffset=0x8)" P-INDEP +;* V27 tmp27 [V27 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "NewObj constructor temp" +;* V28 tmp28 [V28 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" +;* V29 tmp29 [V29 ] ( 0, 0 ) byref -> zero-ref "field V08._reference (fldOffset=0x0)" P-INDEP +;* V30 tmp30 [V30 ] ( 0, 0 ) int -> zero-ref "field V08._length (fldOffset=0x8)" P-INDEP +;* V31 tmp31 [V31 ] ( 0, 0 ) byref -> zero-ref "field V09._reference (fldOffset=0x0)" P-INDEP +;* V32 tmp32 [V32 ] ( 0, 0 ) int -> zero-ref "field V09._length (fldOffset=0x8)" P-INDEP +; V33 tmp33 [V33,T02] ( 2, 2 ) byref -> rdi single-def "field V10._reference (fldOffset=0x0)" P-INDEP +;* V34 tmp34 [V34,T06] ( 0, 0 ) int -> zero-ref "field V10._length (fldOffset=0x8)" P-INDEP +;* V35 tmp35 [V35 ] ( 0, 0 ) byref -> zero-ref "field V13._reference (fldOffset=0x0)" P-INDEP +;* V36 tmp36 [V36 ] ( 0, 0 ) int -> zero-ref "field V13._length (fldOffset=0x8)" P-INDEP +;* V37 tmp37 [V37 ] ( 0, 0 ) byref -> zero-ref "field V14._reference (fldOffset=0x0)" P-INDEP +;* V38 tmp38 [V38 ] ( 0, 0 ) int -> zero-ref "field V14._length (fldOffset=0x8)" P-INDEP +; V39 tmp39 [V39,T03] ( 2, 2 ) byref -> rdi single-def "field V15._reference (fldOffset=0x0)" P-INDEP +;* V40 tmp40 [V40,T07] ( 0, 0 ) int -> zero-ref "field V15._length (fldOffset=0x8)" P-INDEP +;* V41 tmp41 [V41 ] ( 0, 0 ) byref -> zero-ref "field V18._reference (fldOffset=0x0)" P-INDEP +;* V42 tmp42 [V42 ] ( 0, 0 ) int -> zero-ref "field V18._length (fldOffset=0x8)" P-INDEP +;* V43 tmp43 [V43 ] ( 0, 0 ) byref -> zero-ref "field V19._reference (fldOffset=0x0)" P-INDEP +;* V44 tmp44 [V44 ] ( 0, 0 ) int -> zero-ref "field V19._length (fldOffset=0x8)" P-INDEP +; V45 tmp45 [V45,T04] ( 2, 2 ) byref -> rdi single-def "field V20._reference (fldOffset=0x0)" P-INDEP +;* V46 tmp46 [V46,T08] ( 0, 0 ) int -> zero-ref "field V20._length (fldOffset=0x8)" P-INDEP +;* V47 tmp47 [V47 ] ( 0, 0 ) byref -> zero-ref "field V23._reference (fldOffset=0x0)" P-INDEP +;* V48 tmp48 [V48 ] ( 0, 0 ) int -> zero-ref "field V23._length (fldOffset=0x8)" P-INDEP +;* V49 tmp49 [V49 ] ( 0, 0 ) byref -> zero-ref "field V24._reference (fldOffset=0x0)" P-INDEP +;* V50 tmp50 [V50 ] ( 0, 0 ) int -> zero-ref "field V24._length (fldOffset=0x8)" P-INDEP +; V51 tmp51 [V51,T05] ( 2, 2 ) byref -> rdi single-def "field V25._reference (fldOffset=0x0)" P-INDEP +;* V52 tmp52 [V52,T09] ( 0, 0 ) int -> zero-ref "field V25._length (fldOffset=0x8)" P-INDEP +;* V53 tmp53 [V53 ] ( 0, 0 ) int -> zero-ref "V06.[000..004)" +;* V54 tmp54 [V54 ] ( 0, 0 ) short -> zero-ref "V06.[004..006)" +;* V55 tmp55 [V55 ] ( 0, 0 ) short -> zero-ref "V06.[006..008)" +;* V56 tmp56 [V56 ] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect" +;* V57 tmp57 [V57 ] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect" +;* V58 tmp58 [V58 ] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect" +;* V59 tmp59 [V59 ] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect" ; ; Lcl frame size = 112 G_M15881_IG01: push rbp sub rsp, 112 lea rbp, [rsp+0x70] ;; size=10 bbWeight=1 PerfScore 1.75 G_M15881_IG02: vxorps xmm0, xmm0, xmm0 vmovdqu xmmword ptr [rbp-0x28], xmm0 vmovdqu xmmword ptr [rbp-0x24], xmm0 mov byte ptr [rbp-0x18], 1 mov rdi, 0xD1FFAB1E mov esi, 38 lea rdx, [rbp-0x28] mov rax, 0xD1FFAB1E ; code for System.Guid:TryParseGuid(System.ReadOnlySpan`1[ushort],byref):ubyte call [rax]System.Guid:TryParseGuid(System.ReadOnlySpan`1[ushort],byref):ubyte vmovups xmm0, xmmword ptr [rbp-0x28] mov rdi, 0xD1FFAB1E ; data for System.ComponentModel.Design.StandardCommands+ShellGuids:VSStandardCommandSet97 vmovups xmmword ptr [rdi], xmm0 vxorps xmm0, xmm0, xmm0 vmovdqu xmmword ptr [rbp-0x40], xmm0 vmovdqu xmmword ptr [rbp-0x3C], xmm0 mov byte ptr [rbp-0x30], 1 mov rdi, 0xD1FFAB1E mov esi, 38 lea rdx, [rbp-0x40] mov rax, 0xD1FFAB1E ; code for System.Guid:TryParseGuid(System.ReadOnlySpan`1[ushort],byref):ubyte call [rax]System.Guid:TryParseGuid(System.ReadOnlySpan`1[ushort],byref):ubyte vmovups xmm0, xmmword ptr [rbp-0x40] mov rdi, 0xD1FFAB1E ; data for System.ComponentModel.Design.StandardCommands+ShellGuids:guidDsdCmdId vmovups xmmword ptr [rdi], xmm0 vxorps xmm0, xmm0, xmm0 vmovdqu xmmword ptr [rbp-0x58], xmm0 vmovdqu xmmword ptr [rbp-0x54], xmm0 mov byte ptr [rbp-0x48], 1 mov rdi, 0xD1FFAB1E mov esi, 38 lea rdx, [rbp-0x58] mov rax, 0xD1FFAB1E ; code for System.Guid:TryParseGuid(System.ReadOnlySpan`1[ushort],byref):ubyte call [rax]System.Guid:TryParseGuid(System.ReadOnlySpan`1[ushort],byref):ubyte vmovups xmm0, xmmword ptr [rbp-0x58] mov rdi, 0xD1FFAB1E ; data for System.ComponentModel.Design.StandardCommands+ShellGuids:SID_SOleComponentUIManager vmovups xmmword ptr [rdi], xmm0 vxorps xmm0, xmm0, xmm0 vmovdqu xmmword ptr [rbp-0x70], xmm0 vmovdqu xmmword ptr [rbp-0x6C], xmm0 mov byte ptr [rbp-0x60], 1 mov rdi, 0xD1FFAB1E mov esi, 38 lea rdx, [rbp-0x70] mov rax, 0xD1FFAB1E ; code for System.Guid:TryParseGuid(System.ReadOnlySpan`1[ushort],byref):ubyte call [rax]System.Guid:TryParseGuid(System.ReadOnlySpan`1[ushort],byref):ubyte vmovups xmm0, xmmword ptr [rbp-0x70] mov rdi, 0xD1FFAB1E ; data for System.ComponentModel.Design.StandardCommands+ShellGuids:GUID_VSTASKCATEGORY_DATADESIGNER vmovups xmmword ptr [rdi], xmm0 mov rdi, 0xD1FFAB1E ; ubyte[] mov esi, 8 call CORINFO_HELP_NEWARR_1_VC - mov rdi, 0xD1FFAB1E ; const ptr - mov rdi, qword ptr [rdi] - mov qword ptr [rax+0x10], rdi - vxorps xmm0, xmm0, xmm0 - vmovups xmmword ptr [rbp-0x10], xmm0 - ;; size=318 bbWeight=1 PerfScore 57.42 + mov rcx, 0xD1FFAB1E ; const ptr + mov rcx, qword ptr [rcx] + mov qword ptr [rax+0x10], rcx + mov rax, qword ptr [rax+0x10] + mov qword ptr [rbp-0x08], rax + ;; size=317 bbWeight=1 PerfScore 59.08 G_M15881_IG03: - lea rdi, [rbp-0x10] - mov r8, rax - mov esi, 0xD1FFAB1E - mov edx, -0x1D68 - mov ecx, 0x11D0 - mov rax, 0xD1FFAB1E ; code for System.Guid:.ctor(int,short,short,ubyte[]):this - call [rax]System.Guid:.ctor(int,short,short,ubyte[]):this - vmovups xmm0, xmmword ptr [rbp-0x10] - mov rax, 0xD1FFAB1E ; data for System.ComponentModel.Design.StandardCommands+ShellGuids:GUID_PropertyBrowserToolWindow - vmovups xmmword ptr [rax], xmm0 - ;; size=53 bbWeight=1 PerfScore 10.00 + mov rax, 0xD1FFAB1E ; static handle + mov dword ptr [rax], 0xD1FFAB1E + mov rax, 0xD1FFAB1E + mov word ptr [rax], -0x1D68 + mov rax, 0xD1FFAB1E + mov word ptr [rax], 0x11D0 + mov rax, qword ptr [rbp-0x08] + mov rcx, 0xD1FFAB1E + mov qword ptr [rcx], rax + ;; size=63 bbWeight=1 PerfScore 6.00 G_M15881_IG04: add rsp, 112 pop rbp ret ;; size=6 bbWeight=1 PerfScore 1.75 -; Total bytes of code 387, prolog size 10, PerfScore 70.92, instruction count 72, allocated bytes for code 387 (MethodHash=20e0c1f6) for method System.ComponentModel.Design.StandardCommands+ShellGuids:.cctor() (FullOpts) +; Total bytes of code 396, prolog size 10, PerfScore 68.58, instruction count 71, allocated bytes for code 396 (MethodHash=20e0c1f6) for method System.ComponentModel.Design.StandardCommands+ShellGuids:.cctor() (FullOpts) ```
MihuBot commented 1 month ago

Top method improvements

-63 (-21.80 % of base) - System.Guid:.ctor(int,short,short,ubyte[]):this ```diff ; Assembly listing for method System.Guid:.ctor(int,short,short,ubyte[]):this (FullOpts) ; Emitting BLENDED_CODE for X64 with AVX512 - Unix ; FullOpts code ; optimized code ; rbp based frame ; partially interruptible ; No PGO data +; 0 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ; -; V00 this [V00,T00] ( 13, 13 ) byref -> rbx this single-def +; V00 this [V00,T00] ( 6, 6 ) byref -> rbx this single-def ; V01 arg1 [V01,T02] ( 3, 3 ) int -> r14 single-def ; V02 arg2 [V02,T03] ( 3, 3 ) short -> r13 single-def ; V03 arg3 [V03,T04] ( 3, 3 ) short -> r12 single-def -; V04 arg4 [V04,T01] ( 12, 12 ) ref -> r15 class-hnd single-def +; V04 arg4 [V04,T01] ( 5, 5 ) ref -> r15 class-hnd single-def ;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" -; V06 tmp1 [V06,T06] ( 3, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" -; V07 tmp2 [V07,T07] ( 2, 0 ) ref -> r15 single-def "argument with side effect" -; V08 tmp3 [V08,T08] ( 2, 0 ) ref -> rsi single-def "argument with side effect" -; V09 tmp4 [V09,T09] ( 2, 0 ) ref -> r15 single-def "argument with side effect" -; V10 tmp5 [V10,T10] ( 2, 0 ) ref -> rdx single-def "argument with side effect" -; V11 cse0 [V11,T05] ( 2, 2 ) int -> rdi "CSE #01: aggressive" +; V06 tmp1 [V06,T05] ( 2, 4 ) byref -> rbx single-def "impAppendStmt" +; V07 tmp2 [V07,T06] ( 3, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" +;* V08 tmp3 [V08 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" +; V09 tmp4 [V09,T07] ( 2, 0 ) ref -> r15 single-def "argument with side effect" +; V10 tmp5 [V10,T08] ( 2, 0 ) ref -> rsi single-def "argument with side effect" +; V11 tmp6 [V11,T09] ( 2, 0 ) ref -> r15 single-def "argument with side effect" +; V12 tmp7 [V12,T10] ( 2, 0 ) ref -> rdx single-def "argument with side effect" ; ; Lcl frame size = 8 G_M58059_IG01: push rbp push r15 push r14 push r13 push r12 push rbx push rax lea rbp, [rsp+0x30] mov rbx, rdi mov r14d, esi mov r13d, edx mov r12d, ecx mov r15, r8 ;; size=31 bbWeight=1 PerfScore 8.75 G_M58059_IG02: mov rdi, r15 mov rsi, 0xD1FFAB1E ; 'd' mov rax, 0xD1FFAB1E ; code for System.ArgumentNullException:ThrowIfNull(System.Object,System.String) call [rax]System.ArgumentNullException:ThrowIfNull(System.Object,System.String) - mov edi, dword ptr [r15+0x08] - cmp edi, 8 + cmp dword ptr [r15+0x08], 8 jne SHORT G_M58059_IG04 mov dword ptr [rbx], r14d mov word ptr [rbx+0x04], r13w mov word ptr [rbx+0x06], r12w - movzx rdi, byte ptr [r15+0x17] - mov byte ptr [rbx+0x0F], dil - movzx rdi, byte ptr [r15+0x10] - mov byte ptr [rbx+0x08], dil - movzx rdi, byte ptr [r15+0x11] - mov byte ptr [rbx+0x09], dil - movzx rdi, byte ptr [r15+0x12] - mov byte ptr [rbx+0x0A], dil - movzx rdi, byte ptr [r15+0x13] - mov byte ptr [rbx+0x0B], dil - movzx rdi, byte ptr [r15+0x14] - mov byte ptr [rbx+0x0C], dil - movzx rdi, byte ptr [r15+0x15] - mov byte ptr [rbx+0x0D], dil - movzx rdi, byte ptr [r15+0x16] - mov byte ptr [rbx+0x0E], dil - ;; size=119 bbWeight=1 PerfScore 34.00 + add rbx, 8 + mov rdi, qword ptr [r15+0x10] + mov qword ptr [rbx], rdi + ;; size=56 bbWeight=1 PerfScore 14.00 G_M58059_IG03: add rsp, 8 pop rbx pop r12 pop r13 pop r14 pop r15 pop rbp ret ;; size=15 bbWeight=1 PerfScore 4.25 G_M58059_IG04: mov rdi, 0xD1FFAB1E ; System.ArgumentException call CORINFO_HELP_NEWSFAST mov rbx, rax mov rax, 0xD1FFAB1E ; code for System.SR:get_Arg_GuidArrayCtor():System.String call [rax]System.SR:get_Arg_GuidArrayCtor():System.String mov r15, rax mov edi, 0x187D mov rsi, 0xD1FFAB1E call CORINFO_HELP_STRCNS mov rsi, rax mov rdi, r15 mov rax, 0xD1FFAB1E ; code for System.SR:Format(System.String,System.Object):System.String call [rax]System.SR:Format(System.String,System.Object):System.String mov r15, rax mov edi, 0x13D7 mov rsi, 0xD1FFAB1E call CORINFO_HELP_STRCNS mov rdx, rax mov rsi, r15 mov rdi, rbx mov rax, 0xD1FFAB1E ; code for System.ArgumentException:.ctor(System.String,System.String):this call [rax]System.ArgumentException:.ctor(System.String,System.String):this mov rdi, rbx call CORINFO_HELP_THROW int3 ;; size=124 bbWeight=0 PerfScore 0.00 -; Total bytes of code 289, prolog size 16, PerfScore 47.00, instruction count 72, allocated bytes for code 289 (MethodHash=458f1d34) for method System.Guid:.ctor(int,short,short,ubyte[]):this (FullOpts) +; Total bytes of code 226, prolog size 16, PerfScore 27.00, instruction count 58, allocated bytes for code 226 (MethodHash=458f1d34) for method System.Guid:.ctor(int,short,short,ubyte[]):this (FullOpts) ```
MihuBot commented 1 month ago

@xtqqczze