211 lines
6.8 KiB
Plaintext
211 lines
6.8 KiB
Plaintext
; Listing generated by Microsoft (R) Optimizing Compiler Version 19.36.32537.0
|
|
|
|
include listing.inc
|
|
|
|
INCLUDELIB OLDNAMES
|
|
|
|
PUBLIC ??_C@_04NJMJGNBF@?$CFf?6?6@ ; `string'
|
|
; COMDAT ??_C@_04NJMJGNBF@?$CFf?6?6@
|
|
CONST SEGMENT
|
|
??_C@_04NJMJGNBF@?$CFf?6?6@ DB '%f', 0aH, 0aH, 00H ; `string'
|
|
PUBLIC deinit_mat4
|
|
PUBLIC det_mat4
|
|
PUBLIC transpose4to4
|
|
PUBLIC transpose4to2
|
|
PUBLIC mul_4_4
|
|
PUBLIC mul_const
|
|
PUBLIC sub_mat4
|
|
PUBLIC add_mat4
|
|
; COMDAT pdata
|
|
pdata SEGMENT
|
|
$pdata$det_mat4 DD imagerel $LN4
|
|
DD imagerel $LN4+344
|
|
DD imagerel $unwind$det_mat4
|
|
pdata ENDS
|
|
; COMDAT pdata
|
|
pdata SEGMENT
|
|
$pdata$mul_4_4 DD imagerel $LN27@mul_4_4
|
|
DD imagerel $LN27@mul_4_4+167
|
|
DD imagerel $unwind$mul_4_4
|
|
pdata ENDS
|
|
; COMDAT pdata
|
|
pdata SEGMENT
|
|
$pdata$mul_const DD imagerel $LN15@mul_const
|
|
DD imagerel $LN15@mul_const+98
|
|
DD imagerel $unwind$mul_const
|
|
pdata ENDS
|
|
; COMDAT pdata
|
|
pdata SEGMENT
|
|
$pdata$sub_mat4 DD imagerel $LN7@sub_mat4
|
|
DD imagerel $LN7@sub_mat4+91
|
|
DD imagerel $unwind$sub_mat4
|
|
pdata ENDS
|
|
; COMDAT pdata
|
|
pdata SEGMENT
|
|
$pdata$add_mat4 DD imagerel $LN7@add_mat4
|
|
DD imagerel $LN7@add_mat4+91
|
|
DD imagerel $unwind$add_mat4
|
|
; COMDAT xdata
|
|
xdata SEGMENT
|
|
$unwind$add_mat4 DQ 00006340a00040a01r ; 8.62672e-309
|
|
DD 07006320aH
|
|
xdata ENDS
|
|
; COMDAT xdata
|
|
xdata SEGMENT
|
|
$unwind$sub_mat4 DQ 00006340a00040a01r ; 8.62672e-309
|
|
DD 07006320aH
|
|
xdata ENDS
|
|
; COMDAT xdata
|
|
xdata SEGMENT
|
|
$unwind$mul_const DQ 00003680b00040b01r ; 4.73721e-309
|
|
DD 030027206H
|
|
xdata ENDS
|
|
; COMDAT xdata
|
|
xdata SEGMENT
|
|
$unwind$mul_4_4 DQ 00006340a00040a01r ; 8.62672e-309
|
|
DD 07006320aH
|
|
xdata ENDS
|
|
; COMDAT xdata
|
|
xdata SEGMENT
|
|
$unwind$det_mat4 DD 0d4601H
|
|
DD 0e9846H
|
|
DD 0f8841H
|
|
DD 010783cH
|
|
DD 0116838H
|
|
DD 0263413H
|
|
DD 0240113H
|
|
DD 05008H
|
|
; Function compile flags: /Ogtpy
|
|
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgShqrpGraphic\mat4.c
|
|
; COMDAT det_mat4
|
|
_TEXT SEGMENT
|
|
$T15 = 32
|
|
$T1 = 32
|
|
$T14 = 48
|
|
$T2 = 48
|
|
$T13 = 64
|
|
$T3 = 64
|
|
$T10 = 80
|
|
$T11 = 96
|
|
$T12 = 112
|
|
$T7 = 128
|
|
$T8 = 144
|
|
$T9 = 160
|
|
$T4 = 176
|
|
$T5 = 192
|
|
$T6 = 208
|
|
matPtr$ = 304
|
|
det_mat4 PROC ; COMDAT
|
|
|
|
; 98 : {
|
|
|
|
$LN4:
|
|
00000 48 8b c4 mov rax, rsp
|
|
00003 48 89 58 08 mov QWORD PTR [rax+8], rbx
|
|
00007 55 push rbp
|
|
00008 48 8d 68 d8 lea rbp, QWORD PTR [rax-40]
|
|
0000c 48 81 ec 20 01
|
|
00 00 sub rsp, 288 ; 00000120H
|
|
|
|
; 99 : __m128 cogeneration = _mm_set_ps(
|
|
|
|
00013 0f 10 59 20 movups xmm3, XMMWORD PTR [rcx+32]
|
|
00017 4c 8d 44 24 50 lea r8, QWORD PTR $T10[rsp]
|
|
0001c 0f 10 51 10 movups xmm2, XMMWORD PTR [rcx+16]
|
|
00020 48 8d 54 24 60 lea rdx, QWORD PTR $T11[rsp]
|
|
00025 0f 10 09 movups xmm1, XMMWORD PTR [rcx]
|
|
00028 48 8b d9 mov rbx, rcx
|
|
0002b 0f 10 41 30 movups xmm0, XMMWORD PTR [rcx+48]
|
|
0002f 48 8d 4c 24 70 lea rcx, QWORD PTR $T12[rsp]
|
|
00034 0f 29 70 e8 movaps XMMWORD PTR [rax-24], xmm6
|
|
00038 0f 29 78 d8 movaps XMMWORD PTR [rax-40], xmm7
|
|
0003c 44 0f 29 40 c8 movaps XMMWORD PTR [rax-56], xmm8
|
|
00041 44 0f 29 48 b8 movaps XMMWORD PTR [rax-72], xmm9
|
|
00046 0f 29 5c 24 20 movaps XMMWORD PTR $T1[rsp], xmm3
|
|
0004b 0f 29 54 24 30 movaps XMMWORD PTR $T2[rsp], xmm2
|
|
00050 0f 29 4c 24 40 movaps XMMWORD PTR $T3[rsp], xmm1
|
|
00055 0f 29 45 b0 movaps XMMWORD PTR $T4[rbp-256], xmm0
|
|
00059 0f 29 55 c0 movaps XMMWORD PTR $T5[rbp-256], xmm2
|
|
0005d 0f 29 4d d0 movaps XMMWORD PTR $T6[rbp-256], xmm1
|
|
00061 0f 29 45 80 movaps XMMWORD PTR $T7[rbp-256], xmm0
|
|
00065 0f 29 5d 90 movaps XMMWORD PTR $T8[rbp-256], xmm3
|
|
00069 0f 29 4d a0 movaps XMMWORD PTR $T9[rbp-256], xmm1
|
|
0006d 0f 29 44 24 50 movaps XMMWORD PTR $T10[rsp], xmm0
|
|
00072 0f 29 5c 24 60 movaps XMMWORD PTR $T11[rsp], xmm3
|
|
00077 0f 29 54 24 70 movaps XMMWORD PTR $T12[rsp], xmm2
|
|
0007c e8 00 00 00 00 call det_mat3_internal
|
|
00081 4c 8d 45 80 lea r8, QWORD PTR $T7[rbp-256]
|
|
00085 44 0f 28 c0 movaps xmm8, xmm0
|
|
00089 48 8d 55 90 lea rdx, QWORD PTR $T8[rbp-256]
|
|
0008d 48 8d 4d a0 lea rcx, QWORD PTR $T9[rbp-256]
|
|
00091 e8 00 00 00 00 call det_mat3_internal
|
|
00096 4c 8d 45 b0 lea r8, QWORD PTR $T4[rbp-256]
|
|
0009a 0f 28 f8 movaps xmm7, xmm0
|
|
0009d 48 8d 55 c0 lea rdx, QWORD PTR $T5[rbp-256]
|
|
000a1 48 8d 4d d0 lea rcx, QWORD PTR $T6[rbp-256]
|
|
000a5 e8 00 00 00 00 call det_mat3_internal
|
|
000aa 4c 8d 44 24 20 lea r8, QWORD PTR $T1[rsp]
|
|
000af 0f 28 f0 movaps xmm6, xmm0
|
|
000b2 48 8d 54 24 30 lea rdx, QWORD PTR $T2[rsp]
|
|
000b7 48 8d 4c 24 40 lea rcx, QWORD PTR $T3[rsp]
|
|
000bc e8 00 00 00 00 call det_mat3_internal
|
|
|
|
; 100 : det_mat3_internal(matPtr->matrix.colum[1], matPtr->matrix.colum[2], matPtr->matrix.colum[3]),
|
|
; 101 : det_mat3_internal(matPtr->matrix.colum[0], matPtr->matrix.colum[2], matPtr->matrix.colum[3]),
|
|
; 102 : det_mat3_internal(matPtr->matrix.colum[0], matPtr->matrix.colum[1], matPtr->matrix.colum[3]),
|
|
; 103 : det_mat3_internal(matPtr->matrix.colum[0], matPtr->matrix.colum[1], matPtr->matrix.colum[2])
|
|
; 104 : );
|
|
; 105 :
|
|
; 106 : printf("%f\n\n", det_mat3_internal(matPtr->matrix.colum[1], matPtr->matrix.colum[2], matPtr->matrix.colum[3]));
|
|
|
|
000c1 0f 10 4b 30 movups xmm1, XMMWORD PTR [rbx+48]
|
|
000c5 4c 8d 44 24 40 lea r8, QWORD PTR $T13[rsp]
|
|
000ca 0f 10 53 20 movups xmm2, XMMWORD PTR [rbx+32]
|
|
000ce 48 8d 54 24 30 lea rdx, QWORD PTR $T14[rsp]
|
|
000d3 44 0f 28 c8 movaps xmm9, xmm0
|
|
000d7 0f 29 4c 24 40 movaps XMMWORD PTR $T13[rsp], xmm1
|
|
000dc 0f 10 4b 10 movups xmm1, XMMWORD PTR [rbx+16]
|
|
000e0 48 8d 4c 24 20 lea rcx, QWORD PTR $T15[rsp]
|
|
000e5 41 0f 14 f8 unpcklps xmm7, xmm8
|
|
000e9 44 0f 14 ce unpcklps xmm9, xmm6
|
|
000ed 0f 29 4c 24 20 movaps XMMWORD PTR $T15[rsp], xmm1
|
|
000f2 44 0f 16 cf movlhps xmm9, xmm7
|
|
000f6 0f 29 54 24 30 movaps XMMWORD PTR $T14[rsp], xmm2
|
|
000fb e8 00 00 00 00 call det_mat3_internal
|
|
00100 0f 57 c9 xorps xmm1, xmm1
|
|
00103 48 8d 0d 00 00
|
|
00 00 lea rcx, OFFSET FLAT:??_C@_04NJMJGNBF@?$CFf?6?6@
|
|
0010a f3 0f 5a c8 cvtss2sd xmm1, xmm0
|
|
0010e 66 48 0f 7e ca movq rdx, xmm1
|
|
00113 e8 00 00 00 00 call printf
|
|
|
|
; 107 :
|
|
; 108 : __m128 retvec = _mm_mul_ps((matPtr->transpose).colum[3],cogeneration);
|
|
|
|
00118 44 0f 59 4b 70 mulps xmm9, XMMWORD PTR [rbx+112]
|
|
|
|
; 109 : retvec = _mm_hsub_ps(retvec,retvec);
|
|
; 110 : retvec = _mm_hadd_ps(retvec,retvec);
|
|
; 111 : return -retvec.m128_f32[0];
|
|
; 112 :
|
|
; 113 : }
|
|
|
|
0011d 4c 8d 9c 24 20
|
|
01 00 00 lea r11, QWORD PTR [rsp+288]
|
|
00125 49 8b 5b 10 mov rbx, QWORD PTR [r11+16]
|
|
00129 41 0f 28 73 f0 movaps xmm6, XMMWORD PTR [r11-16]
|
|
0012e 41 0f 28 7b e0 movaps xmm7, XMMWORD PTR [r11-32]
|
|
00133 45 0f 28 43 d0 movaps xmm8, XMMWORD PTR [r11-48]
|
|
00138 f2 45 0f 7d c9 hsubps xmm9, xmm9
|
|
0013d f2 45 0f 7c c9 haddps xmm9, xmm9
|
|
00142 44 0f 57 0d 00
|
|
00 00 00 xorps xmm9, DWORD PTR __xmm@80000000800000008000000080000000
|
|
0014a 41 0f 28 c1 movaps xmm0, xmm9
|
|
0014e 45 0f 28 4b c0 movaps xmm9, XMMWORD PTR [r11-64]
|
|
00153 49 8b e3 mov rsp, r11
|
|
00156 5d pop rbp
|
|
00157 c3 ret 0
|
|
det_mat4 ENDP
|
|
_TEXT ENDS
|
|
END
|