Home
last modified time | relevance | path

Searched refs:st0_ptr (Results 1 – 14 of 14) sorted by relevance

/kernel/linux/linux-5.10/arch/x86/math-emu/
Dfpu_trig.c34 static int trig_arg(FPU_REG *st0_ptr, int even) in trig_arg() argument
42 if (exponent(st0_ptr) >= 63) { in trig_arg()
50 setpositive(st0_ptr); in trig_arg()
51 tag = FPU_u_div(st0_ptr, &CONST_PI2, &tmp, PR_64_BITS | RC_CHOP | 0x3f, in trig_arg()
58 rem_kernel(significand(st0_ptr), in trig_arg()
61 q, exponent(st0_ptr) - exponent(&CONST_PI2)); in trig_arg()
77 if ((exponent(st0_ptr) <= exponent(&CONST_PI2extra) + 64) in trig_arg()
92 if (signnegative(st0_ptr)) { in trig_arg()
97 setpositive(st0_ptr); in trig_arg()
110 && (exponent(st0_ptr) <= exponent(&CONST_PI2extra) + 64)) in trig_arg()
[all …]
Dfpu_etc.c20 static void fchs(FPU_REG *st0_ptr, u_char st0tag) in fchs() argument
23 signbyte(st0_ptr) ^= SIGN_NEG; in fchs()
29 static void fabs(FPU_REG *st0_ptr, u_char st0tag) in fabs() argument
32 setpositive(st0_ptr); in fabs()
38 static void ftst_(FPU_REG *st0_ptr, u_char st0tag) in ftst_() argument
45 if (getsign(st0_ptr) == SIGN_POS) in ftst_()
51 switch (FPU_Special(st0_ptr)) { in ftst_()
53 if (getsign(st0_ptr) == SIGN_POS) in ftst_()
60 if (getsign(st0_ptr) == SIGN_POS) in ftst_()
71 if (getsign(st0_ptr) == SIGN_POS) in ftst_()
[all …]
Dpoly_sin.c58 void poly_sine(FPU_REG *st0_ptr) in poly_sine() argument
66 exponent = exponent(st0_ptr); in poly_sine()
73 || ((exponent == -1) && (st0_ptr->sigh <= 0xe21240aa))) { in poly_sine()
76 argSqrd.msw = st0_ptr->sigh; in poly_sine()
77 argSqrd.midw = st0_ptr->sigl; in poly_sine()
79 mul64_Xsig(&argSqrd, &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()
99 mul64_Xsig(&accumulator, &significand(st0_ptr)); in poly_sine()
105 shr_Xsig(&accumulator, exponent(st0_ptr) - exponent); in poly_sine()
[all …]
Dload_store.c71 FPU_REG *st0_ptr; in FPU_load_store() local
76 st0_ptr = NULL; /* Initialized just to stop compiler warnings. */ in FPU_load_store()
96 st0_ptr = &st(0); /* Some of these instructions pop after in FPU_load_store()
107 st0_ptr = &st(0); in FPU_load_store()
166 (st0_ptr, st0_tag, (long __user *)data_address)) in FPU_load_store()
176 (st0_ptr, st0_tag, (long long __user *)data_address)) in FPU_load_store()
186 (st0_ptr, st0_tag, (short __user *)data_address)) in FPU_load_store()
193 FPU_store_single(st0_ptr, st0_tag, in FPU_load_store()
198 FPU_store_int32(st0_ptr, st0_tag, (long __user *)data_address); in FPU_load_store()
202 FPU_store_double(st0_ptr, st0_tag, in FPU_load_store()
[all …]
Dreg_ld_str.c214 FPU_REG *st0_ptr = &st(0); in FPU_load_int64() local
223 reg_copy(&CONST_Z, st0_ptr); in FPU_load_int64()
234 significand(st0_ptr) = s; in FPU_load_int64()
236 return normalize_no_excep(st0_ptr, 63, sign); in FPU_load_int64()
300 FPU_REG *st0_ptr = &st(0); in FPU_load_bcd() local
325 reg_copy(&CONST_Z, st0_ptr); in FPU_load_bcd()
326 addexponent(st0_ptr, sign); /* Set the sign. */ in FPU_load_bcd()
329 significand(st0_ptr) = l; in FPU_load_bcd()
330 return normalize_no_excep(st0_ptr, 63, sign); in FPU_load_bcd()
337 int FPU_store_extended(FPU_REG *st0_ptr, u_char st0_tag, in FPU_store_extended() argument
[all …]
Dfpu_proto.h98 extern void poly_atan(FPU_REG * st0_ptr, u_char st0_tag, FPU_REG *st1_ptr,
101 extern void poly_l2(FPU_REG *st0_ptr, FPU_REG *st1_ptr, u_char st1_sign);
105 extern void poly_sine(FPU_REG *st0_ptr);
106 extern void poly_cos(FPU_REG *st0_ptr);
108 extern void poly_tan(FPU_REG *st0_ptr);
134 extern int FPU_store_extended(FPU_REG *st0_ptr, u_char st0_tag,
136 extern int FPU_store_double(FPU_REG *st0_ptr, u_char st0_tag,
138 extern int FPU_store_single(FPU_REG *st0_ptr, u_char st0_tag,
140 extern int FPU_store_int64(FPU_REG *st0_ptr, u_char st0_tag,
142 extern int FPU_store_int32(FPU_REG *st0_ptr, u_char st0_tag, long __user *d);
[all …]
Dpoly_tan.c51 void poly_tan(FPU_REG *st0_ptr) in poly_tan() argument
59 exponent = exponent(st0_ptr); in poly_tan()
62 if (signnegative(st0_ptr)) { /* Can't hack a number < 0.0 */ in poly_tan()
70 || ((exponent == -1) && (st0_ptr->sigh > 0xc90fdaa2))) { in poly_tan()
74 XSIG_LL(accum) = significand(st0_ptr); in poly_tan()
86 significand(st0_ptr) = 0x8a51e04daabda360LL; in poly_tan()
87 setexponent16(st0_ptr, in poly_tan()
98 XSIG_LL(accum) = XSIG_LL(argSignif) = significand(st0_ptr); in poly_tan()
210 significand(st0_ptr) = XSIG_LL(accum); in poly_tan()
211 setexponent16(st0_ptr, exponent + EXTENDED_Ebias); /* Result is positive. */ in poly_tan()
Dpoly_atan.c52 void poly_atan(FPU_REG *st0_ptr, u_char st0_tag, in poly_atan() argument
61 sign1 = getsign(st0_ptr); in poly_atan()
64 exponent = exponent(st0_ptr); in poly_atan()
67 FPU_to_exp16(st0_ptr, st0_ptr); in poly_atan()
68 exponent = exponent16(st0_ptr); in poly_atan()
79 ((st0_ptr->sigh < st1_ptr->sigh) || in poly_atan()
80 ((st0_ptr->sigh == st1_ptr->sigh) && in poly_atan()
81 (st0_ptr->sigl < st1_ptr->sigl))))) { in poly_atan()
84 XSIG_LL(Numer) = significand(st0_ptr); in poly_atan()
91 XSIG_LL(Denom) = significand(st0_ptr); in poly_atan()
Dreg_compare.c28 FPU_REG *st0_ptr; in compare() local
32 st0_ptr = &st(0); in compare()
34 st0_sign = getsign(st0_ptr); in compare()
39 st0_tag = FPU_Special(st0_ptr); in compare()
95 (st0_ptr->sigh & 0xc0000000) == 0x80000000; in compare()
96 unsupported = !((exponent(st0_ptr) == EXP_OVER) in compare()
97 && (st0_ptr-> in compare()
123 FPU_to_exp16(st0_ptr, &x); in compare()
125 st0_ptr = &x; in compare()
127 exp0 = exponent16(st0_ptr); in compare()
[all …]
Dreg_divide.c31 FPU_REG const *a, *b, *st0_ptr, *st_ptr; in FPU_div() local
43 st0_ptr = b; in FPU_div()
55 st0_ptr = a; in FPU_div()
134 st0_ptr); in FPU_div()
140 tag = FPU_Special(st0_ptr); in FPU_div()
141 return real_2op_NaN(st0_ptr, tag, rm, in FPU_div()
142 (flags & REV) ? st0_ptr : &st(rm)); in FPU_div()
149 (flags & REV) ? st0_ptr : &st(rm)); in FPU_div()
Dpoly_l2.c27 void poly_l2(FPU_REG *st0_ptr, FPU_REG *st1_ptr, u_char st1_sign) in poly_l2() argument
35 exponent = exponent16(st0_ptr); in poly_l2()
38 if (st0_ptr->sigh > (unsigned)0xb504f334) { in poly_l2()
40 significand(&x) = -significand(st0_ptr); in poly_l2()
46 x.sigh = st0_ptr->sigh - 0x80000000; in poly_l2()
47 x.sigl = st0_ptr->sigl; in poly_l2()
107 FPU_REG * st0_ptr, FPU_REG * st1_ptr, FPU_REG * dest) in poly_l2p1() argument
113 if (exponent16(st0_ptr) < 0) { in poly_l2p1()
114 log2_kernel(st0_ptr, sign0, &accumulator, &exponent); in poly_l2p1()
Dfpu_aux.c135 FPU_REG *st0_ptr = &st(0), *sti_ptr = &st(i); in fxch_i() local
157 FPU_copy_to_regi(st0_ptr, st0_tag, i); in fxch_i()
164 reg_copy(st0_ptr, &t); in fxch_i()
165 reg_copy(sti_ptr, st0_ptr); in fxch_i()
177 FPU_REG *st0_ptr = &st(0); in fcmovCC() local
189 reg_copy(sti_ptr, st0_ptr); in fcmovCC()
Dfpu_entry.c108 FPU_REG *st0_ptr; in math_emulate() local
266 st0_ptr = &st(0); in math_emulate()
317 if (((st0_tag == TAG_Special) && isNaN(st0_ptr)) in math_emulate()
351 st0_ptr); in math_emulate()
384 setsign(st0_ptr, in math_emulate()
473 st0_ptr = &st(0); in math_emulate()
Dfpu_emu.h126 typedef void (*FUNC_ST0) (FPU_REG *st0_ptr, u_char st0_tag);