Files
stgsharp/源代码/StgShqrpGraphic/x64/Debug/mat4.cod
T

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