; Listing generated by Microsoft (R) Optimizing Compiler Version 19.39.33523.0 include listing.inc INCLUDELIB MSVCRTD INCLUDELIB OLDNAMES _DATA SEGMENT COMM infolog:BYTE:0200H _DATA ENDS msvcjmc SEGMENT __A19B9DB6_ssgc_framework@h DB 01H __5BC5AF51_mmintrin@h DB 01H __4B783B3C_concurrencysal@h DB 01H __137BB1BE_sal@h DB 01H __805F4069_vadefs@h DB 01H __1EAACA9B_vcruntime@h DB 01H __1B0272D9_corecrt@h DB 01H __45DED006_corecrt_malloc@h DB 01H __FA77ED4C_malloc@h DB 01H __9E7FA6CF_xmmintrin@h DB 01H __0ED14FEE_winpackagefamily@h DB 01H __F92EF742_winapifamily@h DB 01H __22E515EB_sdkddkver@h DB 01H __1227BCE2_excpt@h DB 01H __CC8D90C0_stdarg@h DB 01H __29F49F40_specstrings_undef@h DB 01H __D0F42932_specstrings_strict@h DB 01H __F00405FD_sdv_driverspecs@h DB 01H __173E09CA_driverspecs@h DB 01H __9A452361_specstrings@h DB 01H __74484FB3_corecrt_wctype@h DB 01H __1EC467ED_ctype@h DB 01H __98517906_kernelspecs@h DB 01H __D3497022_basetsd@h DB 01H __61CC25A1_errno@h DB 01H __0504B279_vcruntime_string@h DB 01H __E4C945B4_corecrt_memcpy_s@h DB 01H __8EAFF484_corecrt_memory@h DB 01H __6490AEC5_corecrt_wstring@h DB 01H __E8295E1E_string@h DB 01H __7FCB5136_guiddef@h DB 01H __FF8A9E11_pshpack4@h DB 01H __D5438902_poppack@h DB 01H __FB07E2A3_pshpack2@h DB 01H __F6906775_pshpack8@h DB 01H __F9415CFA_pshpack1@h DB 01H __E58C6F1C_apiset@h DB 01H __A5C52262_ktmtypes@h DB 01H __FBBA8F9D_winnt@h DB 01H __A32D3D2C_minwindef@h DB 01H __7D798299_windef@h DB 01H __9AE108E9_apisetcconv@h DB 01H __9CE53D2C_minwinbase@h DB 01H __5D0AA210_apiquery2@h DB 01H __4DD4E726_processenv@h DB 01H __3575CC96_fileapi@h DB 01H __8EA220E6_fileapifromapp@h DB 01H __BF9B31FE_debugapi@h DB 01H __C3AFE134_utilapiset@h DB 01H __76F69E51_handleapi@h DB 01H __7E63D784_errhandlingapi@h DB 01H __FFA7003C_fibersapi@h DB 01H __8971CECF_namedpipeapi@h DB 01H __46C9D8A6_profileapi@h DB 01H __98D4F0A3_heapapi@h DB 01H __50EF2A88_ioapiset@h DB 01H __92EA1464_synchapi@h DB 01H __A53D8AED_interlockedapi@h DB 01H __B506CAAF_processthreadsapi@h DB 01H __FF735694_sysinfoapi@h DB 01H __29589789_memoryapi@h DB 01H __E9C7A663_enclaveapi@h DB 01H __D035F9F7_threadpoollegacyapiset@h DB 01H __C899130C_threadpoolapiset@h DB 01H __E0441EE7_jobapi@h DB 01H __CEF86838_jobapi2@h DB 01H __35AC6B9A_wow64apiset@h DB 01H __C8AE41A5_libloaderapi@h DB 01H __CC9E232D_securitybaseapi@h DB 01H __C9D0C9B8_namespaceapi@h DB 01H __30FF9CAD_systemtopologyapi@h DB 01H __4D358795_processtopologyapi@h DB 01H __40446D10_securityappcontainer@h DB 01H __3A952EDF_realtimeapiset@h DB 01H __F4865F4B_winerror@h DB 01H __53C1BD93_timezoneapi@h DB 01H __1FFBEDBF_winbase@h DB 01H __43D3FA34_wingdi@h DB 01H __D24A7391_tvout@h DB 01H __7713A6C8_winuser@h DB 01H __0B345F71_datetimeapi@h DB 01H __9AC6960C_winnls@h DB 01H __973A40A8_stringapiset@h DB 01H __CC46FEE2_wincontypes@h DB 01H __97D70BE1_consoleapi@h DB 01H __27EC5E18_consoleapi2@h DB 01H __262E342F_consoleapi3@h DB 01H __641DCD70_wincon@h DB 01H __5A96C7A7_verrsrc@h DB 01H __B69C6FF2_winver@h DB 01H __7AEB8C37_reason@h DB 01H __59F1A8A9_winreg@h DB 01H __EE0E2B7F_wnnc@h DB 01H __DCDB7054_winnetwk@h DB 01H __81DDEDE3_stralign@h DB 01H __2134D1B4_winsvc@h DB 01H __11C07376_mcx@h DB 01H __577CE3E7_ime_cmodes@h DB 01H __1E72C31E_imm@h DB 01H __E15BF856_windows@h DB 01H __61B03275_ssgc_internal@h DB 01H __F8522E0F_stdint@h DB 01H __874AB8BA_khrplatform@h DB 01H __8DCB230D_gl@h DB 01H __5F89FF5A_wgl@h DB 01H __13F5961F_stddef@h DB 01H __B47D1049_glfw3@h DB 01H __FB1D2F03_emmintrin@h DB 01H __24BC478A_pmmintrin@h DB 01H __94653408_tmmintrin@h DB 01H __BD5E218B_smmintrin@h DB 01H __D83CA847_nmmintrin@h DB 01H __0D875209_wmmintrin@h DB 01H __C6131F0E_zmmintrin@h DB 01H __F107BDC4_immintrin@h DB 01H __44420885_corecrt_stdio_config@h DB 01H __AB601D8D_corecrt_wstdio@h DB 01H __C1EC35D3_stdio@h DB 01H __FD6DBD68_corecrt_search@h DB 01H __E2E33A61_corecrt_wstdlib@h DB 01H __46240030_limits@h DB 01H __6E5ACABA_stdlib@h DB 01H __5274102E_stb_image@h DB 01H __CE2BBC10_StgSharpC@h DB 01H __506864FF_mat4@c DB 01H msvcjmc ENDS PUBLIC transpose4to2 PUBLIC transpose4to4 PUBLIC det_mat4 PUBLIC deinit_mat4 PUBLIC transpose4to3 PUBLIC __JustMyCode_Default PUBLIC __xmm@80000000800000008000000080000000 EXTRN __imp__aligned_free:PROC EXTRN det_mat3_internal:PROC EXTRN _RTC_CheckStackVars:PROC EXTRN _RTC_InitBase:PROC EXTRN _RTC_Shutdown:PROC EXTRN __CheckForDebuggerJustMyCode:PROC EXTRN _fltused:DWORD ; COMDAT pdata pdata SEGMENT $pdata$transpose4to2 DD imagerel $LN3 DD imagerel $LN3+226 DD imagerel $unwind$transpose4to2 pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$transpose4to4 DD imagerel $LN3 DD imagerel $LN3+415 DD imagerel $unwind$transpose4to4 pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$det_mat4 DD imagerel $LN3 DD imagerel $LN3+638 DD imagerel $unwind$det_mat4 pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$deinit_mat4 DD imagerel $LN3 DD imagerel $LN3+54 DD imagerel $unwind$deinit_mat4 pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$transpose4to3 DD imagerel $LN3 DD imagerel $LN3+383 DD imagerel $unwind$transpose4to3 pdata ENDS ; COMDAT __xmm@80000000800000008000000080000000 CONST SEGMENT __xmm@80000000800000008000000080000000 DB 00H, 00H, 00H, 080H, 00H, 00H, 00H DB 080H, 00H, 00H, 00H, 080H, 00H, 00H, 00H, 080H CONST ENDS ; COMDAT rtc$TMZ rtc$TMZ SEGMENT _RTC_Shutdown.rtc$TMZ DQ FLAT:_RTC_Shutdown rtc$TMZ ENDS ; COMDAT rtc$IMZ rtc$IMZ SEGMENT _RTC_InitBase.rtc$IMZ DQ FLAT:_RTC_InitBase rtc$IMZ ENDS ; COMDAT xdata xdata SEGMENT $unwind$transpose4to3 DD 025051801H DD 01132318H DD 0700c0035H DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$deinit_mat4 DD 025051301H DD 010e2313H DD 07007001dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$det_mat4 DD 035053101H DD 01133318H DD 0700c00a3H DD 0500bH xdata ENDS ; COMDAT CONST CONST SEGMENT det_mat4$rtcName$0 DB 072H DB 065H DB 074H DB 076H DB 065H DB 063H DB 00H ORG $+9 det_mat4$rtcVarDesc DD 0130H DD 010H DQ FLAT:det_mat4$rtcName$0 ORG $+48 det_mat4$rtcFrameData DD 01H DD 00H DQ FLAT:det_mat4$rtcVarDesc CONST ENDS ; COMDAT xdata xdata SEGMENT $unwind$transpose4to4 DD 025051801H DD 01132318H DD 0700c0035H DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$transpose4to2 DD 025051801H DD 01132318H DD 0700c0029H DD 0500bH xdata ENDS ; Function compile flags: /Odt ; COMDAT __JustMyCode_Default _TEXT SEGMENT __JustMyCode_Default PROC ; COMDAT 00000 c2 00 00 ret 0 __JustMyCode_Default ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC\mat4.c ; COMDAT transpose4to3 _TEXT SEGMENT t0$ = 16 t1$ = 64 t2$ = 112 t3$ = 160 source$ = 416 target$ = 424 transpose4to3 PROC ; COMDAT ; 29 : { $LN3: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 0000a 55 push rbp 0000b 57 push rdi 0000c 48 81 ec a8 01 00 00 sub rsp, 424 ; 000001a8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00018 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__506864FF_mat4@c 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 30 : __m128 t0 = _mm_shuffle_ps(ALIGN(source->colum[0]), ALIGN(source->colum[1]), _MM_SHUFFLE(1, 0, 1, 0)); 00024 b8 10 00 00 00 mov eax, 16 00029 48 6b c0 01 imul rax, rax, 1 0002d 48 8b 8d a0 01 00 00 mov rcx, QWORD PTR source$[rbp] 00034 48 03 c8 add rcx, rax 00037 48 8b c1 mov rax, rcx 0003a 0f 10 00 movups xmm0, XMMWORD PTR [rax] 0003d b8 10 00 00 00 mov eax, 16 00042 48 6b c0 00 imul rax, rax, 0 00046 48 8b 8d a0 01 00 00 mov rcx, QWORD PTR source$[rbp] 0004d 48 03 c8 add rcx, rax 00050 48 8b c1 mov rax, rcx 00053 0f 10 08 movups xmm1, XMMWORD PTR [rax] 00056 0f c6 c8 44 shufps xmm1, xmm0, 68 ; 00000044H 0005a 0f 28 c1 movaps xmm0, xmm1 0005d 0f 29 45 10 movaps XMMWORD PTR t0$[rbp], xmm0 ; 31 : __m128 t1 = _mm_shuffle_ps(ALIGN(source->colum[0]), ALIGN(source->colum[1]), _MM_SHUFFLE(3, 2, 3, 2)); 00061 b8 10 00 00 00 mov eax, 16 00066 48 6b c0 01 imul rax, rax, 1 0006a 48 8b 8d a0 01 00 00 mov rcx, QWORD PTR source$[rbp] 00071 48 03 c8 add rcx, rax 00074 48 8b c1 mov rax, rcx 00077 0f 10 00 movups xmm0, XMMWORD PTR [rax] 0007a b8 10 00 00 00 mov eax, 16 0007f 48 6b c0 00 imul rax, rax, 0 00083 48 8b 8d a0 01 00 00 mov rcx, QWORD PTR source$[rbp] 0008a 48 03 c8 add rcx, rax 0008d 48 8b c1 mov rax, rcx 00090 0f 10 08 movups xmm1, XMMWORD PTR [rax] 00093 0f c6 c8 ee shufps xmm1, xmm0, 238 ; 000000eeH 00097 0f 28 c1 movaps xmm0, xmm1 0009a 0f 29 45 40 movaps XMMWORD PTR t1$[rbp], xmm0 ; 32 : __m128 t2 = _mm_shuffle_ps(ALIGN(source->colum[2]), ALIGN(source->colum[3]), _MM_SHUFFLE(1, 0, 1, 0)); 0009e b8 10 00 00 00 mov eax, 16 000a3 48 6b c0 03 imul rax, rax, 3 000a7 48 8b 8d a0 01 00 00 mov rcx, QWORD PTR source$[rbp] 000ae 48 03 c8 add rcx, rax 000b1 48 8b c1 mov rax, rcx 000b4 0f 10 00 movups xmm0, XMMWORD PTR [rax] 000b7 b8 10 00 00 00 mov eax, 16 000bc 48 6b c0 02 imul rax, rax, 2 000c0 48 8b 8d a0 01 00 00 mov rcx, QWORD PTR source$[rbp] 000c7 48 03 c8 add rcx, rax 000ca 48 8b c1 mov rax, rcx 000cd 0f 10 08 movups xmm1, XMMWORD PTR [rax] 000d0 0f c6 c8 44 shufps xmm1, xmm0, 68 ; 00000044H 000d4 0f 28 c1 movaps xmm0, xmm1 000d7 0f 29 45 70 movaps XMMWORD PTR t2$[rbp], xmm0 ; 33 : __m128 t3 = _mm_shuffle_ps(ALIGN(source->colum[2]), ALIGN(source->colum[3]), _MM_SHUFFLE(3, 2, 3, 2)); 000db b8 10 00 00 00 mov eax, 16 000e0 48 6b c0 03 imul rax, rax, 3 000e4 48 8b 8d a0 01 00 00 mov rcx, QWORD PTR source$[rbp] 000eb 48 03 c8 add rcx, rax 000ee 48 8b c1 mov rax, rcx 000f1 0f 10 00 movups xmm0, XMMWORD PTR [rax] 000f4 b8 10 00 00 00 mov eax, 16 000f9 48 6b c0 02 imul rax, rax, 2 000fd 48 8b 8d a0 01 00 00 mov rcx, QWORD PTR source$[rbp] 00104 48 03 c8 add rcx, rax 00107 48 8b c1 mov rax, rcx 0010a 0f 10 08 movups xmm1, XMMWORD PTR [rax] 0010d 0f c6 c8 ee shufps xmm1, xmm0, 238 ; 000000eeH 00111 0f 28 c1 movaps xmm0, xmm1 00114 0f 29 85 a0 00 00 00 movaps XMMWORD PTR t3$[rbp], xmm0 ; 34 : ; 35 : target->colum[0] = _mm_shuffle_ps(t0, t2, _MM_SHUFFLE(2, 0, 2, 0)); 0011b 0f 28 45 10 movaps xmm0, XMMWORD PTR t0$[rbp] 0011f 0f c6 45 70 88 shufps xmm0, XMMWORD PTR t2$[rbp], 136 ; 00000088H 00124 b8 10 00 00 00 mov eax, 16 00129 48 6b c0 00 imul rax, rax, 0 0012d 48 8b 8d a8 01 00 00 mov rcx, QWORD PTR target$[rbp] 00134 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0 ; 36 : target->colum[1] = _mm_shuffle_ps(t0, t2, _MM_SHUFFLE(3, 1, 3, 1)); 00138 0f 28 45 10 movaps xmm0, XMMWORD PTR t0$[rbp] 0013c 0f c6 45 70 dd shufps xmm0, XMMWORD PTR t2$[rbp], 221 ; 000000ddH 00141 b8 10 00 00 00 mov eax, 16 00146 48 6b c0 01 imul rax, rax, 1 0014a 48 8b 8d a8 01 00 00 mov rcx, QWORD PTR target$[rbp] 00151 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0 ; 37 : target->colum[2] = _mm_shuffle_ps(t1, t3, _MM_SHUFFLE(2, 0, 2, 0)); 00155 0f 28 45 40 movaps xmm0, XMMWORD PTR t1$[rbp] 00159 0f c6 85 a0 00 00 00 88 shufps xmm0, XMMWORD PTR t3$[rbp], 136 ; 00000088H 00161 b8 10 00 00 00 mov eax, 16 00166 48 6b c0 02 imul rax, rax, 2 0016a 48 8b 8d a8 01 00 00 mov rcx, QWORD PTR target$[rbp] 00171 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0 ; 38 : } 00175 48 8d a5 88 01 00 00 lea rsp, QWORD PTR [rbp+392] 0017c 5f pop rdi 0017d 5d pop rbp 0017e c3 ret 0 transpose4to3 ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC\mat4.c ; COMDAT deinit_mat4 _TEXT SEGMENT matPtr$ = 224 deinit_mat4 PROC ; COMDAT ; 60 : { $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 55 push rbp 00006 57 push rdi 00007 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00013 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__506864FF_mat4@c 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 61 : _aligned_free(matPtr); 0001f 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR matPtr$[rbp] 00026 ff 15 00 00 00 00 call QWORD PTR __imp__aligned_free ; 62 : } 0002c 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] 00033 5f pop rdi 00034 5d pop rbp 00035 c3 ret 0 deinit_mat4 ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC\mat4.c ; COMDAT det_mat4 _TEXT SEGMENT mc0$ = 16 mc1$ = 64 mc2$ = 112 mc3$ = 160 cogeneration$ = 208 retvec$ = 256 $T4 = 688 $T5 = 736 $T6 = 784 $T7 = 832 $T8 = 880 $T9 = 928 $T10 = 976 $T11 = 1024 $T12 = 1072 $T13 = 1120 $T14 = 1168 $T15 = 1216 tv85 = 1236 tv90 = 1240 tv95 = 1244 matPtr$ = 1280 transpose$ = 1288 det_mat4 PROC ; COMDAT ; 41 : { $LN3: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 0000a 55 push rbp 0000b 57 push rdi 0000c 48 81 ec 18 05 00 00 sub rsp, 1304 ; 00000518H 00013 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] 00018 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] 0001d b9 da 00 00 00 mov ecx, 218 ; 000000daH 00022 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH 00027 f3 ab rep stosd 00029 48 8b 8c 24 38 05 00 00 mov rcx, QWORD PTR [rsp+1336] 00031 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__506864FF_mat4@c 00038 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 42 : __m128 mc0 = ALIGN(matPtr->colum[0]); 0003d b8 10 00 00 00 mov eax, 16 00042 48 6b c0 00 imul rax, rax, 0 00046 48 8b 8d 00 05 00 00 mov rcx, QWORD PTR matPtr$[rbp] 0004d 48 03 c8 add rcx, rax 00050 48 8b c1 mov rax, rcx 00053 0f 10 00 movups xmm0, XMMWORD PTR [rax] 00056 0f 29 45 10 movaps XMMWORD PTR mc0$[rbp], xmm0 ; 43 : __m128 mc1 = ALIGN(matPtr->colum[1]); 0005a b8 10 00 00 00 mov eax, 16 0005f 48 6b c0 01 imul rax, rax, 1 00063 48 8b 8d 00 05 00 00 mov rcx, QWORD PTR matPtr$[rbp] 0006a 48 03 c8 add rcx, rax 0006d 48 8b c1 mov rax, rcx 00070 0f 10 00 movups xmm0, XMMWORD PTR [rax] 00073 0f 29 45 40 movaps XMMWORD PTR mc1$[rbp], xmm0 ; 44 : __m128 mc2 = ALIGN(matPtr->colum[2]); 00077 b8 10 00 00 00 mov eax, 16 0007c 48 6b c0 02 imul rax, rax, 2 00080 48 8b 8d 00 05 00 00 mov rcx, QWORD PTR matPtr$[rbp] 00087 48 03 c8 add rcx, rax 0008a 48 8b c1 mov rax, rcx 0008d 0f 10 00 movups xmm0, XMMWORD PTR [rax] 00090 0f 29 45 70 movaps XMMWORD PTR mc2$[rbp], xmm0 ; 45 : __m128 mc3 = ALIGN(matPtr->colum[3]); 00094 b8 10 00 00 00 mov eax, 16 00099 48 6b c0 03 imul rax, rax, 3 0009d 48 8b 8d 00 05 00 00 mov rcx, QWORD PTR matPtr$[rbp] 000a4 48 03 c8 add rcx, rax 000a7 48 8b c1 mov rax, rcx 000aa 0f 10 00 movups xmm0, XMMWORD PTR [rax] 000ad 0f 29 85 a0 00 00 00 movaps XMMWORD PTR mc3$[rbp], xmm0 ; 46 : ; 47 : __m128 cogeneration = _mm_set_ps( 000b4 0f 28 85 a0 00 00 00 movaps xmm0, XMMWORD PTR mc3$[rbp] 000bb 0f 29 85 10 03 00 00 movaps XMMWORD PTR $T6[rbp], xmm0 000c2 0f 28 45 70 movaps xmm0, XMMWORD PTR mc2$[rbp] 000c6 0f 29 85 e0 02 00 00 movaps XMMWORD PTR $T5[rbp], xmm0 000cd 0f 28 45 40 movaps xmm0, XMMWORD PTR mc1$[rbp] 000d1 0f 29 85 b0 02 00 00 movaps XMMWORD PTR $T4[rbp], xmm0 000d8 4c 8d 85 10 03 00 00 lea r8, QWORD PTR $T6[rbp] 000df 48 8d 95 e0 02 00 00 lea rdx, QWORD PTR $T5[rbp] 000e6 48 8d 8d b0 02 00 00 lea rcx, QWORD PTR $T4[rbp] 000ed e8 00 00 00 00 call det_mat3_internal 000f2 f3 0f 11 85 d4 04 00 00 movss DWORD PTR tv85[rbp], xmm0 000fa 0f 28 8d a0 00 00 00 movaps xmm1, XMMWORD PTR mc3$[rbp] 00101 0f 29 8d a0 03 00 00 movaps XMMWORD PTR $T9[rbp], xmm1 00108 0f 28 4d 70 movaps xmm1, XMMWORD PTR mc2$[rbp] 0010c 0f 29 8d 70 03 00 00 movaps XMMWORD PTR $T8[rbp], xmm1 00113 0f 28 4d 10 movaps xmm1, XMMWORD PTR mc0$[rbp] 00117 0f 29 8d 40 03 00 00 movaps XMMWORD PTR $T7[rbp], xmm1 0011e 4c 8d 85 a0 03 00 00 lea r8, QWORD PTR $T9[rbp] 00125 48 8d 95 70 03 00 00 lea rdx, QWORD PTR $T8[rbp] 0012c 48 8d 8d 40 03 00 00 lea rcx, QWORD PTR $T7[rbp] 00133 e8 00 00 00 00 call det_mat3_internal 00138 f3 0f 11 85 d8 04 00 00 movss DWORD PTR tv90[rbp], xmm0 00140 0f 28 8d a0 00 00 00 movaps xmm1, XMMWORD PTR mc3$[rbp] 00147 0f 29 8d 30 04 00 00 movaps XMMWORD PTR $T12[rbp], xmm1 0014e 0f 28 4d 40 movaps xmm1, XMMWORD PTR mc1$[rbp] 00152 0f 29 8d 00 04 00 00 movaps XMMWORD PTR $T11[rbp], xmm1 00159 0f 28 4d 10 movaps xmm1, XMMWORD PTR mc0$[rbp] 0015d 0f 29 8d d0 03 00 00 movaps XMMWORD PTR $T10[rbp], xmm1 00164 4c 8d 85 30 04 00 00 lea r8, QWORD PTR $T12[rbp] 0016b 48 8d 95 00 04 00 00 lea rdx, QWORD PTR $T11[rbp] 00172 48 8d 8d d0 03 00 00 lea rcx, QWORD PTR $T10[rbp] 00179 e8 00 00 00 00 call det_mat3_internal 0017e f3 0f 11 85 dc 04 00 00 movss DWORD PTR tv95[rbp], xmm0 00186 0f 28 4d 70 movaps xmm1, XMMWORD PTR mc2$[rbp] 0018a 0f 29 8d c0 04 00 00 movaps XMMWORD PTR $T15[rbp], xmm1 00191 0f 28 4d 40 movaps xmm1, XMMWORD PTR mc1$[rbp] 00195 0f 29 8d 90 04 00 00 movaps XMMWORD PTR $T14[rbp], xmm1 0019c 0f 28 4d 10 movaps xmm1, XMMWORD PTR mc0$[rbp] 001a0 0f 29 8d 60 04 00 00 movaps XMMWORD PTR $T13[rbp], xmm1 001a7 4c 8d 85 c0 04 00 00 lea r8, QWORD PTR $T15[rbp] 001ae 48 8d 95 90 04 00 00 lea rdx, QWORD PTR $T14[rbp] 001b5 48 8d 8d 60 04 00 00 lea rcx, QWORD PTR $T13[rbp] 001bc e8 00 00 00 00 call det_mat3_internal 001c1 f3 0f 10 8d dc 04 00 00 movss xmm1, DWORD PTR tv95[rbp] 001c9 f3 0f 10 95 d8 04 00 00 movss xmm2, DWORD PTR tv90[rbp] 001d1 f3 0f 10 9d d4 04 00 00 movss xmm3, DWORD PTR tv85[rbp] 001d9 0f 14 c8 unpcklps xmm1, xmm0 001dc 0f 14 da unpcklps xmm3, xmm2 001df 0f 28 c3 movaps xmm0, xmm3 001e2 0f 16 c1 movlhps xmm0, xmm1 001e5 0f 29 85 d0 00 00 00 movaps XMMWORD PTR cogeneration$[rbp], xmm0 ; 48 : det_mat3_internal(mc0, mc1, mc2), ; 49 : det_mat3_internal(mc0, mc1, mc3), ; 50 : det_mat3_internal(mc0, mc2, mc3), ; 51 : det_mat3_internal(mc1, mc2, mc3) ; 52 : ); ; 53 : __m128 retvec = _mm_mul_ps(ALIGN(transpose->colum[3]), cogeneration); 001ec b8 10 00 00 00 mov eax, 16 001f1 48 6b c0 03 imul rax, rax, 3 001f5 48 8b 8d 08 05 00 00 mov rcx, QWORD PTR transpose$[rbp] 001fc 48 03 c8 add rcx, rax 001ff 48 8b c1 mov rax, rcx 00202 0f 10 00 movups xmm0, XMMWORD PTR [rax] 00205 0f 59 85 d0 00 00 00 mulps xmm0, XMMWORD PTR cogeneration$[rbp] 0020c 0f 29 85 00 01 00 00 movaps XMMWORD PTR retvec$[rbp], xmm0 ; 54 : retvec = _mm_hsub_ps(retvec, retvec); 00213 0f 28 85 00 01 00 00 movaps xmm0, XMMWORD PTR retvec$[rbp] 0021a f2 0f 7d 85 00 01 00 00 hsubps xmm0, XMMWORD PTR retvec$[rbp] 00222 0f 29 85 00 01 00 00 movaps XMMWORD PTR retvec$[rbp], xmm0 ; 55 : retvec = _mm_hadd_ps(retvec, retvec); 00229 0f 28 85 00 01 00 00 movaps xmm0, XMMWORD PTR retvec$[rbp] 00230 f2 0f 7c 85 00 01 00 00 haddps xmm0, XMMWORD PTR retvec$[rbp] 00238 0f 29 85 00 01 00 00 movaps XMMWORD PTR retvec$[rbp], xmm0 ; 56 : return -retvec.m128_f32[0]; 0023f b8 04 00 00 00 mov eax, 4 00244 48 6b c0 00 imul rax, rax, 0 00248 f3 0f 10 84 05 00 01 00 00 movss xmm0, DWORD PTR retvec$[rbp+rax] 00251 0f 57 05 00 00 00 00 xorps xmm0, DWORD PTR __xmm@80000000800000008000000080000000 ; 57 : } 00258 f3 0f 7f 44 24 20 movdqu XMMWORD PTR [rsp+32], xmm0 0025e 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] 00262 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:det_mat4$rtcFrameData 00269 e8 00 00 00 00 call _RTC_CheckStackVars 0026e f3 0f 6f 44 24 20 movdqu xmm0, XMMWORD PTR [rsp+32] 00274 48 8d a5 e8 04 00 00 lea rsp, QWORD PTR [rbp+1256] 0027b 5f pop rdi 0027c 5d pop rbp 0027d c3 ret 0 det_mat4 ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC\mat4.c ; COMDAT transpose4to4 _TEXT SEGMENT t0$ = 16 t1$ = 64 t2$ = 112 t3$ = 160 source$ = 416 target$ = 424 transpose4to4 PROC ; COMDAT ; 16 : { $LN3: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 0000a 55 push rbp 0000b 57 push rdi 0000c 48 81 ec a8 01 00 00 sub rsp, 424 ; 000001a8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00018 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__506864FF_mat4@c 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 17 : __m128 t0 = _mm_shuffle_ps(ALIGN(source->colum[0]), ALIGN(source->colum[1]), _MM_SHUFFLE(1, 0, 1, 0)); 00024 b8 10 00 00 00 mov eax, 16 00029 48 6b c0 01 imul rax, rax, 1 0002d 48 8b 8d a0 01 00 00 mov rcx, QWORD PTR source$[rbp] 00034 48 03 c8 add rcx, rax 00037 48 8b c1 mov rax, rcx 0003a 0f 10 00 movups xmm0, XMMWORD PTR [rax] 0003d b8 10 00 00 00 mov eax, 16 00042 48 6b c0 00 imul rax, rax, 0 00046 48 8b 8d a0 01 00 00 mov rcx, QWORD PTR source$[rbp] 0004d 48 03 c8 add rcx, rax 00050 48 8b c1 mov rax, rcx 00053 0f 10 08 movups xmm1, XMMWORD PTR [rax] 00056 0f c6 c8 44 shufps xmm1, xmm0, 68 ; 00000044H 0005a 0f 28 c1 movaps xmm0, xmm1 0005d 0f 29 45 10 movaps XMMWORD PTR t0$[rbp], xmm0 ; 18 : __m128 t1 = _mm_shuffle_ps(ALIGN(source->colum[0]), ALIGN(source->colum[1]), _MM_SHUFFLE(3, 2, 3, 2)); 00061 b8 10 00 00 00 mov eax, 16 00066 48 6b c0 01 imul rax, rax, 1 0006a 48 8b 8d a0 01 00 00 mov rcx, QWORD PTR source$[rbp] 00071 48 03 c8 add rcx, rax 00074 48 8b c1 mov rax, rcx 00077 0f 10 00 movups xmm0, XMMWORD PTR [rax] 0007a b8 10 00 00 00 mov eax, 16 0007f 48 6b c0 00 imul rax, rax, 0 00083 48 8b 8d a0 01 00 00 mov rcx, QWORD PTR source$[rbp] 0008a 48 03 c8 add rcx, rax 0008d 48 8b c1 mov rax, rcx 00090 0f 10 08 movups xmm1, XMMWORD PTR [rax] 00093 0f c6 c8 ee shufps xmm1, xmm0, 238 ; 000000eeH 00097 0f 28 c1 movaps xmm0, xmm1 0009a 0f 29 45 40 movaps XMMWORD PTR t1$[rbp], xmm0 ; 19 : __m128 t2 = _mm_shuffle_ps(ALIGN(source->colum[2]), ALIGN(source->colum[3]), _MM_SHUFFLE(1, 0, 1, 0)); 0009e b8 10 00 00 00 mov eax, 16 000a3 48 6b c0 03 imul rax, rax, 3 000a7 48 8b 8d a0 01 00 00 mov rcx, QWORD PTR source$[rbp] 000ae 48 03 c8 add rcx, rax 000b1 48 8b c1 mov rax, rcx 000b4 0f 10 00 movups xmm0, XMMWORD PTR [rax] 000b7 b8 10 00 00 00 mov eax, 16 000bc 48 6b c0 02 imul rax, rax, 2 000c0 48 8b 8d a0 01 00 00 mov rcx, QWORD PTR source$[rbp] 000c7 48 03 c8 add rcx, rax 000ca 48 8b c1 mov rax, rcx 000cd 0f 10 08 movups xmm1, XMMWORD PTR [rax] 000d0 0f c6 c8 44 shufps xmm1, xmm0, 68 ; 00000044H 000d4 0f 28 c1 movaps xmm0, xmm1 000d7 0f 29 45 70 movaps XMMWORD PTR t2$[rbp], xmm0 ; 20 : __m128 t3 = _mm_shuffle_ps(ALIGN(source->colum[2]), ALIGN(source->colum[3]), _MM_SHUFFLE(3, 2, 3, 2)); 000db b8 10 00 00 00 mov eax, 16 000e0 48 6b c0 03 imul rax, rax, 3 000e4 48 8b 8d a0 01 00 00 mov rcx, QWORD PTR source$[rbp] 000eb 48 03 c8 add rcx, rax 000ee 48 8b c1 mov rax, rcx 000f1 0f 10 00 movups xmm0, XMMWORD PTR [rax] 000f4 b8 10 00 00 00 mov eax, 16 000f9 48 6b c0 02 imul rax, rax, 2 000fd 48 8b 8d a0 01 00 00 mov rcx, QWORD PTR source$[rbp] 00104 48 03 c8 add rcx, rax 00107 48 8b c1 mov rax, rcx 0010a 0f 10 08 movups xmm1, XMMWORD PTR [rax] 0010d 0f c6 c8 ee shufps xmm1, xmm0, 238 ; 000000eeH 00111 0f 28 c1 movaps xmm0, xmm1 00114 0f 29 85 a0 00 00 00 movaps XMMWORD PTR t3$[rbp], xmm0 ; 21 : ; 22 : target->colum[0] = _mm_shuffle_ps(t0, t2, _MM_SHUFFLE(2, 0, 2, 0)); 0011b 0f 28 45 10 movaps xmm0, XMMWORD PTR t0$[rbp] 0011f 0f c6 45 70 88 shufps xmm0, XMMWORD PTR t2$[rbp], 136 ; 00000088H 00124 b8 10 00 00 00 mov eax, 16 00129 48 6b c0 00 imul rax, rax, 0 0012d 48 8b 8d a8 01 00 00 mov rcx, QWORD PTR target$[rbp] 00134 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0 ; 23 : target->colum[1] = _mm_shuffle_ps(t0, t2, _MM_SHUFFLE(3, 1, 3, 1)); 00138 0f 28 45 10 movaps xmm0, XMMWORD PTR t0$[rbp] 0013c 0f c6 45 70 dd shufps xmm0, XMMWORD PTR t2$[rbp], 221 ; 000000ddH 00141 b8 10 00 00 00 mov eax, 16 00146 48 6b c0 01 imul rax, rax, 1 0014a 48 8b 8d a8 01 00 00 mov rcx, QWORD PTR target$[rbp] 00151 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0 ; 24 : target->colum[2] = _mm_shuffle_ps(t1, t3, _MM_SHUFFLE(2, 0, 2, 0)); 00155 0f 28 45 40 movaps xmm0, XMMWORD PTR t1$[rbp] 00159 0f c6 85 a0 00 00 00 88 shufps xmm0, XMMWORD PTR t3$[rbp], 136 ; 00000088H 00161 b8 10 00 00 00 mov eax, 16 00166 48 6b c0 02 imul rax, rax, 2 0016a 48 8b 8d a8 01 00 00 mov rcx, QWORD PTR target$[rbp] 00171 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0 ; 25 : target->colum[3] = _mm_shuffle_ps(t1, t3, _MM_SHUFFLE(3, 1, 3, 1)); 00175 0f 28 45 40 movaps xmm0, XMMWORD PTR t1$[rbp] 00179 0f c6 85 a0 00 00 00 dd shufps xmm0, XMMWORD PTR t3$[rbp], 221 ; 000000ddH 00181 b8 10 00 00 00 mov eax, 16 00186 48 6b c0 03 imul rax, rax, 3 0018a 48 8b 8d a8 01 00 00 mov rcx, QWORD PTR target$[rbp] 00191 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0 ; 26 : } 00195 48 8d a5 88 01 00 00 lea rsp, QWORD PTR [rbp+392] 0019c 5f pop rdi 0019d 5d pop rbp 0019e c3 ret 0 transpose4to4 ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC\mat4.c ; COMDAT transpose4to2 _TEXT SEGMENT t0$ = 16 t2$ = 64 source$ = 320 target$ = 328 transpose4to2 PROC ; COMDAT ; 7 : { $LN3: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 0000a 55 push rbp 0000b 57 push rdi 0000c 48 81 ec 48 01 00 00 sub rsp, 328 ; 00000148H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00018 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__506864FF_mat4@c 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 8 : __m128 t0 = _mm_shuffle_ps(ALIGN(source->colum[0]), ALIGN(source->colum[1]), _MM_SHUFFLE(1, 0, 1, 0)); 00024 b8 10 00 00 00 mov eax, 16 00029 48 6b c0 01 imul rax, rax, 1 0002d 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR source$[rbp] 00034 48 03 c8 add rcx, rax 00037 48 8b c1 mov rax, rcx 0003a 0f 10 00 movups xmm0, XMMWORD PTR [rax] 0003d b8 10 00 00 00 mov eax, 16 00042 48 6b c0 00 imul rax, rax, 0 00046 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR source$[rbp] 0004d 48 03 c8 add rcx, rax 00050 48 8b c1 mov rax, rcx 00053 0f 10 08 movups xmm1, XMMWORD PTR [rax] 00056 0f c6 c8 44 shufps xmm1, xmm0, 68 ; 00000044H 0005a 0f 28 c1 movaps xmm0, xmm1 0005d 0f 29 45 10 movaps XMMWORD PTR t0$[rbp], xmm0 ; 9 : __m128 t2 = _mm_shuffle_ps(ALIGN(source->colum[2]), ALIGN(source->colum[3]), _MM_SHUFFLE(1, 0, 1, 0)); 00061 b8 10 00 00 00 mov eax, 16 00066 48 6b c0 03 imul rax, rax, 3 0006a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR source$[rbp] 00071 48 03 c8 add rcx, rax 00074 48 8b c1 mov rax, rcx 00077 0f 10 00 movups xmm0, XMMWORD PTR [rax] 0007a b8 10 00 00 00 mov eax, 16 0007f 48 6b c0 02 imul rax, rax, 2 00083 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR source$[rbp] 0008a 48 03 c8 add rcx, rax 0008d 48 8b c1 mov rax, rcx 00090 0f 10 08 movups xmm1, XMMWORD PTR [rax] 00093 0f c6 c8 44 shufps xmm1, xmm0, 68 ; 00000044H 00097 0f 28 c1 movaps xmm0, xmm1 0009a 0f 29 45 40 movaps XMMWORD PTR t2$[rbp], xmm0 ; 10 : ; 11 : target->colum[0] = _mm_shuffle_ps(t0, t2, _MM_SHUFFLE(2, 0, 2, 0)); 0009e 0f 28 45 10 movaps xmm0, XMMWORD PTR t0$[rbp] 000a2 0f c6 45 40 88 shufps xmm0, XMMWORD PTR t2$[rbp], 136 ; 00000088H 000a7 b8 10 00 00 00 mov eax, 16 000ac 48 6b c0 00 imul rax, rax, 0 000b0 48 8b 8d 48 01 00 00 mov rcx, QWORD PTR target$[rbp] 000b7 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0 ; 12 : target->colum[1] = _mm_shuffle_ps(t0, t2, _MM_SHUFFLE(3, 1, 3, 1)); 000bb 0f 28 45 10 movaps xmm0, XMMWORD PTR t0$[rbp] 000bf 0f c6 45 40 dd shufps xmm0, XMMWORD PTR t2$[rbp], 221 ; 000000ddH 000c4 b8 10 00 00 00 mov eax, 16 000c9 48 6b c0 01 imul rax, rax, 1 000cd 48 8b 8d 48 01 00 00 mov rcx, QWORD PTR target$[rbp] 000d4 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0 ; 13 : } 000d8 48 8d a5 28 01 00 00 lea rsp, QWORD PTR [rbp+296] 000df 5f pop rdi 000e0 5d pop rbp 000e1 c3 ret 0 transpose4to2 ENDP _TEXT ENDS END