daily update on 20230804 by nitload youmu
This commit is contained in:
@@ -11,7 +11,7 @@
|
||||
extern SSEfuncptr sseFunc;
|
||||
extern glIOpackage pack;
|
||||
|
||||
STGSHARPGRAPHIC_API glIOpackage loadGLApi(void)
|
||||
SSGC_API glIOpackage loadGLApi(void)
|
||||
{
|
||||
|
||||
pack.createWindow = glfwCreateWindow;
|
||||
@@ -28,7 +28,7 @@ STGSHARPGRAPHIC_API glIOpackage loadGLApi(void)
|
||||
return pack;
|
||||
}
|
||||
|
||||
STGSHARPGRAPHIC_API void initGL(void)
|
||||
SSGC_API void initGL(void)
|
||||
{
|
||||
glfwInit();
|
||||
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
|
||||
@@ -41,7 +41,7 @@ STGSHARPGRAPHIC_API void initGL(void)
|
||||
}
|
||||
|
||||
|
||||
STGSHARPGRAPHIC_API int initGLAD(void)
|
||||
SSGC_API int initGLAD(void)
|
||||
{
|
||||
return gladLoadGLLoader((GLADloadproc)glfwGetProcAddress);
|
||||
}
|
||||
|
||||
@@ -4,9 +4,9 @@
|
||||
#define SSG_Api
|
||||
|
||||
#ifdef SSG_Api
|
||||
#define STGSHARPGRAPHIC_API __declspec(dllexport)
|
||||
#define SSGC_API __declspec(dllexport)
|
||||
#else
|
||||
#define STGSHARPGRAPHIC_API __declspec(dllimport)
|
||||
#define SSGC_API __declspec(dllimport)
|
||||
#endif
|
||||
|
||||
|
||||
@@ -14,19 +14,23 @@
|
||||
#include "GLenv/include/GLFW/glfw3.h"
|
||||
#include "SSGinternal.h"
|
||||
|
||||
STGSHARPGRAPHIC_API glIOpackage loadGLApi(void);
|
||||
STGSHARPGRAPHIC_API void initGL(void);
|
||||
STGSHARPGRAPHIC_API int initGLAD(void);
|
||||
SSGC_API glIOpackage loadGLApi(void);
|
||||
SSGC_API void initGL(void);
|
||||
SSGC_API int initGLAD(void);
|
||||
|
||||
|
||||
STGSHARPGRAPHIC_API __m128* __cdecl load(float x, float y, float z, float w);
|
||||
STGSHARPGRAPHIC_API __m128* __cdecl addps(__m128* ptr1, __m128* ptr2);
|
||||
STGSHARPGRAPHIC_API __m128* __cdecl subps(__m128* ptr1, __m128* ptr2);
|
||||
STGSHARPGRAPHIC_API __m128* __cdecl mulps_const(__m128* ptr, float value);
|
||||
STGSHARPGRAPHIC_API __m128* __cdecl mulps(__m128* ptr1, __m128* ptr2);
|
||||
SSGC_API __m128* __cdecl load(float x, float y, float z, float w);
|
||||
SSGC_API __m128* __cdecl addps(__m128* ptr1, __m128* ptr2);
|
||||
SSGC_API __m128* __cdecl subps(__m128* ptr1, __m128* ptr2);
|
||||
SSGC_API __m128* __cdecl mulps_const(__m128* ptr, float value);
|
||||
SSGC_API __m128* __cdecl mulps(__m128* ptr1, __m128* ptr2);
|
||||
SSGC_API float __cdecl mulps_sum(__m128* ptr1, __m128* ptr2);
|
||||
SSGC_API __m128* __cdecl divps_const(__m128* ptr, float value);
|
||||
SSGC_API __m128* __cdecl divps(__m128* ptr1, __m128* ptr2);
|
||||
|
||||
|
||||
|
||||
STGSHARPGRAPHIC_API void __cdecl deinitM128(__m128* ptr);
|
||||
|
||||
SSGC_API void __cdecl deinitM128(__m128* ptr);
|
||||
#endif // !SSG
|
||||
|
||||
|
||||
@@ -6,8 +6,9 @@
|
||||
#include <stdalign.h>
|
||||
|
||||
#include <xmmintrin.h>
|
||||
#include <pmmintrin.h>
|
||||
|
||||
STGSHARPGRAPHIC_API __m128* __cdecl load(float x, float y, float z, float w)
|
||||
SSGC_API __m128* __cdecl load(float x, float y, float z, float w)
|
||||
{
|
||||
float array[4] = {x,y,z,w};
|
||||
__m128* ptr = _aligned_malloc(sizeof(__m128),16);
|
||||
@@ -23,7 +24,7 @@ STGSHARPGRAPHIC_API __m128* __cdecl load(float x, float y, float z, float w)
|
||||
}
|
||||
}
|
||||
|
||||
STGSHARPGRAPHIC_API __m128* __cdecl addps(__m128* ptr1, __m128* ptr2)
|
||||
SSGC_API __m128* __cdecl addps(__m128* ptr1, __m128* ptr2)
|
||||
{
|
||||
|
||||
__m128* ret = _aligned_malloc(sizeof(__m128*),16);
|
||||
@@ -40,7 +41,7 @@ STGSHARPGRAPHIC_API __m128* __cdecl addps(__m128* ptr1, __m128* ptr2)
|
||||
|
||||
}
|
||||
|
||||
STGSHARPGRAPHIC_API __m128* __cdecl subps(__m128* ptr1, __m128* ptr2)
|
||||
SSGC_API __m128* __cdecl subps(__m128* ptr1, __m128* ptr2)
|
||||
{
|
||||
__m128* ret = _aligned_malloc(sizeof(__m128*), 16);
|
||||
|
||||
@@ -55,7 +56,7 @@ STGSHARPGRAPHIC_API __m128* __cdecl subps(__m128* ptr1, __m128* ptr2)
|
||||
}
|
||||
}
|
||||
|
||||
STGSHARPGRAPHIC_API __m128* __cdecl mulps_const(__m128* ptr, float value)
|
||||
SSGC_API __m128* __cdecl mulps_const(__m128* ptr, float value)
|
||||
{
|
||||
float c[4] = { value, value, value, value };
|
||||
__m128* ret = _aligned_malloc(sizeof(__m128),16);
|
||||
@@ -73,7 +74,7 @@ STGSHARPGRAPHIC_API __m128* __cdecl mulps_const(__m128* ptr, float value)
|
||||
}
|
||||
}
|
||||
|
||||
STGSHARPGRAPHIC_API __m128* __cdecl mulps(__m128* ptr1, __m128* ptr2)
|
||||
SSGC_API __m128* __cdecl mulps(__m128* ptr1, __m128* ptr2)
|
||||
{
|
||||
__m128* ret = _aligned_malloc(sizeof(__m128), 16);
|
||||
|
||||
@@ -88,9 +89,56 @@ STGSHARPGRAPHIC_API __m128* __cdecl mulps(__m128* ptr1, __m128* ptr2)
|
||||
}
|
||||
}
|
||||
|
||||
SSGC_API float __cdecl mulps_sum(__m128* ptr1, __m128* ptr2)
|
||||
{
|
||||
__m128 ret = _mm_mul_ps(*ptr1,*ptr2);
|
||||
ret = _mm_hadd_ps(ret,ret);
|
||||
ret = _mm_hadd_ps(ret,ret);
|
||||
return *(float*)&ret;
|
||||
}
|
||||
|
||||
SSGC_API __m128* __cdecl divps_const(__m128* ptr, float value)
|
||||
{
|
||||
|
||||
float c[4] = { value, value, value, value };
|
||||
__m128* ret = _aligned_malloc(sizeof(__m128), 16);
|
||||
|
||||
__m128 valueVec = _mm_loadu_ps(&c);
|
||||
|
||||
if (NULL != ret)
|
||||
{
|
||||
*ret = _mm_div_ps(*ptr, valueVec);
|
||||
return ret;
|
||||
}
|
||||
else
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
SSGC_API __m128* __cdecl divps(__m128* ptr1, __m128* ptr2)
|
||||
{
|
||||
__m128* ret = _aligned_malloc(sizeof(__m128), 16);
|
||||
|
||||
if (NULL != ret)
|
||||
{
|
||||
*ret = _mm_div_ps(*ptr1, *ptr2);
|
||||
return ret;
|
||||
}
|
||||
else
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
STGSHARPGRAPHIC_API void __cdecl deinitM128(__m128* ptr)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
SSGC_API void __cdecl deinitM128(__m128* ptr)
|
||||
{
|
||||
free(ptr);
|
||||
}
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
@@ -30,11 +30,18 @@ __D0E9C0B0_corecrt_stdio_config@h DB 01H
|
||||
__119849BB_corecrt_wstdio@h DB 01H
|
||||
__2BEDEB13_stdio@h DB 01H
|
||||
__70BD074A_stdalign@h DB 01H
|
||||
__72219779_emmintrin@h DB 01H
|
||||
__AD80FFF0_pmmintrin@h DB 01H
|
||||
__B5461FF6_linear@c DB 01H
|
||||
msvcjmc ENDS
|
||||
PUBLIC load
|
||||
PUBLIC addps
|
||||
PUBLIC subps
|
||||
PUBLIC mulps_const
|
||||
PUBLIC mulps
|
||||
PUBLIC mulps_sum
|
||||
PUBLIC divps_const
|
||||
PUBLIC divps
|
||||
PUBLIC deinitM128
|
||||
PUBLIC __JustMyCode_Default
|
||||
EXTRN __imp_free:PROC
|
||||
@@ -61,6 +68,36 @@ $pdata$subps DD imagerel $LN6
|
||||
pdata ENDS
|
||||
; COMDAT pdata
|
||||
pdata SEGMENT
|
||||
$pdata$mulps_const DD imagerel $LN6
|
||||
DD imagerel $LN6+94
|
||||
DD imagerel $unwind$mulps_const
|
||||
pdata ENDS
|
||||
; COMDAT pdata
|
||||
pdata SEGMENT
|
||||
$pdata$mulps DD imagerel $LN6
|
||||
DD imagerel $LN6+84
|
||||
DD imagerel $unwind$mulps
|
||||
pdata ENDS
|
||||
; COMDAT pdata
|
||||
pdata SEGMENT
|
||||
$pdata$mulps_sum DD imagerel $LN4
|
||||
DD imagerel $LN4+53
|
||||
DD imagerel $unwind$mulps_sum
|
||||
pdata ENDS
|
||||
; COMDAT pdata
|
||||
pdata SEGMENT
|
||||
$pdata$divps_const DD imagerel $LN6
|
||||
DD imagerel $LN6+97
|
||||
DD imagerel $unwind$divps_const
|
||||
pdata ENDS
|
||||
; COMDAT pdata
|
||||
pdata SEGMENT
|
||||
$pdata$divps DD imagerel $LN6
|
||||
DD imagerel $LN6+84
|
||||
DD imagerel $unwind$divps
|
||||
pdata ENDS
|
||||
; COMDAT pdata
|
||||
pdata SEGMENT
|
||||
$pdata$deinitM128 DD imagerel $LN4
|
||||
DD imagerel $LN4+36
|
||||
DD imagerel $unwind$deinitM128
|
||||
@@ -72,6 +109,36 @@ $unwind$deinitM128 DD 020601H
|
||||
xdata ENDS
|
||||
; COMDAT xdata
|
||||
xdata SEGMENT
|
||||
$unwind$divps DD 040a01H
|
||||
DD 06340aH
|
||||
DD 07006320aH
|
||||
xdata ENDS
|
||||
; COMDAT xdata
|
||||
xdata SEGMENT
|
||||
$unwind$divps_const DD 040b01H
|
||||
DD 03680bH
|
||||
DD 030027206H
|
||||
xdata ENDS
|
||||
; COMDAT xdata
|
||||
xdata SEGMENT
|
||||
$unwind$mulps_sum DD 040a01H
|
||||
DD 06340aH
|
||||
DD 07006320aH
|
||||
xdata ENDS
|
||||
; COMDAT xdata
|
||||
xdata SEGMENT
|
||||
$unwind$mulps DD 040a01H
|
||||
DD 06340aH
|
||||
DD 07006320aH
|
||||
xdata ENDS
|
||||
; COMDAT xdata
|
||||
xdata SEGMENT
|
||||
$unwind$mulps_const DD 040b01H
|
||||
DD 03680bH
|
||||
DD 030027206H
|
||||
xdata ENDS
|
||||
; COMDAT xdata
|
||||
xdata SEGMENT
|
||||
$unwind$subps DD 040a01H
|
||||
DD 06340aH
|
||||
DD 07006320aH
|
||||
@@ -105,7 +172,7 @@ _TEXT SEGMENT
|
||||
ptr$ = 48
|
||||
deinitM128 PROC ; COMDAT
|
||||
|
||||
; 59 : {
|
||||
; 142 : {
|
||||
|
||||
$LN4:
|
||||
00000 40 53 push rbx
|
||||
@@ -116,8 +183,8 @@ $LN4:
|
||||
00010 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
||||
00015 48 8b cb mov rcx, rbx
|
||||
|
||||
; 60 : free(ptr);
|
||||
; 61 : }
|
||||
; 143 : free(ptr);
|
||||
; 144 : }
|
||||
|
||||
00018 48 83 c4 20 add rsp, 32 ; 00000020H
|
||||
0001c 5b pop rbx
|
||||
@@ -127,13 +194,291 @@ deinitM128 ENDP
|
||||
_TEXT ENDS
|
||||
; Function compile flags: /Ogtpy
|
||||
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgShqrpGraphic\linear.c
|
||||
; COMDAT divps
|
||||
_TEXT SEGMENT
|
||||
ptr1$ = 48
|
||||
ptr2$ = 56
|
||||
divps PROC ; COMDAT
|
||||
|
||||
; 120 : {
|
||||
|
||||
$LN6:
|
||||
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:__B5461FF6_linear@c
|
||||
00017 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
||||
0001c ba 10 00 00 00 mov edx, 16
|
||||
00021 8b ca mov ecx, edx
|
||||
00023 ff 15 00 00 00
|
||||
00 call QWORD PTR __imp__aligned_malloc
|
||||
00029 48 85 c0 test rax, rax
|
||||
0002c 74 14 je SHORT $LN2@divps
|
||||
|
||||
; 121 : __m128* ret = _aligned_malloc(sizeof(__m128), 16);
|
||||
; 122 :
|
||||
; 123 : if (NULL != ret)
|
||||
; 124 : {
|
||||
; 125 : *ret = _mm_div_ps(*ptr1, *ptr2);
|
||||
|
||||
0002e 0f 10 07 movups xmm0, XMMWORD PTR [rdi]
|
||||
00031 0f 5e 03 divps xmm0, XMMWORD PTR [rbx]
|
||||
00034 0f 11 00 movups XMMWORD PTR [rax], xmm0
|
||||
|
||||
; 126 : return ret;
|
||||
; 127 : }
|
||||
; 128 : else
|
||||
; 129 : {
|
||||
; 130 : return -1;
|
||||
; 131 : }
|
||||
; 132 : }
|
||||
|
||||
00037 48 8b 5c 24 30 mov rbx, QWORD PTR [rsp+48]
|
||||
0003c 48 83 c4 20 add rsp, 32 ; 00000020H
|
||||
00040 5f pop rdi
|
||||
00041 c3 ret 0
|
||||
$LN2@divps:
|
||||
00042 48 8b 5c 24 30 mov rbx, QWORD PTR [rsp+48]
|
||||
00047 48 c7 c0 ff ff
|
||||
ff ff mov rax, -1
|
||||
0004e 48 83 c4 20 add rsp, 32 ; 00000020H
|
||||
00052 5f pop rdi
|
||||
00053 c3 ret 0
|
||||
divps ENDP
|
||||
_TEXT ENDS
|
||||
; Function compile flags: /Ogtpy
|
||||
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgShqrpGraphic\linear.c
|
||||
; COMDAT divps_const
|
||||
_TEXT SEGMENT
|
||||
c$ = 32
|
||||
ptr$ = 80
|
||||
value$ = 88
|
||||
divps_const PROC ; COMDAT
|
||||
|
||||
; 101 : {
|
||||
|
||||
$LN6:
|
||||
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:__B5461FF6_linear@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 8b ca mov ecx, edx
|
||||
00028 0f 11 74 24 20 movups XMMWORD PTR c$[rsp], xmm6
|
||||
0002d ff 15 00 00 00
|
||||
00 call QWORD PTR __imp__aligned_malloc
|
||||
00033 48 85 c0 test rax, rax
|
||||
00036 74 17 je SHORT $LN2@divps_cons
|
||||
|
||||
; 102 :
|
||||
; 103 : float c[4] = { value, value, value, value };
|
||||
; 104 : __m128* ret = _aligned_malloc(sizeof(__m128), 16);
|
||||
; 105 :
|
||||
; 106 : __m128 valueVec = _mm_loadu_ps(&c);
|
||||
; 107 :
|
||||
; 108 : if (NULL != ret)
|
||||
; 109 : {
|
||||
; 110 : *ret = _mm_div_ps(*ptr, valueVec);
|
||||
|
||||
00038 0f 10 0b movups xmm1, XMMWORD PTR [rbx]
|
||||
0003b 0f 10 c6 movups xmm0, xmm6
|
||||
0003e 0f 5e ce divps xmm1, xmm6
|
||||
00041 0f 11 08 movups XMMWORD PTR [rax], xmm1
|
||||
|
||||
; 111 : return ret;
|
||||
; 112 : }
|
||||
; 113 : else
|
||||
; 114 : {
|
||||
; 115 : return -1;
|
||||
; 116 : }
|
||||
; 117 : }
|
||||
|
||||
00044 0f 28 74 24 30 movaps xmm6, XMMWORD PTR [rsp+48]
|
||||
00049 48 83 c4 40 add rsp, 64 ; 00000040H
|
||||
0004d 5b pop rbx
|
||||
0004e c3 ret 0
|
||||
$LN2@divps_cons:
|
||||
0004f 0f 28 74 24 30 movaps xmm6, XMMWORD PTR [rsp+48]
|
||||
00054 48 c7 c0 ff ff
|
||||
ff ff mov rax, -1
|
||||
0005b 48 83 c4 40 add rsp, 64 ; 00000040H
|
||||
0005f 5b pop rbx
|
||||
00060 c3 ret 0
|
||||
divps_const ENDP
|
||||
_TEXT ENDS
|
||||
; Function compile flags: /Ogtpy
|
||||
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgShqrpGraphic\linear.c
|
||||
; COMDAT mulps_sum
|
||||
_TEXT SEGMENT
|
||||
ptr1$ = 48
|
||||
ptr2$ = 56
|
||||
mulps_sum PROC ; COMDAT
|
||||
|
||||
; 93 : {
|
||||
|
||||
$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:__B5461FF6_linear@c
|
||||
00017 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
||||
0001c 0f 10 03 movups xmm0, XMMWORD PTR [rbx]
|
||||
0001f 0f 59 07 mulps xmm0, XMMWORD PTR [rdi]
|
||||
00022 48 8b 5c 24 30 mov rbx, QWORD PTR [rsp+48]
|
||||
00027 f2 0f 7c c0 haddps xmm0, xmm0
|
||||
0002b f2 0f 7c c0 haddps xmm0, xmm0
|
||||
|
||||
; 94 : __m128 ret = _mm_mul_ps(*ptr1,*ptr2);
|
||||
; 95 : ret = _mm_hadd_ps(ret,ret);
|
||||
; 96 : ret = _mm_hadd_ps(ret,ret);
|
||||
; 97 : return *(float*)&ret;
|
||||
; 98 : }
|
||||
|
||||
0002f 48 83 c4 20 add rsp, 32 ; 00000020H
|
||||
00033 5f pop rdi
|
||||
00034 c3 ret 0
|
||||
mulps_sum ENDP
|
||||
_TEXT ENDS
|
||||
; Function compile flags: /Ogtpy
|
||||
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgShqrpGraphic\linear.c
|
||||
; COMDAT mulps
|
||||
_TEXT SEGMENT
|
||||
ptr1$ = 48
|
||||
ptr2$ = 56
|
||||
mulps PROC ; COMDAT
|
||||
|
||||
; 78 : {
|
||||
|
||||
$LN6:
|
||||
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:__B5461FF6_linear@c
|
||||
00017 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
||||
0001c ba 10 00 00 00 mov edx, 16
|
||||
00021 8b ca mov ecx, edx
|
||||
00023 ff 15 00 00 00
|
||||
00 call QWORD PTR __imp__aligned_malloc
|
||||
00029 48 85 c0 test rax, rax
|
||||
0002c 74 14 je SHORT $LN2@mulps
|
||||
|
||||
; 79 : __m128* ret = _aligned_malloc(sizeof(__m128), 16);
|
||||
; 80 :
|
||||
; 81 : if (NULL != ret)
|
||||
; 82 : {
|
||||
; 83 : *ret = _mm_mul_ps(*ptr1, *ptr2);
|
||||
|
||||
0002e 0f 10 07 movups xmm0, XMMWORD PTR [rdi]
|
||||
00031 0f 59 03 mulps xmm0, XMMWORD PTR [rbx]
|
||||
00034 0f 11 00 movups XMMWORD PTR [rax], xmm0
|
||||
|
||||
; 84 : return ret;
|
||||
; 85 : }
|
||||
; 86 : else
|
||||
; 87 : {
|
||||
; 88 : return -1;
|
||||
; 89 : }
|
||||
; 90 : }
|
||||
|
||||
00037 48 8b 5c 24 30 mov rbx, QWORD PTR [rsp+48]
|
||||
0003c 48 83 c4 20 add rsp, 32 ; 00000020H
|
||||
00040 5f pop rdi
|
||||
00041 c3 ret 0
|
||||
$LN2@mulps:
|
||||
00042 48 8b 5c 24 30 mov rbx, QWORD PTR [rsp+48]
|
||||
00047 48 c7 c0 ff ff
|
||||
ff ff mov rax, -1
|
||||
0004e 48 83 c4 20 add rsp, 32 ; 00000020H
|
||||
00052 5f pop rdi
|
||||
00053 c3 ret 0
|
||||
mulps ENDP
|
||||
_TEXT ENDS
|
||||
; Function compile flags: /Ogtpy
|
||||
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgShqrpGraphic\linear.c
|
||||
; COMDAT mulps_const
|
||||
_TEXT SEGMENT
|
||||
c$ = 32
|
||||
ptr$ = 80
|
||||
value$ = 88
|
||||
mulps_const PROC ; COMDAT
|
||||
|
||||
; 60 : {
|
||||
|
||||
$LN6:
|
||||
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:__B5461FF6_linear@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 8b ca mov ecx, edx
|
||||
00028 0f 11 74 24 20 movups XMMWORD PTR c$[rsp], xmm6
|
||||
0002d ff 15 00 00 00
|
||||
00 call QWORD PTR __imp__aligned_malloc
|
||||
00033 48 85 c0 test rax, rax
|
||||
00036 74 14 je SHORT $LN2@mulps_cons
|
||||
|
||||
; 61 : float c[4] = { value, value, value, value };
|
||||
; 62 : __m128* ret = _aligned_malloc(sizeof(__m128),16);
|
||||
; 63 :
|
||||
; 64 : __m128 valueVec = _mm_loadu_ps(&c);
|
||||
; 65 :
|
||||
; 66 : if (NULL != ret)
|
||||
; 67 : {
|
||||
; 68 : *ret = _mm_mul_ps(*ptr,valueVec);
|
||||
|
||||
00038 0f 10 c6 movups xmm0, xmm6
|
||||
0003b 0f 59 03 mulps xmm0, XMMWORD PTR [rbx]
|
||||
0003e 0f 11 00 movups XMMWORD PTR [rax], xmm0
|
||||
|
||||
; 69 : return ret;
|
||||
; 70 : }
|
||||
; 71 : else
|
||||
; 72 : {
|
||||
; 73 : return -1;
|
||||
; 74 : }
|
||||
; 75 : }
|
||||
|
||||
00041 0f 28 74 24 30 movaps xmm6, XMMWORD PTR [rsp+48]
|
||||
00046 48 83 c4 40 add rsp, 64 ; 00000040H
|
||||
0004a 5b pop rbx
|
||||
0004b c3 ret 0
|
||||
$LN2@mulps_cons:
|
||||
0004c 0f 28 74 24 30 movaps xmm6, XMMWORD PTR [rsp+48]
|
||||
00051 48 c7 c0 ff ff
|
||||
ff ff mov rax, -1
|
||||
00058 48 83 c4 40 add rsp, 64 ; 00000040H
|
||||
0005c 5b pop rbx
|
||||
0005d c3 ret 0
|
||||
mulps_const ENDP
|
||||
_TEXT ENDS
|
||||
; Function compile flags: /Ogtpy
|
||||
; File D:\NitloadIndustry\Ñо¿ÏîÄ¿\1-Flagship\TH2020\ProjectFile\Ô´´úÂë\StgShqrpGraphic\linear.c
|
||||
; COMDAT subps
|
||||
_TEXT SEGMENT
|
||||
ptr1$ = 48
|
||||
ptr2$ = 56
|
||||
subps PROC ; COMDAT
|
||||
|
||||
; 44 : {
|
||||
; 45 : {
|
||||
|
||||
$LN6:
|
||||
00000 48 89 5c 24 08 mov QWORD PTR [rsp+8], rbx
|
||||
@@ -151,23 +496,23 @@ $LN6:
|
||||
0002a 48 85 c0 test rax, rax
|
||||
0002d 74 14 je SHORT $LN2@subps
|
||||
|
||||
; 45 : __m128* ret = _aligned_malloc(sizeof(__m128*), 16);
|
||||
; 46 :
|
||||
; 47 : if (NULL != ret)
|
||||
; 48 : {
|
||||
; 49 : *ret = _mm_sub_ps(*ptr1, *ptr2);
|
||||
; 46 : __m128* ret = _aligned_malloc(sizeof(__m128*), 16);
|
||||
; 47 :
|
||||
; 48 : if (NULL != ret)
|
||||
; 49 : {
|
||||
; 50 : *ret = _mm_sub_ps(*ptr1, *ptr2);
|
||||
|
||||
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
|
||||
|
||||
; 50 : return ret;
|
||||
; 51 : }
|
||||
; 52 : else
|
||||
; 53 : {
|
||||
; 54 : return -1;
|
||||
; 55 : }
|
||||
; 56 : }
|
||||
; 51 : return ret;
|
||||
; 52 : }
|
||||
; 53 : else
|
||||
; 54 : {
|
||||
; 55 : return -1;
|
||||
; 56 : }
|
||||
; 57 : }
|
||||
|
||||
00038 48 8b 5c 24 30 mov rbx, QWORD PTR [rsp+48]
|
||||
0003d 48 83 c4 20 add rsp, 32 ; 00000020H
|
||||
@@ -190,7 +535,7 @@ ptr1$ = 48
|
||||
ptr2$ = 56
|
||||
addps PROC ; COMDAT
|
||||
|
||||
; 27 : {
|
||||
; 28 : {
|
||||
|
||||
$LN6:
|
||||
00000 48 89 5c 24 08 mov QWORD PTR [rsp+8], rbx
|
||||
@@ -208,25 +553,25 @@ $LN6:
|
||||
0002a 48 85 c0 test rax, rax
|
||||
0002d 74 14 je SHORT $LN2@addps
|
||||
|
||||
; 28 :
|
||||
; 29 : __m128* ret = _aligned_malloc(sizeof(__m128*),16);
|
||||
; 30 :
|
||||
; 31 : if (NULL != ret)
|
||||
; 32 : {
|
||||
; 33 : *ret = _mm_add_ps(*ptr1, *ptr2);
|
||||
; 29 :
|
||||
; 30 : __m128* ret = _aligned_malloc(sizeof(__m128*),16);
|
||||
; 31 :
|
||||
; 32 : if (NULL != ret)
|
||||
; 33 : {
|
||||
; 34 : *ret = _mm_add_ps(*ptr1, *ptr2);
|
||||
|
||||
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
|
||||
|
||||
; 34 : return ret;
|
||||
; 35 : }
|
||||
; 36 : else
|
||||
; 37 : {
|
||||
; 38 : return -1;
|
||||
; 39 : }
|
||||
; 40 :
|
||||
; 41 : }
|
||||
; 35 : return ret;
|
||||
; 36 : }
|
||||
; 37 : else
|
||||
; 38 : {
|
||||
; 39 : return -1;
|
||||
; 40 : }
|
||||
; 41 :
|
||||
; 42 : }
|
||||
|
||||
00038 48 8b 5c 24 30 mov rbx, QWORD PTR [rsp+48]
|
||||
0003d 48 83 c4 20 add rsp, 32 ; 00000020H
|
||||
@@ -252,7 +597,7 @@ z$ = 144
|
||||
w$ = 152
|
||||
load PROC ; COMDAT
|
||||
|
||||
; 11 : {
|
||||
; 12 : {
|
||||
|
||||
$LN6:
|
||||
00000 48 83 ec 78 sub rsp, 120 ; 00000078H
|
||||
@@ -284,32 +629,32 @@ $LN6:
|
||||
0005b 48 85 c0 test rax, rax
|
||||
0005e 74 0a je SHORT $LN2@load
|
||||
|
||||
; 12 : float array[4] = {x,y,z,w};
|
||||
; 13 : __m128* ptr = _aligned_malloc(sizeof(__m128),16);
|
||||
; 14 :
|
||||
; 15 : if (NULL != ptr)
|
||||
; 16 : {
|
||||
; 17 : *ptr = _mm_loadu_ps(&array);
|
||||
; 13 : float array[4] = {x,y,z,w};
|
||||
; 14 : __m128* ptr = _aligned_malloc(sizeof(__m128),16);
|
||||
; 15 :
|
||||
; 16 : if (NULL != ptr)
|
||||
; 17 : {
|
||||
; 18 : *ptr = _mm_loadu_ps(&array);
|
||||
|
||||
00060 0f 10 44 24 20 movups xmm0, XMMWORD PTR array$[rsp]
|
||||
00065 0f 11 00 movups XMMWORD PTR [rax], xmm0
|
||||
|
||||
; 18 : return ptr;
|
||||
; 19 : return ptr;
|
||||
|
||||
00068 eb 07 jmp SHORT $LN3@load
|
||||
$LN2@load:
|
||||
|
||||
; 19 : }
|
||||
; 20 : else
|
||||
; 21 : {
|
||||
; 22 : return -1;
|
||||
; 20 : }
|
||||
; 21 : else
|
||||
; 22 : {
|
||||
; 23 : return -1;
|
||||
|
||||
0006a 48 c7 c0 ff ff
|
||||
ff ff mov rax, -1
|
||||
$LN3@load:
|
||||
|
||||
; 23 : }
|
||||
; 24 : }
|
||||
; 24 : }
|
||||
; 25 : }
|
||||
|
||||
00071 0f 28 74 24 60 movaps xmm6, XMMWORD PTR [rsp+96]
|
||||
00076 0f 28 7c 24 50 movaps xmm7, XMMWORD PTR [rsp+80]
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user