void _Qp_uxtoq(long double *c, const unsigned long a) { FP_DECL_EX; FP_DECL_Q(C); unsigned long b = a; FP_FROM_INT_Q(C, b, 64, unsigned long); FP_PACK_RAW_QP(c, C); QP_NO_EXCEPTIONS; }
void _Qp_uitoq(long double *c, const unsigned int a) { FP_DECL_EX; FP_DECL_Q(C); unsigned int b = a; FP_FROM_INT_Q(C, b, 32, unsigned int); FP_PACK_RAW_QP(c, C); QP_NO_EXCEPTIONS; }
void _Qp_stoq(long double *c, const float a) { FP_DECL_EX; FP_DECL_S(A); FP_DECL_Q(C); FP_INIT_ROUNDMODE; FP_UNPACK_RAW_S(A, a); #if (2 * _FP_W_TYPE_SIZE) < _FP_FRACBITS_Q FP_EXTEND(Q,S,4,1,C,A); #else FP_EXTEND(Q,S,2,1,C,A); #endif FP_PACK_RAW_QP(c, C); QP_HANDLE_EXCEPTIONS(__asm ( " fstoq %1, %%f60\n" " std %%f60, [%0]\n" " std %%f62, [%0+8]\n" " " : : "r" (c), "f" (a) : QP_CLOBBER)); }