many things, cosmo build!
This commit is contained in:
@@ -0,0 +1,46 @@
|
||||
/*
|
||||
Generic no libc std parts.
|
||||
*/
|
||||
|
||||
#include <stddef.h>
|
||||
|
||||
/* Compiler depends on them with low optimization level. */
|
||||
void *memcpy(void *__restrict dest, const void *__restrict src, size_t n) {
|
||||
for (size_t i = 0; i < n; ++i)
|
||||
((char *)dest)[i] = ((char *)src)[i];
|
||||
return dest;
|
||||
};
|
||||
|
||||
void *memset(void *__restrict dest, int s, size_t n) {
|
||||
for (size_t i = 0; i < n; ++i)
|
||||
((char *)dest)[i] = s;
|
||||
return dest;
|
||||
};
|
||||
|
||||
size_t strlen(char const *s) {
|
||||
char const *p = s;
|
||||
for (; *p != 0; ++p) {
|
||||
}
|
||||
return p - s;
|
||||
}
|
||||
|
||||
double com_std_sin(double v) {
|
||||
double result;
|
||||
__asm__ __volatile__("fldl %1\n\t"
|
||||
"fsin\n\t"
|
||||
"fstpl %0"
|
||||
: "=g"(result)
|
||||
: "m"(v)
|
||||
: "st", "st(1)");
|
||||
return result;
|
||||
}
|
||||
|
||||
double com_std_cos(double v) {
|
||||
double result;
|
||||
__asm__ __volatile__("fldl %1\n\t"
|
||||
"fcos\n\t"
|
||||
"fstpl %0"
|
||||
: "=g"(result)
|
||||
: "m"(v));
|
||||
return result;
|
||||
}
|
||||
Reference in New Issue
Block a user