daily update on 20230927 by nitload youmu, all polygon4 display available, optimizing on C/C# interoperation
This commit is contained in:
@@ -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
|
||||
Reference in New Issue
Block a user