Espresso 0.0.1b

This commit is contained in:
2025-06-27 14:48:06 -05:00
parent fca025a9bf
commit c336584114
39 changed files with 2676 additions and 936 deletions

View File

@ -1,32 +1,33 @@
#include <stdlib.h>
#include <stdio.h>
#include <vector_extentions/sse.h>
#include <string.h>
extern int16_t sse_initialized;
extern int32_t sse_initialized;
size_t strlen(const char* str)
{
size_t len = 0;
while (str[len]) len++;
return len;
}
size_t strcmp(const char *s1, const char *s2)
{
int32_t i = 0;
while ((s1[i] == s2[i]))
size_t len = 0;
while (str[len])
{
if (s2[i++] == 0)
{
return 0;
}
len++;
}
return 1;
return len;
}
int32_t strcmp(const char *s1, const char *s2)
{
while (*s1 && (*s1 == *s2))
{
s1++;
s2++;
}
return (unsigned char)*s1 - (unsigned char)*s2;
}
int32_t strncmp(const char *s1, const char *s2, size_t n)
{
while (n--)
@ -45,16 +46,36 @@ int32_t strncmp(const char *s1, const char *s2, size_t n)
return 0;
}
size_t strcpy(char *dst, const char *src)
int32_t strcasecmp(const char* s1, const char* s2)
{
int32_t i = 0;
while ((*dst++ = *src++) != 0)
i++;
return i;
unsigned char c1, c2;
while (*s1 && *s2)
{
c1 = lower((unsigned char)*s1);
c2 = lower((unsigned char)*s2);
if (c1 != c2)
{
return c1 - c2;
}
s1++;
s2++;
}
return lower((unsigned char)*s1) - lower((unsigned char)*s2);
}
char *strncpy(char *dest, const char *src, uint32_t n)
char* strcpy(char *dst, const char *src)
{
char *ret = dst;
while ((*dst++ = *src++) != 0);
return ret;
}
char* strncpy(char *dest, const char *src, uint32_t n)
{
if (sse_initialized > 0)
{
@ -63,22 +84,31 @@ char *strncpy(char *dest, const char *src, uint32_t n)
uint32_t i = 0;
for (; i < n && src[i]; ++i)
{
dest[i] = src[i];
}
for (; i < n; ++i)
{
dest[i] = '\0';
}
return dest;
}
void strcat(char *dest, const char *src)
char* strcat(char *dest, const char *src)
{
char *end = (char *)dest + strlen(dest);
memcpy((void *)end, (void *)src, strlen(src));
end = end + strlen(src);
*end = '\0';
char *end = dest + strlen(dest);
while (*src)
{
*end++ = *src++;
}
*end = '\0';
return dest;
}
char* strdup(const char* s)
{
if (!s)
@ -143,11 +173,11 @@ char* strchr(const char* s, int c)
{
while (*s)
{
if (*s == (char)c)
{
return (char*)s;
}
s++;
if (*s == (char)c)
{
return (char*)s;
}
s++;
}
return NULL;
@ -155,43 +185,54 @@ char* strchr(const char* s, int c)
void *memset(void *dst, char c, uint32_t n)
void* memset(void *dst, char c, uint32_t n)
{
char *temp = dst;
for (; n != 0; n--) *temp++ = c;
for (; n != 0; n--)
{
*temp++ = c;
}
return dst;
}
void *memcpy(void *dst, const void *src, uint32_t n)
void* memcpy(void *dst, const void *src, uint32_t n)
{
if (sse_initialized > 0)
if (sse_initialized > 1)
{
return sse2_memcpy(dst, src, n);
}
char *ret = dst;
char *p = dst;
const char *q = src;
char *d = dst;
const char *s = src;
while (n--)
*p++ = *q++;
return ret;
{
*d++ = *s++;
}
return dst;
}
int32_t memcmp(uint8_t *s1, uint8_t *s2, uint32_t n)
int32_t memcmp(const void *s1, const void *s2, size_t n)
{
while (n--)
const uint8_t *p1 = (const uint8_t *)s1;
const uint8_t *p2 = (const uint8_t *)s2;
printf("p1: %i, p2: %i\n", (int32_t)*p1, (int32_t)*p2);
for (size_t i = 0; i < n; i++)
{
if (p1[i] != p2[i])
{
if (*s1 != *s2)
return 0;
s1++;
s2++;
return (int32_t)p1[i] - (int32_t)p2[i];
}
return 1;
}
return 0;
}
void* memclr(const void * const m_start, const size_t m_count)
void* memclr(void* m_start, size_t m_count)
{
if (sse_initialized > 0)
if (sse_initialized > 1)
{
return memclr_sse2(m_start, m_count);
}
@ -215,13 +256,6 @@ int32_t ischar(int32_t c)
}
char upper(char c)
{
if ((c >= 'a') && (c <= 'z'))
return (c - 32);
return c;
}
char toupper(char c)
{
if ((c >= 'a') && (c <= 'z'))
{
@ -232,7 +266,19 @@ char toupper(char c)
char lower(char c)
{
if ((c >= 'A') && (c <= 'Z'))
return (c + 32);
return c;
if ((c >= 'A') && (c <= 'Z'))
{
return (c + 32);
}
return c;
}
char toupper(char c)
{
return upper(c);
}
char tolower(char c)
{
return lower(c);
}