x32 is now compiling

This commit is contained in:
Alex
2023-03-04 21:17:19 +02:00
parent aa29c8a415
commit 5c91f23527
57 changed files with 1217 additions and 573 deletions

View File

@ -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!"

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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);