mirror of
https://github.com/Fennix-Project/Kernel.git
synced 2025-07-10 23:09:18 +00:00
x32 is now compiling
This commit is contained in:
@ -594,7 +594,7 @@ EXTERNC void __chk_fail(void) __attribute__((__noreturn__));
|
||||
|
||||
__noreturn static inline void __convert_chk_fail(void)
|
||||
{
|
||||
#if defined(__amd64__) || defined(__i386__)
|
||||
#if defined(a64) || defined(a32)
|
||||
asmv("int3");
|
||||
#else
|
||||
#error "Not implemented!"
|
||||
|
@ -12,6 +12,7 @@ TODO: Replace these functions with even more optimized versions.
|
||||
|
||||
EXTERNC void *memcpy_sse(void *dest, const void *src, size_t n)
|
||||
{
|
||||
#if defined(a64)
|
||||
char *d = (char *)dest;
|
||||
const char *s = (const char *)src;
|
||||
|
||||
@ -32,11 +33,13 @@ EXTERNC void *memcpy_sse(void *dest, const void *src, size_t n)
|
||||
}
|
||||
|
||||
memcpy_unsafe(d, s, n);
|
||||
#endif // defined(a64)
|
||||
return dest;
|
||||
}
|
||||
|
||||
EXTERNC void *memcpy_sse2(void *dest, const void *src, size_t n)
|
||||
{
|
||||
#if defined(a64)
|
||||
char *d = (char *)dest;
|
||||
const char *s = (const char *)src;
|
||||
|
||||
@ -57,11 +60,13 @@ EXTERNC void *memcpy_sse2(void *dest, const void *src, size_t n)
|
||||
}
|
||||
|
||||
memcpy_unsafe(d, s, n);
|
||||
#endif // defined(a64)
|
||||
return dest;
|
||||
}
|
||||
|
||||
EXTERNC void *memcpy_sse3(void *dest, const void *src, size_t n)
|
||||
{
|
||||
#if defined(a64)
|
||||
char *d = (char *)dest;
|
||||
const char *s = (const char *)src;
|
||||
|
||||
@ -83,11 +88,13 @@ EXTERNC void *memcpy_sse3(void *dest, const void *src, size_t n)
|
||||
}
|
||||
|
||||
memcpy_unsafe(d, s, n);
|
||||
#endif // defined(a64)
|
||||
return dest;
|
||||
}
|
||||
|
||||
EXTERNC void *memcpy_ssse3(void *dest, const void *src, size_t n)
|
||||
{
|
||||
#if defined(a64)
|
||||
char *d = (char *)dest;
|
||||
const char *s = (const char *)src;
|
||||
|
||||
@ -110,11 +117,13 @@ EXTERNC void *memcpy_ssse3(void *dest, const void *src, size_t n)
|
||||
}
|
||||
|
||||
memcpy_unsafe(d, s, n);
|
||||
#endif // defined(a64)
|
||||
return dest;
|
||||
}
|
||||
|
||||
EXTERNC void *memcpy_sse4_1(void *dest, const void *src, size_t n)
|
||||
{
|
||||
#if defined(a64)
|
||||
char *d = (char *)dest;
|
||||
const char *s = (const char *)src;
|
||||
|
||||
@ -136,11 +145,13 @@ EXTERNC void *memcpy_sse4_1(void *dest, const void *src, size_t n)
|
||||
}
|
||||
|
||||
memcpy_unsafe(d, s, n);
|
||||
#endif // defined(a64)
|
||||
return dest;
|
||||
}
|
||||
|
||||
EXTERNC void *memcpy_sse4_2(void *dest, const void *src, size_t n)
|
||||
{
|
||||
#if defined(a64)
|
||||
char *d = (char *)dest;
|
||||
const char *s = (const char *)src;
|
||||
|
||||
@ -162,5 +173,6 @@ EXTERNC void *memcpy_sse4_2(void *dest, const void *src, size_t n)
|
||||
}
|
||||
|
||||
memcpy_unsafe(d, s, n);
|
||||
#endif // defined(a64)
|
||||
return dest;
|
||||
}
|
||||
|
@ -39,6 +39,7 @@ EXTERNC void *memset_sse4_1(void *dest, int c, size_t n)
|
||||
|
||||
EXTERNC void *memset_sse4_2(void *dest, int c, size_t n)
|
||||
{
|
||||
#if defined(a64)
|
||||
char *d = (char *)dest;
|
||||
|
||||
if (((uintptr_t)d & 0xF) == 0)
|
||||
@ -58,5 +59,6 @@ EXTERNC void *memset_sse4_2(void *dest, int c, size_t n)
|
||||
}
|
||||
|
||||
memset_unsafe(d, c, n);
|
||||
#endif
|
||||
return dest;
|
||||
}
|
||||
|
@ -120,7 +120,7 @@ void md5Finalize(MD5Context *ctx)
|
||||
unsigned int offset = ctx->size % 64;
|
||||
unsigned int padding_length = offset < 56 ? 56 - offset : (56 + 64) - offset;
|
||||
|
||||
// Fill in the padding andndo the changes to size that resulted from the update
|
||||
// Fill in the padding and do the changes to size that resulted from the update
|
||||
md5Update(ctx, PADDING, padding_length);
|
||||
ctx->size -= (uint64_t)padding_length;
|
||||
|
||||
@ -134,7 +134,11 @@ void md5Finalize(MD5Context *ctx)
|
||||
(uint32_t)(ctx->input[(j * 4)]);
|
||||
}
|
||||
input[14] = (uint32_t)(ctx->size * 8);
|
||||
#ifdef a32
|
||||
input[15] = (uint32_t)((ctx->size >> 32) | (ctx->size << 32)) >> 32;
|
||||
#else
|
||||
input[15] = (uint32_t)((ctx->size * 8) >> 32);
|
||||
#endif
|
||||
|
||||
md5Step(ctx->buffer, input);
|
||||
|
||||
|
Reference in New Issue
Block a user