Files
stgsharp/StgSharp.Native/x64/Debug/mat4.cod
T

1516 lines
46 KiB
Plaintext

; Listing generated by Microsoft (R) Optimizing Compiler Version 19.44.35215.0
include listing.inc
INCLUDELIB MSVCRTD
INCLUDELIB OLDNAMES
_DATA SEGMENT
COMM infolog:BYTE:0200H
_DATA ENDS
msvcjmc SEGMENT
__5C8CA4D3_mmintrin@h DB 01H
__8C83BECC_concurrencysal@h DB 01H
__608E3340_sal@h DB 01H
__FB67E29A_vadefs@h DB 01H
__1D1B619C_vcruntime@h DB 01H
__735960E1_corecrt@h DB 01H
__211DB995_corecrt_malloc@h DB 01H
__7CD62D9E_malloc@h DB 01H
__9DCE0DC8_xmmintrin@h DB 01H
__4C2AD0C7_winpackagefamily@h DB 01H
__9DED9ED1_winapifamily@h DB 01H
__12FEDF4E_sdkddkver@h DB 01H
__9BAEE128_excpt@h DB 01H
__B7B53233_stdarg@h DB 01H
__6B04FCB3_specstrings_undef@h DB 01H
__F4027AF7_specstrings_strict@h DB 01H
__B90340D4_sdv_driverspecs@h DB 01H
__BFFF5AD3_driverspecs@h DB 01H
__32847078_specstrings@h DB 01H
__108B2620_corecrt_wctype@h DB 01H
__6CD6613D_ctype@h DB 01H
__30902A1F_kernelspecs@h DB 01H
__376FD5CA_basetsd@h DB 01H
__13DE2371_errno@h DB 01H
__8C6AE390_vcruntime_string@h DB 01H
__8ACB2152_corecrt_memcpy_s@h DB 01H
__EA6C9D17_corecrt_memory@h DB 01H
__0DF2AF52_corecrt_wstring@h DB 01H
__6E889ECC_string@h DB 01H
__9BEDF4DE_guiddef@h DB 01H
__51BFD2FE_pshpack4@h DB 01H
__31652CEA_poppack@h DB 01H
__5532AE4C_pshpack2@h DB 01H
__58A52B9A_pshpack8@h DB 01H
__57741015_pshpack1@h DB 01H
__CDE68C90_apiset@h DB 01H
__0BF06E8D_ktmtypes@h DB 01H
__40C200C0_winnt@h DB 01H
__9336F789_minwindef@h DB 01H
__55136115_windef@h DB 01H
__32205BF0_apisetcconv@h DB 01H
__B48FDEA0_minwinbase@h DB 01H
__3551B028_apiquery2@h DB 01H
__65BE04AA_processenv@h DB 01H
__4767CA46_fileapi@h DB 01H
__282E6C4B_fileapifromapp@h DB 01H
__393AF12C_debugapi@h DB 01H
__EBC502B8_utilapiset@h DB 01H
__1EAD8C69_handleapi@h DB 01H
__D8EF9B29_errhandlingapi@h DB 01H
__97FC1204_fibersapi@h DB 01H
__27448220_namedpipeapi@h DB 01H
__6EA33B2A_profileapi@h DB 01H
__EAC6F673_heapapi@h DB 01H
__D64EEA5A_ioapiset@h DB 01H
__144BD4B6_synchapi@h DB 01H
__03B1C640_interlockedapi@h DB 01H
__DC64CB38_processthreadsapi@h DB 01H
__D719B518_sysinfoapi@h DB 01H
__410385B1_memoryapi@h DB 01H
__C1AD45EF_enclaveapi@h DB 01H
__F4C3AA32_threadpoollegacyapiset@h DB 01H
__AC5A7A9F_threadpoolapiset@h DB 01H
__F5254B21_jobapi@h DB 01H
__BCEA6EE8_jobapi2@h DB 01H
__D18ACE72_wow64apiset@h DB 01H
__669B0D4A_libloaderapi@h DB 01H
__645F7034_securitybaseapi@h DB 01H
__67E58557_namespaceapi@h DB 01H
__599D9D3A_systemtopologyapi@h DB 01H
__2337E373_processtopologyapi@h DB 01H
__02BFF239_securityappcontainer@h DB 01H
__9C196272_realtimeapiset@h DB 01H
__5AB313A4_winerror@h DB 01H
__B7E7187B_timezoneapi@h DB 01H
__6DE9EB6F_winbase@h DB 01H
__56B2AFF2_wingdi@h DB 01H
__BA1161A9_tvout@h DB 01H
__0501A018_winuser@h DB 01H
__EF12FA99_datetimeapi@h DB 01H
__8FA7C3CA_winnls@h DB 01H
__390F0C47_stringapiset@h DB 01H
__28605B0A_wincontypes@h DB 01H
__BFBDE86D_consoleapi@h DB 01H
__C3CAFBF0_consoleapi2@h DB 01H
__C20891C7_consoleapi3@h DB 01H
__717C98B6_wincon@h DB 01H
__2884C177_verrsrc@h DB 01H
__A3FD3A34_winver@h DB 01H
__6F8AD9F1_reason@h DB 01H
__4C90FD6F_winreg@h DB 01H
__68AFEBAD_wnnc@h DB 01H
__5A7AB086_winnetwk@h DB 01H
__2FE8A10C_stralign@h DB 01H
__34558472_winsvc@h DB 01H
__058845F1_mcx@h DB 01H
__7F16006B_ime_cmodes@h DB 01H
__0A3AF599_imm@h DB 01H
__9349FE86_windows@h DB 01H
__639A050C_sn_internal@h DB 01H
__60B45B40_corecrt_stdio_config@h DB 01H
__CFA3741E_corecrt_wstdio@h DB 01H
__B3FE3303_stdio@h DB 01H
__955456CD_stddef@h DB 01H
__99AED4FB_corecrt_search@h DB 01H
__8B813BF6_corecrt_wstdlib@h DB 01H
__3D1CA2C3_limits@h DB 01H
__E8FB0A68_stdlib@h DB 01H
__C363A436_stb_image@h DB 01H
__836A8CFC_stdint@h DB 01H
__C95DC661_khrplatform@h DB 01H
__6C577136_gl@h DB 01H
__EE638A2C_wgl@h DB 01H
__E76F0EB7_glfw3@h DB 01H
__F8AC8404_emmintrin@h DB 01H
__270DEC8D_pmmintrin@h DB 01H
__97D49F0F_tmmintrin@h DB 01H
__BEEF8A8C_smmintrin@h DB 01H
__DB8D0340_nmmintrin@h DB 01H
__0E36F90E_wmmintrin@h DB 01H
__C5A2B409_zmmintrin@h DB 01H
__F2B616C3_immintrin@h DB 01H
__9FB25DBE_assert@h DB 01H
__4E664295_glfw_function@h DB 01H
__64C0EF11_StgSharpNative@h DB 01H
__47E843D2_intrin0@inl@h DB 01H
__130964FF_setjmp@h DB 01H
__4875F786_ammintrin@h DB 01H
__353FD888_intrin@h DB 01H
__5FE1E9E3_isa_availability@h DB 01H
__AA840D82_sn_intrinsic@h DB 01H
__B772DB18_mat4@c DB 01H
msvcjmc ENDS
PUBLIC addmatrix4_sse
PUBLIC addmatrix4_avx
PUBLIC addmatrix4_512
PUBLIC submatrix4_sse
PUBLIC submatrix4_avx
PUBLIC submatrix4_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$submatrix4_sse DD imagerel $LN3
DD imagerel $LN3+356
DD imagerel $unwind$submatrix4_sse
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$submatrix4_avx DD imagerel $LN3
DD imagerel $LN3+206
DD imagerel $unwind$submatrix4_avx
pdata ENDS
; COMDAT pdata
pdata SEGMENT
$pdata$submatrix4_512 DD imagerel $LN3
DD imagerel $LN3+97
DD imagerel $unwind$submatrix4_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$submatrix4_512 DD 025051d01H
DD 0118231dH
DD 07011001dH
DD 05010H
xdata ENDS
; COMDAT xdata
xdata SEGMENT
$unwind$submatrix4_avx DD 025051d01H
DD 0118231dH
DD 07011001dH
DD 05010H
xdata ENDS
; COMDAT xdata
xdata SEGMENT
$unwind$submatrix4_sse DD 025051d01H
DD 0118231dH
DD 07011001dH
DD 05010H
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:\platform-dev\StgSharp.Native\sn-src\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:__B772DB18_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:\platform-dev\StgSharp.Native\sn-src\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:__B772DB18_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:\platform-dev\StgSharp.Native\sn-src\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:__B772DB18_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:\platform-dev\StgSharp.Native\sn-src\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:__B772DB18_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:\platform-dev\StgSharp.Native\sn-src\mat4.c
; COMDAT submatrix4_512
_TEXT SEGMENT
left$ = 224
right$ = 232
ans$ = 240
submatrix4_512 PROC ; COMDAT
; 101 : {
$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:__B772DB18_mat4@c
00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
00029 90 npad 1
; 102 : ans->stream = _mm512_sub_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 5c
c0 vsubps 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
; 103 : }
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
submatrix4_512 ENDP
_TEXT ENDS
; Function compile flags: /Odtp /RTCsu /ZI
; File D:\platform-dev\StgSharp.Native\sn-src\mat4.c
; COMDAT submatrix4_avx
_TEXT SEGMENT
left$ = 224
right$ = 232
ans$ = 240
submatrix4_avx PROC ; COMDAT
; 95 : {
$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:__B772DB18_mat4@c
00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
00029 90 npad 1
; 96 : ans->half[0] = _mm256_sub_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 5c c0 vsubps 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
; 97 : ans->half[1] = _mm256_sub_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 5c c0 vsubps 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
; 98 : }
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
submatrix4_avx ENDP
_TEXT ENDS
; Function compile flags: /Odtp /RTCsu /ZI
; File D:\platform-dev\StgSharp.Native\sn-src\mat4.c
; COMDAT submatrix4_sse
_TEXT SEGMENT
left$ = 224
right$ = 232
ans$ = 240
submatrix4_sse PROC ; COMDAT
; 87 : {
$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:__B772DB18_mat4@c
00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
00029 90 npad 1
; 88 : ans->column[0] = _mm_sub_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 5c c8 subps 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
; 89 : ans->column[1] = _mm_sub_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 5c c8 subps 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
; 90 : ans->column[2] = _mm_sub_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 5c c8 subps 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
; 91 : ans->column[3] = _mm_sub_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 5c c8 subps 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
; 92 : }
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
submatrix4_sse ENDP
_TEXT ENDS
; Function compile flags: /Odtp /RTCsu /ZI
; File D:\platform-dev\StgSharp.Native\sn-src\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:__B772DB18_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:\platform-dev\StgSharp.Native\sn-src\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:__B772DB18_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:\platform-dev\StgSharp.Native\sn-src\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:__B772DB18_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