forked from Bananymous/banan-os
userspace: Allow building without SSE
I had added changes that had broken compilation without sse support
This commit is contained in:
@@ -17,6 +17,7 @@
|
||||
|
||||
__BEGIN_DECLS
|
||||
|
||||
#if __enable_sse
|
||||
BUILTINS1(acos)
|
||||
BUILTINS1(acosh)
|
||||
BUILTINS1(asin)
|
||||
@@ -65,5 +66,6 @@ BUILTINS1(tgamma)
|
||||
BUILTINS1(trunc)
|
||||
BUILTINS1(y0)
|
||||
BUILTINS1(y1)
|
||||
#endif
|
||||
|
||||
__END_DECLS
|
||||
|
||||
@@ -262,6 +262,7 @@ int scanf_impl(const char* format, va_list arguments, int (*__getc_fun)(void*),
|
||||
}
|
||||
};
|
||||
|
||||
#if __enable_sse
|
||||
auto parse_floating_point_internal =
|
||||
[&parse_integer_internal, &get_input, &in]<int BASE, typename T>(BASE_TYPE<BASE>, bool negative, int width, T* out, bool require_start = true) -> ConversionResult
|
||||
{
|
||||
@@ -436,6 +437,7 @@ int scanf_impl(const char* format, va_list arguments, int (*__getc_fun)(void*),
|
||||
return ConversionResult::MATCH_FAILURE;
|
||||
}
|
||||
};
|
||||
#endif
|
||||
|
||||
auto parse_string =
|
||||
[&arguments, &get_input, &in](uint8_t* mask, bool exclude, bool suppress, bool allocate, int min_len, int max_len, bool terminate) -> ConversionResult
|
||||
@@ -520,9 +522,11 @@ int scanf_impl(const char* format, va_list arguments, int (*__getc_fun)(void*),
|
||||
case 'x': result = parse_integer(BASE_TYPE<16>{}, IS_UNSIGNED<true> {}, conversion.suppress, conversion.field_width, conversion.length); break;
|
||||
case 'X': result = parse_integer(BASE_TYPE<16>{}, IS_UNSIGNED<true> {}, conversion.suppress, conversion.field_width, conversion.length); break;
|
||||
case 'p': result = parse_integer(BASE_TYPE<16>{}, IS_UNSIGNED<true> {}, conversion.suppress, conversion.field_width, LengthModifier::j); break;
|
||||
#if __enable_sse
|
||||
case 'a': case 'e': case 'f': case 'g':
|
||||
result = parse_floating_point(conversion.suppress, conversion.field_width, conversion.length);
|
||||
break;
|
||||
#endif
|
||||
case 'S':
|
||||
conversion.length = LengthModifier::l;
|
||||
// fall through
|
||||
|
||||
@@ -158,6 +158,7 @@ static T strtoT(const char* str, char** endp, int base, int& error)
|
||||
return result;
|
||||
}
|
||||
|
||||
#if __enable_sse
|
||||
template<BAN::floating_point T>
|
||||
static T strtoT(const char* str, char** endp, int& error)
|
||||
{
|
||||
@@ -303,11 +304,14 @@ static T strtoT(const char* str, char** endp, int& error)
|
||||
result *= BAN::Math::pow<T>((base == 10) ? 10 : 2, exponent);
|
||||
return result;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if __enable_sse
|
||||
double atof(const char* str)
|
||||
{
|
||||
return strtod(str, nullptr);
|
||||
}
|
||||
#endif
|
||||
|
||||
int atoi(const char* str)
|
||||
{
|
||||
@@ -324,6 +328,7 @@ long long atoll(const char* str)
|
||||
return strtoll(str, nullptr, 10);
|
||||
}
|
||||
|
||||
#if __enable_sse
|
||||
float strtof(const char* __restrict str, char** __restrict endp)
|
||||
{
|
||||
return strtoT<float>(str, endp, errno);
|
||||
@@ -338,6 +343,7 @@ long double strtold(const char* __restrict str, char** __restrict endp)
|
||||
{
|
||||
return strtoT<long double>(str, endp, errno);
|
||||
}
|
||||
#endif
|
||||
|
||||
long strtol(const char* __restrict str, char** __restrict endp, int base)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user