daily update on 20230927 by nitload youmu, all polygon4 display available, optimizing on C/C# interoperation

This commit is contained in:
Nitload
2023-09-28 01:43:27 +08:00
parent 5d701bce0c
commit 6c3349f5a2
130 changed files with 3280 additions and 25074 deletions
@@ -1,138 +0,0 @@
; 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
__68875EC1_mat3@c DB 01H
msvcjmc ENDS
PUBLIC det_mat3_internal
PUBLIC __JustMyCode_Default
EXTRN __CheckForDebuggerJustMyCode:PROC
EXTRN _fltused:DWORD
; COMDAT pdata
pdata SEGMENT
$pdata$det_mat3_internal DD imagerel $LN4
DD imagerel $LN4+109
DD imagerel $unwind$det_mat3_internal
pdata ENDS
; COMDAT xdata
xdata SEGMENT
$unwind$det_mat3_internal DD 060f01H
DD 07640fH
DD 06340fH
DD 0700b320fH
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\mat3.c
; COMDAT det_mat3_internal
_TEXT SEGMENT
c0$ = 48
c1$ = 56
c2$ = 64
det_mat3_internal PROC ; COMDAT
; 5 : {
$LN4:
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 57 push rdi
0000b 48 83 ec 20 sub rsp, 32 ; 00000020H
0000f 48 8b f9 mov rdi, rcx
00012 49 8b f0 mov rsi, r8
00015 48 8d 0d 00 00
00 00 lea rcx, OFFSET FLAT:__68875EC1_mat3@c
0001c 48 8b da mov rbx, rdx
0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode
00024 0f 10 1b movups xmm3, XMMWORD PTR [rbx]
00027 0f 10 16 movups xmm2, XMMWORD PTR [rsi]
0002a 0f 28 e3 movaps xmm4, xmm3
0002d 48 8b 5c 24 30 mov rbx, QWORD PTR [rsp+48]
00032 0f 28 c2 movaps xmm0, xmm2
00035 48 8b 74 24 38 mov rsi, QWORD PTR [rsp+56]
0003a 0f c6 e3 c9 shufps xmm4, xmm3, 201 ; 000000c9H
0003e 0f 59 27 mulps xmm4, XMMWORD PTR [rdi]
00041 0f c6 c2 d2 shufps xmm0, xmm2, 210 ; 000000d2H
00045 0f c6 db d2 shufps xmm3, xmm3, 210 ; 000000d2H
00049 0f 59 1f mulps xmm3, XMMWORD PTR [rdi]
0004c 0f 59 e0 mulps xmm4, xmm0
0004f 0f c6 d2 c9 shufps xmm2, xmm2, 201 ; 000000c9H
00053 0f 59 da mulps xmm3, xmm2
00056 0f 5c e3 subps xmm4, xmm3
00059 0f 28 c4 movaps xmm0, xmm4
0005c f2 0f 7c c4 haddps xmm0, xmm4
00060 0f 58 c4 addps xmm0, xmm4
00063 0f c6 c0 aa shufps xmm0, xmm0, 170 ; 000000aaH
; 6 :
; 7 : //let adding row aligned
; 8 : __m128 addc1 = _mm_shuffle_ps(c1, c1, _MM_SHUFFLE(3, 0, 2, 1));
; 9 : __m128 addc2 = _mm_shuffle_ps(c2, c2, _MM_SHUFFLE(3, 1, 0, 2));
; 10 :
; 11 : //let sub row aligned
; 12 : __m128 subc1 = _mm_shuffle_ps(c1, c1, _MM_SHUFFLE(3, 1, 0, 2));
; 13 : __m128 subc2 = _mm_shuffle_ps(c2, c2, _MM_SHUFFLE(3, 0, 2, 1));
; 14 :
; 15 : //multple all add row
; 16 : __m128 cache = _mm_mul_ps(c0,addc1);
; 17 : cache = _mm_mul_ps(cache,addc2);
; 18 :
; 19 : //multiple all sub row
; 20 : __m128 sub = _mm_mul_ps(c0, subc1);
; 21 : sub = _mm_mul_ps(sub, subc2);
; 22 :
; 23 : //main-corner sub sub-corner
; 24 : cache = _mm_sub_ps(cache,sub);
; 25 :
; 26 : __m128 ret = _mm_hadd_ps(cache,cache); //element 1 add element 2
; 27 : ret = _mm_add_ps(ret, cache); //(e1 add e2) add element 3
; 28 :
; 29 :
; 30 : return ret.m128_f32[2];
; 31 : }
00067 48 83 c4 20 add rsp, 32 ; 00000020H
0006b 5f pop rdi
0006c c3 ret 0
det_mat3_internal ENDP
_TEXT ENDS
END