; 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 __C44F8F6B_corecrt_stdio_config@h DB 01H __A7F89B2B_corecrt_wstdio@h DB 01H __B5C48800_stdio@h DB 01H __62BFBAF5_stdalign@h DB 01H __B5461FF6_linear@c DB 01H msvcjmc ENDS PUBLIC mulps_sum_internal PUBLIC mulps_total_internal PUBLIC load PUBLIC load_cpy PUBLIC addps PUBLIC subps PUBLIC mulps_const PUBLIC mulps PUBLIC mulps_sum PUBLIC divps_const PUBLIC divps PUBLIC sqrtss_const PUBLIC set_m128ptr_default PUBLIC deinitM128 PUBLIC load_matmap PUBLIC __JustMyCode_Default EXTRN __imp__aligned_free:PROC EXTRN __imp__aligned_malloc:PROC EXTRN __CheckForDebuggerJustMyCode:PROC EXTRN __GSHandlerCheck:PROC EXTRN __security_check_cookie:PROC EXTRN defaultVecPtr:QWORD EXTRN __security_cookie:QWORD EXTRN _fltused:DWORD ; COMDAT pdata pdata SEGMENT $pdata$mulps_sum_internal DD imagerel $LN4 DD imagerel $LN4+53 DD imagerel $unwind$mulps_sum_internal pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$load DD imagerel $LN7 DD imagerel $LN7+140 DD imagerel $unwind$load pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$load_cpy DD imagerel $LN7 DD imagerel $LN7+52 DD imagerel $unwind$load_cpy pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$addps DD imagerel $LN7 DD imagerel $LN7+85 DD imagerel $unwind$addps pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$subps DD imagerel $LN7 DD imagerel $LN7+85 DD imagerel $unwind$subps pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$mulps_const DD imagerel $LN7 DD imagerel $LN7+94 DD imagerel $unwind$mulps_const pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$mulps DD imagerel $LN7 DD imagerel $LN7+84 DD imagerel $unwind$mulps pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$mulps_sum DD imagerel $LN4 DD imagerel $LN4+53 DD imagerel $unwind$mulps_sum pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$divps_const DD imagerel $LN7 DD imagerel $LN7+97 DD imagerel $unwind$divps_const pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$divps DD imagerel $LN7 DD imagerel $LN7+84 DD imagerel $unwind$divps pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$sqrtss_const DD imagerel $LN4 DD imagerel $LN4+47 DD imagerel $unwind$sqrtss_const pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$set_m128ptr_default DD imagerel $LN4 DD imagerel $LN4+28 DD imagerel $unwind$set_m128ptr_default pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$deinitM128 DD imagerel $LN4 DD imagerel $LN4+36 DD imagerel $unwind$deinitM128 pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$load_matmap DD imagerel $LN7 DD imagerel $LN7+146 DD imagerel $unwind$load_matmap pdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$load_matmap DD 082419H DD 0e7415H DD 0d6415H DD 0c3415H DD 0e0119215H DD imagerel __GSHandlerCheck DD 040H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$deinitM128 DD 020601H DD 030023206H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$set_m128ptr_default DD 010401H DD 04204H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$sqrtss_const DD 030901H DD 026809H DD 06204H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$divps DD 040a01H DD 06340aH DD 07006320aH xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$divps_const DD 040b01H DD 03680bH DD 030027206H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$mulps_sum DD 040a01H DD 06340aH DD 07006320aH xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$mulps DD 040a01H DD 06340aH DD 07006320aH xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$mulps_const DD 040b01H DD 03680bH DD 030027206H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$subps DD 040a01H DD 06340aH DD 07006320aH xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$addps DD 040a01H DD 06340aH DD 07006320aH xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$load_cpy DD 020601H DD 030023206H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$load DD 092701H DD 039827H DD 04881eH DD 057815H DD 066809H DD 0e204H xdata ENDS ; COMDAT xdata xdata SEGMENT $unwind$mulps_sum_internal 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\linear.c ; COMDAT load_matmap _TEXT SEGMENT ptr$ = 32 __$ArrayPad$ = 64 c0$ = 96 c1$ = 104 c2$ = 112 c3$ = 120 load_matmap PROC ; COMDAT ; 182 : { $LN7: 00000 48 89 5c 24 08 mov QWORD PTR [rsp+8], rbx 00005 48 89 74 24 10 mov QWORD PTR [rsp+16], rsi 0000a 48 89 7c 24 18 mov QWORD PTR [rsp+24], rdi 0000f 41 56 push r14 00011 48 83 ec 50 sub rsp, 80 ; 00000050H 00015 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie 0001c 48 33 c4 xor rax, rsp 0001f 48 89 44 24 40 mov QWORD PTR __$ArrayPad$[rsp], rax 00024 48 8b d9 mov rbx, rcx 00027 4d 8b f1 mov r14, r9 0002a 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__B5461FF6_linear@c 00031 49 8b f0 mov rsi, r8 00034 48 8b fa mov rdi, rdx 00037 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0003c ba 20 00 00 00 mov edx, 32 ; 00000020H 00041 8b ca mov ecx, edx 00043 ff 15 00 00 00 00 call QWORD PTR __imp__aligned_malloc 00049 48 89 5c 24 20 mov QWORD PTR ptr$[rsp], rbx 0004e 48 89 7c 24 28 mov QWORD PTR ptr$[rsp+8], rdi 00053 48 89 74 24 30 mov QWORD PTR ptr$[rsp+16], rsi 00058 4c 89 74 24 38 mov QWORD PTR ptr$[rsp+24], r14 0005d 48 85 c0 test rax, rax 00060 74 0d je SHORT $LN4@load_matma ; 183 : __m256i* retPtr = _aligned_malloc(sizeof(__m256i), sizeof(__m256i)); ; 184 : ; 185 : uint64_t ptr[4] = {c0,c1,c2,c3 }; ; 186 : ; 187 : if (NULL != retPtr) ; 188 : { ; 189 : *retPtr = _mm256_loadu_epi64(&ptr); 00062 c5 fe 6f 44 24 20 vmovdqu ymm0, YMMWORD PTR ptr$[rsp] 00068 c5 fe 7f 00 vmovdqu YMMWORD PTR [rax], ymm0 0006c c5 f8 77 vzeroupper $LN4@load_matma: ; 190 : } ; 191 : ; 192 : return retPtr; ; 193 : ; 194 : } 0006f 48 8b 4c 24 40 mov rcx, QWORD PTR __$ArrayPad$[rsp] 00074 48 33 cc xor rcx, rsp 00077 e8 00 00 00 00 call __security_check_cookie 0007c 48 8b 5c 24 60 mov rbx, QWORD PTR [rsp+96] 00081 48 8b 74 24 68 mov rsi, QWORD PTR [rsp+104] 00086 48 8b 7c 24 70 mov rdi, QWORD PTR [rsp+112] 0008b 48 83 c4 50 add rsp, 80 ; 00000050H 0008f 41 5e pop r14 00091 c3 ret 0 load_matmap ENDP _TEXT ENDS ; Function compile flags: /Ogtpy ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgShqrpGraphic\linear.c ; COMDAT deinitM128 _TEXT SEGMENT ptr$ = 48 deinitM128 PROC ; COMDAT ; 212 : { $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:__B5461FF6_linear@c 00010 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 00015 48 8b cb mov rcx, rbx ; 213 : _aligned_free(ptr); ; 214 : } 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 deinitM128 ENDP _TEXT ENDS ; Function compile flags: /Ogtpy ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgShqrpGraphic\linear.c ; COMDAT set_m128ptr_default _TEXT SEGMENT set_m128ptr_default PROC ; COMDAT ; 199 : { $LN4: 00000 48 83 ec 28 sub rsp, 40 ; 00000028H 00004 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__B5461FF6_linear@c 0000b e8 00 00 00 00 call __CheckForDebuggerJustMyCode 00010 48 8b 05 00 00 00 00 mov rax, QWORD PTR defaultVecPtr ; 200 : return defaultVecPtr; ; 201 : } 00017 48 83 c4 28 add rsp, 40 ; 00000028H 0001b c3 ret 0 set_m128ptr_default ENDP _TEXT ENDS ; Function compile flags: /Ogtpy ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgShqrpGraphic\linear.c ; COMDAT sqrtss_const _TEXT SEGMENT a$ = 64 sqrtss_const PROC ; COMDAT ; 169 : { $LN4: 00000 48 83 ec 38 sub rsp, 56 ; 00000038H 00004 0f 29 74 24 20 movaps XMMWORD PTR [rsp+32], xmm6 00009 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__B5461FF6_linear@c 00010 0f 28 f0 movaps xmm6, xmm0 00013 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 00018 0f 10 44 24 40 movups xmm0, XMMWORD PTR a$[rsp] 0001d f3 0f 10 c6 movss xmm0, xmm6 00021 0f 28 74 24 20 movaps xmm6, XMMWORD PTR [rsp+32] 00026 f3 0f 51 c0 sqrtss xmm0, xmm0 ; 170 : __m128 ret = _mm_sqrt_ss(*(__m128*) & a); ; 171 : ; 172 : return ret.m128_f32[0]; ; 173 : } 0002a 48 83 c4 38 add rsp, 56 ; 00000038H 0002e c3 ret 0 sqrtss_const ENDP _TEXT ENDS ; Function compile flags: /Ogtpy ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgShqrpGraphic\linear.c ; COMDAT divps _TEXT SEGMENT ptr1$ = 48 ptr2$ = 56 divps PROC ; COMDAT ; 154 : { $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:__B5461FF6_linear@c 00017 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0001c ba 10 00 00 00 mov edx, 16 00021 8b ca mov ecx, edx 00023 ff 15 00 00 00 00 call QWORD PTR __imp__aligned_malloc 00029 48 85 c0 test rax, rax 0002c 74 14 je SHORT $LN2@divps ; 155 : __m128* ret = _aligned_malloc(sizeof(__m128), 16); ; 156 : ; 157 : if (NULL != ret) ; 158 : { ; 159 : *ret = _mm_div_ps(*ptr1, *ptr2); 0002e 0f 10 07 movups xmm0, XMMWORD PTR [rdi] 00031 0f 5e 03 divps xmm0, XMMWORD PTR [rbx] 00034 0f 11 00 movups XMMWORD PTR [rax], xmm0 ; 160 : return ret; ; 161 : } ; 162 : else ; 163 : { ; 164 : return -1; ; 165 : } ; 166 : } 00037 48 8b 5c 24 30 mov rbx, QWORD PTR [rsp+48] 0003c 48 83 c4 20 add rsp, 32 ; 00000020H 00040 5f pop rdi 00041 c3 ret 0 $LN2@divps: 00042 48 8b 5c 24 30 mov rbx, QWORD PTR [rsp+48] 00047 48 c7 c0 ff ff ff ff mov rax, -1 0004e 48 83 c4 20 add rsp, 32 ; 00000020H 00052 5f pop rdi 00053 c3 ret 0 divps ENDP _TEXT ENDS ; Function compile flags: /Ogtpy ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgShqrpGraphic\linear.c ; COMDAT divps_const _TEXT SEGMENT c$ = 32 ptr$ = 80 value$ = 88 divps_const PROC ; COMDAT ; 135 : { $LN7: 00000 40 53 push rbx 00002 48 83 ec 40 sub rsp, 64 ; 00000040H 00006 0f 29 74 24 30 movaps XMMWORD PTR [rsp+48], xmm6 0000b 48 8b d9 mov rbx, rcx 0000e 0f 28 f1 movaps xmm6, xmm1 00011 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__B5461FF6_linear@c 00018 0f c6 f6 00 shufps xmm6, xmm6, 0 0001c e8 00 00 00 00 call __CheckForDebuggerJustMyCode 00021 ba 10 00 00 00 mov edx, 16 00026 8b ca mov ecx, edx 00028 0f 11 74 24 20 movups XMMWORD PTR c$[rsp], xmm6 0002d ff 15 00 00 00 00 call QWORD PTR __imp__aligned_malloc 00033 48 85 c0 test rax, rax 00036 74 17 je SHORT $LN2@divps_cons ; 136 : ; 137 : float c[4] = { value, value, value, value }; ; 138 : __m128* ret = _aligned_malloc(sizeof(__m128), 16); ; 139 : ; 140 : __m128 valueVec = _mm_loadu_ps(&c); ; 141 : ; 142 : if (NULL != ret) ; 143 : { ; 144 : *ret = _mm_div_ps(*ptr, valueVec); 00038 0f 10 0b movups xmm1, XMMWORD PTR [rbx] 0003b 0f 10 c6 movups xmm0, xmm6 0003e 0f 5e ce divps xmm1, xmm6 00041 0f 11 08 movups XMMWORD PTR [rax], xmm1 ; 145 : return ret; ; 146 : } ; 147 : else ; 148 : { ; 149 : return -1; ; 150 : } ; 151 : } 00044 0f 28 74 24 30 movaps xmm6, XMMWORD PTR [rsp+48] 00049 48 83 c4 40 add rsp, 64 ; 00000040H 0004d 5b pop rbx 0004e c3 ret 0 $LN2@divps_cons: 0004f 0f 28 74 24 30 movaps xmm6, XMMWORD PTR [rsp+48] 00054 48 c7 c0 ff ff ff ff mov rax, -1 0005b 48 83 c4 40 add rsp, 64 ; 00000040H 0005f 5b pop rbx 00060 c3 ret 0 divps_const ENDP _TEXT ENDS ; Function compile flags: /Ogtpy ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgShqrpGraphic\linear.c ; COMDAT mulps_sum _TEXT SEGMENT ptr1$ = 48 ptr2$ = 56 mulps_sum PROC ; COMDAT ; 114 : { $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:__B5461FF6_linear@c 00017 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0001c 0f 10 03 movups xmm0, XMMWORD PTR [rbx] 0001f 0f 59 07 mulps xmm0, XMMWORD PTR [rdi] 00022 48 8b 5c 24 30 mov rbx, QWORD PTR [rsp+48] 00027 f2 0f 7c c0 haddps xmm0, xmm0 0002b f2 0f 7c c0 haddps xmm0, xmm0 ; 115 : __m128 ret = _mm_mul_ps(*ptr1,*ptr2); ; 116 : ret = _mm_hadd_ps(ret,ret); ; 117 : ret = _mm_hadd_ps(ret,ret); ; 118 : return *(float*)&ret; ; 119 : } 0002f 48 83 c4 20 add rsp, 32 ; 00000020H 00033 5f pop rdi 00034 c3 ret 0 mulps_sum ENDP _TEXT ENDS ; Function compile flags: /Ogtpy ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgShqrpGraphic\linear.c ; COMDAT mulps _TEXT SEGMENT ptr1$ = 48 ptr2$ = 56 mulps PROC ; COMDAT ; 99 : { $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:__B5461FF6_linear@c 00017 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0001c ba 10 00 00 00 mov edx, 16 00021 8b ca mov ecx, edx 00023 ff 15 00 00 00 00 call QWORD PTR __imp__aligned_malloc 00029 48 85 c0 test rax, rax 0002c 74 14 je SHORT $LN2@mulps ; 100 : __m128* ret = _aligned_malloc(sizeof(__m128), 16); ; 101 : ; 102 : if (NULL != ret) ; 103 : { ; 104 : *ret = _mm_mul_ps(*ptr1, *ptr2); 0002e 0f 10 07 movups xmm0, XMMWORD PTR [rdi] 00031 0f 59 03 mulps xmm0, XMMWORD PTR [rbx] 00034 0f 11 00 movups XMMWORD PTR [rax], xmm0 ; 105 : return ret; ; 106 : } ; 107 : else ; 108 : { ; 109 : return -1; ; 110 : } ; 111 : } 00037 48 8b 5c 24 30 mov rbx, QWORD PTR [rsp+48] 0003c 48 83 c4 20 add rsp, 32 ; 00000020H 00040 5f pop rdi 00041 c3 ret 0 $LN2@mulps: 00042 48 8b 5c 24 30 mov rbx, QWORD PTR [rsp+48] 00047 48 c7 c0 ff ff ff ff mov rax, -1 0004e 48 83 c4 20 add rsp, 32 ; 00000020H 00052 5f pop rdi 00053 c3 ret 0 mulps ENDP _TEXT ENDS ; Function compile flags: /Ogtpy ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgShqrpGraphic\linear.c ; COMDAT mulps_const _TEXT SEGMENT c$ = 32 ptr$ = 80 value$ = 88 mulps_const PROC ; COMDAT ; 81 : { $LN7: 00000 40 53 push rbx 00002 48 83 ec 40 sub rsp, 64 ; 00000040H 00006 0f 29 74 24 30 movaps XMMWORD PTR [rsp+48], xmm6 0000b 48 8b d9 mov rbx, rcx 0000e 0f 28 f1 movaps xmm6, xmm1 00011 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__B5461FF6_linear@c 00018 0f c6 f6 00 shufps xmm6, xmm6, 0 0001c e8 00 00 00 00 call __CheckForDebuggerJustMyCode 00021 ba 10 00 00 00 mov edx, 16 00026 8b ca mov ecx, edx 00028 0f 11 74 24 20 movups XMMWORD PTR c$[rsp], xmm6 0002d ff 15 00 00 00 00 call QWORD PTR __imp__aligned_malloc 00033 48 85 c0 test rax, rax 00036 74 14 je SHORT $LN2@mulps_cons ; 82 : float c[4] = { value, value, value, value }; ; 83 : __m128* ret = _aligned_malloc(sizeof(__m128),16); ; 84 : ; 85 : __m128 valueVec = _mm_loadu_ps(&c); ; 86 : ; 87 : if (NULL != ret) ; 88 : { ; 89 : *ret = _mm_mul_ps(*ptr,valueVec); 00038 0f 10 c6 movups xmm0, xmm6 0003b 0f 59 03 mulps xmm0, XMMWORD PTR [rbx] 0003e 0f 11 00 movups XMMWORD PTR [rax], xmm0 ; 90 : return ret; ; 91 : } ; 92 : else ; 93 : { ; 94 : return -1; ; 95 : } ; 96 : } 00041 0f 28 74 24 30 movaps xmm6, XMMWORD PTR [rsp+48] 00046 48 83 c4 40 add rsp, 64 ; 00000040H 0004a 5b pop rbx 0004b c3 ret 0 $LN2@mulps_cons: 0004c 0f 28 74 24 30 movaps xmm6, XMMWORD PTR [rsp+48] 00051 48 c7 c0 ff ff ff ff mov rax, -1 00058 48 83 c4 40 add rsp, 64 ; 00000040H 0005c 5b pop rbx 0005d c3 ret 0 mulps_const ENDP _TEXT ENDS ; Function compile flags: /Ogtpy ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgShqrpGraphic\linear.c ; COMDAT subps _TEXT SEGMENT ptr1$ = 48 ptr2$ = 56 subps PROC ; COMDAT ; 66 : { $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:__B5461FF6_linear@c 00017 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0001c ba 10 00 00 00 mov edx, 16 00021 8d 4a f8 lea ecx, QWORD PTR [rdx-8] 00024 ff 15 00 00 00 00 call QWORD PTR __imp__aligned_malloc 0002a 48 85 c0 test rax, rax 0002d 74 14 je SHORT $LN2@subps ; 67 : __m128* ret = _aligned_malloc(sizeof(__m128*), 16); ; 68 : ; 69 : if (NULL != ret) ; 70 : { ; 71 : *ret = _mm_sub_ps(*ptr1, *ptr2); 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 ; 72 : return ret; ; 73 : } ; 74 : else ; 75 : { ; 76 : return -1; ; 77 : } ; 78 : } 00038 48 8b 5c 24 30 mov rbx, QWORD PTR [rsp+48] 0003d 48 83 c4 20 add rsp, 32 ; 00000020H 00041 5f pop rdi 00042 c3 ret 0 $LN2@subps: 00043 48 8b 5c 24 30 mov rbx, QWORD PTR [rsp+48] 00048 48 c7 c0 ff ff ff ff mov rax, -1 0004f 48 83 c4 20 add rsp, 32 ; 00000020H 00053 5f pop rdi 00054 c3 ret 0 subps ENDP _TEXT ENDS ; Function compile flags: /Ogtpy ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgShqrpGraphic\linear.c ; COMDAT addps _TEXT SEGMENT ptr1$ = 48 ptr2$ = 56 addps PROC ; COMDAT ; 49 : { $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:__B5461FF6_linear@c 00017 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0001c ba 10 00 00 00 mov edx, 16 00021 8d 4a f8 lea ecx, QWORD PTR [rdx-8] 00024 ff 15 00 00 00 00 call QWORD PTR __imp__aligned_malloc 0002a 48 85 c0 test rax, rax 0002d 74 14 je SHORT $LN2@addps ; 50 : ; 51 : __m128* ret = _aligned_malloc(sizeof(__m128*),16); ; 52 : ; 53 : if (NULL != ret) ; 54 : { ; 55 : *ret = _mm_add_ps(*ptr1, *ptr2); 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 ; 56 : return ret; ; 57 : } ; 58 : else ; 59 : { ; 60 : return (__m128*) - 1; ; 61 : } ; 62 : ; 63 : } 00038 48 8b 5c 24 30 mov rbx, QWORD PTR [rsp+48] 0003d 48 83 c4 20 add rsp, 32 ; 00000020H 00041 5f pop rdi 00042 c3 ret 0 $LN2@addps: 00043 48 8b 5c 24 30 mov rbx, QWORD PTR [rsp+48] 00048 48 c7 c0 ff ff ff ff mov rax, -1 0004f 48 83 c4 20 add rsp, 32 ; 00000020H 00053 5f pop rdi 00054 c3 ret 0 addps ENDP _TEXT ENDS ; Function compile flags: /Ogtpy ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgShqrpGraphic\linear.c ; COMDAT load_cpy _TEXT SEGMENT ptr$ = 48 load_cpy PROC ; COMDAT ; 37 : { $LN7: 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:__B5461FF6_linear@c 00010 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 00015 ba 10 00 00 00 mov edx, 16 0001a 8d 4a f8 lea ecx, QWORD PTR [rdx-8] 0001d ff 15 00 00 00 00 call QWORD PTR __imp__aligned_malloc 00023 48 85 c0 test rax, rax 00026 74 06 je SHORT $LN4@load_cpy ; 38 : __m128* ret = _aligned_malloc(sizeof(__m128*),16); ; 39 : ; 40 : if (NULL != ret) ; 41 : { ; 42 : *ret = *ptr; 00028 0f 10 03 movups xmm0, XMMWORD PTR [rbx] 0002b 0f 11 00 movups XMMWORD PTR [rax], xmm0 $LN4@load_cpy: ; 43 : } ; 44 : ; 45 : return ret; ; 46 : } 0002e 48 83 c4 20 add rsp, 32 ; 00000020H 00032 5b pop rbx 00033 c3 ret 0 load_cpy ENDP _TEXT ENDS ; Function compile flags: /Ogtpy ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgShqrpGraphic\linear.c ; COMDAT load _TEXT SEGMENT array$ = 32 x$ = 128 y$ = 136 z$ = 144 w$ = 152 load PROC ; COMDAT ; 21 : { $LN7: 00000 48 83 ec 78 sub rsp, 120 ; 00000078H 00004 0f 29 74 24 60 movaps XMMWORD PTR [rsp+96], xmm6 00009 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__B5461FF6_linear@c 00010 0f 29 7c 24 50 movaps XMMWORD PTR [rsp+80], xmm7 00015 0f 28 f0 movaps xmm6, xmm0 00018 44 0f 29 44 24 40 movaps XMMWORD PTR [rsp+64], xmm8 0001e 0f 28 f9 movaps xmm7, xmm1 00021 44 0f 29 4c 24 30 movaps XMMWORD PTR [rsp+48], xmm9 00027 44 0f 28 c2 movaps xmm8, xmm2 0002b 44 0f 28 cb movaps xmm9, xmm3 0002f e8 00 00 00 00 call __CheckForDebuggerJustMyCode 00034 ba 10 00 00 00 mov edx, 16 00039 f3 0f 11 74 24 20 movss DWORD PTR array$[rsp], xmm6 0003f 8b ca mov ecx, edx 00041 f3 0f 11 7c 24 24 movss DWORD PTR array$[rsp+4], xmm7 00047 f3 44 0f 11 44 24 28 movss DWORD PTR array$[rsp+8], xmm8 0004e f3 44 0f 11 4c 24 2c movss DWORD PTR array$[rsp+12], xmm9 00055 ff 15 00 00 00 00 call QWORD PTR __imp__aligned_malloc 0005b 48 85 c0 test rax, rax 0005e 74 0a je SHORT $LN2@load ; 22 : float array[4] = {x,y,z,w}; ; 23 : __m128* ptr = _aligned_malloc(sizeof(__m128),16); ; 24 : ; 25 : if (NULL != ptr) ; 26 : { ; 27 : *ptr = _mm_loadu_ps(&array); 00060 0f 10 44 24 20 movups xmm0, XMMWORD PTR array$[rsp] 00065 0f 11 00 movups XMMWORD PTR [rax], xmm0 ; 28 : return ptr; 00068 eb 07 jmp SHORT $LN3@load $LN2@load: ; 29 : } ; 30 : else ; 31 : { ; 32 : return -1; 0006a 48 c7 c0 ff ff ff ff mov rax, -1 $LN3@load: ; 33 : } ; 34 : } 00071 0f 28 74 24 60 movaps xmm6, XMMWORD PTR [rsp+96] 00076 0f 28 7c 24 50 movaps xmm7, XMMWORD PTR [rsp+80] 0007b 44 0f 28 44 24 40 movaps xmm8, XMMWORD PTR [rsp+64] 00081 44 0f 28 4c 24 30 movaps xmm9, XMMWORD PTR [rsp+48] 00087 48 83 c4 78 add rsp, 120 ; 00000078H 0008b c3 ret 0 load ENDP _TEXT ENDS ; Function compile flags: /Ogtpy ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgShqrpGraphic\linear.c ; COMDAT mulps_total_internal _TEXT SEGMENT vec$ = 8 mulps_total_internal PROC ; COMDAT 00000 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__B5461FF6_linear@c 00007 e9 00 00 00 00 jmp __CheckForDebuggerJustMyCode mulps_total_internal ENDP _TEXT ENDS ; Function compile flags: /Ogtpy ; File D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgShqrpGraphic\linear.c ; COMDAT mulps_sum_internal _TEXT SEGMENT left$ = 48 right$ = 56 mulps_sum_internal PROC ; COMDAT ; 122 : { $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:__B5461FF6_linear@c 00017 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0001c 0f 10 03 movups xmm0, XMMWORD PTR [rbx] 0001f 0f 59 07 mulps xmm0, XMMWORD PTR [rdi] 00022 48 8b 5c 24 30 mov rbx, QWORD PTR [rsp+48] 00027 f2 0f 7c c0 haddps xmm0, xmm0 0002b f2 0f 7c c0 haddps xmm0, xmm0 ; 123 : __m128 ret = _mm_mul_ps(left, right); ; 124 : ret = _mm_hadd_ps(ret, ret); ; 125 : ret = _mm_hadd_ps(ret, ret); ; 126 : return *(float*)&ret; ; 127 : } 0002f 48 83 c4 20 add rsp, 32 ; 00000020H 00033 5f pop rdi 00034 c3 ret 0 mulps_sum_internal ENDP _TEXT ENDS END