mirror of
https://github.com/Fennix-Project/Kernel.git
synced 2025-07-08 05:49:17 +00:00
Update kernel
This commit is contained in:
@ -474,6 +474,7 @@ size_t wcslen(const wchar_t *s)
|
||||
|
||||
size_t wcsrtombs(char *dst, const wchar_t **src, size_t len, mbstate_t *ps)
|
||||
{
|
||||
UNUSED(ps);
|
||||
size_t count = 0;
|
||||
|
||||
while (len > 0)
|
||||
@ -792,21 +793,31 @@ EXTERNC __no_stack_protector void *__memcpy_chk(void *dest, const void *src, siz
|
||||
__chk_fail();
|
||||
|
||||
void *ret = nullptr;
|
||||
uint64_t simd = CPU::CheckSIMD();
|
||||
if (simd & CPU::x86SIMDType::SIMD_SSE42)
|
||||
ret = memcpy_sse4_2(dest, src, len);
|
||||
else if (simd & CPU::x86SIMDType::SIMD_SSE41)
|
||||
ret = memcpy_sse4_1(dest, src, len);
|
||||
else if (simd & CPU::x86SIMDType::SIMD_SSSE3)
|
||||
ret = memcpy_ssse3(dest, src, len);
|
||||
else if (simd & CPU::x86SIMDType::SIMD_SSE3)
|
||||
ret = memcpy_sse3(dest, src, len);
|
||||
else if (simd & CPU::x86SIMDType::SIMD_SSE2)
|
||||
ret = memcpy_sse2(dest, src, len);
|
||||
else if (simd & CPU::x86SIMDType::SIMD_SSE)
|
||||
ret = memcpy_sse(dest, src, len);
|
||||
if (0) /* FIXME */
|
||||
{
|
||||
uint64_t simd = CPU::CheckSIMD();
|
||||
if (simd & CPU::x86SIMDType::SIMD_SSE42)
|
||||
ret = memcpy_sse4_2(dest, src, len);
|
||||
else if (simd & CPU::x86SIMDType::SIMD_SSE41)
|
||||
ret = memcpy_sse4_1(dest, src, len);
|
||||
else if (simd & CPU::x86SIMDType::SIMD_SSSE3)
|
||||
ret = memcpy_ssse3(dest, src, len);
|
||||
else if (simd & CPU::x86SIMDType::SIMD_SSE3)
|
||||
ret = memcpy_sse3(dest, src, len);
|
||||
else if (simd & CPU::x86SIMDType::SIMD_SSE2)
|
||||
ret = memcpy_sse2(dest, src, len);
|
||||
else if (simd & CPU::x86SIMDType::SIMD_SSE)
|
||||
ret = memcpy_sse(dest, src, len);
|
||||
else
|
||||
ret = memcpy_unsafe(dest, src, len);
|
||||
}
|
||||
else
|
||||
{
|
||||
static int once = 0;
|
||||
if (!once++)
|
||||
fixme("SIMD memcpy disabled");
|
||||
ret = memcpy_unsafe(dest, src, len);
|
||||
}
|
||||
#ifdef DEBUG
|
||||
if (EnableExternalMemoryTracer)
|
||||
{
|
||||
@ -857,21 +868,31 @@ EXTERNC __no_stack_protector void *__memset_chk(void *dest, int val, size_t len,
|
||||
__chk_fail();
|
||||
|
||||
void *ret = nullptr;
|
||||
uint64_t simd = CPU::CheckSIMD();
|
||||
if (simd & CPU::x86SIMDType::SIMD_SSE42)
|
||||
ret = memset_sse4_2(dest, val, len);
|
||||
else if (simd & CPU::x86SIMDType::SIMD_SSE41)
|
||||
ret = memset_sse4_1(dest, val, len);
|
||||
else if (simd & CPU::x86SIMDType::SIMD_SSSE3)
|
||||
ret = memset_ssse3(dest, val, len);
|
||||
else if (simd & CPU::x86SIMDType::SIMD_SSE3)
|
||||
ret = memset_sse3(dest, val, len);
|
||||
else if (simd & CPU::x86SIMDType::SIMD_SSE2)
|
||||
ret = memset_sse2(dest, val, len);
|
||||
else if (simd & CPU::x86SIMDType::SIMD_SSE)
|
||||
ret = memset_sse(dest, val, len);
|
||||
if (0) /* FIXME */
|
||||
{
|
||||
uint64_t simd = CPU::CheckSIMD();
|
||||
if (simd & CPU::x86SIMDType::SIMD_SSE42)
|
||||
ret = memset_sse4_2(dest, val, len);
|
||||
else if (simd & CPU::x86SIMDType::SIMD_SSE41)
|
||||
ret = memset_sse4_1(dest, val, len);
|
||||
else if (simd & CPU::x86SIMDType::SIMD_SSSE3)
|
||||
ret = memset_ssse3(dest, val, len);
|
||||
else if (simd & CPU::x86SIMDType::SIMD_SSE3)
|
||||
ret = memset_sse3(dest, val, len);
|
||||
else if (simd & CPU::x86SIMDType::SIMD_SSE2)
|
||||
ret = memset_sse2(dest, val, len);
|
||||
else if (simd & CPU::x86SIMDType::SIMD_SSE)
|
||||
ret = memset_sse(dest, val, len);
|
||||
else
|
||||
ret = memset_unsafe(dest, val, len);
|
||||
}
|
||||
else
|
||||
{
|
||||
static int once = 0;
|
||||
if (!once++)
|
||||
fixme("SIMD memset disabled");
|
||||
ret = memset_unsafe(dest, val, len);
|
||||
}
|
||||
#ifdef DEBUG
|
||||
if (EnableExternalMemoryTracer)
|
||||
{
|
||||
@ -928,21 +949,31 @@ EXTERNC __no_stack_protector void *__memmove_chk(void *dest, const void *src, si
|
||||
__chk_fail();
|
||||
|
||||
void *ret = nullptr;
|
||||
uint64_t simd = CPU::CheckSIMD();
|
||||
if (simd & CPU::x86SIMDType::SIMD_SSE42)
|
||||
ret = memmove_sse4_2(dest, src, len);
|
||||
else if (simd & CPU::x86SIMDType::SIMD_SSE41)
|
||||
ret = memmove_sse4_1(dest, src, len);
|
||||
else if (simd & CPU::x86SIMDType::SIMD_SSSE3)
|
||||
ret = memmove_ssse3(dest, src, len);
|
||||
else if (simd & CPU::x86SIMDType::SIMD_SSE3)
|
||||
ret = memmove_sse3(dest, src, len);
|
||||
else if (simd & CPU::x86SIMDType::SIMD_SSE2)
|
||||
ret = memmove_sse2(dest, src, len);
|
||||
else if (simd & CPU::x86SIMDType::SIMD_SSE)
|
||||
ret = memmove_sse(dest, src, len);
|
||||
if (0) /* FIXME */
|
||||
{
|
||||
uint64_t simd = CPU::CheckSIMD();
|
||||
if (simd & CPU::x86SIMDType::SIMD_SSE42)
|
||||
ret = memmove_sse4_2(dest, src, len);
|
||||
else if (simd & CPU::x86SIMDType::SIMD_SSE41)
|
||||
ret = memmove_sse4_1(dest, src, len);
|
||||
else if (simd & CPU::x86SIMDType::SIMD_SSSE3)
|
||||
ret = memmove_ssse3(dest, src, len);
|
||||
else if (simd & CPU::x86SIMDType::SIMD_SSE3)
|
||||
ret = memmove_sse3(dest, src, len);
|
||||
else if (simd & CPU::x86SIMDType::SIMD_SSE2)
|
||||
ret = memmove_sse2(dest, src, len);
|
||||
else if (simd & CPU::x86SIMDType::SIMD_SSE)
|
||||
ret = memmove_sse(dest, src, len);
|
||||
else
|
||||
ret = memmove_unsafe(dest, src, len);
|
||||
}
|
||||
else
|
||||
{
|
||||
static int once = 0;
|
||||
if (!once++)
|
||||
fixme("SIMD memmove disabled");
|
||||
ret = memmove_unsafe(dest, src, len);
|
||||
}
|
||||
#ifdef DEBUG
|
||||
if (EnableExternalMemoryTracer)
|
||||
{
|
||||
|
Reference in New Issue
Block a user