/arch/x86/math-emu/ |
D | fpu_trig.c | 33 static int trig_arg(FPU_REG *st0_ptr, int even) in trig_arg() argument 41 if (exponent(st0_ptr) >= 63) { in trig_arg() 49 setpositive(st0_ptr); in trig_arg() 50 tag = FPU_u_div(st0_ptr, &CONST_PI2, &tmp, PR_64_BITS | RC_CHOP | 0x3f, in trig_arg() 57 rem_kernel(significand(st0_ptr), in trig_arg() 60 q, exponent(st0_ptr) - exponent(&CONST_PI2)); in trig_arg() 76 if ((exponent(st0_ptr) <= exponent(&CONST_PI2extra) + 64) in trig_arg() 91 if (signnegative(st0_ptr)) { in trig_arg() 96 setpositive(st0_ptr); in trig_arg() 109 && (exponent(st0_ptr) <= exponent(&CONST_PI2extra) + 64)) in trig_arg() [all …]
|
D | fpu_etc.c | 19 static void fchs(FPU_REG *st0_ptr, u_char st0tag) in fchs() argument 22 signbyte(st0_ptr) ^= SIGN_NEG; in fchs() 28 static void fabs(FPU_REG *st0_ptr, u_char st0tag) in fabs() argument 31 setpositive(st0_ptr); in fabs() 37 static void ftst_(FPU_REG *st0_ptr, u_char st0tag) in ftst_() argument 44 if (getsign(st0_ptr) == SIGN_POS) in ftst_() 50 switch (FPU_Special(st0_ptr)) { in ftst_() 52 if (getsign(st0_ptr) == SIGN_POS) in ftst_() 59 if (getsign(st0_ptr) == SIGN_POS) in ftst_() 70 if (getsign(st0_ptr) == SIGN_POS) in ftst_() [all …]
|
D | poly_sin.c | 57 void poly_sine(FPU_REG *st0_ptr) in poly_sine() argument 65 exponent = exponent(st0_ptr); in poly_sine() 72 || ((exponent == -1) && (st0_ptr->sigh <= 0xe21240aa))) { in poly_sine() 75 argSqrd.msw = st0_ptr->sigh; in poly_sine() 76 argSqrd.midw = st0_ptr->sigl; in poly_sine() 78 mul64_Xsig(&argSqrd, &significand(st0_ptr)); in poly_sine() 96 mul64_Xsig(&accumulator, &significand(st0_ptr)); in poly_sine() 97 mul64_Xsig(&accumulator, &significand(st0_ptr)); in poly_sine() 98 mul64_Xsig(&accumulator, &significand(st0_ptr)); in poly_sine() 104 shr_Xsig(&accumulator, exponent(st0_ptr) - exponent); in poly_sine() [all …]
|
D | load_store.c | 70 FPU_REG *st0_ptr; in FPU_load_store() local 75 st0_ptr = NULL; /* Initialized just to stop compiler warnings. */ in FPU_load_store() 95 st0_ptr = &st(0); /* Some of these instructions pop after in FPU_load_store() 106 st0_ptr = &st(0); in FPU_load_store() 165 (st0_ptr, st0_tag, (long __user *)data_address)) in FPU_load_store() 175 (st0_ptr, st0_tag, (long long __user *)data_address)) in FPU_load_store() 185 (st0_ptr, st0_tag, (short __user *)data_address)) in FPU_load_store() 192 FPU_store_single(st0_ptr, st0_tag, in FPU_load_store() 197 FPU_store_int32(st0_ptr, st0_tag, (long __user *)data_address); in FPU_load_store() 201 FPU_store_double(st0_ptr, st0_tag, in FPU_load_store() [all …]
|
D | reg_ld_str.c | 213 FPU_REG *st0_ptr = &st(0); in FPU_load_int64() local 222 reg_copy(&CONST_Z, st0_ptr); in FPU_load_int64() 233 significand(st0_ptr) = s; in FPU_load_int64() 235 return normalize_no_excep(st0_ptr, 63, sign); in FPU_load_int64() 299 FPU_REG *st0_ptr = &st(0); in FPU_load_bcd() local 324 reg_copy(&CONST_Z, st0_ptr); in FPU_load_bcd() 325 addexponent(st0_ptr, sign); /* Set the sign. */ in FPU_load_bcd() 328 significand(st0_ptr) = l; in FPU_load_bcd() 329 return normalize_no_excep(st0_ptr, 63, sign); in FPU_load_bcd() 336 int FPU_store_extended(FPU_REG *st0_ptr, u_char st0_tag, in FPU_store_extended() argument [all …]
|
D | poly_tan.c | 50 void poly_tan(FPU_REG *st0_ptr) in poly_tan() argument 58 exponent = exponent(st0_ptr); in poly_tan() 61 if (signnegative(st0_ptr)) { /* Can't hack a number < 0.0 */ in poly_tan() 69 || ((exponent == -1) && (st0_ptr->sigh > 0xc90fdaa2))) { in poly_tan() 73 XSIG_LL(accum) = significand(st0_ptr); in poly_tan() 85 significand(st0_ptr) = 0x8a51e04daabda360LL; in poly_tan() 86 setexponent16(st0_ptr, in poly_tan() 97 XSIG_LL(accum) = XSIG_LL(argSignif) = significand(st0_ptr); in poly_tan() 209 significand(st0_ptr) = XSIG_LL(accum); in poly_tan() 210 setexponent16(st0_ptr, exponent + EXTENDED_Ebias); /* Result is positive. */ in poly_tan()
|
D | fpu_proto.h | 97 extern void poly_atan(FPU_REG * st0_ptr, u_char st0_tag, FPU_REG *st1_ptr, 100 extern void poly_l2(FPU_REG *st0_ptr, FPU_REG *st1_ptr, u_char st1_sign); 104 extern void poly_sine(FPU_REG *st0_ptr); 105 extern void poly_cos(FPU_REG *st0_ptr); 107 extern void poly_tan(FPU_REG *st0_ptr); 133 extern int FPU_store_extended(FPU_REG *st0_ptr, u_char st0_tag, 135 extern int FPU_store_double(FPU_REG *st0_ptr, u_char st0_tag, 137 extern int FPU_store_single(FPU_REG *st0_ptr, u_char st0_tag, 139 extern int FPU_store_int64(FPU_REG *st0_ptr, u_char st0_tag, 141 extern int FPU_store_int32(FPU_REG *st0_ptr, u_char st0_tag, long __user *d); [all …]
|
D | poly_atan.c | 51 void poly_atan(FPU_REG *st0_ptr, u_char st0_tag, in poly_atan() argument 60 sign1 = getsign(st0_ptr); in poly_atan() 63 exponent = exponent(st0_ptr); in poly_atan() 66 FPU_to_exp16(st0_ptr, st0_ptr); in poly_atan() 67 exponent = exponent16(st0_ptr); in poly_atan() 78 ((st0_ptr->sigh < st1_ptr->sigh) || in poly_atan() 79 ((st0_ptr->sigh == st1_ptr->sigh) && in poly_atan() 80 (st0_ptr->sigl < st1_ptr->sigl))))) { in poly_atan() 83 XSIG_LL(Numer) = significand(st0_ptr); in poly_atan() 90 XSIG_LL(Denom) = significand(st0_ptr); in poly_atan()
|
D | reg_compare.c | 27 FPU_REG *st0_ptr; in compare() local 31 st0_ptr = &st(0); in compare() 33 st0_sign = getsign(st0_ptr); in compare() 38 st0_tag = FPU_Special(st0_ptr); in compare() 94 (st0_ptr->sigh & 0xc0000000) == 0x80000000; in compare() 95 unsupported = !((exponent(st0_ptr) == EXP_OVER) in compare() 96 && (st0_ptr-> in compare() 122 FPU_to_exp16(st0_ptr, &x); in compare() 124 st0_ptr = &x; in compare() 126 exp0 = exponent16(st0_ptr); in compare() [all …]
|
D | reg_divide.c | 30 FPU_REG const *a, *b, *st0_ptr, *st_ptr; in FPU_div() local 42 st0_ptr = b; in FPU_div() 54 st0_ptr = a; in FPU_div() 133 st0_ptr); in FPU_div() 139 tag = FPU_Special(st0_ptr); in FPU_div() 140 return real_2op_NaN(st0_ptr, tag, rm, in FPU_div() 141 (flags & REV) ? st0_ptr : &st(rm)); in FPU_div() 148 (flags & REV) ? st0_ptr : &st(rm)); in FPU_div()
|
D | poly_l2.c | 26 void poly_l2(FPU_REG *st0_ptr, FPU_REG *st1_ptr, u_char st1_sign) in poly_l2() argument 34 exponent = exponent16(st0_ptr); in poly_l2() 37 if (st0_ptr->sigh > (unsigned)0xb504f334) { in poly_l2() 39 significand(&x) = -significand(st0_ptr); in poly_l2() 45 x.sigh = st0_ptr->sigh - 0x80000000; in poly_l2() 46 x.sigl = st0_ptr->sigl; in poly_l2() 106 FPU_REG * st0_ptr, FPU_REG * st1_ptr, FPU_REG * dest) in poly_l2p1() argument 112 if (exponent16(st0_ptr) < 0) { in poly_l2p1() 113 log2_kernel(st0_ptr, sign0, &accumulator, &exponent); in poly_l2p1()
|
D | fpu_aux.c | 134 FPU_REG *st0_ptr = &st(0), *sti_ptr = &st(i); in fxch_i() local 156 FPU_copy_to_regi(st0_ptr, st0_tag, i); in fxch_i() 163 reg_copy(st0_ptr, &t); in fxch_i() 164 reg_copy(sti_ptr, st0_ptr); in fxch_i() 176 FPU_REG *st0_ptr = &st(0); in fcmovCC() local 188 reg_copy(sti_ptr, st0_ptr); in fcmovCC()
|
D | fpu_entry.c | 107 FPU_REG *st0_ptr; in math_emulate() local 269 st0_ptr = &st(0); in math_emulate() 320 if (((st0_tag == TAG_Special) && isNaN(st0_ptr)) in math_emulate() 354 st0_ptr); in math_emulate() 387 setsign(st0_ptr, in math_emulate() 476 st0_ptr = &st(0); in math_emulate()
|
D | fpu_emu.h | 125 typedef void (*FUNC_ST0) (FPU_REG *st0_ptr, u_char st0_tag);
|