without optimization
unknown
assembly_x86
14 days ago
73 kB
5
Indexable
.def @feat.00; ... 224810fa5487ddaae43e49f67759012d: .Lfunc_begin0: .seh_proc 224810fa5487ddaae43e49f67759012d push rbp .seh_pushreg rbp sub rsp, 32 .seh_stackalloc 32 lea rbp, [rsp + 32] .seh_setframe rbp, 32 .seh_endprologue call "MoveCircleSystem.TestMaxUint4() -> void_da92dddaad5de6dad0a7261bc3708b9a from DOTSAutoFarmer, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" nop add rsp, 32 pop rbp ret .Lfunc_end0: .seh_endproc .def burst.initialize; .scl 2; .type 32; .endef .globl burst.initialize .p2align 4, 0x90 burst.initialize: .Lfunc_begin1: .seh_proc burst.initialize push rbp .seh_pushreg rbp push rsi .seh_pushreg rsi sub rsp, 40 .seh_stackalloc 40 lea rbp, [rsp + 32] .seh_setframe rbp, 32 .seh_endprologue mov rsi, rcx lea rcx, [rip + burst.string.808e8e7f94567b9f878889686ba14eb1] call rsi mov qword ptr [rip + burst_abort_Ptr], rax lea rcx, [rip + burst.string.e032451e108c081916a72836299e732a] call rsi mov qword ptr [rip + "Unity.Burst.LowLevel.BurstCompilerService::RuntimeLog_Ptr"], rax add rsp, 40 pop rsi pop rbp ret .Lfunc_end1: .seh_endproc .def burst.initialize.externals; .scl 2; .type 32; .endef .globl burst.initialize.externals .p2align 4, 0x90 burst.initialize.externals: .Lfunc_begin2: .seh_proc burst.initialize.externals push rbp .seh_pushreg rbp push rsi .seh_pushreg rsi sub rsp, 40 .seh_stackalloc 40 lea rbp, [rsp + 32] .seh_setframe rbp, 32 .seh_endprologue mov rsi, rcx lea rcx, [rip + burst.string.808e8e7f94567b9f878889686ba14eb1] call rsi mov qword ptr [rip + burst_abort_Ptr], rax lea rcx, [rip + burst.string.e032451e108c081916a72836299e732a] call rsi mov qword ptr [rip + "Unity.Burst.LowLevel.BurstCompilerService::RuntimeLog_Ptr"], rax add rsp, 40 pop rsi pop rbp ret .Lfunc_end2: .seh_endproc .def burst.initialize.statics; .scl 2; .type 32; .endef .globl burst.initialize.statics .p2align 4, 0x90 burst.initialize.statics: .Lfunc_begin3: .seh_proc burst.initialize.statics push rbp .seh_pushreg rbp mov rbp, rsp .seh_setframe rbp, 0 .seh_endprologue pop rbp ret .Lfunc_end3: .seh_endproc .def "MoveCircleSystem+TestMaxUint4_00000008$BurstDirectCall, DOTSAutoFarmer, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null.Invoke() -> System.Void, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089_da92dddaad5de6dad0a7261bc3708b9a from DOTSAutoFarmer, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null@@0"; .scl 2; .type 32; .endef .section .text,"xr",discard,"MoveCircleSystem+TestMaxUint4_00000008$BurstDirectCall, DOTSAutoFarmer, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null.Invoke() -> System.Void, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089_da92dddaad5de6dad0a7261bc3708b9a from DOTSAutoFarmer, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null@@0" .globl "MoveCircleSystem+TestMaxUint4_00000008$BurstDirectCall, DOTSAutoFarmer, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null.Invoke() -> System.Void, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089_da92dddaad5de6dad0a7261bc3708b9a from DOTSAutoFarmer, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null@@0" .p2align 4, 0x90 "MoveCircleSystem+TestMaxUint4_00000008$BurstDirectCall, DOTSAutoFarmer, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null.Invoke() -> System.Void, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089_da92dddaad5de6dad0a7261bc3708b9a from DOTSAutoFarmer, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null@@0": .Lfunc_begin4: .cv_func_id 0 # unknown .seh_proc "MoveCircleSystem+TestMaxUint4_00000008$BurstDirectCall, DOTSAutoFarmer, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null.Invoke() -> System.Void, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089_da92dddaad5de6dad0a7261bc3708b9a from DOTSAutoFarmer, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null@@0" push rbp .seh_pushreg rbp .Ltmp0: push r14 .seh_pushreg r14 push rsi .seh_pushreg rsi push rdi .seh_pushreg rdi push rbx .seh_pushreg rbx sub rsp, 128 .seh_stackalloc 128 lea rbp, [rsp + 128] .seh_setframe rbp, 128 .seh_endprologue .cv_inline_site_id 1 within 0 inlined_at 1 0 0 # SpawnDestroyPlayModeAuthoring.cs(75, 1) { lea rsi, [rbp - 62] .Ltmp1: .cv_inline_site_id 2 within 1 inlined_at 2 76 0 # BurstString.cs(68, 1) UnsafeUtility.MemCpy(dest + destIndex, src, toCopyLength); mov dword ptr [rbp - 62], 1953393013 mov word ptr [rbp - 58], 10292 # BurstString.cs(70, 1) destIndex += toCopyLength; mov dword ptr [rbp - 4], 6 .Ltmp2: .cv_inline_site_id 3 within 1 inlined_at 2 76 0 # BurstString.cs(261, 1) ConvertUnsignedIntegerToString(dest, ref destIndex, destLength, value, options); mov byte ptr [rsp + 56], 0 mov byte ptr [rsp + 48], 0 mov byte ptr [rsp + 40], 0 mov byte ptr [rsp + 32], 0 lea rdx, [rbp - 4] mov edi, 54 mov r9d, 1930428160 mov rcx, rsi mov r8d, 54 call "Unity.Burst.BurstString, Unity.Burst, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null.ConvertUnsignedIntegerToString(System.Byte*, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 dest, System.Int32&, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 destIndex, System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 destLength, System.UInt64, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 value, Unity.Burst.BurstString+FormatOptions, Unity.Burst, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null options) -> System.Void, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089_da92dddaad5de6dad0a7261bc3708b9a from Unity.Burst, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null@@40" .Ltmp3: .cv_inline_site_id 4 within 1 inlined_at 2 76 0 # BurstString.cs(61, 1) int maxToCopy = destLength - destIndex; movsxd rbx, dword ptr [rbp - 4] mov eax, 54 sub eax, ebx # BurstString.cs(63, 1) if (toCopyLength > 0) test eax, eax jle .LBB4_3 # BurstString.cs(62, 1) int toCopyLength = srcLength > maxToCopy ? maxToCopy : srcLength; cmp eax, 2 mov r14d, 2 cmovl r14d, eax # BurstString.cs(68, 1) UnsafeUtility.MemCpy(dest + destIndex, src, toCopyLength); mov rcx, rsi add rcx, rbx .Ltmp4: je .LBB4_13 .Ltmp5: mov r8d, r14d lea rdx, [rip + "MoveCircleSystem.TestMaxUint4$BurstManaged() -> void_da92dddaad5de6dad0a7261bc3708b9a from DOTSAutoFarmer, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null.string.IL_0033.1"+2] xor r9d, r9d call burst.memcpy.inline.AVX2.i64@@32 # BurstString.cs(70, 1) destIndex += toCopyLength; add ebx, r14d mov dword ptr [rbp - 4], ebx .Ltmp6: .LBB4_3: .cv_inline_site_id 5 within 1 inlined_at 2 76 0 # BurstString.cs(261, 1) ConvertUnsignedIntegerToString(dest, ref destIndex, destLength, value, options); mov byte ptr [rsp + 56], 0 mov byte ptr [rsp + 48], 0 mov byte ptr [rsp + 40], 0 mov byte ptr [rsp + 32], 0 lea rdx, [rbp - 4] mov r9d, 2393899008 mov rcx, rsi mov r8d, 54 call "Unity.Burst.BurstString, Unity.Burst, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null.ConvertUnsignedIntegerToString(System.Byte*, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 dest, System.Int32&, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 destIndex, System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 destLength, System.UInt64, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 value, Unity.Burst.BurstString+FormatOptions, Unity.Burst, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null options) -> System.Void, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089_da92dddaad5de6dad0a7261bc3708b9a from Unity.Burst, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null@@40" .Ltmp7: .cv_inline_site_id 6 within 1 inlined_at 2 76 0 # BurstString.cs(61, 1) int maxToCopy = destLength - destIndex; movsxd rbx, dword ptr [rbp - 4] sub edi, ebx # BurstString.cs(63, 1) if (toCopyLength > 0) test edi, edi jle .LBB4_6 # BurstString.cs(62, 1) int toCopyLength = srcLength > maxToCopy ? maxToCopy : srcLength; cmp edi, 2 mov r14d, 2 cmovl r14d, edi # BurstString.cs(68, 1) UnsafeUtility.MemCpy(dest + destIndex, src, toCopyLength); mov rcx, rsi add rcx, rbx .Ltmp8: je .LBB4_13 .Ltmp9: mov r8d, r14d lea rdx, [rip + "MoveCircleSystem.TestMaxUint4$BurstManaged() -> void_da92dddaad5de6dad0a7261bc3708b9a from DOTSAutoFarmer, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null.string.IL_0033.1"+2] xor r9d, r9d call burst.memcpy.inline.AVX2.i64@@32 # BurstString.cs(70, 1) destIndex += toCopyLength; add ebx, r14d mov dword ptr [rbp - 4], ebx .Ltmp10: .LBB4_6: .cv_inline_site_id 7 within 1 inlined_at 2 76 0 # BurstString.cs(261, 1) ConvertUnsignedIntegerToString(dest, ref destIndex, destLength, value, options); mov byte ptr [rsp + 56], 0 mov byte ptr [rsp + 48], 0 mov byte ptr [rsp + 40], 0 mov byte ptr [rsp + 32], 0 lea rdx, [rbp - 4] mov r14d, 54 mov r9d, 2037382914 mov rcx, rsi mov r8d, 54 call "Unity.Burst.BurstString, Unity.Burst, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null.ConvertUnsignedIntegerToString(System.Byte*, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 dest, System.Int32&, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 destIndex, System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 destLength, System.UInt64, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 value, Unity.Burst.BurstString+FormatOptions, Unity.Burst, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null options) -> System.Void, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089_da92dddaad5de6dad0a7261bc3708b9a from Unity.Burst, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null@@40" .Ltmp11: .cv_inline_site_id 8 within 1 inlined_at 2 76 0 # BurstString.cs(61, 1) int maxToCopy = destLength - destIndex; movsxd rdi, dword ptr [rbp - 4] sub r14d, edi # BurstString.cs(63, 1) if (toCopyLength > 0) test r14d, r14d jle .LBB4_9 # BurstString.cs(62, 1) int toCopyLength = srcLength > maxToCopy ? maxToCopy : srcLength; cmp r14d, 2 mov ebx, 2 cmovl ebx, r14d # BurstString.cs(68, 1) UnsafeUtility.MemCpy(dest + destIndex, src, toCopyLength); mov rcx, rsi add rcx, rdi .Ltmp12: je .LBB4_13 .Ltmp13: mov r8d, ebx lea rdx, [rip + "MoveCircleSystem.TestMaxUint4$BurstManaged() -> void_da92dddaad5de6dad0a7261bc3708b9a from DOTSAutoFarmer, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null.string.IL_0033.1"+2] xor r9d, r9d call burst.memcpy.inline.AVX2.i64@@32 # BurstString.cs(70, 1) destIndex += toCopyLength; add edi, ebx mov dword ptr [rbp - 4], edi .Ltmp14: .LBB4_9: .cv_inline_site_id 9 within 1 inlined_at 2 76 0 # BurstString.cs(261, 1) ConvertUnsignedIntegerToString(dest, ref destIndex, destLength, value, options); mov byte ptr [rsp + 56], 0 mov byte ptr [rsp + 48], 0 mov byte ptr [rsp + 40], 0 mov byte ptr [rsp + 32], 0 lea rdx, [rbp - 4] mov r9d, 2393899008 mov rcx, rsi mov r8d, 54 call "Unity.Burst.BurstString, Unity.Burst, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null.ConvertUnsignedIntegerToString(System.Byte*, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 dest, System.Int32&, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 destIndex, System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 destLength, System.UInt64, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 value, Unity.Burst.BurstString+FormatOptions, Unity.Burst, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null options) -> System.Void, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089_da92dddaad5de6dad0a7261bc3708b9a from Unity.Burst, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null@@40" .Ltmp15: .cv_inline_site_id 10 within 1 inlined_at 2 76 0 # BurstString.cs(61, 1) int maxToCopy = destLength - destIndex; mov eax, dword ptr [rbp - 4] # BurstString.cs(63, 1) if (toCopyLength > 0) lea ecx, [rax - 55] cmp ecx, -2 jg .LBB4_12 # BurstString.cs(68, 1) UnsafeUtility.MemCpy(dest + destIndex, src, toCopyLength); movsxd rcx, eax add rcx, rsi .Ltmp16: je .LBB4_13 .Ltmp17: mov byte ptr [rcx], 41 # BurstString.cs(70, 1) destIndex += toCopyLength; inc eax mov dword ptr [rbp - 4], eax .Ltmp18: .LBB4_12: # SpawnDestroyPlayModeAuthoring.cs(76, 1) Debug.Log($"{math.max(math.uint4(1930428160, 2158493696, 2037382914, 2380791808), 2393899008)}"); cdqe mov byte ptr [rbp + rax - 62], 0 mov word ptr [rbp - 64], ax .Ltmp19: mov dword ptr [rsp + 32], 76 lea r9, [rip + "MoveCircleSystem.TestMaxUint4$BurstManaged() -> void_da92dddaad5de6dad0a7261bc3708b9a from DOTSAutoFarmer, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null.string.IL_0000"+2] xor ecx, ecx xor edx, edx mov r8, rsi call qword ptr [rip + "Unity.Burst.LowLevel.BurstCompilerService::RuntimeLog_Ptr"] .Ltmp20: nop add rsp, 128 pop rbx pop rdi pop rsi pop r14 pop rbp ret .LBB4_13: .Ltmp21: lea rcx, [rip + burst.string.768c1a52ff82ef88cabe676b503130fa] lea rdx, [rip + burst.string.ccde4765f77ef2c55b583b5388f0c0f6] call qword ptr [rip + burst_abort_Ptr] int3 .Ltmp22: ... "MoveCircleSystem.TestMaxUint4() -> void_da92dddaad5de6dad0a7261bc3708b9a from DOTSAutoFarmer, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null": .Lfunc_begin5: .cv_func_id 11 # unknown .seh_proc "MoveCircleSystem.TestMaxUint4() -> void_da92dddaad5de6dad0a7261bc3708b9a from DOTSAutoFarmer, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" push rbp .seh_pushreg rbp mov rbp, rsp .seh_setframe rbp, 0 .seh_endprologue .Ltmp23: pop rbp jmp "MoveCircleSystem+TestMaxUint4_00000008$BurstDirectCall, DOTSAutoFarmer, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null.Invoke() -> System.Void, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089_da92dddaad5de6dad0a7261bc3708b9a from DOTSAutoFarmer, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null@@0" .Ltmp24: ... "Unity.Burst.BurstString, Unity.Burst, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null.ConvertIntegerToString(System.Byte*, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 dest, System.Int32&, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 destIndex, System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 destLength, System.Int64, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 value, Unity.Burst.BurstString+FormatOptions, Unity.Burst, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null options) -> System.Void, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089_da92dddaad5de6dad0a7261bc3708b9a from Unity.Burst, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null@@40": .Lfunc_begin6: .cv_func_id 12 # BurstString.cs(422, 1) { .seh_proc "Unity.Burst.BurstString, Unity.Burst, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null.ConvertIntegerToString(System.Byte*, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 dest, System.Int32&, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 destIndex, System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 destLength, System.Int64, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 value, Unity.Burst.BurstString+FormatOptions, Unity.Burst, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null options) -> System.Void, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089_da92dddaad5de6dad0a7261bc3708b9a from Unity.Burst, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null@@40" push rbp .seh_pushreg rbp push r15 .seh_pushreg r15 push r14 .seh_pushreg r14 push r13 .seh_pushreg r13 push r12 .seh_pushreg r12 push rsi .seh_pushreg rsi push rdi .seh_pushreg rdi push rbx .seh_pushreg rbx sub rsp, 24 .seh_stackalloc 24 lea rbp, [rsp + 16] .seh_setframe rbp, 16 .seh_endprologue mov r14, r9 mov esi, r8d mov rdi, rdx mov rbx, rcx .Ltmp25: mov qword ptr [rbp], 0 .Ltmp26: .cv_inline_site_id 13 within 12 inlined_at 3 423 0 # BurstString.cs(990, 1) switch (Kind) cmp byte ptr [rbp + 112], 3 mov eax, 16 mov r12d, 10 cmove r12, rax mov r13d, -1 mov rax, r9 .Ltmp27: ... .LBB6_1: # BurstString.cs(431, 1) tmp /= basis; cqo idiv r12 # BurstString.cs(433, 1) } while (tmp != 0); inc r13d test rax, rax jne .LBB6_1 # BurstString.cs(436, 1) byte* tmpBuffer = stackalloc byte[length + 1]; lea r8d, [r13 + 2] lea rax, [r8 + 15] and rax, -16 call __chkstk sub rsp, rax mov r15, rsp sub rsp, 32 mov rcx, r15 xor edx, edx xor r9d, r9d call burst.memset.inline.AVX2.i32@@32 add rsp, 32 xor ecx, ecx cmp byte ptr [rbp + 136], 0 setne cl shl ecx, 5 add ecx, 55 # BurstString.cs(439, 1) int tmpIndex = length - 1; lea r8d, [r13 + 1] mov rax, r14 .p2align 4, 0x90 .LBB6_3: # BurstString.cs(443, 1) tmp /= basis; cqo idiv r12 # BurstString.cs(442, 1) tmpBuffer[tmpIndex--] = ValueToIntegerChar((int)(tmp % basis), options.Uppercase); movsxd r9, r13d dec r13d .Ltmp28: .cv_inline_site_id 14 within 12 inlined_at 3 442 0 # BurstString.cs(547, 1) value = value < 0 ? -value : value; mov r10d, edx neg r10d cmovs r10d, edx # BurstString.cs(548, 1) if (value <= 9) lea edx, [r10 + 48] lea r11d, [rcx + r10] cmp r10d, 10 movzx edx, dl cmovge edx, r11d .Ltmp29: # BurstString.cs(442, 1) tmpBuffer[tmpIndex--] = ValueToIntegerChar((int)(tmp % basis), options.Uppercase); mov byte ptr [r15 + r9], dl # BurstString.cs(444, 1) } while (tmp != 0); test rax, rax jne .LBB6_3 # BurstString.cs(445, 1) tmpBuffer[length] = 0; movsxd rax, r8d mov byte ptr [r15 + rax], 0 .Ltmp30: .cv_inline_site_id 15 within 12 inlined_at 3 447 0 # BurstString.cs(909, 1) Kind = kind; mov dword ptr [rbp - 8], 0 # BurstString.cs(910, 1) _buffer = buffer; mov qword ptr [rbp - 16], r15 # BurstString.cs(911, 1) DigitsCount = digitsCount; mov dword ptr [rbp - 4], eax # BurstString.cs(912, 1) Scale = scale; mov dword ptr [rbp], eax # BurstString.cs(913, 1) IsNegative = isNegative; shr r14, 63 mov byte ptr [rbp + 4], r14b .Ltmp31: # BurstString.cs(448, 1) FormatNumber(dest, ref destIndex, destLength, ref numberBuffer, options.Specifier, options); movzx eax, byte ptr [rbp + 128] sub rsp, 80 movzx ecx, byte ptr [rbp + 136] mov byte ptr [rsp + 64], cl mov byte ptr [rsp + 56], al movzx ecx, byte ptr [rbp + 120] mov byte ptr [rsp + 48], cl movzx ecx, byte ptr [rbp + 112] mov byte ptr [rsp + 40], cl mov dword ptr [rsp + 32], eax lea r9, [rbp - 16] mov rcx, rbx mov rdx, rdi mov r8d, esi call "Unity.Burst.BurstString, Unity.Burst, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null.FormatNumber(System.Byte*, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 dest, System.Int32&, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 destIndex, System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 destLength, Unity.Burst.BurstString+NumberBuffer&, Unity.Burst, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null number, System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 nMaxDigits, Unity.Burst.BurstString+FormatOptions, Unity.Burst, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null options) -> System.Void, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089_da92dddaad5de6dad0a7261bc3708b9a from Unity.Burst, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null@@48" # BurstString.cs(449, 1) } nop lea rsp, [rbp + 8] pop rbx pop rdi pop rsi pop r12 pop r13 pop r14 pop r15 pop rbp ret .Ltmp32: ... "Unity.Burst.BurstString, Unity.Burst, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null.ConvertUnsignedIntegerToString(System.Byte*, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 dest, System.Int32&, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 destIndex, System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 destLength, System.UInt64, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 value, Unity.Burst.BurstString+FormatOptions, Unity.Burst, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null options) -> System.Void, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089_da92dddaad5de6dad0a7261bc3708b9a from Unity.Burst, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null@@40": .Lfunc_begin7: .cv_func_id 16 # BurstString.cs(371, 1) { .seh_proc "Unity.Burst.BurstString, Unity.Burst, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null.ConvertUnsignedIntegerToString(System.Byte*, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 dest, System.Int32&, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 destIndex, System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 destLength, System.UInt64, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 value, Unity.Burst.BurstString+FormatOptions, Unity.Burst, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null options) -> System.Void, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089_da92dddaad5de6dad0a7261bc3708b9a from Unity.Burst, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null@@40" push rbp .seh_pushreg rbp push r15 .seh_pushreg r15 push r14 .seh_pushreg r14 push r13 .seh_pushreg r13 push r12 .seh_pushreg r12 push rsi .seh_pushreg rsi push rdi .seh_pushreg rdi push rbx .seh_pushreg rbx sub rsp, 24 .seh_stackalloc 24 lea rbp, [rsp + 16] .seh_setframe rbp, 16 .seh_endprologue mov r14, r9 mov esi, r8d mov rdi, rdx mov rbx, rcx .Ltmp33: mov qword ptr [rbp], 0 .Ltmp34: .cv_inline_site_id 17 within 16 inlined_at 3 372 0 # BurstString.cs(990, 1) switch (Kind) cmp byte ptr [rbp + 112], 3 mov eax, 16 mov r12d, 10 cmove r12, rax mov r13d, -1 mov rcx, r9 .Ltmp35: ... .LBB7_1: # BurstString.cs(380, 1) tmp /= basis; mov rax, rcx xor edx, edx div r12 # BurstString.cs(382, 1) } while (tmp != 0); inc r13d cmp rcx, r12 # BurstString.cs(380, 1) tmp /= basis; mov rcx, rax # BurstString.cs(382, 1) } while (tmp != 0); jae .LBB7_1 # BurstString.cs(386, 1) byte* tmpBuffer = stackalloc byte[length + 1]; lea r8d, [r13 + 2] lea rax, [r8 + 15] and rax, -16 call __chkstk sub rsp, rax mov r15, rsp sub rsp, 32 mov rcx, r15 xor edx, edx xor r9d, r9d call burst.memset.inline.AVX2.i32@@32 add rsp, 32 xor ecx, ecx cmp byte ptr [rbp + 136], 0 setne cl shl ecx, 5 add ecx, 55 # BurstString.cs(388, 1) tmp = value; lea r8d, [r13 + 1] .p2align 4, 0x90 .LBB7_3: # BurstString.cs(392, 1) tmp /= basis; mov rax, r14 xor edx, edx div r12 # BurstString.cs(391, 1) tmpBuffer[tmpIndex--] = ValueToIntegerChar((int)(tmp % basis), options.Uppercase); movsxd r9, r13d dec r13d .Ltmp36: .cv_inline_site_id 18 within 16 inlined_at 3 391 0 # BurstString.cs(548, 1) if (value <= 9) mov r10d, edx add r10b, 48 lea r11d, [rcx + rdx] cmp edx, 10 movzx edx, r10b cmovae edx, r11d .Ltmp37: # BurstString.cs(391, 1) tmpBuffer[tmpIndex--] = ValueToIntegerChar((int)(tmp % basis), options.Uppercase); mov byte ptr [r15 + r9], dl # BurstString.cs(393, 1) } while (tmp != 0); cmp r14, r12 # BurstString.cs(392, 1) tmp /= basis; mov r14, rax # BurstString.cs(393, 1) } while (tmp != 0); jae .LBB7_3 # BurstString.cs(395, 1) tmpBuffer[length] = 0; movsxd rax, r8d mov byte ptr [r15 + rax], 0 .Ltmp38: .cv_inline_site_id 19 within 16 inlined_at 3 397 0 # BurstString.cs(909, 1) Kind = kind; mov dword ptr [rbp - 8], 0 # BurstString.cs(910, 1) _buffer = buffer; mov qword ptr [rbp - 16], r15 # BurstString.cs(911, 1) DigitsCount = digitsCount; mov dword ptr [rbp - 4], eax # BurstString.cs(912, 1) Scale = scale; mov dword ptr [rbp], eax # BurstString.cs(913, 1) IsNegative = isNegative; mov byte ptr [rbp + 4], 0 .Ltmp39: # BurstString.cs(398, 1) FormatNumber(dest, ref destIndex, destLength, ref numberBuffer, options.Specifier, options); movzx eax, byte ptr [rbp + 128] sub rsp, 80 movzx ecx, byte ptr [rbp + 136] mov byte ptr [rsp + 64], cl mov byte ptr [rsp + 56], al movzx ecx, byte ptr [rbp + 120] mov byte ptr [rsp + 48], cl movzx ecx, byte ptr [rbp + 112] mov byte ptr [rsp + 40], cl mov dword ptr [rsp + 32], eax lea r9, [rbp - 16] mov rcx, rbx mov rdx, rdi mov r8d, esi call "Unity.Burst.BurstString, Unity.Burst, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null.FormatNumber(System.Byte*, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 dest, System.Int32&, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 destIndex, System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 destLength, Unity.Burst.BurstString+NumberBuffer&, Unity.Burst, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null number, System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 nMaxDigits, Unity.Burst.BurstString+FormatOptions, Unity.Burst, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null options) -> System.Void, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089_da92dddaad5de6dad0a7261bc3708b9a from Unity.Burst, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null@@48" # BurstString.cs(399, 1) } nop lea rsp, [rbp + 8] pop rbx pop rdi pop rsi pop r12 pop r13 pop r14 pop r15 pop rbp ret .Ltmp40: ... "Unity.Burst.BurstString, Unity.Burst, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null.FormatGeneral(System.Byte*, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 dest, System.Int32&, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 destIndex, System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 destLength, Unity.Burst.BurstString+NumberBuffer&, Unity.Burst, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null number, System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 nMaxDigits, System.Byte, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 expChar) -> System.Void, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089_da92dddaad5de6dad0a7261bc3708b9a from Unity.Burst, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null@@48": .Lfunc_begin8: .cv_func_id 20 # BurstString.cs(758, 1) { .seh_proc "Unity.Burst.BurstString, Unity.Burst, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null.FormatGeneral(System.Byte*, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 dest, System.Int32&, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 destIndex, System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 destLength, Unity.Burst.BurstString+NumberBuffer&, Unity.Burst, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null number, System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 nMaxDigits, System.Byte, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 expChar) -> System.Void, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089_da92dddaad5de6dad0a7261bc3708b9a from Unity.Burst, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null@@48" push rbp .seh_pushreg rbp .Ltmp41: push r14 .seh_pushreg r14 push rsi .seh_pushreg rsi push rdi .seh_pushreg rdi push rbx .seh_pushreg rbx sub rsp, 64 .seh_stackalloc 64 lea rbp, [rsp + 64] .seh_setframe rbp, 64 .seh_endprologue # BurstString.cs(759, 1) int scale = number.Scale; mov r11d, dword ptr [r9 + 16] # BurstString.cs(764, 1) if (digPos > nMaxDigits || digPos < -3) cmp r11d, dword ptr [rbp + 80] setle r10b cmp r11d, -3 setge al and al, r10b mov esi, 1 cmovne esi, r11d .Ltmp42: .cv_inline_site_id 21 within 20 inlined_at 3 770 0 # BurstString.cs(924, 1) public byte* GetDigitsPointer() => _buffer; mov r10, qword ptr [r9] .Ltmp43: # BurstString.cs(772, 1) if (number.IsNegative) cmp byte ptr [r9 + 20], 0 je .LBB8_1 # BurstString.cs(774, 1) if (destIndex >= destLength) return; movsxd rdi, dword ptr [rdx] cmp edi, r8d jge .LBB8_14 # BurstString.cs(775, 1) dest[destIndex++] = (byte)'-'; lea ebx, [rdi + 1] mov dword ptr [rdx], ebx mov byte ptr [rcx + rdi], 45 .LBB8_1: # BurstString.cs(778, 1) if (digPos > 0) test esi, esi jle .LBB8_13 # BurstString.cs(782, 1) if (destIndex >= destLength) return; inc esi mov r11d, 48 .p2align 4, 0x90 .LBB8_3: movsxd rdi, dword ptr [rdx] cmp edi, r8d jge .LBB8_14 # BurstString.cs(783, 1) dest[destIndex++] = (*dig != 0) ? (byte)(*dig++) : (byte)'0'; lea ebx, [rdi + 1] mov dword ptr [rdx], ebx movzx ebx, byte ptr [r10] xor r14d, r14d test bl, bl setne r14b cmove ebx, r11d add r10, r14 mov byte ptr [rcx + rdi], bl # BurstString.cs(784, 1) } while (--digPos > 0); dec esi cmp esi, 2 jge .LBB8_3 # BurstString.cs(792, 1) if (*dig != 0 || digPos < 0) xor r11d, r11d cmp byte ptr [r10], 0 je .LBB8_7 jmp .LBB8_15 .LBB8_13: # BurstString.cs(788, 1) if (destIndex >= destLength) return; movsxd rsi, dword ptr [rdx] cmp esi, r8d jge .LBB8_14 # BurstString.cs(789, 1) dest[destIndex++] = (byte)'0'; lea edi, [rsi + 1] mov dword ptr [rdx], edi mov byte ptr [rcx + rsi], 48 # BurstString.cs(792, 1) if (*dig != 0 || digPos < 0) cmp byte ptr [r10], 0 jne .LBB8_15 .LBB8_7: test r11d, r11d js .LBB8_15 .LBB8_8: # BurstString.cs(811, 1) if (scientific) test al, al jne .LBB8_14 # BurstString.cs(813, 1) if (destIndex >= destLength) return; movsxd rax, dword ptr [rdx] cmp eax, r8d jge .LBB8_14 # BurstString.cs(814, 1) dest[destIndex++] = expChar; movzx r10d, byte ptr [rbp + 88] lea r11d, [rax + 1] mov dword ptr [rdx], r11d mov byte ptr [rcx + rax], r10b # BurstString.cs(816, 1) int exponent = number.Scale - 1; mov eax, dword ptr [r9 + 16] dec eax # BurstString.cs(819, 1) ConvertIntegerToString(dest, ref destIndex, destLength, exponent, exponentFormatOptions); movsxd r9, eax mov byte ptr [rsp + 56], 0 mov byte ptr [rsp + 48], 2 mov byte ptr [rsp + 40], 0 mov byte ptr [rsp + 32], 2 call "Unity.Burst.BurstString, Unity.Burst, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null.ConvertIntegerToString(System.Byte*, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 dest, System.Int32&, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 destIndex, System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 destLength, System.Int64, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 value, Unity.Burst.BurstString+FormatOptions, Unity.Burst, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null options) -> System.Void, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089_da92dddaad5de6dad0a7261bc3708b9a from Unity.Burst, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null@@40" jmp .LBB8_14 .LBB8_15: # BurstString.cs(794, 1) if (destIndex >= destLength) return; movsxd rsi, dword ptr [rdx] cmp esi, r8d jge .LBB8_14 # BurstString.cs(795, 1) dest[destIndex++] = (byte)'.'; lea edi, [rsi + 1] mov dword ptr [rdx], edi mov byte ptr [rcx + rsi], 46 # BurstString.cs(797, 1) while (digPos < 0) test r11d, r11d js .LBB8_20 .LBB8_17: # BurstString.cs(804, 1) while (*dig != 0) cmp byte ptr [r10], 0 je .LBB8_8 # BurstString.cs(806, 1) if (destIndex >= destLength) return; inc r10 .p2align 4, 0x90 .LBB8_22: movsxd r11, dword ptr [rdx] cmp r11d, r8d jge .LBB8_14 # BurstString.cs(807, 1) dest[destIndex++] = *dig++; lea esi, [r11 + 1] mov dword ptr [rdx], esi movzx ebx, byte ptr [r10 - 1] mov byte ptr [rcx + r11], bl # BurstString.cs(804, 1) while (*dig != 0) cmp byte ptr [r10], 0 lea r10, [r10 + 1] jne .LBB8_22 jmp .LBB8_8 .p2align 4, 0x90 .LBB8_19: # BurstString.cs(800, 1) dest[destIndex++] = (byte)'0'; lea edi, [rsi + 1] mov dword ptr [rdx], edi mov byte ptr [rcx + rsi], 48 # BurstString.cs(801, 1) digPos++; inc r11d # BurstString.cs(797, 1) while (digPos < 0) je .LBB8_17 .LBB8_20: # BurstString.cs(799, 1) if (destIndex >= destLength) return; movsxd rsi, dword ptr [rdx] cmp esi, r8d jl .LBB8_19 .LBB8_14: # BurstString.cs(821, 1) } add rsp, 64 pop rbx pop rdi pop rsi pop r14 pop rbp ret .Ltmp44: ... "Unity.Burst.BurstString, Unity.Burst, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null.FormatNumber(System.Byte*, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 dest, System.Int32&, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 destIndex, System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 destLength, Unity.Burst.BurstString+NumberBuffer&, Unity.Burst, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null number, System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 nMaxDigits, Unity.Burst.BurstString+FormatOptions, Unity.Burst, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null options) -> System.Void, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089_da92dddaad5de6dad0a7261bc3708b9a from Unity.Burst, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null@@48": .Lfunc_begin9: .cv_func_id 22 # BurstString.cs(452, 1) { .seh_proc "Unity.Burst.BurstString, Unity.Burst, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null.FormatNumber(System.Byte*, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 dest, System.Int32&, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 destIndex, System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 destLength, Unity.Burst.BurstString+NumberBuffer&, Unity.Burst, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null number, System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 nMaxDigits, Unity.Burst.BurstString+FormatOptions, Unity.Burst, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null options) -> System.Void, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089_da92dddaad5de6dad0a7261bc3708b9a from Unity.Burst, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null@@48" push rbp .seh_pushreg rbp push r15 .seh_pushreg r15 push r14 .seh_pushreg r14 push r13 .seh_pushreg r13 push r12 .seh_pushreg r12 push rsi .seh_pushreg rsi push rdi .seh_pushreg rdi push rbx .seh_pushreg rbx sub rsp, 56 .seh_stackalloc 56 lea rbp, [rsp + 48] .seh_setframe rbp, 48 .seh_endprologue mov rsi, rdx .Ltmp45: # BurstString.cs(456, 1) if (number.Kind == NumberBufferKind.Integer && options.Kind == NumberFormatKind.General && options.Specifier == 0) mov edx, dword ptr [rbp + 120] movzx r14d, byte ptr [rbp + 128] movzx eax, byte ptr [rbp + 136] # BurstString.cs(453, 1) bool isCorrectlyRounded = (number.Kind == NumberBufferKind.Float); mov r10d, dword ptr [r9 + 8] # BurstString.cs(456, 1) if (number.Kind == NumberBufferKind.Integer && options.Kind == NumberFormatKind.General && options.Specifier == 0) mov r11d, edx or r11b, al mov r11d, 1 cmovne r11d, edx test r10d, r10d cmovne r11d, edx # BurstString.cs(462, 1) switch (options.Kind) lea edx, [r11 - 1] cmp dl, 3 jae .LBB9_1 # BurstString.cs(467, 1) length = number.DigitsCount; mov edx, dword ptr [r9 + 12] # BurstString.cs(469, 1) var zeroPadding = (int)options.Specifier; movzx eax, al # BurstString.cs(471, 1) if (length < zeroPadding) mov edi, edx sub edi, eax mov r15d, eax cmovg r15d, edx neg edi xor r10d, r10d cmp eax, edx cmovg r10d, edi # BurstString.cs(477, 1) bool outputPositiveSign = options.Kind == NumberFormatKind.DecimalForceSigned; cmp r11b, 2 sete dl # BurstString.cs(478, 1) length += number.IsNegative || outputPositiveSign ? 1 : 0; movzx ebx, byte ptr [r9 + 20] xor eax, eax or dl, bl setne al add eax, r15d # BurstString.cs(481, 1) if (AlignLeft(dest, ref destIndex, destLength, options.AlignAndSize, length)) return; movsx edx, r14b .Ltmp46: .cv_inline_site_id 23 within 22 inlined_at 3 481 0 # BurstString.cs(677, 1) if (align > 0) test r14b, r14b jle .LBB9_16 mov edi, edx sub edi, eax jle .LBB9_16 .p2align 4, 0x90 .LBB9_14: # BurstString.cs(681, 1) if (destIndex >= destLength) return true; movsxd rbx, dword ptr [rsi] cmp ebx, r8d jge .LBB9_34 # BurstString.cs(682, 1) dest[destIndex++] = (byte)' '; lea r15d, [rbx + 1] mov dword ptr [rsi], r15d mov byte ptr [rcx + rbx], 32 # BurstString.cs(679, 1) while (length < align) dec edi jne .LBB9_14 .Ltmp47: .cv_inline_site_id 24 within 22 inlined_at 3 483 0 # BurstString.cs(518, 1) if (number.IsNegative) movzx ebx, byte ptr [r9 + 20] .LBB9_16: test bl, bl je .LBB9_17 # BurstString.cs(520, 1) if (destIndex >= destLength) return; mov r11d, dword ptr [rsi] mov bl, 45 cmp r11d, r8d jl .LBB9_21 jmp .LBB9_29 .Ltmp48: .LBB9_1: # BurstString.cs(493, 1) if (nMaxDigits < 1) mov r11d, dword ptr [rbp + 112] test r11d, r11d jle .LBB9_35 .Ltmp49: .cv_inline_site_id 25 within 22 inlined_at 3 499 0 .cv_inline_site_id 26 within 25 inlined_at 3 825 0 # BurstString.cs(924, 1) public byte* GetDigitsPointer() => _buffer; mov rax, qword ptr [r9] jmp .LBB9_3 .Ltmp50: .LBB9_35: # BurstString.cs(496, 1) nMaxDigits = number.DigitsCount; mov r11d, dword ptr [r9 + 12] .Ltmp51: # BurstString.cs(924, 1) public byte* GetDigitsPointer() => _buffer; mov rax, qword ptr [r9] .Ltmp52: # BurstString.cs(828, 1) while (i < pos && dig[i] != (byte)'\0') test r11d, r11d jle .LBB9_36 .LBB9_3: mov edi, r11d xor edx, edx .p2align 4, 0x90 .LBB9_4: cmp byte ptr [rax + rdx], 0 je .LBB9_37 # BurstString.cs(829, 1) i++; inc rdx # BurstString.cs(828, 1) while (i < pos && dig[i] != (byte)'\0') cmp rdi, rdx jne .LBB9_4 .Ltmp53: # BurstString.cs(453, 1) bool isCorrectlyRounded = (number.Kind == NumberBufferKind.Float); mov r11d, edi cmp r10d, 1 .Ltmp54: # BurstString.cs(831, 1) if ((i == pos) && ShouldRoundUp(dig, i, isCorrectlyRounded)) jne .LBB9_39 jmp .LBB9_8 .Ltmp55: .LBB9_17: # BurstString.cs(477, 1) bool outputPositiveSign = options.Kind == NumberFormatKind.DecimalForceSigned; cmp r11b, 2 .Ltmp56: # BurstString.cs(523, 1) else if (outputPositiveSign) jne .LBB9_22 # BurstString.cs(525, 1) if (destIndex >= destLength) return; mov r11d, dword ptr [rsi] mov bl, 43 cmp r11d, r8d jge .LBB9_29 .LBB9_21: lea edi, [r11 + 1] mov dword ptr [rsi], edi movsxd r11, r11d mov byte ptr [rcx + r11], bl .LBB9_22: # BurstString.cs(530, 1) for (int i = 0; i < zeroPadding; i++) test r10d, r10d jle .LBB9_23 .p2align 4, 0x90 .LBB9_26: # BurstString.cs(532, 1) if (destIndex >= destLength) return; movsxd r11, dword ptr [rsi] cmp r11d, r8d jge .LBB9_29 # BurstString.cs(533, 1) dest[destIndex++] = (byte)'0'; lea edi, [r11 + 1] mov dword ptr [rsi], edi mov byte ptr [rcx + r11], 48 # BurstString.cs(530, 1) for (int i = 0; i < zeroPadding; i++) dec r10d jne .LBB9_26 .LBB9_23: # BurstString.cs(536, 1) var digitCount = number.DigitsCount; mov r10d, dword ptr [r9 + 12] # BurstString.cs(538, 1) for (int i = 0; i < digitCount; i++) test r10d, r10d jle .LBB9_29 mov r9, qword ptr [r9] .p2align 4, 0x90 .LBB9_28: # BurstString.cs(540, 1) if (destIndex >= destLength) return; movsxd r11, dword ptr [rsi] cmp r11d, r8d jge .LBB9_29 # BurstString.cs(541, 1) dest[destIndex++] = digits[i]; lea edi, [r11 + 1] mov dword ptr [rsi], edi movzx ebx, byte ptr [r9] mov byte ptr [rcx + r11], bl # BurstString.cs(538, 1) for (int i = 0; i < digitCount; i++) inc r9 dec r10 jne .LBB9_28 .Ltmp57: .LBB9_29: .cv_inline_site_id 27 within 22 inlined_at 3 486 0 # BurstString.cs(665, 1) if (align < 0) test r14b, r14b jns .LBB9_34 # BurstString.cs(667, 1) align = -align; mov r9d, edx neg r9d cmp eax, r9d .Ltmp58: .cv_inline_site_id 28 within 27 inlined_at 3 668 0 # BurstString.cs(677, 1) if (align > 0) jge .LBB9_34 # BurstString.cs(681, 1) if (destIndex >= destLength) return true; add eax, edx neg eax .p2align 4, 0x90 .LBB9_33: movsxd rdx, dword ptr [rsi] cmp edx, r8d jge .LBB9_34 # BurstString.cs(682, 1) dest[destIndex++] = (byte)' '; lea r9d, [rdx + 1] mov dword ptr [rsi], r9d mov byte ptr [rcx + rdx], 32 # BurstString.cs(679, 1) while (length < align) dec eax jne .LBB9_33 jmp .LBB9_34 .Ltmp59: .LBB9_36: xor edx, edx .LBB9_37: .Ltmp60: # BurstString.cs(831, 1) if ((i == pos) && ShouldRoundUp(dig, i, isCorrectlyRounded)) cmp edx, r11d jne .LBB9_9 .Ltmp61: .cv_inline_site_id 29 within 25 inlined_at 3 831 0 # BurstString.cs(877, 1) byte digit = dig[i]; mov edi, r11d .Ltmp62: # BurstString.cs(453, 1) bool isCorrectlyRounded = (number.Kind == NumberBufferKind.Float); cmp r10d, 1 .Ltmp63: # BurstString.cs(831, 1) if ((i == pos) && ShouldRoundUp(dig, i, isCorrectlyRounded)) je .LBB9_8 .LBB9_39: cmp byte ptr [rax + rdi], 53 jb .LBB9_8 # BurstString.cs(833, 1) while (i > 0 && dig[i - 1] == (byte)'9') test r11d, r11d jle .LBB9_44 mov edx, r11d .p2align 4, 0x90 .LBB9_42: mov r10d, edx movzx ebx, byte ptr [rax + r10 - 1] cmp bl, 57 jne .LBB9_45 cmp edx, 1 # BurstString.cs(834, 1) i--; lea edx, [rdx - 1] # BurstString.cs(833, 1) while (i > 0 && dig[i - 1] == (byte)'9') jg .LBB9_42 .LBB9_44: # BurstString.cs(842, 1) number.Scale++; inc dword ptr [r9 + 16] # BurstString.cs(843, 1) dig[0] = (byte)('1'); mov byte ptr [rax], 49 mov edx, 1 jmp .LBB9_49 .LBB9_8: mov edx, r11d .LBB9_9: # BurstString.cs(849, 1) while (i > 0 && dig[i - 1] == (byte)'0') test edx, edx jle .LBB9_10 .p2align 4, 0x90 .LBB9_46: mov r10d, edx cmp byte ptr [rax + r10 - 1], 48 jne .LBB9_49 cmp edx, 1 # BurstString.cs(850, 1) i--; lea edx, [rdx - 1] # BurstString.cs(849, 1) while (i > 0 && dig[i - 1] == (byte)'0') jg .LBB9_46 jmp .LBB9_48 .LBB9_10: jne .LBB9_49 .LBB9_48: # BurstString.cs(855, 1) number.Scale = 0; // Decimals with scale ('0.00') should be rounded. mov dword ptr [r9 + 16], 0 xor edx, edx jmp .LBB9_49 .LBB9_45: # BurstString.cs(838, 1) dig[i - 1]++; inc bl mov byte ptr [rax + r10 - 1], bl .LBB9_49: # BurstString.cs(858, 1) dig[i] = (byte)('\0'); movsxd rdx, edx mov byte ptr [rax + rdx], 0 # BurstString.cs(859, 1) number.DigitsCount = i; mov dword ptr [r9 + 12], edx .Ltmp64: .cv_inline_site_id 30 within 22 inlined_at 3 502 0 # BurstString.cs(694, 1) int scale = number.Scale; mov eax, dword ptr [r9 + 16] # BurstString.cs(699, 1) if (digPos > nMaxDigits || digPos < -3) cmp eax, r11d setle r10b cmp eax, -3 setge dl and dl, r10b mov r15d, 1 mov edi, 1 cmovne edi, eax .Ltmp65: .cv_inline_site_id 31 within 30 inlined_at 3 705 0 # BurstString.cs(924, 1) public byte* GetDigitsPointer() => _buffer; mov r10, qword ptr [r9] .Ltmp66: # BurstString.cs(707, 1) if (number.IsNegative) movzx r12d, byte ptr [r9 + 20] xor ebx, ebx test r12b, r12b setne r13b # BurstString.cs(712, 1) if (digPos > 0) test edi, edi jle .LBB9_71 # BurstString.cs(721, 1) } while (--digPos > 0); mov bl, r13b lea r15d, [rdi + 1] .p2align 4, 0x90 .LBB9_51: # BurstString.cs(716, 1) if (*dig != 0) cmp byte ptr [r10], 1 sbb r10, -1 # BurstString.cs(721, 1) } while (--digPos > 0); dec r15d cmp r15d, 1 ja .LBB9_51 add edi, ebx xor ebx, ebx mov r15d, edi # BurstString.cs(728, 1) if (*dig != 0 || digPos < 0) movzx edi, byte ptr [r10] test ebx, ebx jns .LBB9_54 jmp .LBB9_55 .LBB9_71: # BurstString.cs(725, 1) length++; cmp r12b, 1 sbb r15d, -1 mov ebx, eax # BurstString.cs(728, 1) if (*dig != 0 || digPos < 0) movzx edi, byte ptr [r10] test ebx, ebx js .LBB9_55 .LBB9_54: test dil, dil je .LBB9_58 .LBB9_55: # BurstString.cs(732, 1) while (digPos < 0) mov r12d, ebx sar r12d, 31 andn r12d, r12d, ebx sub r12d, ebx # BurstString.cs(728, 1) if (*dig != 0 || digPos < 0) test dil, dil # BurstString.cs(732, 1) while (digPos < 0) lea r15d, [r12 + r15 + 1] # BurstString.cs(738, 1) while (*dig != 0) je .LBB9_58 inc r10 .p2align 4, 0x90 .LBB9_57: # BurstString.cs(740, 1) length++; // *dig++; inc r15d # BurstString.cs(738, 1) while (*dig != 0) cmp byte ptr [r10], 0 lea r10, [r10 + 1] jne .LBB9_57 .LBB9_58: # BurstString.cs(745, 1) if (scientific) test dl, dl jne .LBB9_62 # BurstString.cs(748, 1) int exponent = number.Scale - 1; dec eax # BurstString.cs(750, 1) length += GetLengthIntegerToString(exponent, 10, 2); movsxd rdi, eax xor ebx, ebx movabs r12, 7378697629483820647 mov r10, rdi .p2align 4, 0x90 .LBB9_60: .Ltmp67: .cv_inline_site_id 32 within 30 inlined_at 3 750 0 # BurstString.cs(407, 1) tmp /= basis; mov rax, r10 imul r12 mov rax, rdx shr rax, 63 sar rdx, 2 add rdx, rax # BurstString.cs(408, 1) length++; inc ebx # BurstString.cs(409, 1) } while (tmp != 0); add r10, 9 cmp r10, 18 mov r10, rdx ja .LBB9_60 .Ltmp68: # BurstString.cs(749, 1) if (exponent >= 0) length++; mov eax, edi sar eax, 31 .Ltmp69: # BurstString.cs(416, 1) if (value < 0) length++; shr rdi, 63 .Ltmp70: # BurstString.cs(749, 1) if (exponent >= 0) length++; add edi, eax .Ltmp71: # BurstString.cs(411, 1) if (length < zeroPadding) cmp ebx, 3 mov eax, 2 cmovge eax, ebx # BurstString.cs(416, 1) if (value < 0) length++; add edi, r15d .Ltmp72: # BurstString.cs(750, 1) length += GetLengthIntegerToString(exponent, 10, 2); lea r15d, [rax + rdi + 2] .Ltmp73: .LBB9_62: # BurstString.cs(505, 1) if (AlignLeft(dest, ref destIndex, destLength, options.AlignAndSize, length)) return; movsx r12d, r14b .Ltmp74: .cv_inline_site_id 33 within 22 inlined_at 3 505 0 # BurstString.cs(677, 1) if (align > 0) test r12b, r12b jle .LBB9_64 mov eax, r12d sub eax, r15d jle .LBB9_64 .p2align 4, 0x90 .LBB9_68: # BurstString.cs(681, 1) if (destIndex >= destLength) return true; movsxd rdx, dword ptr [rsi] cmp edx, r8d jge .LBB9_34 # BurstString.cs(682, 1) dest[destIndex++] = (byte)' '; lea r10d, [rdx + 1] mov dword ptr [rsi], r10d mov byte ptr [rcx + rdx], 32 # BurstString.cs(679, 1) while (length < align) dec eax jne .LBB9_68 .Ltmp75: .LBB9_64: .cv_inline_site_id 34 within 22 inlined_at 3 508 0 # BurstString.cs(971, 1) public bool Uppercase => !Lowercase; cmp byte ptr [rbp + 144], 0 setne al .Ltmp76: # BurstString.cs(508, 1) FormatGeneral(dest, ref destIndex, destLength, ref number, nMaxDigits, options.Uppercase ? (byte)'E' : (byte)'e'); shl al, 5 or al, 69 mov dword ptr [rsp + 32], r11d mov byte ptr [rsp + 40], al mov rdi, rcx mov rdx, rsi mov ebx, r8d call "Unity.Burst.BurstString, Unity.Burst, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null.FormatGeneral(System.Byte*, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 dest, System.Int32&, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 destIndex, System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 destLength, Unity.Burst.BurstString+NumberBuffer&, Unity.Burst, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null number, System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 nMaxDigits, System.Byte, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 expChar) -> System.Void, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089_da92dddaad5de6dad0a7261bc3708b9a from Unity.Burst, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null@@48" .Ltmp77: .cv_inline_site_id 35 within 22 inlined_at 3 511 0 # BurstString.cs(665, 1) if (align < 0) test r14b, r14b jns .LBB9_34 # BurstString.cs(667, 1) align = -align; mov eax, r12d neg eax cmp r15d, eax .Ltmp78: .cv_inline_site_id 36 within 35 inlined_at 3 668 0 # BurstString.cs(677, 1) if (align > 0) jge .LBB9_34 # BurstString.cs(681, 1) if (destIndex >= destLength) return true; add r15d, r12d neg r15d .p2align 4, 0x90 .LBB9_70: movsxd rax, dword ptr [rsi] cmp eax, ebx jge .LBB9_34 # BurstString.cs(682, 1) dest[destIndex++] = (byte)' '; lea ecx, [rax + 1] mov dword ptr [rsi], ecx mov byte ptr [rdi + rax], 32 # BurstString.cs(679, 1) while (length < align) dec r15d jne .LBB9_70 .Ltmp79: .LBB9_34: # BurstString.cs(514, 1) } add rsp, 56 pop rbx pop rdi pop rsi pop r12 pop r13 pop r14 pop r15 pop rbp ret .Ltmp80: ... burst.memcpy.inline.AVX2.i64@@32: .Lfunc_begin10: cmp r8, 32 jb .LBB10_1 xor r9d, r9d .p2align 4, 0x90 .LBB10_3: lea rax, [r9 + 32] vmovups ymm0, ymmword ptr [rdx + r9] vmovups ymmword ptr [rcx + r9], ymm0 add r9, 64 cmp r8, r9 mov r9, rax jae .LBB10_3 lea r9, [rax + 1] cmp r8, r9 jb .LBB10_6 .p2align 4, 0x90 .LBB10_5: lea r9, [rax + 1] movzx r10d, byte ptr [rdx + rax] mov byte ptr [rcx + rax], r10b add rax, 2 cmp r8, rax mov rax, r9 jae .LBB10_5 .LBB10_6: vzeroupper ret .LBB10_1: xor eax, eax lea r9, [rax + 1] cmp r8, r9 jae .LBB10_5 jmp .LBB10_6 .Lfunc_end10: .def burst.memset.inline.AVX2.i32@@32; .scl 2; .type 32; .endef .section .text,"xr",discard,burst.memset.inline.AVX2.i32@@32 .globl burst.memset.inline.AVX2.i32@@32 .p2align 4, 0x90 burst.memset.inline.AVX2.i32@@32: .Lfunc_begin11: xor eax, eax cmp r8d, 32 jb .LBB11_3 xor eax, eax vmovd xmm0, edx vpbroadcastb ymm0, xmm0 .p2align 4, 0x90 .LBB11_2: movsxd r9, eax add eax, 32 vmovdqu ymmword ptr [rcx + r9], ymm0 add r9d, 64 cmp r8d, r9d jae .LBB11_2 .LBB11_3: lea r9d, [rax + 1] cmp r8d, r9d jb .LBB11_5 .p2align 4, 0x90 .LBB11_4: movsxd r9, eax inc eax mov byte ptr [rcx + r9], dl add r9d, 2 cmp r8d, r9d jae .LBB11_4 .LBB11_5: vzeroupper ret .Lfunc_end11: .section .drectve,"yni" .ascii " /EXPORT:224810fa5487ddaae43e49f67759012d" .ascii " /EXPORT:\"burst.initialize\"" .ascii " /EXPORT:\"burst.initialize.externals\"" .ascii " /EXPORT:\"burst.initialize.statics\"" .section .debug$S,"dr" .p2align 2, 0x0 .long 4 .long 241 .long .Ltmp82-.Ltmp81
Editor is loading...
Leave a Comment