; Listing generated by Microsoft (R) Optimizing Compiler Version 19.41.34120.0 include listing.inc INCLUDELIB MSVCRTD INCLUDELIB OLDNAMES _DATA SEGMENT COMM infolog:BYTE:0200H _DATA ENDS msvcjmc SEGMENT __7583A0D2_mmintrin@h DB 01H __DDA0A690_concurrencysal@h DB 01H __9ECC08BE_sal@h DB 01H __E05D733A_vadefs@h DB 01H __6A355E0E_vcruntime@h DB 01H __1B0272D9_corecrt@h DB 01H __45DED006_corecrt_malloc@h DB 01H __FA77ED4C_malloc@h DB 01H __EAE0325A_xmmintrin@h DB 01H __0ED14FEE_winpackagefamily@h DB 01H __F92EF742_winapifamily@h DB 01H __22E515EB_sdkddkver@h DB 01H __A09A3A7D_excpt@h DB 01H __AC8FA393_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 __890838BD_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 __8FC206A7_ssc_internal@h DB 01H __44420885_corecrt_stdio_config@h DB 01H __AB601D8D_corecrt_wstdio@h DB 01H __C1EC35D3_stdio@h DB 01H __13F5961F_stddef@h DB 01H __FD6DBD68_corecrt_search@h DB 01H __E2E33A61_corecrt_wstdlib@h DB 01H __26263363_limits@h DB 01H __6E5ACABA_stdlib@h DB 01H __9049550C_stb_image@h DB 01H __98501D5C_stdint@h DB 01H __264E89B8_khrplatform@h DB 01H __799FCA13_gl@h DB 01H __A57296D0_wgl@h DB 01H __417F438F_glfw3@h DB 01H __8F82BB96_emmintrin@h DB 01H __5023D31F_pmmintrin@h DB 01H __E0FAA09D_tmmintrin@h DB 01H __C9C1B51E_smmintrin@h DB 01H __ACA33CD2_nmmintrin@h DB 01H __7918C69C_wmmintrin@h DB 01H __B28C8B9B_zmmintrin@h DB 01H __85982951_immintrin@h DB 01H __19139D6C_assert@h DB 01H __0C16F932_StgSharpC@h DB 01H __B2F9F159_intrin0@inl@h DB 01H __0833F55F_setjmp@h DB 01H __3F5BC814_ammintrin@h DB 01H __2E054928_intrin@h DB 01H __5A8332CE_isa_availability@h DB 01H __EB6C2FE1_ssc_intrinsic@h DB 01H __5DFFF5A8_mat4@c DB 01H msvcjmc ENDS PUBLIC addmatrix4_sse PUBLIC addmatrix4_avx PUBLIC addmatrix4_512 PUBLIC transpose42 PUBLIC transpose43 PUBLIC transpose44 PUBLIC det_mat4 PUBLIC __JustMyCode_Default PUBLIC __xmm@80000000800000008000000080000000 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$addmatrix4_sse DD imagerel $LN3 DD imagerel $LN3+356 DD imagerel $unwind$addmatrix4_sse pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$addmatrix4_avx DD imagerel $LN3 DD imagerel $LN3+206 DD imagerel $unwind$addmatrix4_avx pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$addmatrix4_512 DD imagerel $LN3 DD imagerel $LN3+97 DD imagerel $unwind$addmatrix4_512 pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$transpose42 DD imagerel $LN3 DD imagerel $LN3+227 DD imagerel $unwind$transpose42 pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$transpose43 DD imagerel $LN3 DD imagerel $LN3+384 DD imagerel $unwind$transpose43 pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$transpose44 DD imagerel $LN3 DD imagerel $LN3+416 DD imagerel $unwind$transpose44 pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$det_mat4 DD imagerel $LN3 DD imagerel $LN3+655 DD imagerel $unwind$det_mat4 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$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$transpose44 DD 025051801H DD 01132318H DD 0700c0035H DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$transpose43 DD 025051801H DD 01132318H DD 0700c0035H DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$transpose42 DD 025051801H DD 01132318H DD 0700c0029H DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$addmatrix4_512 DD 025051d01H DD 0118231dH DD 07011001dH DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$addmatrix4_avx DD 025051d01H DD 0118231dH DD 07011001dH DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$addmatrix4_sse DD 025051d01H DD 0118231dH DD 07011001dH DD 05010H 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\内核源代码\StgSharp.C\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 tv89 = 1236 tv95 = 1240 tv133 = 1244 mat_ptr$ = 1280 transpose$ = 1288 det_mat4 PROC ; COMDAT ; 52 : { $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:__5DFFF5A8_mat4@c 00038 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0003d 90 npad 1 ; 53 : __m128 mc0 = ALIGN(mat_ptr->column[0]); 0003e b8 10 00 00 00 mov eax, 16 00043 48 6b c0 00 imul rax, rax, 0 00047 48 8b 8d 00 05 00 00 mov rcx, QWORD PTR mat_ptr$[rbp] 0004e 48 03 c8 add rcx, rax 00051 48 8b c1 mov rax, rcx 00054 0f 10 00 movups xmm0, XMMWORD PTR [rax] 00057 0f 29 45 10 movaps XMMWORD PTR mc0$[rbp], xmm0 ; 54 : __m128 mc1 = ALIGN(mat_ptr->column[1]); 0005b b8 10 00 00 00 mov eax, 16 00060 48 6b c0 01 imul rax, rax, 1 00064 48 8b 8d 00 05 00 00 mov rcx, QWORD PTR mat_ptr$[rbp] 0006b 48 03 c8 add rcx, rax 0006e 48 8b c1 mov rax, rcx 00071 0f 10 00 movups xmm0, XMMWORD PTR [rax] 00074 0f 29 45 40 movaps XMMWORD PTR mc1$[rbp], xmm0 ; 55 : __m128 mc2 = ALIGN(mat_ptr->column[2]); 00078 b8 10 00 00 00 mov eax, 16 0007d 48 6b c0 02 imul rax, rax, 2 00081 48 8b 8d 00 05 00 00 mov rcx, QWORD PTR mat_ptr$[rbp] 00088 48 03 c8 add rcx, rax 0008b 48 8b c1 mov rax, rcx 0008e 0f 10 00 movups xmm0, XMMWORD PTR [rax] 00091 0f 29 45 70 movaps XMMWORD PTR mc2$[rbp], xmm0 ; 56 : __m128 mc3 = ALIGN(mat_ptr->column[3]); 00095 b8 10 00 00 00 mov eax, 16 0009a 48 6b c0 03 imul rax, rax, 3 0009e 48 8b 8d 00 05 00 00 mov rcx, QWORD PTR mat_ptr$[rbp] 000a5 48 03 c8 add rcx, rax 000a8 48 8b c1 mov rax, rcx 000ab 0f 10 00 movups xmm0, XMMWORD PTR [rax] 000ae 0f 29 85 a0 00 00 00 movaps XMMWORD PTR mc3$[rbp], xmm0 ; 57 : ; 58 : __m128 cogeneration = 000b5 0f 28 85 a0 00 00 00 movaps xmm0, XMMWORD PTR mc3$[rbp] 000bc 0f 29 85 10 03 00 00 movaps XMMWORD PTR $T6[rbp], xmm0 000c3 0f 28 45 70 movaps xmm0, XMMWORD PTR mc2$[rbp] 000c7 0f 29 85 e0 02 00 00 movaps XMMWORD PTR $T5[rbp], xmm0 000ce 0f 28 45 40 movaps xmm0, XMMWORD PTR mc1$[rbp] 000d2 0f 29 85 b0 02 00 00 movaps XMMWORD PTR $T4[rbp], xmm0 000d9 4c 8d 85 10 03 00 00 lea r8, QWORD PTR $T6[rbp] 000e0 48 8d 95 e0 02 00 00 lea rdx, QWORD PTR $T5[rbp] 000e7 48 8d 8d b0 02 00 00 lea rcx, QWORD PTR $T4[rbp] 000ee e8 00 00 00 00 call det_mat3_internal 000f3 f3 0f 2a c0 cvtsi2ss xmm0, eax 000f7 f3 0f 11 85 d4 04 00 00 movss DWORD PTR tv89[rbp], xmm0 000ff 0f 28 8d a0 00 00 00 movaps xmm1, XMMWORD PTR mc3$[rbp] 00106 0f 29 8d a0 03 00 00 movaps XMMWORD PTR $T9[rbp], xmm1 0010d 0f 28 4d 70 movaps xmm1, XMMWORD PTR mc2$[rbp] 00111 0f 29 8d 70 03 00 00 movaps XMMWORD PTR $T8[rbp], xmm1 00118 0f 28 4d 10 movaps xmm1, XMMWORD PTR mc0$[rbp] 0011c 0f 29 8d 40 03 00 00 movaps XMMWORD PTR $T7[rbp], xmm1 00123 4c 8d 85 a0 03 00 00 lea r8, QWORD PTR $T9[rbp] 0012a 48 8d 95 70 03 00 00 lea rdx, QWORD PTR $T8[rbp] 00131 48 8d 8d 40 03 00 00 lea rcx, QWORD PTR $T7[rbp] 00138 e8 00 00 00 00 call det_mat3_internal 0013d f3 0f 2a c0 cvtsi2ss xmm0, eax 00141 f3 0f 11 85 d8 04 00 00 movss DWORD PTR tv95[rbp], xmm0 00149 0f 28 8d a0 00 00 00 movaps xmm1, XMMWORD PTR mc3$[rbp] 00150 0f 29 8d 30 04 00 00 movaps XMMWORD PTR $T12[rbp], xmm1 00157 0f 28 4d 40 movaps xmm1, XMMWORD PTR mc1$[rbp] 0015b 0f 29 8d 00 04 00 00 movaps XMMWORD PTR $T11[rbp], xmm1 00162 0f 28 4d 10 movaps xmm1, XMMWORD PTR mc0$[rbp] 00166 0f 29 8d d0 03 00 00 movaps XMMWORD PTR $T10[rbp], xmm1 0016d 4c 8d 85 30 04 00 00 lea r8, QWORD PTR $T12[rbp] 00174 48 8d 95 00 04 00 00 lea rdx, QWORD PTR $T11[rbp] 0017b 48 8d 8d d0 03 00 00 lea rcx, QWORD PTR $T10[rbp] 00182 e8 00 00 00 00 call det_mat3_internal 00187 f3 0f 2a c0 cvtsi2ss xmm0, eax 0018b f3 0f 11 85 dc 04 00 00 movss DWORD PTR tv133[rbp], xmm0 00193 0f 28 4d 70 movaps xmm1, XMMWORD PTR mc2$[rbp] 00197 0f 29 8d c0 04 00 00 movaps XMMWORD PTR $T15[rbp], xmm1 0019e 0f 28 4d 40 movaps xmm1, XMMWORD PTR mc1$[rbp] 001a2 0f 29 8d 90 04 00 00 movaps XMMWORD PTR $T14[rbp], xmm1 001a9 0f 28 4d 10 movaps xmm1, XMMWORD PTR mc0$[rbp] 001ad 0f 29 8d 60 04 00 00 movaps XMMWORD PTR $T13[rbp], xmm1 001b4 4c 8d 85 c0 04 00 00 lea r8, QWORD PTR $T15[rbp] 001bb 48 8d 95 90 04 00 00 lea rdx, QWORD PTR $T14[rbp] 001c2 48 8d 8d 60 04 00 00 lea rcx, QWORD PTR $T13[rbp] 001c9 e8 00 00 00 00 call det_mat3_internal 001ce f3 0f 2a c0 cvtsi2ss xmm0, eax 001d2 f3 0f 10 8d dc 04 00 00 movss xmm1, DWORD PTR tv133[rbp] 001da f3 0f 10 95 d8 04 00 00 movss xmm2, DWORD PTR tv95[rbp] 001e2 f3 0f 10 9d d4 04 00 00 movss xmm3, DWORD PTR tv89[rbp] 001ea 0f 14 c8 unpcklps xmm1, xmm0 001ed 0f 14 da unpcklps xmm3, xmm2 001f0 0f 28 c3 movaps xmm0, xmm3 001f3 0f 16 c1 movlhps xmm0, xmm1 001f6 0f 29 85 d0 00 00 00 movaps XMMWORD PTR cogeneration$[rbp], xmm0 ; 59 : _mm_set_ps(det_mat3_internal(mc0, mc1, mc2), det_mat3_internal(mc0, mc1, mc3), ; 60 : det_mat3_internal(mc0, mc2, mc3), det_mat3_internal(mc1, mc2, mc3)); ; 61 : __m128 retvec = _mm_mul_ps(ALIGN(transpose->column[3]), cogeneration); 001fd b8 10 00 00 00 mov eax, 16 00202 48 6b c0 03 imul rax, rax, 3 00206 48 8b 8d 08 05 00 00 mov rcx, QWORD PTR transpose$[rbp] 0020d 48 03 c8 add rcx, rax 00210 48 8b c1 mov rax, rcx 00213 0f 10 00 movups xmm0, XMMWORD PTR [rax] 00216 0f 59 85 d0 00 00 00 mulps xmm0, XMMWORD PTR cogeneration$[rbp] 0021d 0f 29 85 00 01 00 00 movaps XMMWORD PTR retvec$[rbp], xmm0 ; 62 : retvec = _mm_hsub_ps(retvec, retvec); 00224 0f 28 85 00 01 00 00 movaps xmm0, XMMWORD PTR retvec$[rbp] 0022b f2 0f 7d 85 00 01 00 00 hsubps xmm0, XMMWORD PTR retvec$[rbp] 00233 0f 29 85 00 01 00 00 movaps XMMWORD PTR retvec$[rbp], xmm0 ; 63 : retvec = _mm_hadd_ps(retvec, retvec); 0023a 0f 28 85 00 01 00 00 movaps xmm0, XMMWORD PTR retvec$[rbp] 00241 f2 0f 7c 85 00 01 00 00 haddps xmm0, XMMWORD PTR retvec$[rbp] 00249 0f 29 85 00 01 00 00 movaps XMMWORD PTR retvec$[rbp], xmm0 ; 64 : return -retvec.m128_f32[0]; 00250 b8 04 00 00 00 mov eax, 4 00255 48 6b c0 00 imul rax, rax, 0 00259 f3 0f 10 84 05 00 01 00 00 movss xmm0, DWORD PTR retvec$[rbp+rax] 00262 0f 57 05 00 00 00 00 xorps xmm0, DWORD PTR __xmm@80000000800000008000000080000000 ; 65 : } 00269 f3 0f 7f 44 24 20 movdqu XMMWORD PTR [rsp+32], xmm0 0026f 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] 00273 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:det_mat4$rtcFrameData 0027a e8 00 00 00 00 call _RTC_CheckStackVars 0027f f3 0f 6f 44 24 20 movdqu xmm0, XMMWORD PTR [rsp+32] 00285 48 8d a5 e8 04 00 00 lea rsp, QWORD PTR [rbp+1256] 0028c 5f pop rdi 0028d 5d pop rbp 0028e c3 ret 0 det_mat4 ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat4.c ; COMDAT transpose44 _TEXT SEGMENT t0$ = 16 t1$ = 64 t2$ = 112 t3$ = 160 source$ = 416 target$ = 424 transpose44 PROC ; COMDAT ; 35 : { $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:__5DFFF5A8_mat4@c 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode 00024 90 npad 1 ; 36 : __m128 t0 = _mm_shuffle_ps(ALIGN(source->column[0]), ALIGN(source->column[1]), 00025 b8 10 00 00 00 mov eax, 16 0002a 48 6b c0 01 imul rax, rax, 1 0002e 48 8b 8d a0 01 00 00 mov rcx, QWORD PTR source$[rbp] 00035 48 03 c8 add rcx, rax 00038 48 8b c1 mov rax, rcx 0003b 0f 10 00 movups xmm0, XMMWORD PTR [rax] 0003e b8 10 00 00 00 mov eax, 16 00043 48 6b c0 00 imul rax, rax, 0 00047 48 8b 8d a0 01 00 00 mov rcx, QWORD PTR source$[rbp] 0004e 48 03 c8 add rcx, rax 00051 48 8b c1 mov rax, rcx 00054 0f 10 08 movups xmm1, XMMWORD PTR [rax] 00057 0f c6 c8 44 shufps xmm1, xmm0, 68 ; 00000044H 0005b 0f 28 c1 movaps xmm0, xmm1 0005e 0f 29 45 10 movaps XMMWORD PTR t0$[rbp], xmm0 ; 37 : _MM_SHUFFLE(1, 0, 1, 0)); ; 38 : __m128 t1 = _mm_shuffle_ps(ALIGN(source->column[0]), ALIGN(source->column[1]), 00062 b8 10 00 00 00 mov eax, 16 00067 48 6b c0 01 imul rax, rax, 1 0006b 48 8b 8d a0 01 00 00 mov rcx, QWORD PTR source$[rbp] 00072 48 03 c8 add rcx, rax 00075 48 8b c1 mov rax, rcx 00078 0f 10 00 movups xmm0, XMMWORD PTR [rax] 0007b b8 10 00 00 00 mov eax, 16 00080 48 6b c0 00 imul rax, rax, 0 00084 48 8b 8d a0 01 00 00 mov rcx, QWORD PTR source$[rbp] 0008b 48 03 c8 add rcx, rax 0008e 48 8b c1 mov rax, rcx 00091 0f 10 08 movups xmm1, XMMWORD PTR [rax] 00094 0f c6 c8 ee shufps xmm1, xmm0, 238 ; 000000eeH 00098 0f 28 c1 movaps xmm0, xmm1 0009b 0f 29 45 40 movaps XMMWORD PTR t1$[rbp], xmm0 ; 39 : _MM_SHUFFLE(3, 2, 3, 2)); ; 40 : __m128 t2 = _mm_shuffle_ps(ALIGN(source->column[2]), ALIGN(source->column[3]), 0009f b8 10 00 00 00 mov eax, 16 000a4 48 6b c0 03 imul rax, rax, 3 000a8 48 8b 8d a0 01 00 00 mov rcx, QWORD PTR source$[rbp] 000af 48 03 c8 add rcx, rax 000b2 48 8b c1 mov rax, rcx 000b5 0f 10 00 movups xmm0, XMMWORD PTR [rax] 000b8 b8 10 00 00 00 mov eax, 16 000bd 48 6b c0 02 imul rax, rax, 2 000c1 48 8b 8d a0 01 00 00 mov rcx, QWORD PTR source$[rbp] 000c8 48 03 c8 add rcx, rax 000cb 48 8b c1 mov rax, rcx 000ce 0f 10 08 movups xmm1, XMMWORD PTR [rax] 000d1 0f c6 c8 44 shufps xmm1, xmm0, 68 ; 00000044H 000d5 0f 28 c1 movaps xmm0, xmm1 000d8 0f 29 45 70 movaps XMMWORD PTR t2$[rbp], xmm0 ; 41 : _MM_SHUFFLE(1, 0, 1, 0)); ; 42 : __m128 t3 = _mm_shuffle_ps(ALIGN(source->column[2]), ALIGN(source->column[3]), 000dc b8 10 00 00 00 mov eax, 16 000e1 48 6b c0 03 imul rax, rax, 3 000e5 48 8b 8d a0 01 00 00 mov rcx, QWORD PTR source$[rbp] 000ec 48 03 c8 add rcx, rax 000ef 48 8b c1 mov rax, rcx 000f2 0f 10 00 movups xmm0, XMMWORD PTR [rax] 000f5 b8 10 00 00 00 mov eax, 16 000fa 48 6b c0 02 imul rax, rax, 2 000fe 48 8b 8d a0 01 00 00 mov rcx, QWORD PTR source$[rbp] 00105 48 03 c8 add rcx, rax 00108 48 8b c1 mov rax, rcx 0010b 0f 10 08 movups xmm1, XMMWORD PTR [rax] 0010e 0f c6 c8 ee shufps xmm1, xmm0, 238 ; 000000eeH 00112 0f 28 c1 movaps xmm0, xmm1 00115 0f 29 85 a0 00 00 00 movaps XMMWORD PTR t3$[rbp], xmm0 ; 43 : _MM_SHUFFLE(3, 2, 3, 2)); ; 44 : ; 45 : target->column[0] = _mm_shuffle_ps(t0, t2, _MM_SHUFFLE(2, 0, 2, 0)); 0011c 0f 28 45 10 movaps xmm0, XMMWORD PTR t0$[rbp] 00120 0f c6 45 70 88 shufps xmm0, XMMWORD PTR t2$[rbp], 136 ; 00000088H 00125 b8 10 00 00 00 mov eax, 16 0012a 48 6b c0 00 imul rax, rax, 0 0012e 48 8b 8d a8 01 00 00 mov rcx, QWORD PTR target$[rbp] 00135 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0 ; 46 : target->column[1] = _mm_shuffle_ps(t0, t2, _MM_SHUFFLE(3, 1, 3, 1)); 00139 0f 28 45 10 movaps xmm0, XMMWORD PTR t0$[rbp] 0013d 0f c6 45 70 dd shufps xmm0, XMMWORD PTR t2$[rbp], 221 ; 000000ddH 00142 b8 10 00 00 00 mov eax, 16 00147 48 6b c0 01 imul rax, rax, 1 0014b 48 8b 8d a8 01 00 00 mov rcx, QWORD PTR target$[rbp] 00152 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0 ; 47 : target->column[2] = _mm_shuffle_ps(t1, t3, _MM_SHUFFLE(2, 0, 2, 0)); 00156 0f 28 45 40 movaps xmm0, XMMWORD PTR t1$[rbp] 0015a 0f c6 85 a0 00 00 00 88 shufps xmm0, XMMWORD PTR t3$[rbp], 136 ; 00000088H 00162 b8 10 00 00 00 mov eax, 16 00167 48 6b c0 02 imul rax, rax, 2 0016b 48 8b 8d a8 01 00 00 mov rcx, QWORD PTR target$[rbp] 00172 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0 ; 48 : target->column[3] = _mm_shuffle_ps(t1, t3, _MM_SHUFFLE(3, 1, 3, 1)); 00176 0f 28 45 40 movaps xmm0, XMMWORD PTR t1$[rbp] 0017a 0f c6 85 a0 00 00 00 dd shufps xmm0, XMMWORD PTR t3$[rbp], 221 ; 000000ddH 00182 b8 10 00 00 00 mov eax, 16 00187 48 6b c0 03 imul rax, rax, 3 0018b 48 8b 8d a8 01 00 00 mov rcx, QWORD PTR target$[rbp] 00192 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0 ; 49 : } 00196 48 8d a5 88 01 00 00 lea rsp, QWORD PTR [rbp+392] 0019d 5f pop rdi 0019e 5d pop rbp 0019f c3 ret 0 transpose44 ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat4.c ; COMDAT transpose43 _TEXT SEGMENT t0$ = 16 t1$ = 64 t2$ = 112 t3$ = 160 source$ = 416 target$ = 424 transpose43 PROC ; COMDAT ; 19 : { $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:__5DFFF5A8_mat4@c 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode 00024 90 npad 1 ; 20 : __m128 t0 = _mm_shuffle_ps(ALIGN(source->column[0]), ALIGN(source->column[1]), 00025 b8 10 00 00 00 mov eax, 16 0002a 48 6b c0 01 imul rax, rax, 1 0002e 48 8b 8d a0 01 00 00 mov rcx, QWORD PTR source$[rbp] 00035 48 03 c8 add rcx, rax 00038 48 8b c1 mov rax, rcx 0003b 0f 10 00 movups xmm0, XMMWORD PTR [rax] 0003e b8 10 00 00 00 mov eax, 16 00043 48 6b c0 00 imul rax, rax, 0 00047 48 8b 8d a0 01 00 00 mov rcx, QWORD PTR source$[rbp] 0004e 48 03 c8 add rcx, rax 00051 48 8b c1 mov rax, rcx 00054 0f 10 08 movups xmm1, XMMWORD PTR [rax] 00057 0f c6 c8 44 shufps xmm1, xmm0, 68 ; 00000044H 0005b 0f 28 c1 movaps xmm0, xmm1 0005e 0f 29 45 10 movaps XMMWORD PTR t0$[rbp], xmm0 ; 21 : _MM_SHUFFLE(1, 0, 1, 0)); ; 22 : __m128 t1 = _mm_shuffle_ps(ALIGN(source->column[0]), ALIGN(source->column[1]), 00062 b8 10 00 00 00 mov eax, 16 00067 48 6b c0 01 imul rax, rax, 1 0006b 48 8b 8d a0 01 00 00 mov rcx, QWORD PTR source$[rbp] 00072 48 03 c8 add rcx, rax 00075 48 8b c1 mov rax, rcx 00078 0f 10 00 movups xmm0, XMMWORD PTR [rax] 0007b b8 10 00 00 00 mov eax, 16 00080 48 6b c0 00 imul rax, rax, 0 00084 48 8b 8d a0 01 00 00 mov rcx, QWORD PTR source$[rbp] 0008b 48 03 c8 add rcx, rax 0008e 48 8b c1 mov rax, rcx 00091 0f 10 08 movups xmm1, XMMWORD PTR [rax] 00094 0f c6 c8 ee shufps xmm1, xmm0, 238 ; 000000eeH 00098 0f 28 c1 movaps xmm0, xmm1 0009b 0f 29 45 40 movaps XMMWORD PTR t1$[rbp], xmm0 ; 23 : _MM_SHUFFLE(3, 2, 3, 2)); ; 24 : __m128 t2 = _mm_shuffle_ps(ALIGN(source->column[2]), ALIGN(source->column[3]), 0009f b8 10 00 00 00 mov eax, 16 000a4 48 6b c0 03 imul rax, rax, 3 000a8 48 8b 8d a0 01 00 00 mov rcx, QWORD PTR source$[rbp] 000af 48 03 c8 add rcx, rax 000b2 48 8b c1 mov rax, rcx 000b5 0f 10 00 movups xmm0, XMMWORD PTR [rax] 000b8 b8 10 00 00 00 mov eax, 16 000bd 48 6b c0 02 imul rax, rax, 2 000c1 48 8b 8d a0 01 00 00 mov rcx, QWORD PTR source$[rbp] 000c8 48 03 c8 add rcx, rax 000cb 48 8b c1 mov rax, rcx 000ce 0f 10 08 movups xmm1, XMMWORD PTR [rax] 000d1 0f c6 c8 44 shufps xmm1, xmm0, 68 ; 00000044H 000d5 0f 28 c1 movaps xmm0, xmm1 000d8 0f 29 45 70 movaps XMMWORD PTR t2$[rbp], xmm0 ; 25 : _MM_SHUFFLE(1, 0, 1, 0)); ; 26 : __m128 t3 = _mm_shuffle_ps(ALIGN(source->column[2]), ALIGN(source->column[3]), 000dc b8 10 00 00 00 mov eax, 16 000e1 48 6b c0 03 imul rax, rax, 3 000e5 48 8b 8d a0 01 00 00 mov rcx, QWORD PTR source$[rbp] 000ec 48 03 c8 add rcx, rax 000ef 48 8b c1 mov rax, rcx 000f2 0f 10 00 movups xmm0, XMMWORD PTR [rax] 000f5 b8 10 00 00 00 mov eax, 16 000fa 48 6b c0 02 imul rax, rax, 2 000fe 48 8b 8d a0 01 00 00 mov rcx, QWORD PTR source$[rbp] 00105 48 03 c8 add rcx, rax 00108 48 8b c1 mov rax, rcx 0010b 0f 10 08 movups xmm1, XMMWORD PTR [rax] 0010e 0f c6 c8 ee shufps xmm1, xmm0, 238 ; 000000eeH 00112 0f 28 c1 movaps xmm0, xmm1 00115 0f 29 85 a0 00 00 00 movaps XMMWORD PTR t3$[rbp], xmm0 ; 27 : _MM_SHUFFLE(3, 2, 3, 2)); ; 28 : ; 29 : target->column[0] = _mm_shuffle_ps(t0, t2, _MM_SHUFFLE(2, 0, 2, 0)); 0011c 0f 28 45 10 movaps xmm0, XMMWORD PTR t0$[rbp] 00120 0f c6 45 70 88 shufps xmm0, XMMWORD PTR t2$[rbp], 136 ; 00000088H 00125 b8 10 00 00 00 mov eax, 16 0012a 48 6b c0 00 imul rax, rax, 0 0012e 48 8b 8d a8 01 00 00 mov rcx, QWORD PTR target$[rbp] 00135 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0 ; 30 : target->column[1] = _mm_shuffle_ps(t0, t2, _MM_SHUFFLE(3, 1, 3, 1)); 00139 0f 28 45 10 movaps xmm0, XMMWORD PTR t0$[rbp] 0013d 0f c6 45 70 dd shufps xmm0, XMMWORD PTR t2$[rbp], 221 ; 000000ddH 00142 b8 10 00 00 00 mov eax, 16 00147 48 6b c0 01 imul rax, rax, 1 0014b 48 8b 8d a8 01 00 00 mov rcx, QWORD PTR target$[rbp] 00152 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0 ; 31 : target->column[2] = _mm_shuffle_ps(t1, t3, _MM_SHUFFLE(2, 0, 2, 0)); 00156 0f 28 45 40 movaps xmm0, XMMWORD PTR t1$[rbp] 0015a 0f c6 85 a0 00 00 00 88 shufps xmm0, XMMWORD PTR t3$[rbp], 136 ; 00000088H 00162 b8 10 00 00 00 mov eax, 16 00167 48 6b c0 02 imul rax, rax, 2 0016b 48 8b 8d a8 01 00 00 mov rcx, QWORD PTR target$[rbp] 00172 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0 ; 32 : } 00176 48 8d a5 88 01 00 00 lea rsp, QWORD PTR [rbp+392] 0017d 5f pop rdi 0017e 5d pop rbp 0017f c3 ret 0 transpose43 ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat4.c ; COMDAT transpose42 _TEXT SEGMENT t0$ = 16 t2$ = 64 source$ = 320 target$ = 328 transpose42 PROC ; COMDAT ; 8 : { $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:__5DFFF5A8_mat4@c 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode 00024 90 npad 1 ; 9 : __m128 t0 = _mm_shuffle_ps(ALIGN(source->column[0]), ALIGN(source->column[1]), 00025 b8 10 00 00 00 mov eax, 16 0002a 48 6b c0 01 imul rax, rax, 1 0002e 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR source$[rbp] 00035 48 03 c8 add rcx, rax 00038 48 8b c1 mov rax, rcx 0003b 0f 10 00 movups xmm0, XMMWORD PTR [rax] 0003e b8 10 00 00 00 mov eax, 16 00043 48 6b c0 00 imul rax, rax, 0 00047 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR source$[rbp] 0004e 48 03 c8 add rcx, rax 00051 48 8b c1 mov rax, rcx 00054 0f 10 08 movups xmm1, XMMWORD PTR [rax] 00057 0f c6 c8 44 shufps xmm1, xmm0, 68 ; 00000044H 0005b 0f 28 c1 movaps xmm0, xmm1 0005e 0f 29 45 10 movaps XMMWORD PTR t0$[rbp], xmm0 ; 10 : _MM_SHUFFLE(1, 0, 1, 0)); ; 11 : __m128 t2 = _mm_shuffle_ps(ALIGN(source->column[2]), ALIGN(source->column[3]), 00062 b8 10 00 00 00 mov eax, 16 00067 48 6b c0 03 imul rax, rax, 3 0006b 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR source$[rbp] 00072 48 03 c8 add rcx, rax 00075 48 8b c1 mov rax, rcx 00078 0f 10 00 movups xmm0, XMMWORD PTR [rax] 0007b b8 10 00 00 00 mov eax, 16 00080 48 6b c0 02 imul rax, rax, 2 00084 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR source$[rbp] 0008b 48 03 c8 add rcx, rax 0008e 48 8b c1 mov rax, rcx 00091 0f 10 08 movups xmm1, XMMWORD PTR [rax] 00094 0f c6 c8 44 shufps xmm1, xmm0, 68 ; 00000044H 00098 0f 28 c1 movaps xmm0, xmm1 0009b 0f 29 45 40 movaps XMMWORD PTR t2$[rbp], xmm0 ; 12 : _MM_SHUFFLE(1, 0, 1, 0)); ; 13 : ; 14 : target->column[0] = _mm_shuffle_ps(t0, t2, _MM_SHUFFLE(2, 0, 2, 0)); 0009f 0f 28 45 10 movaps xmm0, XMMWORD PTR t0$[rbp] 000a3 0f c6 45 40 88 shufps xmm0, XMMWORD PTR t2$[rbp], 136 ; 00000088H 000a8 b8 10 00 00 00 mov eax, 16 000ad 48 6b c0 00 imul rax, rax, 0 000b1 48 8b 8d 48 01 00 00 mov rcx, QWORD PTR target$[rbp] 000b8 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0 ; 15 : target->column[1] = _mm_shuffle_ps(t0, t2, _MM_SHUFFLE(3, 1, 3, 1)); 000bc 0f 28 45 10 movaps xmm0, XMMWORD PTR t0$[rbp] 000c0 0f c6 45 40 dd shufps xmm0, XMMWORD PTR t2$[rbp], 221 ; 000000ddH 000c5 b8 10 00 00 00 mov eax, 16 000ca 48 6b c0 01 imul rax, rax, 1 000ce 48 8b 8d 48 01 00 00 mov rcx, QWORD PTR target$[rbp] 000d5 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0 ; 16 : } 000d9 48 8d a5 28 01 00 00 lea rsp, QWORD PTR [rbp+296] 000e0 5f pop rdi 000e1 5d pop rbp 000e2 c3 ret 0 transpose42 ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat4.c ; COMDAT addmatrix4_512 _TEXT SEGMENT left$ = 224 right$ = 232 ans$ = 240 addmatrix4_512 PROC ; COMDAT ; 82 : { $LN3: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 0000f 55 push rbp 00010 57 push rdi 00011 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 0001d 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__5DFFF5A8_mat4@c 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 00029 90 npad 1 ; 83 : ans->stream = _mm512_add_ps(ALIGN512(left->stream), ALIGN512(right->stream)); 0002a 48 8b 85 e8 00 00 00 mov rax, QWORD PTR right$[rbp] 00031 62 f1 7c 48 10 00 vmovups zmm0, ZMMWORD PTR [rax] 00037 48 8b 85 e0 00 00 00 mov rax, QWORD PTR left$[rbp] 0003e 62 f1 7c 48 10 08 vmovups zmm1, ZMMWORD PTR [rax] 00044 62 f1 74 48 58 c0 vaddps zmm0, zmm1, zmm0 0004a 48 8b 85 f0 00 00 00 mov rax, QWORD PTR ans$[rbp] 00051 62 f1 7c 48 11 00 vmovups ZMMWORD PTR [rax], zmm0 ; 84 : } 00057 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] 0005e 5f pop rdi 0005f 5d pop rbp 00060 c3 ret 0 addmatrix4_512 ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat4.c ; COMDAT addmatrix4_avx _TEXT SEGMENT left$ = 224 right$ = 232 ans$ = 240 addmatrix4_avx PROC ; COMDAT ; 76 : { $LN3: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 0000f 55 push rbp 00010 57 push rdi 00011 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 0001d 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__5DFFF5A8_mat4@c 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 00029 90 npad 1 ; 77 : ans->half[0] = _mm256_add_ps(ALIGN256(left->half[0]), ALIGN256(right->half[0])); 0002a b8 20 00 00 00 mov eax, 32 ; 00000020H 0002f 48 6b c0 00 imul rax, rax, 0 00033 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR right$[rbp] 0003a 48 03 c8 add rcx, rax 0003d 48 8b c1 mov rax, rcx 00040 c5 fc 10 00 vmovups ymm0, YMMWORD PTR [rax] 00044 b8 20 00 00 00 mov eax, 32 ; 00000020H 00049 48 6b c0 00 imul rax, rax, 0 0004d 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR left$[rbp] 00054 48 03 c8 add rcx, rax 00057 48 8b c1 mov rax, rcx 0005a c5 fc 10 08 vmovups ymm1, YMMWORD PTR [rax] 0005e c5 f4 58 c0 vaddps ymm0, ymm1, ymm0 00062 b8 20 00 00 00 mov eax, 32 ; 00000020H 00067 48 6b c0 00 imul rax, rax, 0 0006b 48 8b 8d f0 00 00 00 mov rcx, QWORD PTR ans$[rbp] 00072 c5 fc 11 04 01 vmovups YMMWORD PTR [rcx+rax], ymm0 ; 78 : ans->half[1] = _mm256_add_ps(ALIGN256(left->half[1]), ALIGN256(right->half[1])); 00077 b8 20 00 00 00 mov eax, 32 ; 00000020H 0007c 48 6b c0 01 imul rax, rax, 1 00080 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR right$[rbp] 00087 48 03 c8 add rcx, rax 0008a 48 8b c1 mov rax, rcx 0008d c5 fc 10 00 vmovups ymm0, YMMWORD PTR [rax] 00091 b8 20 00 00 00 mov eax, 32 ; 00000020H 00096 48 6b c0 01 imul rax, rax, 1 0009a 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR left$[rbp] 000a1 48 03 c8 add rcx, rax 000a4 48 8b c1 mov rax, rcx 000a7 c5 fc 10 08 vmovups ymm1, YMMWORD PTR [rax] 000ab c5 f4 58 c0 vaddps ymm0, ymm1, ymm0 000af b8 20 00 00 00 mov eax, 32 ; 00000020H 000b4 48 6b c0 01 imul rax, rax, 1 000b8 48 8b 8d f0 00 00 00 mov rcx, QWORD PTR ans$[rbp] 000bf c5 fc 11 04 01 vmovups YMMWORD PTR [rcx+rax], ymm0 ; 79 : } 000c4 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] 000cb 5f pop rdi 000cc 5d pop rbp 000cd c3 ret 0 addmatrix4_avx ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\内核源代码\StgSharp.C\mat4.c ; COMDAT addmatrix4_sse _TEXT SEGMENT left$ = 224 right$ = 232 ans$ = 240 addmatrix4_sse PROC ; COMDAT ; 68 : { $LN3: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 0000f 55 push rbp 00010 57 push rdi 00011 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 0001d 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__5DFFF5A8_mat4@c 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 00029 90 npad 1 ; 69 : ans->column[0] = _mm_add_ps(ALIGN(left->column[0]), ALIGN(right->column[0])); 0002a b8 10 00 00 00 mov eax, 16 0002f 48 6b c0 00 imul rax, rax, 0 00033 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR right$[rbp] 0003a 48 03 c8 add rcx, rax 0003d 48 8b c1 mov rax, rcx 00040 0f 10 00 movups xmm0, XMMWORD PTR [rax] 00043 b8 10 00 00 00 mov eax, 16 00048 48 6b c0 00 imul rax, rax, 0 0004c 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR left$[rbp] 00053 48 03 c8 add rcx, rax 00056 48 8b c1 mov rax, rcx 00059 0f 10 08 movups xmm1, XMMWORD PTR [rax] 0005c 0f 58 c8 addps xmm1, xmm0 0005f 0f 28 c1 movaps xmm0, xmm1 00062 b8 10 00 00 00 mov eax, 16 00067 48 6b c0 00 imul rax, rax, 0 0006b 48 8b 8d f0 00 00 00 mov rcx, QWORD PTR ans$[rbp] 00072 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0 ; 70 : ans->column[1] = _mm_add_ps(ALIGN(left->column[1]), ALIGN(right->column[1])); 00076 b8 10 00 00 00 mov eax, 16 0007b 48 6b c0 01 imul rax, rax, 1 0007f 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR right$[rbp] 00086 48 03 c8 add rcx, rax 00089 48 8b c1 mov rax, rcx 0008c 0f 10 00 movups xmm0, XMMWORD PTR [rax] 0008f b8 10 00 00 00 mov eax, 16 00094 48 6b c0 01 imul rax, rax, 1 00098 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR left$[rbp] 0009f 48 03 c8 add rcx, rax 000a2 48 8b c1 mov rax, rcx 000a5 0f 10 08 movups xmm1, XMMWORD PTR [rax] 000a8 0f 58 c8 addps xmm1, xmm0 000ab 0f 28 c1 movaps xmm0, xmm1 000ae b8 10 00 00 00 mov eax, 16 000b3 48 6b c0 01 imul rax, rax, 1 000b7 48 8b 8d f0 00 00 00 mov rcx, QWORD PTR ans$[rbp] 000be 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0 ; 71 : ans->column[2] = _mm_add_ps(ALIGN(left->column[2]), ALIGN(right->column[2])); 000c2 b8 10 00 00 00 mov eax, 16 000c7 48 6b c0 02 imul rax, rax, 2 000cb 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR right$[rbp] 000d2 48 03 c8 add rcx, rax 000d5 48 8b c1 mov rax, rcx 000d8 0f 10 00 movups xmm0, XMMWORD PTR [rax] 000db b8 10 00 00 00 mov eax, 16 000e0 48 6b c0 02 imul rax, rax, 2 000e4 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR left$[rbp] 000eb 48 03 c8 add rcx, rax 000ee 48 8b c1 mov rax, rcx 000f1 0f 10 08 movups xmm1, XMMWORD PTR [rax] 000f4 0f 58 c8 addps xmm1, xmm0 000f7 0f 28 c1 movaps xmm0, xmm1 000fa b8 10 00 00 00 mov eax, 16 000ff 48 6b c0 02 imul rax, rax, 2 00103 48 8b 8d f0 00 00 00 mov rcx, QWORD PTR ans$[rbp] 0010a 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0 ; 72 : ans->column[3] = _mm_add_ps(ALIGN(left->column[3]), ALIGN(right->column[3])); 0010e b8 10 00 00 00 mov eax, 16 00113 48 6b c0 03 imul rax, rax, 3 00117 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR right$[rbp] 0011e 48 03 c8 add rcx, rax 00121 48 8b c1 mov rax, rcx 00124 0f 10 00 movups xmm0, XMMWORD PTR [rax] 00127 b8 10 00 00 00 mov eax, 16 0012c 48 6b c0 03 imul rax, rax, 3 00130 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR left$[rbp] 00137 48 03 c8 add rcx, rax 0013a 48 8b c1 mov rax, rcx 0013d 0f 10 08 movups xmm1, XMMWORD PTR [rax] 00140 0f 58 c8 addps xmm1, xmm0 00143 0f 28 c1 movaps xmm0, xmm1 00146 b8 10 00 00 00 mov eax, 16 0014b 48 6b c0 03 imul rax, rax, 3 0014f 48 8b 8d f0 00 00 00 mov rcx, QWORD PTR ans$[rbp] 00156 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0 ; 73 : } 0015a 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] 00161 5f pop rdi 00162 5d pop rbp 00163 c3 ret 0 addmatrix4_sse ENDP _TEXT ENDS END