1181 lines
39 KiB
Plaintext
1181 lines
39 KiB
Plaintext
; 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
|
|
__6DC84844_mat4@c DB 01H
|
|
msvcjmc ENDS
|
|
PUBLIC add_mat4
|
|
PUBLIC sub_mat4
|
|
PUBLIC mul_const
|
|
PUBLIC mul_4_2
|
|
PUBLIC mul_4_4
|
|
PUBLIC transpose4to2
|
|
PUBLIC transpose4to4
|
|
PUBLIC det_mat4
|
|
PUBLIC deinit_mat4
|
|
PUBLIC transpose4to3
|
|
PUBLIC __JustMyCode_Default
|
|
PUBLIC __xmm@80000000800000008000000080000000
|
|
EXTRN __imp__aligned_free:PROC
|
|
EXTRN __imp__aligned_malloc:PROC
|
|
EXTRN mulps_sum_internal:PROC
|
|
EXTRN det_mat3_internal:PROC
|
|
EXTRN __CheckForDebuggerJustMyCode:PROC
|
|
EXTRN _fltused:DWORD
|
|
; COMDAT pdata
|
|
pdata SEGMENT
|
|
$pdata$add_mat4 DD imagerel $LN7
|
|
DD imagerel $LN7+103
|
|
DD imagerel $unwind$add_mat4
|
|
pdata ENDS
|
|
; COMDAT pdata
|
|
pdata SEGMENT
|
|
$pdata$sub_mat4 DD imagerel $LN7
|
|
DD imagerel $LN7+103
|
|
DD imagerel $unwind$sub_mat4
|
|
pdata ENDS
|
|
; COMDAT pdata
|
|
pdata SEGMENT
|
|
$pdata$mul_const DD imagerel $LN15
|
|
DD imagerel $LN15+110
|
|
DD imagerel $unwind$mul_const
|
|
pdata ENDS
|
|
; COMDAT pdata
|
|
pdata SEGMENT
|
|
$pdata$mul_4_2 DD imagerel $LN6
|
|
DD imagerel $LN6+87
|
|
DD imagerel $unwind$mul_4_2
|
|
pdata ENDS
|
|
; COMDAT pdata
|
|
pdata SEGMENT
|
|
$pdata$2$mul_4_2 DD imagerel $LN6+87
|
|
DD imagerel $LN6+374
|
|
DD imagerel $chain$2$mul_4_2
|
|
pdata ENDS
|
|
; COMDAT pdata
|
|
pdata SEGMENT
|
|
$pdata$3$mul_4_2 DD imagerel $LN6+374
|
|
DD imagerel $LN6+399
|
|
DD imagerel $chain$3$mul_4_2
|
|
pdata ENDS
|
|
; COMDAT pdata
|
|
pdata SEGMENT
|
|
$pdata$mul_4_4 DD imagerel $LN7
|
|
DD imagerel $LN7+87
|
|
DD imagerel $unwind$mul_4_4
|
|
pdata ENDS
|
|
; COMDAT pdata
|
|
pdata SEGMENT
|
|
$pdata$2$mul_4_4 DD imagerel $LN7+87
|
|
DD imagerel $LN7+631
|
|
DD imagerel $chain$2$mul_4_4
|
|
pdata ENDS
|
|
; COMDAT pdata
|
|
pdata SEGMENT
|
|
$pdata$3$mul_4_4 DD imagerel $LN7+631
|
|
DD imagerel $LN7+656
|
|
DD imagerel $chain$3$mul_4_4
|
|
pdata ENDS
|
|
; COMDAT pdata
|
|
pdata SEGMENT
|
|
$pdata$transpose4to2 DD imagerel $LN4
|
|
DD imagerel $LN4+80
|
|
DD imagerel $unwind$transpose4to2
|
|
pdata ENDS
|
|
; COMDAT pdata
|
|
pdata SEGMENT
|
|
$pdata$transpose4to4 DD imagerel $LN4
|
|
DD imagerel $LN4+113
|
|
DD imagerel $unwind$transpose4to4
|
|
pdata ENDS
|
|
; COMDAT pdata
|
|
pdata SEGMENT
|
|
$pdata$det_mat4 DD imagerel $LN4
|
|
DD imagerel $LN4+278
|
|
DD imagerel $unwind$det_mat4
|
|
pdata ENDS
|
|
; COMDAT pdata
|
|
pdata SEGMENT
|
|
$pdata$deinit_mat4 DD imagerel $LN4
|
|
DD imagerel $LN4+36
|
|
DD imagerel $unwind$deinit_mat4
|
|
pdata ENDS
|
|
; COMDAT pdata
|
|
pdata SEGMENT
|
|
$pdata$transpose4to3 DD imagerel $LN4
|
|
DD imagerel $LN4+112
|
|
DD imagerel $unwind$transpose4to3
|
|
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 xdata
|
|
xdata SEGMENT
|
|
$unwind$transpose4to3 DD 061201H
|
|
DD 026812H
|
|
DD 08340aH
|
|
DD 07006520aH
|
|
xdata ENDS
|
|
; COMDAT xdata
|
|
xdata SEGMENT
|
|
$unwind$deinit_mat4 DD 020601H
|
|
DD 030023206H
|
|
xdata ENDS
|
|
; COMDAT xdata
|
|
xdata SEGMENT
|
|
$unwind$det_mat4 DD 0d2e01H
|
|
DD 0e882eH
|
|
DD 0f7822H
|
|
DD 010681bH
|
|
DD 0257417H
|
|
DD 0243417H
|
|
DD 0220117H
|
|
DD 0500cH
|
|
xdata ENDS
|
|
; COMDAT xdata
|
|
xdata SEGMENT
|
|
$unwind$transpose4to4 DD 040a01H
|
|
DD 06340aH
|
|
DD 07006320aH
|
|
xdata ENDS
|
|
; COMDAT xdata
|
|
xdata SEGMENT
|
|
$unwind$transpose4to2 DD 040a01H
|
|
DD 06340aH
|
|
DD 07006320aH
|
|
xdata ENDS
|
|
; COMDAT xdata
|
|
xdata SEGMENT
|
|
$chain$3$mul_4_4 DD 021H
|
|
DD imagerel $LN7
|
|
DD imagerel $LN7+87
|
|
DD imagerel $unwind$mul_4_4
|
|
xdata ENDS
|
|
; COMDAT xdata
|
|
xdata SEGMENT
|
|
$chain$2$mul_4_4 DD 064021H
|
|
DD 0a8840H
|
|
DD 0b7833H
|
|
DD 0c6808H
|
|
DD imagerel $LN7
|
|
DD imagerel $LN7+87
|
|
DD imagerel $unwind$mul_4_4
|
|
xdata ENDS
|
|
; COMDAT xdata
|
|
xdata SEGMENT
|
|
$unwind$mul_4_4 DD 091c01H
|
|
DD 01e741cH
|
|
DD 01d641cH
|
|
DD 01c341cH
|
|
DD 01a011cH
|
|
DD 05010H
|
|
xdata ENDS
|
|
; COMDAT xdata
|
|
xdata SEGMENT
|
|
$chain$3$mul_4_2 DD 021H
|
|
DD imagerel $LN6
|
|
DD imagerel $LN6+87
|
|
DD imagerel $unwind$mul_4_2
|
|
xdata ENDS
|
|
; COMDAT xdata
|
|
xdata SEGMENT
|
|
$chain$2$mul_4_2 DD 064021H
|
|
DD 0a8840H
|
|
DD 0b7833H
|
|
DD 0c6808H
|
|
DD imagerel $LN6
|
|
DD imagerel $LN6+87
|
|
DD imagerel $unwind$mul_4_2
|
|
xdata ENDS
|
|
; COMDAT xdata
|
|
xdata SEGMENT
|
|
$unwind$mul_4_2 DD 091c01H
|
|
DD 01e741cH
|
|
DD 01d641cH
|
|
DD 01c341cH
|
|
DD 01a011cH
|
|
DD 05010H
|
|
xdata ENDS
|
|
; COMDAT xdata
|
|
xdata SEGMENT
|
|
$unwind$mul_const DD 040b01H
|
|
DD 03680bH
|
|
DD 030027206H
|
|
xdata ENDS
|
|
; COMDAT xdata
|
|
xdata SEGMENT
|
|
$unwind$sub_mat4 DD 040a01H
|
|
DD 06340aH
|
|
DD 07006320aH
|
|
xdata ENDS
|
|
; COMDAT xdata
|
|
xdata SEGMENT
|
|
$unwind$add_mat4 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\mat4.c
|
|
; COMDAT transpose4to3
|
|
_TEXT SEGMENT
|
|
source$ = 64
|
|
target$ = 72
|
|
transpose4to3 PROC ; COMDAT
|
|
|
|
; 134 : {
|
|
|
|
$LN4:
|
|
00000 48 89 5c 24 08 mov QWORD PTR [rsp+8], rbx
|
|
00005 57 push rdi
|
|
00006 48 83 ec 30 sub rsp, 48 ; 00000030H
|
|
0000a 48 8b d9 mov rbx, rcx
|
|
0000d 0f 29 74 24 20 movaps XMMWORD PTR [rsp+32], xmm6
|
|
00012 48 8d 0d 00 00
|
|
00 00 lea rcx, OFFSET FLAT:__6DC84844_mat4@c
|
|
00019 48 8b fa mov rdi, rdx
|
|
0001c e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
00021 0f 10 33 movups xmm6, XMMWORD PTR [rbx]
|
|
00024 0f 10 63 10 movups xmm4, XMMWORD PTR [rbx+16]
|
|
00028 0f 10 6b 20 movups xmm5, XMMWORD PTR [rbx+32]
|
|
0002c 0f 10 5b 30 movups xmm3, XMMWORD PTR [rbx+48]
|
|
00030 48 8b 5c 24 40 mov rbx, QWORD PTR [rsp+64]
|
|
00035 0f 28 d6 movaps xmm2, xmm6
|
|
00038 0f 28 cd movaps xmm1, xmm5
|
|
0003b 0f c6 d4 44 shufps xmm2, xmm4, 68 ; 00000044H
|
|
0003f 0f c6 f4 ee shufps xmm6, xmm4, 238 ; 000000eeH
|
|
00043 0f 28 c2 movaps xmm0, xmm2
|
|
00046 0f c6 cb 44 shufps xmm1, xmm3, 68 ; 00000044H
|
|
0004a 0f c6 eb ee shufps xmm5, xmm3, 238 ; 000000eeH
|
|
0004e 0f c6 f5 88 shufps xmm6, xmm5, 136 ; 00000088H
|
|
00052 0f c6 c1 88 shufps xmm0, xmm1, 136 ; 00000088H
|
|
00056 0f c6 d1 dd shufps xmm2, xmm1, 221 ; 000000ddH
|
|
0005a 0f 11 77 20 movups XMMWORD PTR [rdi+32], xmm6
|
|
0005e 0f 28 74 24 20 movaps xmm6, XMMWORD PTR [rsp+32]
|
|
00063 0f 11 07 movups XMMWORD PTR [rdi], xmm0
|
|
00066 0f 11 57 10 movups XMMWORD PTR [rdi+16], xmm2
|
|
|
|
; 135 : __m128 t0 = _mm_shuffle_ps(ALIGN(source->colum[0]), ALIGN(source->colum[1]), _MM_SHUFFLE(1, 0, 1, 0));
|
|
; 136 : __m128 t1 = _mm_shuffle_ps(ALIGN(source->colum[0]), ALIGN(source->colum[1]), _MM_SHUFFLE(3, 2, 3, 2));
|
|
; 137 : __m128 t2 = _mm_shuffle_ps(ALIGN(source->colum[2]), ALIGN(source->colum[3]), _MM_SHUFFLE(1, 0, 1, 0));
|
|
; 138 : __m128 t3 = _mm_shuffle_ps(ALIGN(source->colum[2]), ALIGN(source->colum[3]), _MM_SHUFFLE(3, 2, 3, 2));
|
|
; 139 :
|
|
; 140 : target->colum[0] = _mm_shuffle_ps(t0, t2, _MM_SHUFFLE(2, 0, 2, 0));
|
|
; 141 : target->colum[1] = _mm_shuffle_ps(t0, t2, _MM_SHUFFLE(3, 1, 3, 1));
|
|
; 142 : target->colum[2] = _mm_shuffle_ps(t1, t3, _MM_SHUFFLE(2, 0, 2, 0));
|
|
; 143 :
|
|
; 144 : }
|
|
|
|
0006a 48 83 c4 30 add rsp, 48 ; 00000030H
|
|
0006e 5f pop rdi
|
|
0006f c3 ret 0
|
|
transpose4to3 ENDP
|
|
_TEXT ENDS
|
|
; Function compile flags: /Ogtpy
|
|
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgShqrpGraphic\mat4.c
|
|
; COMDAT deinit_mat4
|
|
_TEXT SEGMENT
|
|
matPtr$ = 48
|
|
deinit_mat4 PROC ; COMDAT
|
|
|
|
; 169 : {
|
|
|
|
$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:__6DC84844_mat4@c
|
|
00010 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
00015 48 8b cb mov rcx, rbx
|
|
|
|
; 170 : _aligned_free(matPtr);
|
|
; 171 : }
|
|
|
|
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_mat4 ENDP
|
|
_TEXT ENDS
|
|
; Function compile flags: /Ogtpy
|
|
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgShqrpGraphic\mat4.c
|
|
; COMDAT det_mat4
|
|
_TEXT SEGMENT
|
|
$T1 = 32
|
|
$T2 = 48
|
|
$T3 = 64
|
|
$T4 = 80
|
|
$T5 = 96
|
|
$T6 = 112
|
|
$T7 = 128
|
|
$T8 = 144
|
|
$T9 = 160
|
|
$T10 = 176
|
|
$T11 = 192
|
|
$T12 = 208
|
|
matPtr$ = 288
|
|
transpose$ = 296
|
|
det_mat4 PROC ; COMDAT
|
|
|
|
; 149 : {
|
|
|
|
$LN4:
|
|
00000 48 8b c4 mov rax, rsp
|
|
00003 48 89 58 08 mov QWORD PTR [rax+8], rbx
|
|
00007 48 89 78 10 mov QWORD PTR [rax+16], rdi
|
|
0000b 55 push rbp
|
|
0000c 48 8d 68 e8 lea rbp, QWORD PTR [rax-24]
|
|
00010 48 81 ec 10 01
|
|
00 00 sub rsp, 272 ; 00000110H
|
|
00017 0f 29 70 e8 movaps XMMWORD PTR [rax-24], xmm6
|
|
0001b 48 8b d9 mov rbx, rcx
|
|
0001e 0f 29 78 d8 movaps XMMWORD PTR [rax-40], xmm7
|
|
00022 48 8d 0d 00 00
|
|
00 00 lea rcx, OFFSET FLAT:__6DC84844_mat4@c
|
|
00029 44 0f 29 40 c8 movaps XMMWORD PTR [rax-56], xmm8
|
|
0002e 48 8b fa mov rdi, rdx
|
|
00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
00036 0f 10 1b movups xmm3, XMMWORD PTR [rbx]
|
|
00039 4c 8d 44 24 20 lea r8, QWORD PTR $T1[rsp]
|
|
0003e 0f 10 53 10 movups xmm2, XMMWORD PTR [rbx+16]
|
|
00042 48 8d 54 24 30 lea rdx, QWORD PTR $T2[rsp]
|
|
00047 0f 10 4b 20 movups xmm1, XMMWORD PTR [rbx+32]
|
|
0004b 48 8d 4c 24 40 lea rcx, QWORD PTR $T3[rsp]
|
|
00050 0f 10 43 30 movups xmm0, XMMWORD PTR [rbx+48]
|
|
00054 0f 29 4d c0 movaps XMMWORD PTR $T11[rbp-256], xmm1
|
|
00058 0f 29 45 b0 movaps XMMWORD PTR $T10[rbp-256], xmm0
|
|
0005c 0f 29 55 d0 movaps XMMWORD PTR $T12[rbp-256], xmm2
|
|
00060 0f 29 45 80 movaps XMMWORD PTR $T7[rbp-256], xmm0
|
|
00064 0f 29 4d 90 movaps XMMWORD PTR $T8[rbp-256], xmm1
|
|
00068 0f 29 5d a0 movaps XMMWORD PTR $T9[rbp-256], xmm3
|
|
0006c 0f 29 44 24 50 movaps XMMWORD PTR $T4[rsp], xmm0
|
|
00071 0f 29 54 24 60 movaps XMMWORD PTR $T5[rsp], xmm2
|
|
00076 0f 29 5c 24 70 movaps XMMWORD PTR $T6[rsp], xmm3
|
|
0007b 0f 29 4c 24 20 movaps XMMWORD PTR $T1[rsp], xmm1
|
|
00080 0f 29 54 24 30 movaps XMMWORD PTR $T2[rsp], xmm2
|
|
00085 0f 29 5c 24 40 movaps XMMWORD PTR $T3[rsp], xmm3
|
|
0008a e8 00 00 00 00 call det_mat3_internal
|
|
0008f 4c 8d 44 24 50 lea r8, QWORD PTR $T4[rsp]
|
|
00094 44 0f 28 c0 movaps xmm8, xmm0
|
|
00098 48 8d 54 24 60 lea rdx, QWORD PTR $T5[rsp]
|
|
0009d 48 8d 4c 24 70 lea rcx, QWORD PTR $T6[rsp]
|
|
000a2 e8 00 00 00 00 call det_mat3_internal
|
|
000a7 4c 8d 45 80 lea r8, QWORD PTR $T7[rbp-256]
|
|
000ab 0f 28 f8 movaps xmm7, xmm0
|
|
000ae 48 8d 55 90 lea rdx, QWORD PTR $T8[rbp-256]
|
|
000b2 48 8d 4d a0 lea rcx, QWORD PTR $T9[rbp-256]
|
|
000b6 e8 00 00 00 00 call det_mat3_internal
|
|
000bb 4c 8d 45 b0 lea r8, QWORD PTR $T10[rbp-256]
|
|
000bf 0f 28 f0 movaps xmm6, xmm0
|
|
000c2 48 8d 55 c0 lea rdx, QWORD PTR $T11[rbp-256]
|
|
000c6 48 8d 4d d0 lea rcx, QWORD PTR $T12[rbp-256]
|
|
000ca e8 00 00 00 00 call det_mat3_internal
|
|
000cf 0f 10 4f 30 movups xmm1, XMMWORD PTR [rdi+48]
|
|
000d3 4c 8d 9c 24 10
|
|
01 00 00 lea r11, QWORD PTR [rsp+272]
|
|
000db 0f 14 c6 unpcklps xmm0, xmm6
|
|
000de 49 8b 5b 10 mov rbx, QWORD PTR [r11+16]
|
|
000e2 49 8b 7b 18 mov rdi, QWORD PTR [r11+24]
|
|
000e6 41 0f 28 73 f0 movaps xmm6, XMMWORD PTR [r11-16]
|
|
000eb 41 0f 14 f8 unpcklps xmm7, xmm8
|
|
000ef 45 0f 28 43 d0 movaps xmm8, XMMWORD PTR [r11-48]
|
|
000f4 0f 16 c7 movlhps xmm0, xmm7
|
|
000f7 41 0f 28 7b e0 movaps xmm7, XMMWORD PTR [r11-32]
|
|
000fc 0f 59 c8 mulps xmm1, xmm0
|
|
000ff f2 0f 7d c9 hsubps xmm1, xmm1
|
|
00103 f2 0f 7c c9 haddps xmm1, xmm1
|
|
00107 0f 57 0d 00 00
|
|
00 00 xorps xmm1, DWORD PTR __xmm@80000000800000008000000080000000
|
|
0010e 0f 28 c1 movaps xmm0, xmm1
|
|
|
|
; 150 : __m128 mc0 = ALIGN(matPtr->colum[0]);
|
|
; 151 : __m128 mc1 = ALIGN(matPtr->colum[1]);
|
|
; 152 : __m128 mc2 = ALIGN(matPtr->colum[2]);
|
|
; 153 : __m128 mc3 = ALIGN(matPtr->colum[3]);
|
|
; 154 :
|
|
; 155 : __m128 cogeneration = _mm_set_ps(
|
|
; 156 : det_mat3_internal(mc0, mc1, mc2),
|
|
; 157 : det_mat3_internal(mc0, mc1, mc3),
|
|
; 158 : det_mat3_internal(mc0, mc2, mc3),
|
|
; 159 : det_mat3_internal(mc1, mc2, mc3)
|
|
; 160 : );
|
|
; 161 : __m128 retvec = _mm_mul_ps(ALIGN(transpose->colum[3]),cogeneration);
|
|
; 162 : retvec = _mm_hsub_ps(retvec,retvec);
|
|
; 163 : retvec = _mm_hadd_ps(retvec,retvec);
|
|
; 164 : return -retvec.m128_f32[0];
|
|
; 165 :
|
|
; 166 : }
|
|
|
|
00111 49 8b e3 mov rsp, r11
|
|
00114 5d pop rbp
|
|
00115 c3 ret 0
|
|
det_mat4 ENDP
|
|
_TEXT ENDS
|
|
; Function compile flags: /Ogtpy
|
|
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgShqrpGraphic\mat4.c
|
|
; COMDAT transpose4to4
|
|
_TEXT SEGMENT
|
|
source$ = 48
|
|
target$ = 56
|
|
transpose4to4 PROC ; COMDAT
|
|
|
|
; 120 : {
|
|
|
|
$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:__6DC84844_mat4@c
|
|
00017 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0001c 0f 10 43 10 movups xmm0, XMMWORD PTR [rbx+16]
|
|
00020 0f 10 23 movups xmm4, XMMWORD PTR [rbx]
|
|
00023 0f 10 53 20 movups xmm2, XMMWORD PTR [rbx+32]
|
|
00027 0f 28 dc movaps xmm3, xmm4
|
|
0002a 0f c6 e0 ee shufps xmm4, xmm0, 238 ; 000000eeH
|
|
0002e 0f c6 d8 44 shufps xmm3, xmm0, 68 ; 00000044H
|
|
00032 0f 28 ca movaps xmm1, xmm2
|
|
00035 0f 10 43 30 movups xmm0, XMMWORD PTR [rbx+48]
|
|
00039 48 8b 5c 24 30 mov rbx, QWORD PTR [rsp+48]
|
|
0003e 0f c6 c8 44 shufps xmm1, xmm0, 68 ; 00000044H
|
|
00042 0f c6 d0 ee shufps xmm2, xmm0, 238 ; 000000eeH
|
|
00046 0f 28 c3 movaps xmm0, xmm3
|
|
00049 0f c6 c1 88 shufps xmm0, xmm1, 136 ; 00000088H
|
|
0004d 0f 11 07 movups XMMWORD PTR [rdi], xmm0
|
|
00050 0f 28 c4 movaps xmm0, xmm4
|
|
00053 0f c6 c2 88 shufps xmm0, xmm2, 136 ; 00000088H
|
|
00057 0f c6 d9 dd shufps xmm3, xmm1, 221 ; 000000ddH
|
|
0005b 0f c6 e2 dd shufps xmm4, xmm2, 221 ; 000000ddH
|
|
0005f 0f 11 47 20 movups XMMWORD PTR [rdi+32], xmm0
|
|
00063 0f 11 5f 10 movups XMMWORD PTR [rdi+16], xmm3
|
|
00067 0f 11 67 30 movups XMMWORD PTR [rdi+48], xmm4
|
|
|
|
; 121 : __m128 t0 = _mm_shuffle_ps(ALIGN(source->colum[0]), ALIGN(source->colum[1]), _MM_SHUFFLE(1, 0, 1, 0));
|
|
; 122 : __m128 t1 = _mm_shuffle_ps(ALIGN(source->colum[0]), ALIGN(source->colum[1]), _MM_SHUFFLE(3, 2, 3, 2));
|
|
; 123 : __m128 t2 = _mm_shuffle_ps(ALIGN(source->colum[2]), ALIGN(source->colum[3]), _MM_SHUFFLE(1, 0, 1, 0));
|
|
; 124 : __m128 t3 = _mm_shuffle_ps(ALIGN(source->colum[2]), ALIGN(source->colum[3]), _MM_SHUFFLE(3, 2, 3, 2));
|
|
; 125 :
|
|
; 126 : target->colum[0] = _mm_shuffle_ps(t0, t2, _MM_SHUFFLE(2, 0, 2, 0));
|
|
; 127 : target->colum[1] = _mm_shuffle_ps(t0, t2, _MM_SHUFFLE(3, 1, 3, 1));
|
|
; 128 : target->colum[2] = _mm_shuffle_ps(t1, t3, _MM_SHUFFLE(2, 0, 2, 0));
|
|
; 129 : target->colum[3] = _mm_shuffle_ps(t1, t3, _MM_SHUFFLE(3, 1, 3, 1));
|
|
; 130 :
|
|
; 131 : }
|
|
|
|
0006b 48 83 c4 20 add rsp, 32 ; 00000020H
|
|
0006f 5f pop rdi
|
|
00070 c3 ret 0
|
|
transpose4to4 ENDP
|
|
_TEXT ENDS
|
|
; Function compile flags: /Ogtpy
|
|
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgShqrpGraphic\mat4.c
|
|
; COMDAT transpose4to2
|
|
_TEXT SEGMENT
|
|
source$ = 48
|
|
target$ = 56
|
|
transpose4to2 PROC ; COMDAT
|
|
|
|
; 111 : {
|
|
|
|
$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:__6DC84844_mat4@c
|
|
00017 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0001c 0f 10 43 10 movups xmm0, XMMWORD PTR [rbx+16]
|
|
00020 0f 10 13 movups xmm2, XMMWORD PTR [rbx]
|
|
00023 0f 10 4b 20 movups xmm1, XMMWORD PTR [rbx+32]
|
|
00027 0f c6 d0 44 shufps xmm2, xmm0, 68 ; 00000044H
|
|
0002b 0f 10 43 30 movups xmm0, XMMWORD PTR [rbx+48]
|
|
0002f 48 8b 5c 24 30 mov rbx, QWORD PTR [rsp+48]
|
|
00034 0f c6 c8 44 shufps xmm1, xmm0, 68 ; 00000044H
|
|
00038 0f 28 c2 movaps xmm0, xmm2
|
|
0003b 0f c6 c1 88 shufps xmm0, xmm1, 136 ; 00000088H
|
|
0003f 0f c6 d1 dd shufps xmm2, xmm1, 221 ; 000000ddH
|
|
00043 0f 11 07 movups XMMWORD PTR [rdi], xmm0
|
|
00046 0f 11 57 10 movups XMMWORD PTR [rdi+16], xmm2
|
|
|
|
; 112 : __m128 t0 = _mm_shuffle_ps(ALIGN(source->colum[0]), ALIGN(source->colum[1]), _MM_SHUFFLE(1, 0, 1, 0));
|
|
; 113 : __m128 t2 = _mm_shuffle_ps(ALIGN(source->colum[2]), ALIGN(source->colum[3]), _MM_SHUFFLE(1, 0, 1, 0));
|
|
; 114 :
|
|
; 115 : target->colum[0] = _mm_shuffle_ps(t0, t2, _MM_SHUFFLE(2, 0, 2, 0));
|
|
; 116 : target->colum[1] = _mm_shuffle_ps(t0, t2, _MM_SHUFFLE(3, 1, 3, 1));
|
|
; 117 : }
|
|
|
|
0004a 48 83 c4 20 add rsp, 32 ; 00000020H
|
|
0004e 5f pop rdi
|
|
0004f c3 ret 0
|
|
transpose4to2 ENDP
|
|
_TEXT ENDS
|
|
; Function compile flags: /Ogtpy
|
|
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgShqrpGraphic\mat4.c
|
|
; COMDAT mul_4_4
|
|
_TEXT SEGMENT
|
|
$T1 = 32
|
|
$T2 = 32
|
|
$T3 = 32
|
|
$T4 = 32
|
|
$T5 = 48
|
|
$T6 = 48
|
|
$T7 = 48
|
|
$T8 = 48
|
|
$T9 = 64
|
|
$T10 = 64
|
|
$T11 = 64
|
|
$T12 = 64
|
|
$T13 = 80
|
|
$T14 = 80
|
|
$T15 = 80
|
|
$T16 = 80
|
|
$T17 = 96
|
|
$T18 = 96
|
|
$T19 = 96
|
|
$T20 = 96
|
|
$T21 = 112
|
|
$T22 = 112
|
|
$T23 = 112
|
|
$T24 = 112
|
|
$T25 = 128
|
|
$T26 = 128
|
|
$T27 = 128
|
|
$T28 = 128
|
|
$T29 = 144
|
|
$T30 = 144
|
|
$T31 = 144
|
|
$T32 = 144
|
|
left$ = 224
|
|
right$ = 232
|
|
mul_4_4 PROC ; COMDAT
|
|
|
|
; 78 : {
|
|
|
|
$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 55 push rbp
|
|
00010 48 8d 6c 24 a9 lea rbp, QWORD PTR [rsp-87]
|
|
00015 48 81 ec d0 00
|
|
00 00 sub rsp, 208 ; 000000d0H
|
|
0001c 48 8b f9 mov rdi, rcx
|
|
0001f 48 8b f2 mov rsi, rdx
|
|
00022 48 8d 0d 00 00
|
|
00 00 lea rcx, OFFSET FLAT:__6DC84844_mat4@c
|
|
00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0002e ba 10 00 00 00 mov edx, 16
|
|
00033 8d 4a 30 lea ecx, QWORD PTR [rdx+48]
|
|
00036 ff 15 00 00 00
|
|
00 call QWORD PTR __imp__aligned_malloc
|
|
0003c 48 8b d8 mov rbx, rax
|
|
0003f 48 85 c0 test rax, rax
|
|
00042 0f 84 2f 02 00
|
|
00 je $LN2@mul_4_4
|
|
|
|
; 79 : matrix4map* retPtr = _aligned_malloc(sizeof(matrix4map), 16);
|
|
; 80 : if (NULL != retPtr)
|
|
; 81 : {
|
|
; 82 : retPtr->colum[0] = _mm_set_ps(
|
|
|
|
00048 0f 10 0e movups xmm1, XMMWORD PTR [rsi]
|
|
0004b 48 8d 55 a7 lea rdx, QWORD PTR $T4[rbp-121]
|
|
0004f 0f 10 47 30 movups xmm0, XMMWORD PTR [rdi+48]
|
|
00053 48 8d 4d b7 lea rcx, QWORD PTR $T8[rbp-121]
|
|
00057 0f 29 b4 24 c0
|
|
00 00 00 movaps XMMWORD PTR [rsp+192], xmm6
|
|
0005f 0f 11 45 17 movups XMMWORD PTR $T32[rbp-121], xmm0
|
|
00063 0f 10 47 20 movups xmm0, XMMWORD PTR [rdi+32]
|
|
00067 0f 29 4d 07 movaps XMMWORD PTR $T28[rbp-121], xmm1
|
|
0006b 0f 11 45 f7 movups XMMWORD PTR $T24[rbp-121], xmm0
|
|
0006f 0f 10 47 10 movups xmm0, XMMWORD PTR [rdi+16]
|
|
00073 0f 29 4d e7 movaps XMMWORD PTR $T20[rbp-121], xmm1
|
|
00077 0f 29 4d c7 movaps XMMWORD PTR $T12[rbp-121], xmm1
|
|
0007b 0f 29 4d a7 movaps XMMWORD PTR $T4[rbp-121], xmm1
|
|
0007f 0f 10 0f movups xmm1, XMMWORD PTR [rdi]
|
|
00082 0f 29 bc 24 b0
|
|
00 00 00 movaps XMMWORD PTR [rsp+176], xmm7
|
|
0008a 0f 11 45 d7 movups XMMWORD PTR $T16[rbp-121], xmm0
|
|
0008e 44 0f 29 84 24
|
|
a0 00 00 00 movaps XMMWORD PTR [rsp+160], xmm8
|
|
00097 0f 11 4d b7 movups XMMWORD PTR $T8[rbp-121], xmm1
|
|
0009b e8 00 00 00 00 call mulps_sum_internal
|
|
000a0 48 8d 55 c7 lea rdx, QWORD PTR $T12[rbp-121]
|
|
000a4 44 0f 28 c0 movaps xmm8, xmm0
|
|
000a8 48 8d 4d d7 lea rcx, QWORD PTR $T16[rbp-121]
|
|
000ac e8 00 00 00 00 call mulps_sum_internal
|
|
000b1 48 8d 55 e7 lea rdx, QWORD PTR $T20[rbp-121]
|
|
000b5 0f 28 f8 movaps xmm7, xmm0
|
|
000b8 48 8d 4d f7 lea rcx, QWORD PTR $T24[rbp-121]
|
|
000bc e8 00 00 00 00 call mulps_sum_internal
|
|
000c1 48 8d 55 07 lea rdx, QWORD PTR $T28[rbp-121]
|
|
000c5 0f 28 f0 movaps xmm6, xmm0
|
|
000c8 48 8d 4d 17 lea rcx, QWORD PTR $T32[rbp-121]
|
|
000cc e8 00 00 00 00 call mulps_sum_internal
|
|
000d1 0f 14 c6 unpcklps xmm0, xmm6
|
|
|
|
; 83 : mulps_sum_internal(ALIGN(left->colum[0]), ALIGN(right->colum[0])),
|
|
; 84 : mulps_sum_internal(ALIGN(left->colum[1]), ALIGN(right->colum[0])),
|
|
; 85 : mulps_sum_internal(ALIGN(left->colum[2]), ALIGN(right->colum[0])),
|
|
; 86 : mulps_sum_internal(ALIGN(left->colum[3]), ALIGN(right->colum[0]))
|
|
; 87 : );
|
|
; 88 : retPtr->colum[1] = _mm_set_ps(
|
|
|
|
000d4 48 8d 55 17 lea rdx, QWORD PTR $T31[rbp-121]
|
|
000d8 41 0f 14 f8 unpcklps xmm7, xmm8
|
|
000dc 48 8d 4d 07 lea rcx, QWORD PTR $T27[rbp-121]
|
|
000e0 0f 16 c7 movlhps xmm0, xmm7
|
|
000e3 0f 11 03 movups XMMWORD PTR [rbx], xmm0
|
|
000e6 0f 10 56 10 movups xmm2, XMMWORD PTR [rsi+16]
|
|
000ea 0f 10 47 30 movups xmm0, XMMWORD PTR [rdi+48]
|
|
000ee 0f 10 4f 20 movups xmm1, XMMWORD PTR [rdi+32]
|
|
000f2 0f 11 45 a7 movups XMMWORD PTR $T3[rbp-121], xmm0
|
|
000f6 0f 10 47 10 movups xmm0, XMMWORD PTR [rdi+16]
|
|
000fa 0f 11 4d c7 movups XMMWORD PTR $T11[rbp-121], xmm1
|
|
000fe 0f 10 0f movups xmm1, XMMWORD PTR [rdi]
|
|
00101 0f 11 45 e7 movups XMMWORD PTR $T19[rbp-121], xmm0
|
|
00105 0f 11 4d 07 movups XMMWORD PTR $T27[rbp-121], xmm1
|
|
00109 0f 29 55 b7 movaps XMMWORD PTR $T7[rbp-121], xmm2
|
|
0010d 0f 29 55 d7 movaps XMMWORD PTR $T15[rbp-121], xmm2
|
|
00111 0f 29 55 f7 movaps XMMWORD PTR $T23[rbp-121], xmm2
|
|
00115 0f 29 55 17 movaps XMMWORD PTR $T31[rbp-121], xmm2
|
|
00119 e8 00 00 00 00 call mulps_sum_internal
|
|
0011e 48 8d 55 f7 lea rdx, QWORD PTR $T23[rbp-121]
|
|
00122 44 0f 28 c0 movaps xmm8, xmm0
|
|
00126 48 8d 4d e7 lea rcx, QWORD PTR $T19[rbp-121]
|
|
0012a e8 00 00 00 00 call mulps_sum_internal
|
|
0012f 48 8d 55 d7 lea rdx, QWORD PTR $T15[rbp-121]
|
|
00133 0f 28 f8 movaps xmm7, xmm0
|
|
00136 48 8d 4d c7 lea rcx, QWORD PTR $T11[rbp-121]
|
|
0013a e8 00 00 00 00 call mulps_sum_internal
|
|
0013f 48 8d 55 b7 lea rdx, QWORD PTR $T7[rbp-121]
|
|
00143 0f 28 f0 movaps xmm6, xmm0
|
|
00146 48 8d 4d a7 lea rcx, QWORD PTR $T3[rbp-121]
|
|
0014a e8 00 00 00 00 call mulps_sum_internal
|
|
0014f 0f 14 c6 unpcklps xmm0, xmm6
|
|
|
|
; 89 : mulps_sum_internal(ALIGN(left->colum[0]), ALIGN(right->colum[1])),
|
|
; 90 : mulps_sum_internal(ALIGN(left->colum[1]), ALIGN(right->colum[1])),
|
|
; 91 : mulps_sum_internal(ALIGN(left->colum[2]), ALIGN(right->colum[1])),
|
|
; 92 : mulps_sum_internal(ALIGN(left->colum[3]), ALIGN(right->colum[1]))
|
|
; 93 : );
|
|
; 94 : retPtr->colum[1] = _mm_set_ps(
|
|
|
|
00152 48 8d 55 17 lea rdx, QWORD PTR $T30[rbp-121]
|
|
00156 41 0f 14 f8 unpcklps xmm7, xmm8
|
|
0015a 0f 16 c7 movlhps xmm0, xmm7
|
|
0015d 0f 11 43 10 movups XMMWORD PTR [rbx+16], xmm0
|
|
00161 0f 10 56 20 movups xmm2, XMMWORD PTR [rsi+32]
|
|
00165 0f 10 47 30 movups xmm0, XMMWORD PTR [rdi+48]
|
|
00169 0f 10 4f 20 movups xmm1, XMMWORD PTR [rdi+32]
|
|
0016d 0f 11 45 a7 movups XMMWORD PTR $T2[rbp-121], xmm0
|
|
00171 0f 10 47 10 movups xmm0, XMMWORD PTR [rdi+16]
|
|
00175 0f 11 4d c7 movups XMMWORD PTR $T10[rbp-121], xmm1
|
|
00179 0f 10 0f movups xmm1, XMMWORD PTR [rdi]
|
|
0017c 0f 11 45 e7 movups XMMWORD PTR $T18[rbp-121], xmm0
|
|
00180 0f 11 4d 07 movups XMMWORD PTR $T26[rbp-121], xmm1
|
|
00184 0f 29 55 b7 movaps XMMWORD PTR $T6[rbp-121], xmm2
|
|
00188 0f 29 55 d7 movaps XMMWORD PTR $T14[rbp-121], xmm2
|
|
0018c 0f 29 55 f7 movaps XMMWORD PTR $T22[rbp-121], xmm2
|
|
00190 0f 29 55 17 movaps XMMWORD PTR $T30[rbp-121], xmm2
|
|
00194 48 8d 4d 07 lea rcx, QWORD PTR $T26[rbp-121]
|
|
00198 e8 00 00 00 00 call mulps_sum_internal
|
|
0019d 48 8d 55 f7 lea rdx, QWORD PTR $T22[rbp-121]
|
|
001a1 44 0f 28 c0 movaps xmm8, xmm0
|
|
001a5 48 8d 4d e7 lea rcx, QWORD PTR $T18[rbp-121]
|
|
001a9 e8 00 00 00 00 call mulps_sum_internal
|
|
001ae 48 8d 55 d7 lea rdx, QWORD PTR $T14[rbp-121]
|
|
001b2 0f 28 f8 movaps xmm7, xmm0
|
|
001b5 48 8d 4d c7 lea rcx, QWORD PTR $T10[rbp-121]
|
|
001b9 e8 00 00 00 00 call mulps_sum_internal
|
|
001be 48 8d 55 b7 lea rdx, QWORD PTR $T6[rbp-121]
|
|
001c2 0f 28 f0 movaps xmm6, xmm0
|
|
001c5 48 8d 4d a7 lea rcx, QWORD PTR $T2[rbp-121]
|
|
001c9 e8 00 00 00 00 call mulps_sum_internal
|
|
001ce 0f 14 c6 unpcklps xmm0, xmm6
|
|
|
|
; 95 : mulps_sum_internal(ALIGN(left->colum[0]), ALIGN(right->colum[2])),
|
|
; 96 : mulps_sum_internal(ALIGN(left->colum[1]), ALIGN(right->colum[2])),
|
|
; 97 : mulps_sum_internal(ALIGN(left->colum[2]), ALIGN(right->colum[2])),
|
|
; 98 : mulps_sum_internal(ALIGN(left->colum[3]), ALIGN(right->colum[2]))
|
|
; 99 : );
|
|
; 100 : retPtr->colum[1] = _mm_set_ps(
|
|
|
|
001d1 48 8d 55 17 lea rdx, QWORD PTR $T29[rbp-121]
|
|
001d5 41 0f 14 f8 unpcklps xmm7, xmm8
|
|
001d9 48 8d 4d 07 lea rcx, QWORD PTR $T25[rbp-121]
|
|
001dd 0f 16 c7 movlhps xmm0, xmm7
|
|
001e0 0f 11 43 10 movups XMMWORD PTR [rbx+16], xmm0
|
|
001e4 0f 10 56 30 movups xmm2, XMMWORD PTR [rsi+48]
|
|
001e8 0f 10 47 30 movups xmm0, XMMWORD PTR [rdi+48]
|
|
001ec 0f 10 4f 20 movups xmm1, XMMWORD PTR [rdi+32]
|
|
001f0 0f 11 45 a7 movups XMMWORD PTR $T1[rbp-121], xmm0
|
|
001f4 0f 10 47 10 movups xmm0, XMMWORD PTR [rdi+16]
|
|
001f8 0f 11 4d c7 movups XMMWORD PTR $T9[rbp-121], xmm1
|
|
001fc 0f 10 0f movups xmm1, XMMWORD PTR [rdi]
|
|
001ff 0f 11 45 e7 movups XMMWORD PTR $T17[rbp-121], xmm0
|
|
00203 0f 11 4d 07 movups XMMWORD PTR $T25[rbp-121], xmm1
|
|
00207 0f 29 55 b7 movaps XMMWORD PTR $T5[rbp-121], xmm2
|
|
0020b 0f 29 55 d7 movaps XMMWORD PTR $T13[rbp-121], xmm2
|
|
0020f 0f 29 55 f7 movaps XMMWORD PTR $T21[rbp-121], xmm2
|
|
00213 0f 29 55 17 movaps XMMWORD PTR $T29[rbp-121], xmm2
|
|
00217 e8 00 00 00 00 call mulps_sum_internal
|
|
0021c 48 8d 55 f7 lea rdx, QWORD PTR $T21[rbp-121]
|
|
00220 44 0f 28 c0 movaps xmm8, xmm0
|
|
00224 48 8d 4d e7 lea rcx, QWORD PTR $T17[rbp-121]
|
|
00228 e8 00 00 00 00 call mulps_sum_internal
|
|
0022d 48 8d 55 d7 lea rdx, QWORD PTR $T13[rbp-121]
|
|
00231 0f 28 f8 movaps xmm7, xmm0
|
|
00234 48 8d 4d c7 lea rcx, QWORD PTR $T9[rbp-121]
|
|
00238 e8 00 00 00 00 call mulps_sum_internal
|
|
0023d 48 8d 55 b7 lea rdx, QWORD PTR $T5[rbp-121]
|
|
00241 0f 28 f0 movaps xmm6, xmm0
|
|
00244 48 8d 4d a7 lea rcx, QWORD PTR $T1[rbp-121]
|
|
00248 e8 00 00 00 00 call mulps_sum_internal
|
|
0024d 41 0f 14 f8 unpcklps xmm7, xmm8
|
|
|
|
; 101 : mulps_sum_internal(ALIGN(left->colum[0]), ALIGN(right->colum[3])),
|
|
; 102 : mulps_sum_internal(ALIGN(left->colum[1]), ALIGN(right->colum[3])),
|
|
; 103 : mulps_sum_internal(ALIGN(left->colum[2]), ALIGN(right->colum[3])),
|
|
; 104 : mulps_sum_internal(ALIGN(left->colum[3]), ALIGN(right->colum[3]))
|
|
; 105 : );
|
|
; 106 : }
|
|
; 107 : return retPtr;
|
|
|
|
00251 48 8b c3 mov rax, rbx
|
|
00254 44 0f 28 84 24
|
|
a0 00 00 00 movaps xmm8, XMMWORD PTR [rsp+160]
|
|
0025d 0f 14 c6 unpcklps xmm0, xmm6
|
|
00260 0f 28 b4 24 c0
|
|
00 00 00 movaps xmm6, XMMWORD PTR [rsp+192]
|
|
00268 0f 16 c7 movlhps xmm0, xmm7
|
|
0026b 0f 28 bc 24 b0
|
|
00 00 00 movaps xmm7, XMMWORD PTR [rsp+176]
|
|
00273 0f 11 43 10 movups XMMWORD PTR [rbx+16], xmm0
|
|
$LN2@mul_4_4:
|
|
|
|
; 108 : }
|
|
|
|
00277 4c 8d 9c 24 d0
|
|
00 00 00 lea r11, QWORD PTR [rsp+208]
|
|
0027f 49 8b 5b 10 mov rbx, QWORD PTR [r11+16]
|
|
00283 49 8b 73 18 mov rsi, QWORD PTR [r11+24]
|
|
00287 49 8b 7b 20 mov rdi, QWORD PTR [r11+32]
|
|
0028b 49 8b e3 mov rsp, r11
|
|
0028e 5d pop rbp
|
|
0028f c3 ret 0
|
|
mul_4_4 ENDP
|
|
_TEXT ENDS
|
|
; Function compile flags: /Ogtpy
|
|
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgShqrpGraphic\mat4.c
|
|
; COMDAT mul_4_2
|
|
_TEXT SEGMENT
|
|
$T1 = 32
|
|
$T2 = 32
|
|
$T3 = 48
|
|
$T4 = 48
|
|
$T5 = 64
|
|
$T6 = 64
|
|
$T7 = 80
|
|
$T8 = 80
|
|
$T9 = 96
|
|
$T10 = 96
|
|
$T11 = 112
|
|
$T12 = 112
|
|
$T13 = 128
|
|
$T14 = 128
|
|
$T15 = 144
|
|
$T16 = 144
|
|
left$ = 224
|
|
right$ = 232
|
|
mul_4_2 PROC ; COMDAT
|
|
|
|
; 57 : {
|
|
|
|
$LN6:
|
|
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 55 push rbp
|
|
00010 48 8d 6c 24 a9 lea rbp, QWORD PTR [rsp-87]
|
|
00015 48 81 ec d0 00
|
|
00 00 sub rsp, 208 ; 000000d0H
|
|
0001c 48 8b f9 mov rdi, rcx
|
|
0001f 48 8b f2 mov rsi, rdx
|
|
00022 48 8d 0d 00 00
|
|
00 00 lea rcx, OFFSET FLAT:__6DC84844_mat4@c
|
|
00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0002e ba 10 00 00 00 mov edx, 16
|
|
00033 8d 4a 10 lea ecx, QWORD PTR [rdx+16]
|
|
00036 ff 15 00 00 00
|
|
00 call QWORD PTR __imp__aligned_malloc
|
|
0003c 48 8b d8 mov rbx, rax
|
|
0003f 48 85 c0 test rax, rax
|
|
00042 0f 84 2e 01 00
|
|
00 je $LN2@mul_4_2
|
|
|
|
; 58 : matrix2map* retPtr = _aligned_malloc(sizeof(matrix2map), 16);
|
|
; 59 : if (NULL != retPtr)
|
|
; 60 : {
|
|
; 61 : retPtr->colum[0] = _mm_set_ps(
|
|
|
|
00048 0f 10 0e movups xmm1, XMMWORD PTR [rsi]
|
|
0004b 48 8d 55 a7 lea rdx, QWORD PTR $T2[rbp-121]
|
|
0004f 0f 10 47 30 movups xmm0, XMMWORD PTR [rdi+48]
|
|
00053 48 8d 4d b7 lea rcx, QWORD PTR $T4[rbp-121]
|
|
00057 0f 29 b4 24 c0
|
|
00 00 00 movaps XMMWORD PTR [rsp+192], xmm6
|
|
0005f 0f 11 45 17 movups XMMWORD PTR $T16[rbp-121], xmm0
|
|
00063 0f 10 47 20 movups xmm0, XMMWORD PTR [rdi+32]
|
|
00067 0f 29 4d 07 movaps XMMWORD PTR $T14[rbp-121], xmm1
|
|
0006b 0f 11 45 f7 movups XMMWORD PTR $T12[rbp-121], xmm0
|
|
0006f 0f 10 47 10 movups xmm0, XMMWORD PTR [rdi+16]
|
|
00073 0f 29 4d e7 movaps XMMWORD PTR $T10[rbp-121], xmm1
|
|
00077 0f 29 4d c7 movaps XMMWORD PTR $T6[rbp-121], xmm1
|
|
0007b 0f 29 4d a7 movaps XMMWORD PTR $T2[rbp-121], xmm1
|
|
0007f 0f 10 0f movups xmm1, XMMWORD PTR [rdi]
|
|
00082 0f 29 bc 24 b0
|
|
00 00 00 movaps XMMWORD PTR [rsp+176], xmm7
|
|
0008a 0f 11 45 d7 movups XMMWORD PTR $T8[rbp-121], xmm0
|
|
0008e 44 0f 29 84 24
|
|
a0 00 00 00 movaps XMMWORD PTR [rsp+160], xmm8
|
|
00097 0f 11 4d b7 movups XMMWORD PTR $T4[rbp-121], xmm1
|
|
0009b e8 00 00 00 00 call mulps_sum_internal
|
|
000a0 48 8d 55 c7 lea rdx, QWORD PTR $T6[rbp-121]
|
|
000a4 44 0f 28 c0 movaps xmm8, xmm0
|
|
000a8 48 8d 4d d7 lea rcx, QWORD PTR $T8[rbp-121]
|
|
000ac e8 00 00 00 00 call mulps_sum_internal
|
|
000b1 48 8d 55 e7 lea rdx, QWORD PTR $T10[rbp-121]
|
|
000b5 0f 28 f8 movaps xmm7, xmm0
|
|
000b8 48 8d 4d f7 lea rcx, QWORD PTR $T12[rbp-121]
|
|
000bc e8 00 00 00 00 call mulps_sum_internal
|
|
000c1 48 8d 55 07 lea rdx, QWORD PTR $T14[rbp-121]
|
|
000c5 0f 28 f0 movaps xmm6, xmm0
|
|
000c8 48 8d 4d 17 lea rcx, QWORD PTR $T16[rbp-121]
|
|
000cc e8 00 00 00 00 call mulps_sum_internal
|
|
000d1 0f 14 c6 unpcklps xmm0, xmm6
|
|
|
|
; 62 : mulps_sum_internal(ALIGN(left->colum[0]), ALIGN(right->colum[0])),
|
|
; 63 : mulps_sum_internal(ALIGN(left->colum[1]), ALIGN(right->colum[0])),
|
|
; 64 : mulps_sum_internal(ALIGN(left->colum[2]), ALIGN(right->colum[0])),
|
|
; 65 : mulps_sum_internal(ALIGN(left->colum[3]), ALIGN(right->colum[0]))
|
|
; 66 : );
|
|
; 67 : retPtr->colum[1] = _mm_set_ps(
|
|
|
|
000d4 48 8d 55 17 lea rdx, QWORD PTR $T15[rbp-121]
|
|
000d8 41 0f 14 f8 unpcklps xmm7, xmm8
|
|
000dc 48 8d 4d 07 lea rcx, QWORD PTR $T13[rbp-121]
|
|
000e0 0f 16 c7 movlhps xmm0, xmm7
|
|
000e3 0f 11 03 movups XMMWORD PTR [rbx], xmm0
|
|
000e6 0f 10 56 10 movups xmm2, XMMWORD PTR [rsi+16]
|
|
000ea 0f 10 47 30 movups xmm0, XMMWORD PTR [rdi+48]
|
|
000ee 0f 10 4f 20 movups xmm1, XMMWORD PTR [rdi+32]
|
|
000f2 0f 11 45 a7 movups XMMWORD PTR $T1[rbp-121], xmm0
|
|
000f6 0f 10 47 10 movups xmm0, XMMWORD PTR [rdi+16]
|
|
000fa 0f 11 4d c7 movups XMMWORD PTR $T5[rbp-121], xmm1
|
|
000fe 0f 10 0f movups xmm1, XMMWORD PTR [rdi]
|
|
00101 0f 11 45 e7 movups XMMWORD PTR $T9[rbp-121], xmm0
|
|
00105 0f 11 4d 07 movups XMMWORD PTR $T13[rbp-121], xmm1
|
|
00109 0f 29 55 b7 movaps XMMWORD PTR $T3[rbp-121], xmm2
|
|
0010d 0f 29 55 d7 movaps XMMWORD PTR $T7[rbp-121], xmm2
|
|
00111 0f 29 55 f7 movaps XMMWORD PTR $T11[rbp-121], xmm2
|
|
00115 0f 29 55 17 movaps XMMWORD PTR $T15[rbp-121], xmm2
|
|
00119 e8 00 00 00 00 call mulps_sum_internal
|
|
0011e 48 8d 55 f7 lea rdx, QWORD PTR $T11[rbp-121]
|
|
00122 44 0f 28 c0 movaps xmm8, xmm0
|
|
00126 48 8d 4d e7 lea rcx, QWORD PTR $T9[rbp-121]
|
|
0012a e8 00 00 00 00 call mulps_sum_internal
|
|
0012f 48 8d 55 d7 lea rdx, QWORD PTR $T7[rbp-121]
|
|
00133 0f 28 f8 movaps xmm7, xmm0
|
|
00136 48 8d 4d c7 lea rcx, QWORD PTR $T5[rbp-121]
|
|
0013a e8 00 00 00 00 call mulps_sum_internal
|
|
0013f 48 8d 55 b7 lea rdx, QWORD PTR $T3[rbp-121]
|
|
00143 0f 28 f0 movaps xmm6, xmm0
|
|
00146 48 8d 4d a7 lea rcx, QWORD PTR $T1[rbp-121]
|
|
0014a e8 00 00 00 00 call mulps_sum_internal
|
|
0014f 41 0f 14 f8 unpcklps xmm7, xmm8
|
|
00153 44 0f 28 84 24
|
|
a0 00 00 00 movaps xmm8, XMMWORD PTR [rsp+160]
|
|
0015c 0f 14 c6 unpcklps xmm0, xmm6
|
|
0015f 0f 28 b4 24 c0
|
|
00 00 00 movaps xmm6, XMMWORD PTR [rsp+192]
|
|
00167 0f 16 c7 movlhps xmm0, xmm7
|
|
0016a 0f 28 bc 24 b0
|
|
00 00 00 movaps xmm7, XMMWORD PTR [rsp+176]
|
|
00172 0f 11 43 10 movups XMMWORD PTR [rbx+16], xmm0
|
|
$LN2@mul_4_2:
|
|
|
|
; 68 : mulps_sum_internal(ALIGN(left->colum[0]), ALIGN(right->colum[1])),
|
|
; 69 : mulps_sum_internal(ALIGN(left->colum[1]), ALIGN(right->colum[1])),
|
|
; 70 : mulps_sum_internal(ALIGN(left->colum[2]), ALIGN(right->colum[1])),
|
|
; 71 : mulps_sum_internal(ALIGN(left->colum[3]), ALIGN(right->colum[1]))
|
|
; 72 : );
|
|
; 73 : }
|
|
; 74 : }
|
|
|
|
00176 4c 8d 9c 24 d0
|
|
00 00 00 lea r11, QWORD PTR [rsp+208]
|
|
0017e 49 8b 5b 10 mov rbx, QWORD PTR [r11+16]
|
|
00182 49 8b 73 18 mov rsi, QWORD PTR [r11+24]
|
|
00186 49 8b 7b 20 mov rdi, QWORD PTR [r11+32]
|
|
0018a 49 8b e3 mov rsp, r11
|
|
0018d 5d pop rbp
|
|
0018e c3 ret 0
|
|
mul_4_2 ENDP
|
|
_TEXT ENDS
|
|
; Function compile flags: /Ogtpy
|
|
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgShqrpGraphic\mat4.c
|
|
; COMDAT mul_const
|
|
_TEXT SEGMENT
|
|
cst128$1 = 32
|
|
mat$ = 80
|
|
value$ = 88
|
|
mul_const PROC ; COMDAT
|
|
|
|
; 37 : {
|
|
|
|
$LN15:
|
|
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:__6DC84844_mat4@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 8d 4a 70 lea ecx, QWORD PTR [rdx+112]
|
|
00029 ff 15 00 00 00
|
|
00 call QWORD PTR __imp__aligned_malloc
|
|
0002f 48 85 c0 test rax, rax
|
|
00032 74 2f je SHORT $LN12@mul_const
|
|
|
|
; 38 : matrix4map* ret = _aligned_malloc(sizeof(matrix4),16);
|
|
; 39 :
|
|
; 40 : if (NULL != ret)
|
|
; 41 : {
|
|
; 42 : float cstarray[4] = { value, value, value, value };
|
|
; 43 :
|
|
; 44 : __m128 cst128 = _mm_loadu_ps(&cstarray);
|
|
|
|
00034 0f 28 c6 movaps xmm0, xmm6
|
|
00037 0f 29 74 24 20 movaps XMMWORD PTR cst128$1[rsp], xmm6
|
|
|
|
; 45 :
|
|
; 46 : ret->colum[0] = _mm_mul_ps(mat->colum[0], cst128);
|
|
|
|
0003c 0f 59 03 mulps xmm0, XMMWORD PTR [rbx]
|
|
|
|
; 47 : ret->colum[1] = _mm_mul_ps(mat->colum[1], cst128);
|
|
|
|
0003f 0f 28 ce movaps xmm1, xmm6
|
|
00042 0f 28 d6 movaps xmm2, xmm6
|
|
00045 0f 11 00 movups XMMWORD PTR [rax], xmm0
|
|
|
|
; 48 : ret->colum[2] = _mm_mul_ps(mat->colum[2], cst128);
|
|
|
|
00048 0f 28 c6 movaps xmm0, xmm6
|
|
0004b 0f 59 4b 10 mulps xmm1, XMMWORD PTR [rbx+16]
|
|
0004f 0f 11 48 10 movups XMMWORD PTR [rax+16], xmm1
|
|
00053 0f 59 43 20 mulps xmm0, XMMWORD PTR [rbx+32]
|
|
00057 0f 11 40 20 movups XMMWORD PTR [rax+32], xmm0
|
|
|
|
; 49 : ret->colum[3] = _mm_mul_ps(mat->colum[3], cst128);
|
|
|
|
0005b 0f 59 53 30 mulps xmm2, XMMWORD PTR [rbx+48]
|
|
0005f 0f 11 50 30 movups XMMWORD PTR [rax+48], xmm2
|
|
$LN12@mul_const:
|
|
|
|
; 50 : }
|
|
; 51 :
|
|
; 52 : return ret;
|
|
; 53 :
|
|
; 54 : }
|
|
|
|
00063 0f 28 74 24 30 movaps xmm6, XMMWORD PTR [rsp+48]
|
|
00068 48 83 c4 40 add rsp, 64 ; 00000040H
|
|
0006c 5b pop rbx
|
|
0006d c3 ret 0
|
|
mul_const ENDP
|
|
_TEXT ENDS
|
|
; Function compile flags: /Ogtpy
|
|
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgShqrpGraphic\mat4.c
|
|
; COMDAT sub_mat4
|
|
_TEXT SEGMENT
|
|
mat1$ = 48
|
|
mat2$ = 56
|
|
sub_mat4 PROC ; COMDAT
|
|
|
|
; 22 : {
|
|
|
|
$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:__6DC84844_mat4@c
|
|
00017 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0001c ba 10 00 00 00 mov edx, 16
|
|
00021 8d 4a 70 lea ecx, QWORD PTR [rdx+112]
|
|
00024 ff 15 00 00 00
|
|
00 call QWORD PTR __imp__aligned_malloc
|
|
0002a 48 85 c0 test rax, rax
|
|
0002d 74 2d je SHORT $LN4@sub_mat4
|
|
|
|
; 23 : matrix4map* ret = _aligned_malloc(sizeof(matrix4), 16);
|
|
; 24 :
|
|
; 25 : if (ret != 0)
|
|
; 26 : {
|
|
; 27 : 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
|
|
|
|
; 28 : 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
|
|
|
|
; 29 : ret->colum[2] = _mm_sub_ps(mat1->colum[2], mat2->colum[2]);
|
|
|
|
00044 0f 10 47 20 movups xmm0, XMMWORD PTR [rdi+32]
|
|
00048 0f 5c 43 20 subps xmm0, XMMWORD PTR [rbx+32]
|
|
0004c 0f 11 40 20 movups XMMWORD PTR [rax+32], xmm0
|
|
|
|
; 30 : ret->colum[3] = _mm_sub_ps(mat1->colum[3], mat2->colum[3]);
|
|
|
|
00050 0f 10 4f 30 movups xmm1, XMMWORD PTR [rdi+48]
|
|
00054 0f 5c 4b 30 subps xmm1, XMMWORD PTR [rbx+48]
|
|
00058 0f 11 48 30 movups XMMWORD PTR [rax+48], xmm1
|
|
$LN4@sub_mat4:
|
|
|
|
; 31 : }
|
|
; 32 :
|
|
; 33 : return ret;
|
|
; 34 : }
|
|
|
|
0005c 48 8b 5c 24 30 mov rbx, QWORD PTR [rsp+48]
|
|
00061 48 83 c4 20 add rsp, 32 ; 00000020H
|
|
00065 5f pop rdi
|
|
00066 c3 ret 0
|
|
sub_mat4 ENDP
|
|
_TEXT ENDS
|
|
; Function compile flags: /Ogtpy
|
|
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgShqrpGraphic\mat4.c
|
|
; COMDAT add_mat4
|
|
_TEXT SEGMENT
|
|
mat1$ = 48
|
|
mat2$ = 56
|
|
add_mat4 PROC ; COMDAT
|
|
|
|
; 7 : {
|
|
|
|
$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:__6DC84844_mat4@c
|
|
00017 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
0001c ba 10 00 00 00 mov edx, 16
|
|
00021 8d 4a 70 lea ecx, QWORD PTR [rdx+112]
|
|
00024 ff 15 00 00 00
|
|
00 call QWORD PTR __imp__aligned_malloc
|
|
0002a 48 85 c0 test rax, rax
|
|
0002d 74 2d je SHORT $LN4@add_mat4
|
|
|
|
; 8 : matrix4map* ret = _aligned_malloc(sizeof(matrix4), 16);
|
|
; 9 :
|
|
; 10 : if (ret != 0)
|
|
; 11 : {
|
|
; 12 : 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
|
|
|
|
; 13 : 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
|
|
|
|
; 14 : ret->colum[2] = _mm_add_ps(mat1->colum[2], mat2->colum[2]);
|
|
|
|
00044 0f 10 47 20 movups xmm0, XMMWORD PTR [rdi+32]
|
|
00048 0f 58 43 20 addps xmm0, XMMWORD PTR [rbx+32]
|
|
0004c 0f 11 40 20 movups XMMWORD PTR [rax+32], xmm0
|
|
|
|
; 15 : ret->colum[3] = _mm_add_ps(mat1->colum[3], mat2->colum[3]);
|
|
|
|
00050 0f 10 4f 30 movups xmm1, XMMWORD PTR [rdi+48]
|
|
00054 0f 58 4b 30 addps xmm1, XMMWORD PTR [rbx+48]
|
|
00058 0f 11 48 30 movups XMMWORD PTR [rax+48], xmm1
|
|
$LN4@add_mat4:
|
|
|
|
; 16 : }
|
|
; 17 :
|
|
; 18 : return ret;
|
|
; 19 : }
|
|
|
|
0005c 48 8b 5c 24 30 mov rbx, QWORD PTR [rsp+48]
|
|
00061 48 83 c4 20 add rsp, 32 ; 00000020H
|
|
00065 5f pop rdi
|
|
00066 c3 ret 0
|
|
add_mat4 ENDP
|
|
_TEXT ENDS
|
|
END
|