; Listing generated by Microsoft (R) Optimizing Compiler Version 19.36.32537.0 include listing.inc INCLUDELIB MSVCRT INCLUDELIB OLDNAMES _DATA SEGMENT COMM pack:BYTE:038H _DATA ENDS msvcjmc SEGMENT __0998321F_concurrencysal@h DB 01H __E9680BEC_sal@h DB 01H __75F3BDA1_vadefs@h DB 01H __FF647DA5_vcruntime@h DB 01H __0DFED3C7_stdint@h DB 01H __018B5678_khrplatform@h DB 01H __79FC18F0_glad@h DB 01H __04C75F1C_corecrt@h DB 01H __0C5B3DCC_stddef@h DB 01H __986CAB3E_glfw3@h DB 01H __9BEA891A_mmintrin@h DB 01H __494656A0_corecrt_malloc@h DB 01H __E5D9469F_malloc@h DB 01H __7FB111F1_xmmintrin@h DB 01H __1AD3983D_emmintrin@h DB 01H __C572F0B4_pmmintrin@h DB 01H __75AB8336_tmmintrin@h DB 01H __5C9096B5_smmintrin@h DB 01H __39F21F79_nmmintrin@h DB 01H __EC49E537_wmmintrin@h DB 01H __27DDA830_zmmintrin@h DB 01H __10C90AFA_immintrin@h DB 01H __C508448F_StgSharpGraphic@h DB 01H __694534F6_mat2@c DB 01H msvcjmc ENDS PUBLIC add_mat2 PUBLIC sub_mat2 PUBLIC transmpose2to4 PUBLIC deinit_mat2 PUBLIC __JustMyCode_Default EXTRN __imp__aligned_free:PROC EXTRN __imp__aligned_malloc:PROC EXTRN __CheckForDebuggerJustMyCode:PROC EXTRN defaultVecPtr:QWORD ; COMDAT pdata pdata SEGMENT $pdata$add_mat2 DD imagerel $LN7 DD imagerel $LN7+79 DD imagerel $unwind$add_mat2 pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$sub_mat2 DD imagerel $LN7 DD imagerel $LN7+79 DD imagerel $unwind$sub_mat2 pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$transmpose2to4 DD imagerel $LN4 DD imagerel $LN4+122 DD imagerel $unwind$transmpose2to4 pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$deinit_mat2 DD imagerel $LN4 DD imagerel $LN4+36 DD imagerel $unwind$deinit_mat2 pdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$deinit_mat2 DD 020601H DD 030023206H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$transmpose2to4 DD 040a01H DD 06340aH DD 07006320aH xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$sub_mat2 DD 040a01H DD 06340aH DD 07006320aH xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$add_mat2 DD 040a01H DD 06340aH DD 07006320aH 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: /Ogtpy ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgShqrpGraphic\mat2.c ; COMDAT deinit_mat2 _TEXT SEGMENT mat$ = 48 deinit_mat2 PROC ; COMDAT ; 43 : { $LN4: 00000 40 53 push rbx 00002 48 83 ec 20 sub rsp, 32 ; 00000020H 00006 48 8b d9 mov rbx, rcx 00009 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__694534F6_mat2@c 00010 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 00015 48 8b cb mov rcx, rbx ; 44 : _aligned_free(mat); ; 45 : } 00018 48 83 c4 20 add rsp, 32 ; 00000020H 0001c 5b pop rbx 0001d 48 ff 25 00 00 00 00 rex_jmp QWORD PTR __imp__aligned_free deinit_mat2 ENDP _TEXT ENDS ; Function compile flags: /Ogtpy ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgShqrpGraphic\mat2.c ; COMDAT transmpose2to4 _TEXT SEGMENT source$ = 48 target$ = 56 transmpose2to4 PROC ; COMDAT ; 32 : { $LN4: 00000 48 89 5c 24 08 mov QWORD PTR [rsp+8], rbx 00005 57 push rdi 00006 48 83 ec 20 sub rsp, 32 ; 00000020H 0000a 48 8b d9 mov rbx, rcx 0000d 48 8b fa mov rdi, rdx 00010 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__694534F6_mat2@c 00017 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0001c 0f 10 43 10 movups xmm0, XMMWORD PTR [rbx+16] 00020 48 8b 05 00 00 00 00 mov rax, QWORD PTR defaultVecPtr 00027 0f 10 13 movups xmm2, XMMWORD PTR [rbx] 0002a 48 8b 5c 24 30 mov rbx, QWORD PTR [rsp+48] 0002f 0f 28 ca movaps xmm1, xmm2 00032 0f c6 d0 ee shufps xmm2, xmm0, 238 ; 000000eeH 00036 0f c6 c8 44 shufps xmm1, xmm0, 68 ; 00000044H 0003a 0f 28 c1 movaps xmm0, xmm1 0003d 0f c6 00 88 shufps xmm0, XMMWORD PTR [rax], 136 ; 00000088H 00041 0f 11 07 movups XMMWORD PTR [rdi], xmm0 00044 0f 28 c2 movaps xmm0, xmm2 00047 48 8b 05 00 00 00 00 mov rax, QWORD PTR defaultVecPtr 0004e 0f c6 08 dd shufps xmm1, XMMWORD PTR [rax], 221 ; 000000ddH 00052 0f 11 4f 10 movups XMMWORD PTR [rdi+16], xmm1 00056 48 8b 05 00 00 00 00 mov rax, QWORD PTR defaultVecPtr 0005d 0f c6 00 88 shufps xmm0, XMMWORD PTR [rax], 136 ; 00000088H 00061 0f 11 47 20 movups XMMWORD PTR [rdi+32], xmm0 00065 48 8b 05 00 00 00 00 mov rax, QWORD PTR defaultVecPtr 0006c 0f c6 10 dd shufps xmm2, XMMWORD PTR [rax], 221 ; 000000ddH 00070 0f 11 57 30 movups XMMWORD PTR [rdi+48], xmm2 ; 33 : __m128 t0 = _mm_shuffle_ps(ALIGN(source->colum[0]), ALIGN(source->colum[1]), _MM_SHUFFLE(1, 0, 1, 0)); ; 34 : __m128 t1 = _mm_shuffle_ps(ALIGN(source->colum[0]), ALIGN(source->colum[1]), _MM_SHUFFLE(3, 2, 3, 2)); ; 35 : ; 36 : target->colum[0] = _mm_shuffle_ps(t0, *defaultVecPtr, _MM_SHUFFLE(2, 0, 2, 0)); ; 37 : target->colum[1] = _mm_shuffle_ps(t0, *defaultVecPtr, _MM_SHUFFLE(3, 1, 3, 1)); ; 38 : target->colum[2] = _mm_shuffle_ps(t1, *defaultVecPtr, _MM_SHUFFLE(2, 0, 2, 0)); ; 39 : target->colum[3] = _mm_shuffle_ps(t1, *defaultVecPtr, _MM_SHUFFLE(3, 1, 3, 1)); ; 40 : } 00074 48 83 c4 20 add rsp, 32 ; 00000020H 00078 5f pop rdi 00079 c3 ret 0 transmpose2to4 ENDP _TEXT ENDS ; Function compile flags: /Ogtpy ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgShqrpGraphic\mat2.c ; COMDAT sub_mat2 _TEXT SEGMENT mat1$ = 48 mat2$ = 56 sub_mat2 PROC ; COMDAT ; 18 : { $LN7: 00000 48 89 5c 24 08 mov QWORD PTR [rsp+8], rbx 00005 57 push rdi 00006 48 83 ec 20 sub rsp, 32 ; 00000020H 0000a 48 8b f9 mov rdi, rcx 0000d 48 8b da mov rbx, rdx 00010 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__694534F6_mat2@c 00017 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0001c ba 10 00 00 00 mov edx, 16 00021 8d 4a 10 lea ecx, QWORD PTR [rdx+16] 00024 ff 15 00 00 00 00 call QWORD PTR __imp__aligned_malloc 0002a 48 85 c0 test rax, rax 0002d 74 15 je SHORT $LN4@sub_mat2 ; 19 : matrix2map* ret = _aligned_malloc(sizeof(matrix2map), 16); ; 20 : ; 21 : if (ret != 0) ; 22 : { ; 23 : ret->colum[0] = _mm_sub_ps(mat1->colum[0], mat2->colum[0]); 0002f 0f 10 07 movups xmm0, XMMWORD PTR [rdi] 00032 0f 5c 03 subps xmm0, XMMWORD PTR [rbx] 00035 0f 11 00 movups XMMWORD PTR [rax], xmm0 ; 24 : ret->colum[1] = _mm_sub_ps(mat1->colum[1], mat2->colum[1]); 00038 0f 10 4f 10 movups xmm1, XMMWORD PTR [rdi+16] 0003c 0f 5c 4b 10 subps xmm1, XMMWORD PTR [rbx+16] 00040 0f 11 48 10 movups XMMWORD PTR [rax+16], xmm1 $LN4@sub_mat2: ; 25 : } ; 26 : ; 27 : return ret; ; 28 : } 00044 48 8b 5c 24 30 mov rbx, QWORD PTR [rsp+48] 00049 48 83 c4 20 add rsp, 32 ; 00000020H 0004d 5f pop rdi 0004e c3 ret 0 sub_mat2 ENDP _TEXT ENDS ; Function compile flags: /Ogtpy ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgShqrpGraphic\mat2.c ; COMDAT add_mat2 _TEXT SEGMENT mat1$ = 48 mat2$ = 56 add_mat2 PROC ; COMDAT ; 5 : { $LN7: 00000 48 89 5c 24 08 mov QWORD PTR [rsp+8], rbx 00005 57 push rdi 00006 48 83 ec 20 sub rsp, 32 ; 00000020H 0000a 48 8b f9 mov rdi, rcx 0000d 48 8b da mov rbx, rdx 00010 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__694534F6_mat2@c 00017 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0001c ba 10 00 00 00 mov edx, 16 00021 8d 4a 10 lea ecx, QWORD PTR [rdx+16] 00024 ff 15 00 00 00 00 call QWORD PTR __imp__aligned_malloc 0002a 48 85 c0 test rax, rax 0002d 74 15 je SHORT $LN4@add_mat2 ; 6 : matrix2map* ret = _aligned_malloc(sizeof(matrix2map), 16); ; 7 : ; 8 : if (ret != 0) ; 9 : { ; 10 : ret->colum[0] = _mm_add_ps(mat1->colum[0], mat2->colum[0]); 0002f 0f 10 07 movups xmm0, XMMWORD PTR [rdi] 00032 0f 58 03 addps xmm0, XMMWORD PTR [rbx] 00035 0f 11 00 movups XMMWORD PTR [rax], xmm0 ; 11 : ret->colum[1] = _mm_add_ps(mat1->colum[1], mat2->colum[1]); 00038 0f 10 4f 10 movups xmm1, XMMWORD PTR [rdi+16] 0003c 0f 58 4b 10 addps xmm1, XMMWORD PTR [rbx+16] 00040 0f 11 48 10 movups XMMWORD PTR [rax+16], xmm1 $LN4@add_mat2: ; 12 : } ; 13 : ; 14 : return ret; ; 15 : } 00044 48 8b 5c 24 30 mov rbx, QWORD PTR [rsp+48] 00049 48 83 c4 20 add rsp, 32 ; 00000020H 0004d 5f pop rdi 0004e c3 ret 0 add_mat2 ENDP _TEXT ENDS END