daily update on 20230829 by nitload youmu
This commit is contained in:
@@ -4,227 +4,5 @@ include listing.inc
|
||||
|
||||
INCLUDELIB OLDNAMES
|
||||
|
||||
PUBLIC ??_C@_09OKFGCEAB@?$CFf?7?$CFf?7?$CFf?6@ ; `string'
|
||||
PUBLIC ??_C@_0L@INACIODI@?$CFf?7?$CFf?7?$CFf?6?6@ ; `string'
|
||||
EXTRN __imp___stdio_common_vfprintf:PROC
|
||||
EXTRN __imp___acrt_iob_func:PROC
|
||||
; COMDAT ??_C@_0L@INACIODI@?$CFf?7?$CFf?7?$CFf?6?6@
|
||||
CONST SEGMENT
|
||||
??_C@_0L@INACIODI@?$CFf?7?$CFf?7?$CFf?6?6@ DB '%f', 09H, '%f', 09H, '%f', 0aH
|
||||
DB 0aH, 00H ; `string'
|
||||
CONST ENDS
|
||||
; COMDAT ??_C@_09OKFGCEAB@?$CFf?7?$CFf?7?$CFf?6@
|
||||
CONST SEGMENT
|
||||
??_C@_09OKFGCEAB@?$CFf?7?$CFf?7?$CFf?6@ DB '%f', 09H, '%f', 09H, '%f', 0aH
|
||||
DB 00H ; `string'
|
||||
PUBLIC det_mat3_internal
|
||||
PUBLIC printf
|
||||
PUBLIC _vfprintf_l
|
||||
PUBLIC __local_stdio_printf_options
|
||||
; COMDAT pdata
|
||||
pdata SEGMENT
|
||||
$pdata$det_mat3_internal DD imagerel $LN4
|
||||
DD imagerel $LN4+400
|
||||
DD imagerel $unwind$det_mat3_internal
|
||||
pdata ENDS
|
||||
; COMDAT pdata
|
||||
pdata SEGMENT
|
||||
$pdata$printf DD imagerel $LN6@printf
|
||||
DD imagerel $LN6@printf+85
|
||||
DD imagerel $unwind$printf
|
||||
pdata ENDS
|
||||
; COMDAT pdata
|
||||
pdata SEGMENT
|
||||
$pdata$_vfprintf_l DD imagerel $LN4@vfprintf_l
|
||||
DD imagerel $LN4@vfprintf_l+68
|
||||
DD imagerel $unwind$_vfprintf_l
|
||||
; COMDAT xdata
|
||||
xdata SEGMENT
|
||||
$unwind$_vfprintf_l DQ 00009640f00060f01r ; 1.30596e-308
|
||||
DQ 0700b520f0008340fr ; 5.30195e+231
|
||||
xdata ENDS
|
||||
; COMDAT xdata
|
||||
xdata SEGMENT
|
||||
$unwind$printf DQ 07017521b00041b01r ; 9.05146e+231
|
||||
DD 030156016H
|
||||
xdata ENDS
|
||||
; COMDAT xdata
|
||||
xdata SEGMENT
|
||||
$unwind$det_mat3_internal DD 0a3401H
|
||||
DD 029834H
|
||||
DD 038823H
|
||||
DD 04781aH
|
||||
DD 05680bH
|
||||
DD 03002b206H
|
||||
; Function compile flags: /Ogtpy
|
||||
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgShqrpGraphic\mat3.c
|
||||
; COMDAT det_mat3_internal
|
||||
_TEXT SEGMENT
|
||||
c0$ = 112
|
||||
c1$ = 120
|
||||
c2$ = 128
|
||||
det_mat3_internal PROC ; COMDAT
|
||||
|
||||
; 5 : {
|
||||
|
||||
$LN4:
|
||||
00000 40 53 push rbx
|
||||
00002 48 83 ec 60 sub rsp, 96 ; 00000060H
|
||||
00006 0f 29 74 24 50 movaps XMMWORD PTR [rsp+80], xmm6
|
||||
|
||||
; 6 : //let adding row aligned
|
||||
; 7 : __m128 addc1 = _mm_shuffle_ps(c1, c1, _MM_SHUFFLE(3, 0, 2, 1));
|
||||
; 8 : __m128 addc2 = _mm_shuffle_ps(c2, c1, _MM_SHUFFLE(3, 1, 0, 2));
|
||||
; 9 :
|
||||
; 10 : printf("%f\t%f\t%f\n", addc1.m128_f32[0], addc1.m128_f32[1], addc1.m128_f32[2]);
|
||||
|
||||
0000b 0f 57 d2 xorps xmm2, xmm2
|
||||
0000e 41 0f 10 30 movups xmm6, XMMWORD PTR [r8]
|
||||
00012 0f 57 db xorps xmm3, xmm3
|
||||
00015 0f 29 7c 24 40 movaps XMMWORD PTR [rsp+64], xmm7
|
||||
0001a 48 8b d9 mov rbx, rcx
|
||||
0001d 44 0f 29 44 24
|
||||
30 movaps XMMWORD PTR [rsp+48], xmm8
|
||||
00023 48 8d 0d 00 00
|
||||
00 00 lea rcx, OFFSET FLAT:??_C@_09OKFGCEAB@?$CFf?7?$CFf?7?$CFf?6@
|
||||
0002a 44 0f 10 02 movups xmm8, XMMWORD PTR [rdx]
|
||||
0002e 44 0f 29 4c 24
|
||||
20 movaps XMMWORD PTR [rsp+32], xmm9
|
||||
00034 45 0f 28 c8 movaps xmm9, xmm8
|
||||
00038 45 0f c6 c8 c9 shufps xmm9, xmm8, 201 ; 000000c9H
|
||||
0003d 41 0f 28 c9 movaps xmm1, xmm9
|
||||
00041 41 0f c6 f0 d2 shufps xmm6, xmm8, 210 ; 000000d2H
|
||||
00046 41 0f c6 c9 55 shufps xmm1, xmm9, 85 ; 00000055H
|
||||
0004b 41 0f 28 c1 movaps xmm0, xmm9
|
||||
0004f f3 0f 5a d1 cvtss2sd xmm2, xmm1
|
||||
00053 0f 57 c9 xorps xmm1, xmm1
|
||||
00056 41 0f c6 c1 aa shufps xmm0, xmm9, 170 ; 000000aaH
|
||||
0005b f3 41 0f 5a c9 cvtss2sd xmm1, xmm9
|
||||
00060 f3 0f 5a d8 cvtss2sd xmm3, xmm0
|
||||
00064 66 48 0f 7e ca movq rdx, xmm1
|
||||
00069 66 49 0f 7e d0 movq r8, xmm2
|
||||
0006e 66 49 0f 7e d9 movq r9, xmm3
|
||||
00073 e8 00 00 00 00 call printf
|
||||
|
||||
; 11 : printf("%f\t%f\t%f\n\n", addc2.m128_f32[0], addc2.m128_f32[1], addc2.m128_f32[2]);
|
||||
|
||||
00078 0f 28 ce movaps xmm1, xmm6
|
||||
0007b 48 8d 0d 00 00
|
||||
00 00 lea rcx, OFFSET FLAT:??_C@_0L@INACIODI@?$CFf?7?$CFf?7?$CFf?6?6@
|
||||
00082 0f c6 ce 55 shufps xmm1, xmm6, 85 ; 00000055H
|
||||
00086 0f 57 d2 xorps xmm2, xmm2
|
||||
00089 f3 0f 5a d1 cvtss2sd xmm2, xmm1
|
||||
0008d 0f 28 c6 movaps xmm0, xmm6
|
||||
00090 0f 57 c9 xorps xmm1, xmm1
|
||||
00093 0f c6 c6 aa shufps xmm0, xmm6, 170 ; 000000aaH
|
||||
00097 0f 57 db xorps xmm3, xmm3
|
||||
0009a f3 0f 5a ce cvtss2sd xmm1, xmm6
|
||||
0009e f3 0f 5a d8 cvtss2sd xmm3, xmm0
|
||||
000a2 66 48 0f 7e ca movq rdx, xmm1
|
||||
000a7 66 49 0f 7e d0 movq r8, xmm2
|
||||
000ac 66 49 0f 7e d9 movq r9, xmm3
|
||||
000b1 e8 00 00 00 00 call printf
|
||||
|
||||
; 12 :
|
||||
; 13 : //let sub row aligned
|
||||
; 14 : __m128 subc1 = _mm_shuffle_ps(c1, c1, _MM_SHUFFLE(3, 1, 0, 2));
|
||||
; 15 : __m128 subc2 = _mm_shuffle_ps(c2, c2, _MM_SHUFFLE(3, 0, 2, 1));
|
||||
; 16 :
|
||||
; 17 : //multple all add row
|
||||
; 18 : __m128 cache = _mm_mul_ps(c0,addc1);
|
||||
|
||||
000b6 0f 10 3b movups xmm7, XMMWORD PTR [rbx]
|
||||
|
||||
; 19 : cache = _mm_mul_ps(cache,addc2);
|
||||
; 20 :
|
||||
; 21 : printf("%f\t%f\t%f\n\n", cache.m128_f32[0], cache.m128_f32[1], cache.m128_f32[2]);
|
||||
|
||||
000b9 48 8d 0d 00 00
|
||||
00 00 lea rcx, OFFSET FLAT:??_C@_0L@INACIODI@?$CFf?7?$CFf?7?$CFf?6?6@
|
||||
000c0 44 0f 59 cf mulps xmm9, xmm7
|
||||
000c4 0f 57 d2 xorps xmm2, xmm2
|
||||
000c7 0f 57 db xorps xmm3, xmm3
|
||||
000ca 45 0f c6 c0 d2 shufps xmm8, xmm8, 210 ; 000000d2H
|
||||
000cf 44 0f 59 ce mulps xmm9, xmm6
|
||||
000d3 41 0f 28 c9 movaps xmm1, xmm9
|
||||
000d7 41 0f 28 c1 movaps xmm0, xmm9
|
||||
000db 41 0f c6 c9 55 shufps xmm1, xmm9, 85 ; 00000055H
|
||||
000e0 f3 0f 5a d1 cvtss2sd xmm2, xmm1
|
||||
000e4 0f 57 c9 xorps xmm1, xmm1
|
||||
000e7 41 0f c6 c1 aa shufps xmm0, xmm9, 170 ; 000000aaH
|
||||
000ec f3 41 0f 5a c9 cvtss2sd xmm1, xmm9
|
||||
000f1 f3 0f 5a d8 cvtss2sd xmm3, xmm0
|
||||
000f5 66 48 0f 7e ca movq rdx, xmm1
|
||||
000fa 66 49 0f 7e d0 movq r8, xmm2
|
||||
000ff 66 49 0f 7e d9 movq r9, xmm3
|
||||
00104 e8 00 00 00 00 call printf
|
||||
|
||||
; 22 :
|
||||
; 23 : //multiple all sub row
|
||||
; 24 : __m128 sub = _mm_mul_ps(c0, subc1);
|
||||
|
||||
00109 41 0f 59 f8 mulps xmm7, xmm8
|
||||
|
||||
; 25 : sub = _mm_mul_ps(sub, subc1);
|
||||
; 26 :
|
||||
; 27 : printf("%f\t%f\t%f\n\n", sub.m128_f32[0], sub.m128_f32[1], sub.m128_f32[2]);
|
||||
|
||||
0010d 48 8d 0d 00 00
|
||||
00 00 lea rcx, OFFSET FLAT:??_C@_0L@INACIODI@?$CFf?7?$CFf?7?$CFf?6?6@
|
||||
00114 0f 57 d2 xorps xmm2, xmm2
|
||||
00117 0f 57 db xorps xmm3, xmm3
|
||||
0011a 41 0f 59 f8 mulps xmm7, xmm8
|
||||
0011e 0f 28 cf movaps xmm1, xmm7
|
||||
00121 0f 28 c7 movaps xmm0, xmm7
|
||||
00124 0f c6 cf 55 shufps xmm1, xmm7, 85 ; 00000055H
|
||||
00128 f3 0f 5a d1 cvtss2sd xmm2, xmm1
|
||||
0012c 0f 57 c9 xorps xmm1, xmm1
|
||||
0012f 0f c6 c7 aa shufps xmm0, xmm7, 170 ; 000000aaH
|
||||
00133 f3 0f 5a cf cvtss2sd xmm1, xmm7
|
||||
00137 f3 0f 5a d8 cvtss2sd xmm3, xmm0
|
||||
0013b 66 48 0f 7e ca movq rdx, xmm1
|
||||
00140 66 49 0f 7e d0 movq r8, xmm2
|
||||
00145 66 49 0f 7e d9 movq r9, xmm3
|
||||
0014a e8 00 00 00 00 call printf
|
||||
|
||||
; 28 :
|
||||
; 29 : //main-corner sub sub-corner
|
||||
; 30 : cache = _mm_sub_ps(cache,sub);
|
||||
|
||||
0014f 44 0f 5c cf subps xmm9, xmm7
|
||||
00153 0f 57 c0 xorps xmm0, xmm0
|
||||
|
||||
; 31 :
|
||||
; 32 : __m128 ret = _mm_hadd_ps(cache,cache); //element 1 add element 2
|
||||
|
||||
00156 41 0f 28 c9 movaps xmm1, xmm9
|
||||
0015a f2 41 0f 7c c9 haddps xmm1, xmm9
|
||||
|
||||
; 33 : ret = _mm_add_ps(ret, cache); //(e1 add e2) add element 3
|
||||
|
||||
0015f 41 0f 58 c9 addps xmm1, xmm9
|
||||
|
||||
; 34 :
|
||||
; 35 : int a = *(int*)0; //for debug, all an excepotion
|
||||
; 36 :
|
||||
; 37 : return ret.m128_f32[3] + a;
|
||||
|
||||
00163 f3 0f 2a 04 25
|
||||
00 00 00 00 cvtsi2ss xmm0, DWORD PTR ds:0
|
||||
|
||||
; 38 : }
|
||||
|
||||
0016c 0f 28 74 24 50 movaps xmm6, XMMWORD PTR [rsp+80]
|
||||
00171 0f 28 7c 24 40 movaps xmm7, XMMWORD PTR [rsp+64]
|
||||
00176 44 0f 28 44 24
|
||||
30 movaps xmm8, XMMWORD PTR [rsp+48]
|
||||
0017c 44 0f 28 4c 24
|
||||
20 movaps xmm9, XMMWORD PTR [rsp+32]
|
||||
00182 0f c6 c9 ff shufps xmm1, xmm1, 255 ; 000000ffH
|
||||
00186 f3 0f 58 c1 addss xmm0, xmm1
|
||||
0018a 48 83 c4 60 add rsp, 96 ; 00000060H
|
||||
0018e 5b pop rbx
|
||||
0018f c3 ret 0
|
||||
det_mat3_internal ENDP
|
||||
_TEXT ENDS
|
||||
END
|
||||
|
||||
Reference in New Issue
Block a user