tag | line | file | source code |
st0_ptr | 127 | drivers/FPU-emu/fpu_aux.c | register FPU_REG *sti_ptr = &st(FPU_rm), *st0_ptr = &st(0); |
st0_ptr | 129 | drivers/FPU-emu/fpu_aux.c | if ( st0_ptr->tag == TW_Empty ) |
st0_ptr | 138 | drivers/FPU-emu/fpu_aux.c | reg_move(sti_ptr, st0_ptr); /* Masked response */ |
st0_ptr | 145 | drivers/FPU-emu/fpu_aux.c | reg_move(st0_ptr, sti_ptr); /* Masked response */ |
st0_ptr | 150 | drivers/FPU-emu/fpu_aux.c | reg_move(st0_ptr, &t); |
st0_ptr | 151 | drivers/FPU-emu/fpu_aux.c | reg_move(sti_ptr, st0_ptr); |
st0_ptr | 104 | drivers/FPU-emu/fpu_emu.h | typedef void (*FUNC_ST0)(FPU_REG *st0_ptr); |
st0_ptr | 145 | drivers/FPU-emu/fpu_entry.c | FPU_REG *st0_ptr; |
st0_ptr | 343 | drivers/FPU-emu/fpu_entry.c | st0_ptr = &st(0); |
st0_ptr | 344 | drivers/FPU-emu/fpu_entry.c | st0_tag = st0_ptr->tag; |
st0_ptr | 402 | drivers/FPU-emu/fpu_entry.c | real_2op_NaN(&loaded_data, st0_ptr, |
st0_ptr | 403 | drivers/FPU-emu/fpu_entry.c | st0_ptr); |
st0_ptr | 407 | drivers/FPU-emu/fpu_entry.c | real_2op_NaN(st0_ptr, &loaded_data, |
st0_ptr | 408 | drivers/FPU-emu/fpu_entry.c | st0_ptr); |
st0_ptr | 423 | drivers/FPU-emu/fpu_entry.c | st0_ptr) ) |
st0_ptr | 441 | drivers/FPU-emu/fpu_entry.c | reg_add(st0_ptr, &loaded_data, st0_ptr, |
st0_ptr | 446 | drivers/FPU-emu/fpu_entry.c | reg_mul(st0_ptr, &loaded_data, st0_ptr, |
st0_ptr | 458 | drivers/FPU-emu/fpu_entry.c | reg_sub(st0_ptr, &loaded_data, st0_ptr, |
st0_ptr | 463 | drivers/FPU-emu/fpu_entry.c | reg_sub(&loaded_data, st0_ptr, st0_ptr, |
st0_ptr | 468 | drivers/FPU-emu/fpu_entry.c | reg_div(st0_ptr, &loaded_data, st0_ptr, |
st0_ptr | 476 | drivers/FPU-emu/fpu_entry.c | reg_div(&loaded_data, st0_ptr, st0_ptr, |
st0_ptr | 520 | drivers/FPU-emu/fpu_entry.c | st0_ptr = &st(0); |
st0_ptr | 521 | drivers/FPU-emu/fpu_entry.c | st0_tag = st0_ptr->tag; |
st0_ptr | 20 | drivers/FPU-emu/fpu_etc.c | static void fchs(FPU_REG *st0_ptr) |
st0_ptr | 22 | drivers/FPU-emu/fpu_etc.c | if ( st0_ptr->tag ^ TW_Empty ) |
st0_ptr | 24 | drivers/FPU-emu/fpu_etc.c | st0_ptr->sign ^= SIGN_POS^SIGN_NEG; |
st0_ptr | 31 | drivers/FPU-emu/fpu_etc.c | static void fabs(FPU_REG *st0_ptr) |
st0_ptr | 33 | drivers/FPU-emu/fpu_etc.c | if ( st0_ptr->tag ^ TW_Empty ) |
st0_ptr | 35 | drivers/FPU-emu/fpu_etc.c | st0_ptr->sign = SIGN_POS; |
st0_ptr | 43 | drivers/FPU-emu/fpu_etc.c | static void ftst_(FPU_REG *st0_ptr) |
st0_ptr | 45 | drivers/FPU-emu/fpu_etc.c | switch (st0_ptr->tag) |
st0_ptr | 51 | drivers/FPU-emu/fpu_etc.c | if (st0_ptr->sign == SIGN_POS) |
st0_ptr | 57 | drivers/FPU-emu/fpu_etc.c | if ( (st0_ptr->exp <= EXP_UNDER) && (denormal_operand()) ) |
st0_ptr | 61 | drivers/FPU-emu/fpu_etc.c | if (st0_ptr->sign == SIGN_POS) |
st0_ptr | 74 | drivers/FPU-emu/fpu_etc.c | if (st0_ptr->sign == SIGN_POS) |
st0_ptr | 90 | drivers/FPU-emu/fpu_etc.c | static void fxam(FPU_REG *st0_ptr) |
st0_ptr | 93 | drivers/FPU-emu/fpu_etc.c | switch (st0_ptr->tag) |
st0_ptr | 103 | drivers/FPU-emu/fpu_etc.c | if ( st0_ptr->exp <= EXP_UNDER ) |
st0_ptr | 115 | drivers/FPU-emu/fpu_etc.c | if (st0_ptr->sign == SIGN_NEG) |
st0_ptr | 121 | drivers/FPU-emu/fpu_proto.h | extern int reg_store_extended(long double *d, FPU_REG *st0_ptr); |
st0_ptr | 122 | drivers/FPU-emu/fpu_proto.h | extern int reg_store_double(double *dfloat, FPU_REG *st0_ptr); |
st0_ptr | 123 | drivers/FPU-emu/fpu_proto.h | extern int reg_store_single(float *single, FPU_REG *st0_ptr); |
st0_ptr | 124 | drivers/FPU-emu/fpu_proto.h | extern int reg_store_int64(long long *d, FPU_REG *st0_ptr); |
st0_ptr | 125 | drivers/FPU-emu/fpu_proto.h | extern int reg_store_int32(long *d, FPU_REG *st0_ptr); |
st0_ptr | 126 | drivers/FPU-emu/fpu_proto.h | extern int reg_store_int16(short *d, FPU_REG *st0_ptr); |
st0_ptr | 127 | drivers/FPU-emu/fpu_proto.h | extern int reg_store_bcd(char *d, FPU_REG *st0_ptr); |
st0_ptr | 169 | drivers/FPU-emu/fpu_trig.c | static void single_arg_error(FPU_REG *st0_ptr) |
st0_ptr | 171 | drivers/FPU-emu/fpu_trig.c | switch ( st0_ptr->tag ) |
st0_ptr | 174 | drivers/FPU-emu/fpu_trig.c | if ( !(st0_ptr->sigh & 0x40000000) ) /* Signaling ? */ |
st0_ptr | 178 | drivers/FPU-emu/fpu_trig.c | st0_ptr->sigh |= 0x40000000; /* Convert to a QNaN */ |
st0_ptr | 192 | drivers/FPU-emu/fpu_trig.c | static void single_arg_2_error(FPU_REG *st0_ptr) |
st0_ptr | 196 | drivers/FPU-emu/fpu_trig.c | switch ( st0_ptr->tag ) |
st0_ptr | 199 | drivers/FPU-emu/fpu_trig.c | if ( !(st0_ptr->sigh & 0x40000000) ) /* Signaling ? */ |
st0_ptr | 206 | drivers/FPU-emu/fpu_trig.c | st0_ptr->sigh |= 0x40000000; |
st0_ptr | 230 | drivers/FPU-emu/fpu_trig.c | static void f2xm1(FPU_REG *st0_ptr) |
st0_ptr | 233 | drivers/FPU-emu/fpu_trig.c | switch ( st0_ptr->tag ) |
st0_ptr | 239 | drivers/FPU-emu/fpu_trig.c | if ( st0_ptr->exp >= 0 ) |
st0_ptr | 243 | drivers/FPU-emu/fpu_trig.c | else if ( st0_ptr->exp >= -64 ) |
st0_ptr | 245 | drivers/FPU-emu/fpu_trig.c | if ( st0_ptr->sign == SIGN_POS ) |
st0_ptr | 248 | drivers/FPU-emu/fpu_trig.c | poly_2xm1(st0_ptr, &rv); |
st0_ptr | 249 | drivers/FPU-emu/fpu_trig.c | reg_mul(&rv, st0_ptr, st0_ptr, FULL_PRECISION); |
st0_ptr | 256 | drivers/FPU-emu/fpu_trig.c | st0_ptr->sign = SIGN_POS; |
st0_ptr | 257 | drivers/FPU-emu/fpu_trig.c | poly_2xm1(st0_ptr, &rv); |
st0_ptr | 258 | drivers/FPU-emu/fpu_trig.c | reg_mul(&rv, st0_ptr, &rv, FULL_PRECISION); |
st0_ptr | 260 | drivers/FPU-emu/fpu_trig.c | reg_div(&rv, &tmp, st0_ptr, FULL_PRECISION); |
st0_ptr | 261 | drivers/FPU-emu/fpu_trig.c | st0_ptr->sign = SIGN_NEG; |
st0_ptr | 267 | drivers/FPU-emu/fpu_trig.c | if ( (st0_ptr->exp <= EXP_UNDER) && (denormal_operand()) ) |
st0_ptr | 271 | drivers/FPU-emu/fpu_trig.c | reg_mul(&CONST_LN2, st0_ptr, st0_ptr, FULL_PRECISION); |
st0_ptr | 279 | drivers/FPU-emu/fpu_trig.c | if ( st0_ptr->sign == SIGN_NEG ) |
st0_ptr | 282 | drivers/FPU-emu/fpu_trig.c | reg_move(&CONST_1, st0_ptr); |
st0_ptr | 283 | drivers/FPU-emu/fpu_trig.c | st0_ptr->sign = SIGN_NEG; |
st0_ptr | 287 | drivers/FPU-emu/fpu_trig.c | single_arg_error(st0_ptr); |
st0_ptr | 292 | drivers/FPU-emu/fpu_trig.c | static void fptan(FPU_REG *st0_ptr) |
st0_ptr | 294 | drivers/FPU-emu/fpu_trig.c | char st0_tag = st0_ptr->tag; |
st0_ptr | 297 | drivers/FPU-emu/fpu_trig.c | char arg_sign = st0_ptr->sign; |
st0_ptr | 319 | drivers/FPU-emu/fpu_trig.c | if ( st0_ptr->exp > EXP_BIAS - 40 ) |
st0_ptr | 321 | drivers/FPU-emu/fpu_trig.c | st0_ptr->sign = SIGN_POS; |
st0_ptr | 322 | drivers/FPU-emu/fpu_trig.c | if ( (q = trig_arg(st0_ptr, FPTAN)) != -1 ) |
st0_ptr | 324 | drivers/FPU-emu/fpu_trig.c | reg_div(st0_ptr, &CONST_PI2, st0_ptr, |
st0_ptr | 326 | drivers/FPU-emu/fpu_trig.c | poly_tan(st0_ptr, st0_ptr, q & FCOS); |
st0_ptr | 327 | drivers/FPU-emu/fpu_trig.c | st0_ptr->sign = (q & 1) ^ arg_sign; |
st0_ptr | 332 | drivers/FPU-emu/fpu_trig.c | st0_ptr->sign = arg_sign; /* restore st(0) */ |
st0_ptr | 341 | drivers/FPU-emu/fpu_trig.c | if ( st0_ptr->exp <= EXP_UNDER ) |
st0_ptr | 350 | drivers/FPU-emu/fpu_trig.c | if ( arith_underflow(st0_ptr) ) |
st0_ptr | 362 | drivers/FPU-emu/fpu_trig.c | arith_invalid(st0_ptr); |
st0_ptr | 376 | drivers/FPU-emu/fpu_trig.c | single_arg_2_error(st0_ptr); |
st0_ptr | 382 | drivers/FPU-emu/fpu_trig.c | static void fxtract(FPU_REG *st0_ptr) |
st0_ptr | 384 | drivers/FPU-emu/fpu_trig.c | char st0_tag = st0_ptr->tag; |
st0_ptr | 386 | drivers/FPU-emu/fpu_trig.c | register FPU_REG *st1_ptr = st0_ptr; /* anticipate */ |
st0_ptr | 396 | drivers/FPU-emu/fpu_trig.c | if ( (st0_ptr->exp <= EXP_UNDER) && (denormal_operand()) ) |
st0_ptr | 409 | drivers/FPU-emu/fpu_trig.c | char sign = st0_ptr->sign; |
st0_ptr | 410 | drivers/FPU-emu/fpu_trig.c | if ( divide_by_zero(SIGN_NEG, st0_ptr) ) |
st0_ptr | 419 | drivers/FPU-emu/fpu_trig.c | char sign = st0_ptr->sign; |
st0_ptr | 420 | drivers/FPU-emu/fpu_trig.c | st0_ptr->sign = SIGN_POS; |
st0_ptr | 428 | drivers/FPU-emu/fpu_trig.c | if ( real_2op_NaN(st0_ptr, st0_ptr, st0_ptr) ) |
st0_ptr | 453 | drivers/FPU-emu/fpu_trig.c | static void fdecstp(FPU_REG *st0_ptr) |
st0_ptr | 459 | drivers/FPU-emu/fpu_trig.c | static void fincstp(FPU_REG *st0_ptr) |
st0_ptr | 466 | drivers/FPU-emu/fpu_trig.c | static void fsqrt_(FPU_REG *st0_ptr) |
st0_ptr | 468 | drivers/FPU-emu/fpu_trig.c | char st0_tag = st0_ptr->tag; |
st0_ptr | 475 | drivers/FPU-emu/fpu_trig.c | if (st0_ptr->sign == SIGN_NEG) |
st0_ptr | 477 | drivers/FPU-emu/fpu_trig.c | arith_invalid(st0_ptr); /* sqrt(negative) is invalid */ |
st0_ptr | 482 | drivers/FPU-emu/fpu_trig.c | if ( (st0_ptr->exp <= EXP_UNDER) && (denormal_operand()) ) |
st0_ptr | 486 | drivers/FPU-emu/fpu_trig.c | expon = st0_ptr->exp - EXP_BIAS; |
st0_ptr | 487 | drivers/FPU-emu/fpu_trig.c | st0_ptr->exp = EXP_BIAS + (expon & 1); /* make st(0) in [1.0 .. 4.0) */ |
st0_ptr | 489 | drivers/FPU-emu/fpu_trig.c | wm_sqrt(st0_ptr, control_word); /* Do the computation */ |
st0_ptr | 491 | drivers/FPU-emu/fpu_trig.c | st0_ptr->exp += expon >> 1; |
st0_ptr | 492 | drivers/FPU-emu/fpu_trig.c | st0_ptr->sign = SIGN_POS; |
st0_ptr | 498 | drivers/FPU-emu/fpu_trig.c | if ( st0_ptr->sign == SIGN_NEG ) |
st0_ptr | 499 | drivers/FPU-emu/fpu_trig.c | arith_invalid(st0_ptr); /* sqrt(-Infinity) is invalid */ |
st0_ptr | 503 | drivers/FPU-emu/fpu_trig.c | { single_arg_error(st0_ptr); return; } |
st0_ptr | 508 | drivers/FPU-emu/fpu_trig.c | static void frndint_(FPU_REG *st0_ptr) |
st0_ptr | 510 | drivers/FPU-emu/fpu_trig.c | char st0_tag = st0_ptr->tag; |
st0_ptr | 515 | drivers/FPU-emu/fpu_trig.c | if (st0_ptr->exp > EXP_BIAS+63) |
st0_ptr | 519 | drivers/FPU-emu/fpu_trig.c | if ( (st0_ptr->exp <= EXP_UNDER) && (denormal_operand()) ) |
st0_ptr | 524 | drivers/FPU-emu/fpu_trig.c | if ( (flags = round_to_int(st0_ptr)) ) |
st0_ptr | 527 | drivers/FPU-emu/fpu_trig.c | st0_ptr->exp = EXP_BIAS + 63; |
st0_ptr | 528 | drivers/FPU-emu/fpu_trig.c | normalize(st0_ptr); |
st0_ptr | 534 | drivers/FPU-emu/fpu_trig.c | single_arg_error(st0_ptr); |
st0_ptr | 538 | drivers/FPU-emu/fpu_trig.c | static void fsin(FPU_REG *st0_ptr) |
st0_ptr | 540 | drivers/FPU-emu/fpu_trig.c | char st0_tag = st0_ptr->tag; |
st0_ptr | 541 | drivers/FPU-emu/fpu_trig.c | char arg_sign = st0_ptr->sign; |
st0_ptr | 548 | drivers/FPU-emu/fpu_trig.c | if ( st0_ptr->exp > EXP_BIAS - 40 ) |
st0_ptr | 550 | drivers/FPU-emu/fpu_trig.c | st0_ptr->sign = SIGN_POS; |
st0_ptr | 551 | drivers/FPU-emu/fpu_trig.c | if ( (q = trig_arg(st0_ptr, 0)) != -1 ) |
st0_ptr | 553 | drivers/FPU-emu/fpu_trig.c | reg_div(st0_ptr, &CONST_PI2, st0_ptr, FULL_PRECISION); |
st0_ptr | 555 | drivers/FPU-emu/fpu_trig.c | poly_sine(st0_ptr, &rv); |
st0_ptr | 560 | drivers/FPU-emu/fpu_trig.c | reg_move(&rv, st0_ptr); |
st0_ptr | 569 | drivers/FPU-emu/fpu_trig.c | st0_ptr->sign = arg_sign; /* restore st(0) */ |
st0_ptr | 578 | drivers/FPU-emu/fpu_trig.c | if ( st0_ptr->exp <= EXP_UNDER ) |
st0_ptr | 587 | drivers/FPU-emu/fpu_trig.c | arith_underflow(st0_ptr); |
st0_ptr | 602 | drivers/FPU-emu/fpu_trig.c | arith_invalid(st0_ptr); |
st0_ptr | 606 | drivers/FPU-emu/fpu_trig.c | single_arg_error(st0_ptr); |
st0_ptr | 681 | drivers/FPU-emu/fpu_trig.c | static void fcos(FPU_REG *st0_ptr) |
st0_ptr | 683 | drivers/FPU-emu/fpu_trig.c | f_cos(st0_ptr); |
st0_ptr | 687 | drivers/FPU-emu/fpu_trig.c | static void fsincos(FPU_REG *st0_ptr) |
st0_ptr | 689 | drivers/FPU-emu/fpu_trig.c | char st0_tag = st0_ptr->tag; |
st0_ptr | 711 | drivers/FPU-emu/fpu_trig.c | single_arg_2_error(st0_ptr); |
st0_ptr | 717 | drivers/FPU-emu/fpu_trig.c | if ( !arith_invalid(st0_ptr) ) |
st0_ptr | 726 | drivers/FPU-emu/fpu_trig.c | reg_move(st0_ptr,&arg); |
st0_ptr | 729 | drivers/FPU-emu/fpu_trig.c | fsin(st0_ptr); |
st0_ptr | 770 | drivers/FPU-emu/fpu_trig.c | static void do_fprem(FPU_REG *st0_ptr, int round) |
st0_ptr | 774 | drivers/FPU-emu/fpu_trig.c | char st0_tag = st0_ptr->tag; |
st0_ptr | 775 | drivers/FPU-emu/fpu_trig.c | char sign = st0_ptr->sign; |
st0_ptr | 781 | drivers/FPU-emu/fpu_trig.c | int expdif = st0_ptr->exp - st1_ptr->exp; |
st0_ptr | 787 | drivers/FPU-emu/fpu_trig.c | if ( ((st0_ptr->exp <= EXP_UNDER) || |
st0_ptr | 804 | drivers/FPU-emu/fpu_trig.c | reg_div(st0_ptr, st1_ptr, &tmp, PR_64_BITS | RC_CHOP | 0x3f); |
st0_ptr | 812 | drivers/FPU-emu/fpu_trig.c | rem_kernel(significand(st0_ptr), |
st0_ptr | 821 | drivers/FPU-emu/fpu_trig.c | reg_move(st0_ptr, &tmp); |
st0_ptr | 869 | drivers/FPU-emu/fpu_trig.c | reg_move(st0_ptr, &tmp); |
st0_ptr | 879 | drivers/FPU-emu/fpu_trig.c | rem_kernel(significand(st0_ptr), |
st0_ptr | 898 | drivers/FPU-emu/fpu_trig.c | reg_move(&CONST_Z, st0_ptr); |
st0_ptr | 899 | drivers/FPU-emu/fpu_trig.c | st0_ptr->sign = sign; |
st0_ptr | 913 | drivers/FPU-emu/fpu_trig.c | reg_move(&tmp, st0_ptr); |
st0_ptr | 918 | drivers/FPU-emu/fpu_trig.c | if ( (st0_ptr->exp <= EXP_UNDER) && (st0_ptr->tag != TW_Zero) |
st0_ptr | 920 | drivers/FPU-emu/fpu_trig.c | arith_underflow(st0_ptr); |
st0_ptr | 941 | drivers/FPU-emu/fpu_trig.c | { arith_invalid(st0_ptr); return; } /* fprem(?,0) always invalid */ |
st0_ptr | 949 | drivers/FPU-emu/fpu_trig.c | arith_invalid(st0_ptr); /* fprem(Valid,Zero) is invalid */ |
st0_ptr | 955 | drivers/FPU-emu/fpu_trig.c | if ( (st0_ptr->exp <= EXP_UNDER) && (denormal_operand()) ) |
st0_ptr | 970 | drivers/FPU-emu/fpu_trig.c | arith_invalid(st0_ptr); /* fprem(Infinity,?) is invalid */ |
st0_ptr | 982 | drivers/FPU-emu/fpu_trig.c | real_2op_NaN(st1_ptr, st0_ptr, st0_ptr); |
st0_ptr | 988 | drivers/FPU-emu/fpu_trig.c | static void fyl2x(FPU_REG *st0_ptr) |
st0_ptr | 990 | drivers/FPU-emu/fpu_trig.c | char st0_tag = st0_ptr->tag; |
st0_ptr | 997 | drivers/FPU-emu/fpu_trig.c | if ( st0_ptr->sign == SIGN_POS ) |
st0_ptr | 1002 | drivers/FPU-emu/fpu_trig.c | if ( ((st0_ptr->exp <= EXP_UNDER) || |
st0_ptr | 1013 | drivers/FPU-emu/fpu_trig.c | poly_l2(st0_ptr, st0_ptr); |
st0_ptr | 1020 | drivers/FPU-emu/fpu_trig.c | reg_mul(st0_ptr, st1_ptr, st1_ptr, FULL_PRECISION); |
st0_ptr | 1039 | drivers/FPU-emu/fpu_trig.c | if ( !real_2op_NaN(st0_ptr, st1_ptr, st1_ptr) ) |
st0_ptr | 1058 | drivers/FPU-emu/fpu_trig.c | else if ( st0_ptr->tag == TW_Infinity ) |
st0_ptr | 1077 | drivers/FPU-emu/fpu_trig.c | if ( st0_ptr->sign == SIGN_NEG ) |
st0_ptr | 1086 | drivers/FPU-emu/fpu_trig.c | if ( (st0_ptr->exp <= EXP_UNDER) && (denormal_operand()) ) |
st0_ptr | 1090 | drivers/FPU-emu/fpu_trig.c | if ( st0_ptr->exp < EXP_BIAS ) sign ^= SIGN_NEG^SIGN_POS; |
st0_ptr | 1091 | drivers/FPU-emu/fpu_trig.c | pop(); st0_ptr = &st(0); |
st0_ptr | 1092 | drivers/FPU-emu/fpu_trig.c | reg_move(&CONST_Z, st0_ptr); |
st0_ptr | 1093 | drivers/FPU-emu/fpu_trig.c | st0_ptr->sign = sign; |
st0_ptr | 1100 | drivers/FPU-emu/fpu_trig.c | if ( (st0_ptr->sign == SIGN_NEG) || (st1_tag == TW_Zero) ) |
st0_ptr | 1116 | drivers/FPU-emu/fpu_trig.c | pop(); st0_ptr = &st(0); |
st0_ptr | 1117 | drivers/FPU-emu/fpu_trig.c | reg_move(&CONST_INF, st0_ptr); |
st0_ptr | 1118 | drivers/FPU-emu/fpu_trig.c | st0_ptr->sign = sign; |
st0_ptr | 1123 | drivers/FPU-emu/fpu_trig.c | else if ( (st0_tag == TW_Valid) && (st0_ptr->sign == SIGN_POS) ) |
st0_ptr | 1125 | drivers/FPU-emu/fpu_trig.c | if ( st0_ptr->exp >= EXP_BIAS ) |
st0_ptr | 1127 | drivers/FPU-emu/fpu_trig.c | if ( (st0_ptr->exp == EXP_BIAS) && |
st0_ptr | 1128 | drivers/FPU-emu/fpu_trig.c | (st0_ptr->sigh == 0x80000000) && |
st0_ptr | 1129 | drivers/FPU-emu/fpu_trig.c | (st0_ptr->sigl == 0) ) |
st0_ptr | 1145 | drivers/FPU-emu/fpu_trig.c | if ( (st0_ptr->exp <= EXP_UNDER) && (denormal_operand()) ) |
st0_ptr | 1157 | drivers/FPU-emu/fpu_trig.c | if ( st0_ptr->tag == TW_Zero ) |
st0_ptr | 1179 | drivers/FPU-emu/fpu_trig.c | static void fpatan(FPU_REG *st0_ptr) |
st0_ptr | 1181 | drivers/FPU-emu/fpu_trig.c | char st0_tag = st0_ptr->tag; |
st0_ptr | 1184 | drivers/FPU-emu/fpu_trig.c | char st1_sign = st1_ptr->sign, st0_sign = st0_ptr->sign; |
st0_ptr | 1194 | drivers/FPU-emu/fpu_trig.c | if ( ((st0_ptr->exp <= EXP_UNDER) || |
st0_ptr | 1204 | drivers/FPU-emu/fpu_trig.c | st1_ptr->sign = st0_ptr->sign = SIGN_POS; |
st0_ptr | 1208 | drivers/FPU-emu/fpu_trig.c | reg_div(st0_ptr, st1_ptr, &sum, FULL_PRECISION); |
st0_ptr | 1214 | drivers/FPU-emu/fpu_trig.c | (st1_ptr->exp - st0_ptr->exp < -64) ) |
st0_ptr | 1218 | drivers/FPU-emu/fpu_trig.c | reg_div(st1_ptr, st0_ptr, st1_ptr, |
st0_ptr | 1225 | drivers/FPU-emu/fpu_trig.c | reg_div(st1_ptr, st0_ptr, &sum, FULL_PRECISION); |
st0_ptr | 1253 | drivers/FPU-emu/fpu_trig.c | if ( !real_2op_NaN(st0_ptr, st1_ptr, st1_ptr) ) |
st0_ptr | 1264 | drivers/FPU-emu/fpu_trig.c | if ( st0_ptr->sign == SIGN_POS ) |
st0_ptr | 1279 | drivers/FPU-emu/fpu_trig.c | if ( st0_ptr->sign == SIGN_POS ) |
st0_ptr | 1296 | drivers/FPU-emu/fpu_trig.c | if ( (st0_ptr->exp <= EXP_UNDER) && (denormal_operand()) ) |
st0_ptr | 1313 | drivers/FPU-emu/fpu_trig.c | if ( (st0_ptr->exp <= EXP_UNDER) && (denormal_operand()) ) |
st0_ptr | 1318 | drivers/FPU-emu/fpu_trig.c | if ( st0_ptr->sign == SIGN_POS ) |
st0_ptr | 1347 | drivers/FPU-emu/fpu_trig.c | static void fprem(FPU_REG *st0_ptr) |
st0_ptr | 1349 | drivers/FPU-emu/fpu_trig.c | do_fprem(st0_ptr, RC_CHOP); |
st0_ptr | 1353 | drivers/FPU-emu/fpu_trig.c | static void fprem1(FPU_REG *st0_ptr) |
st0_ptr | 1355 | drivers/FPU-emu/fpu_trig.c | do_fprem(st0_ptr, RC_RND); |
st0_ptr | 1359 | drivers/FPU-emu/fpu_trig.c | static void fyl2xp1(FPU_REG *st0_ptr) |
st0_ptr | 1361 | drivers/FPU-emu/fpu_trig.c | char st0_tag = st0_ptr->tag; |
st0_ptr | 1371 | drivers/FPU-emu/fpu_trig.c | if ( ((st0_ptr->exp <= EXP_UNDER) || |
st0_ptr | 1381 | drivers/FPU-emu/fpu_trig.c | if ( poly_l2p1(st0_ptr, st0_ptr) ) |
st0_ptr | 1400 | drivers/FPU-emu/fpu_trig.c | reg_mul(st0_ptr, st1_ptr, st1_ptr, FULL_PRECISION); |
st0_ptr | 1419 | drivers/FPU-emu/fpu_trig.c | st0_ptr->sign ^= st1_ptr->sign; |
st0_ptr | 1420 | drivers/FPU-emu/fpu_trig.c | reg_move(st0_ptr, st1_ptr); |
st0_ptr | 1431 | drivers/FPU-emu/fpu_trig.c | if ( !real_2op_NaN(st0_ptr, st1_ptr, st1_ptr) ) |
st0_ptr | 1448 | drivers/FPU-emu/fpu_trig.c | if ( st0_ptr->sign == SIGN_NEG ) |
st0_ptr | 1450 | drivers/FPU-emu/fpu_trig.c | if ( st0_ptr->exp >= EXP_BIAS ) |
st0_ptr | 1461 | drivers/FPU-emu/fpu_trig.c | if ( (st0_ptr->exp <= EXP_UNDER) && (denormal_operand()) ) |
st0_ptr | 1468 | drivers/FPU-emu/fpu_trig.c | if ( (st0_ptr->exp <= EXP_UNDER) && (denormal_operand()) ) |
st0_ptr | 1475 | drivers/FPU-emu/fpu_trig.c | if ( st0_ptr->sign == SIGN_NEG ) |
st0_ptr | 1477 | drivers/FPU-emu/fpu_trig.c | if ( (st0_ptr->exp >= EXP_BIAS) && |
st0_ptr | 1478 | drivers/FPU-emu/fpu_trig.c | !((st0_ptr->sigh == 0x80000000) && |
st0_ptr | 1479 | drivers/FPU-emu/fpu_trig.c | (st0_ptr->sigl == 0)) ) |
st0_ptr | 1490 | drivers/FPU-emu/fpu_trig.c | if ( (st0_ptr->exp <= EXP_UNDER) && (denormal_operand()) ) |
st0_ptr | 1497 | drivers/FPU-emu/fpu_trig.c | if ( (st0_ptr->exp <= EXP_UNDER) && (denormal_operand()) ) |
st0_ptr | 1504 | drivers/FPU-emu/fpu_trig.c | if ( !real_2op_NaN(st0_ptr, st1_ptr, st1_ptr) ) |
st0_ptr | 1511 | drivers/FPU-emu/fpu_trig.c | if ( !real_2op_NaN(st0_ptr, st1_ptr, st1_ptr) ) |
st0_ptr | 1519 | drivers/FPU-emu/fpu_trig.c | if ( !real_2op_NaN(st0_ptr, st1_ptr, st1_ptr) ) |
st0_ptr | 1523 | drivers/FPU-emu/fpu_trig.c | else if ( st0_ptr->sign == SIGN_NEG ) |
st0_ptr | 1579 | drivers/FPU-emu/fpu_trig.c | static void fscale(FPU_REG *st0_ptr) |
st0_ptr | 1581 | drivers/FPU-emu/fpu_trig.c | char st0_tag = st0_ptr->tag; |
st0_ptr | 1585 | drivers/FPU-emu/fpu_trig.c | char sign = st0_ptr->sign; |
st0_ptr | 1594 | drivers/FPU-emu/fpu_trig.c | if ( ((st0_ptr->exp <= EXP_UNDER) || |
st0_ptr | 1607 | drivers/FPU-emu/fpu_trig.c | sign = st0_ptr->sign; |
st0_ptr | 1608 | drivers/FPU-emu/fpu_trig.c | reg_move(&CONST_INF, st0_ptr); |
st0_ptr | 1609 | drivers/FPU-emu/fpu_trig.c | st0_ptr->sign = sign; |
st0_ptr | 1614 | drivers/FPU-emu/fpu_trig.c | sign = st0_ptr->sign; |
st0_ptr | 1615 | drivers/FPU-emu/fpu_trig.c | reg_move(&CONST_Z, st0_ptr); |
st0_ptr | 1616 | drivers/FPU-emu/fpu_trig.c | st0_ptr->sign = sign; |
st0_ptr | 1627 | drivers/FPU-emu/fpu_trig.c | scale += st0_ptr->exp; |
st0_ptr | 1628 | drivers/FPU-emu/fpu_trig.c | st0_ptr->exp = scale; |
st0_ptr | 1631 | drivers/FPU-emu/fpu_trig.c | round_reg(st0_ptr, 0, control_word); |
st0_ptr | 1641 | drivers/FPU-emu/fpu_trig.c | if ( (st0_ptr->exp <= EXP_UNDER) && (denormal_operand()) ) |
st0_ptr | 1650 | drivers/FPU-emu/fpu_trig.c | if ( (st0_ptr->exp <= EXP_UNDER) && (denormal_operand()) ) |
st0_ptr | 1655 | drivers/FPU-emu/fpu_trig.c | { reg_move(&CONST_INF, st0_ptr); } |
st0_ptr | 1657 | drivers/FPU-emu/fpu_trig.c | reg_move(&CONST_Z, st0_ptr); |
st0_ptr | 1658 | drivers/FPU-emu/fpu_trig.c | st0_ptr->sign = sign; |
st0_ptr | 1662 | drivers/FPU-emu/fpu_trig.c | { real_2op_NaN(st0_ptr, st1_ptr, st0_ptr); return; } |
st0_ptr | 1683 | drivers/FPU-emu/fpu_trig.c | arith_invalid(st0_ptr); /* Zero scaled by +Infinity */ |
st0_ptr | 1688 | drivers/FPU-emu/fpu_trig.c | { real_2op_NaN(st0_ptr, st1_ptr, st0_ptr); return; } |
st0_ptr | 1707 | drivers/FPU-emu/fpu_trig.c | arith_invalid(st0_ptr); /* Infinity scaled by -Infinity */ |
st0_ptr | 1711 | drivers/FPU-emu/fpu_trig.c | { real_2op_NaN(st0_ptr, st1_ptr, st0_ptr); return; } |
st0_ptr | 1716 | drivers/FPU-emu/fpu_trig.c | { real_2op_NaN(st0_ptr, st1_ptr, st0_ptr); return; } |
st0_ptr | 35 | drivers/FPU-emu/load_store.c | #define pop_0() { st0_ptr->tag = TW_Empty; top++; } |
st0_ptr | 67 | drivers/FPU-emu/load_store.c | FPU_REG *st0_ptr; |
st0_ptr | 69 | drivers/FPU-emu/load_store.c | st0_ptr = NULL; /* Initialized just to stop compiler warnings. */ |
st0_ptr | 94 | drivers/FPU-emu/load_store.c | st0_ptr = &st(0); /* Some of these instructions pop after |
st0_ptr | 99 | drivers/FPU-emu/load_store.c | st0_ptr = &st(-1); |
st0_ptr | 100 | drivers/FPU-emu/load_store.c | if ( st0_ptr->tag != TW_Empty ) |
st0_ptr | 126 | drivers/FPU-emu/load_store.c | reg_move(&loaded_data, st0_ptr); |
st0_ptr | 130 | drivers/FPU-emu/load_store.c | reg_load_int32((long *)data_address, st0_ptr); |
st0_ptr | 141 | drivers/FPU-emu/load_store.c | reg_move(&loaded_data, st0_ptr); |
st0_ptr | 145 | drivers/FPU-emu/load_store.c | reg_load_int16((short *)data_address, st0_ptr); |
st0_ptr | 149 | drivers/FPU-emu/load_store.c | reg_store_single((float *)data_address, st0_ptr); |
st0_ptr | 153 | drivers/FPU-emu/load_store.c | reg_store_int32((long *)data_address, st0_ptr); |
st0_ptr | 157 | drivers/FPU-emu/load_store.c | reg_store_double((double *)data_address, st0_ptr); |
st0_ptr | 161 | drivers/FPU-emu/load_store.c | reg_store_int16((short *)data_address, st0_ptr); |
st0_ptr | 165 | drivers/FPU-emu/load_store.c | if ( reg_store_single((float *)data_address, st0_ptr) ) |
st0_ptr | 171 | drivers/FPU-emu/load_store.c | if ( reg_store_int32((long *)data_address, st0_ptr) ) |
st0_ptr | 177 | drivers/FPU-emu/load_store.c | if ( reg_store_double((double *)data_address, st0_ptr) ) |
st0_ptr | 183 | drivers/FPU-emu/load_store.c | if ( reg_store_int16((short *)data_address, st0_ptr) ) |
st0_ptr | 199 | drivers/FPU-emu/load_store.c | reg_load_bcd((char *)data_address, st0_ptr); |
st0_ptr | 216 | drivers/FPU-emu/load_store.c | reg_load_extended((long double *)data_address, st0_ptr); |
st0_ptr | 220 | drivers/FPU-emu/load_store.c | reg_load_int64((long long *)data_address, st0_ptr); |
st0_ptr | 230 | drivers/FPU-emu/load_store.c | if ( reg_store_bcd((char *)data_address, st0_ptr) ) |
st0_ptr | 242 | drivers/FPU-emu/load_store.c | if ( reg_store_extended((long double *)data_address, st0_ptr) ) |
st0_ptr | 254 | drivers/FPU-emu/load_store.c | if ( reg_store_int64((long long *)data_address, st0_ptr) ) |
st0_ptr | 28 | drivers/FPU-emu/reg_compare.c | FPU_REG *st0_ptr; |
st0_ptr | 30 | drivers/FPU-emu/reg_compare.c | st0_ptr = &st(0); |
st0_ptr | 31 | drivers/FPU-emu/reg_compare.c | st0_tag = st0_ptr->tag; |
st0_ptr | 52 | drivers/FPU-emu/reg_compare.c | return ((st0_ptr->sign == SIGN_POS) ? COMP_A_gt_B |
st0_ptr | 55 | drivers/FPU-emu/reg_compare.c | | ((st0_ptr->exp <= EXP_UNDER ) |
st0_ptr | 66 | drivers/FPU-emu/reg_compare.c | return ((st0_ptr->sign == SIGN_POS) ? COMP_A_gt_B |
st0_ptr | 77 | drivers/FPU-emu/reg_compare.c | return (st0_ptr->sign == b->sign) ? COMP_A_eq_B : |
st0_ptr | 78 | drivers/FPU-emu/reg_compare.c | ((st0_ptr->sign == SIGN_POS) ? COMP_A_gt_B : COMP_A_lt_B); |
st0_ptr | 89 | drivers/FPU-emu/reg_compare.c | && (st0_ptr->exp <= EXP_UNDER)) ? |
st0_ptr | 101 | drivers/FPU-emu/reg_compare.c | if ( ((st0_tag == TW_NaN) && !(st0_ptr->sigh & 0x40000000)) |
st0_ptr | 114 | drivers/FPU-emu/reg_compare.c | if (!(st0_ptr->sigh & 0x80000000)) EXCEPTION(EX_Invalid); |
st0_ptr | 119 | drivers/FPU-emu/reg_compare.c | if (st0_ptr->sign != b->sign) |
st0_ptr | 121 | drivers/FPU-emu/reg_compare.c | return ((st0_ptr->sign == SIGN_POS) ? COMP_A_gt_B : COMP_A_lt_B) |
st0_ptr | 124 | drivers/FPU-emu/reg_compare.c | ( ((st0_ptr->exp <= EXP_UNDER) || (b->exp <= EXP_UNDER)) ? |
st0_ptr | 130 | drivers/FPU-emu/reg_compare.c | diff = st0_ptr->exp - b->exp; |
st0_ptr | 133 | drivers/FPU-emu/reg_compare.c | diff = st0_ptr->sigh - b->sigh; /* Works only if ms bits are |
st0_ptr | 137 | drivers/FPU-emu/reg_compare.c | diff = st0_ptr->sigl > b->sigl; |
st0_ptr | 139 | drivers/FPU-emu/reg_compare.c | diff = -(st0_ptr->sigl < b->sigl); |
st0_ptr | 145 | drivers/FPU-emu/reg_compare.c | return ((st0_ptr->sign == SIGN_POS) ? COMP_A_gt_B : COMP_A_lt_B) |
st0_ptr | 148 | drivers/FPU-emu/reg_compare.c | ( ((st0_ptr->exp <= EXP_UNDER) || (b->exp <= EXP_UNDER)) ? |
st0_ptr | 155 | drivers/FPU-emu/reg_compare.c | return ((st0_ptr->sign == SIGN_POS) ? COMP_A_lt_B : COMP_A_gt_B) |
st0_ptr | 158 | drivers/FPU-emu/reg_compare.c | ( ((st0_ptr->exp <= EXP_UNDER) || (b->exp <= EXP_UNDER)) ? |
st0_ptr | 167 | drivers/FPU-emu/reg_compare.c | ( ((st0_ptr->exp <= EXP_UNDER) || (b->exp <= EXP_UNDER)) ? |
st0_ptr | 423 | drivers/FPU-emu/reg_ld_str.c | int reg_store_extended(long double *d, FPU_REG *st0_ptr) |
st0_ptr | 431 | drivers/FPU-emu/reg_ld_str.c | if ( st0_ptr->tag != TW_Empty ) |
st0_ptr | 436 | drivers/FPU-emu/reg_ld_str.c | write_to_extended(st0_ptr, (char *) d); |
st0_ptr | 461 | drivers/FPU-emu/reg_ld_str.c | int reg_store_double(double *dfloat, FPU_REG *st0_ptr) |
st0_ptr | 465 | drivers/FPU-emu/reg_ld_str.c | char st0_tag = st0_ptr->tag; |
st0_ptr | 472 | drivers/FPU-emu/reg_ld_str.c | reg_move(st0_ptr, &tmp); |
st0_ptr | 483 | drivers/FPU-emu/reg_ld_str.c | if ( st0_ptr->exp <= EXP_UNDER ) |
st0_ptr | 501 | drivers/FPU-emu/reg_ld_str.c | (st0_ptr->sigl & 0x000007ff)) ) |
st0_ptr | 612 | drivers/FPU-emu/reg_ld_str.c | l[0] = (st0_ptr->sigl >> 11) | (st0_ptr->sigh << 21); |
st0_ptr | 613 | drivers/FPU-emu/reg_ld_str.c | l[1] = ((st0_ptr->sigh >> 11) & 0xfffff); |
st0_ptr | 614 | drivers/FPU-emu/reg_ld_str.c | if ( !(st0_ptr->sigh & 0x40000000) ) |
st0_ptr | 642 | drivers/FPU-emu/reg_ld_str.c | if ( st0_ptr->sign ) |
st0_ptr | 656 | drivers/FPU-emu/reg_ld_str.c | int reg_store_single(float *single, FPU_REG *st0_ptr) |
st0_ptr | 660 | drivers/FPU-emu/reg_ld_str.c | char st0_tag = st0_ptr->tag; |
st0_ptr | 667 | drivers/FPU-emu/reg_ld_str.c | reg_move(st0_ptr, &tmp); |
st0_ptr | 678 | drivers/FPU-emu/reg_ld_str.c | if ( st0_ptr->exp <= EXP_UNDER ) |
st0_ptr | 696 | drivers/FPU-emu/reg_ld_str.c | ((st0_ptr->sigh & 0x000000ff) || st0_ptr->sigl)) ) |
st0_ptr | 797 | drivers/FPU-emu/reg_ld_str.c | templ = st0_ptr->sigh >> 8; |
st0_ptr | 798 | drivers/FPU-emu/reg_ld_str.c | if ( !(st0_ptr->sigh & 0x40000000) ) |
st0_ptr | 832 | drivers/FPU-emu/reg_ld_str.c | if (st0_ptr->sign) |
st0_ptr | 845 | drivers/FPU-emu/reg_ld_str.c | int reg_store_int64(long long *d, FPU_REG *st0_ptr) |
st0_ptr | 850 | drivers/FPU-emu/reg_ld_str.c | char st0_tag = st0_ptr->tag; |
st0_ptr | 865 | drivers/FPU-emu/reg_ld_str.c | reg_move(st0_ptr, &t); |
st0_ptr | 904 | drivers/FPU-emu/reg_ld_str.c | int reg_store_int32(long *d, FPU_REG *st0_ptr) |
st0_ptr | 908 | drivers/FPU-emu/reg_ld_str.c | char st0_tag = st0_ptr->tag; |
st0_ptr | 923 | drivers/FPU-emu/reg_ld_str.c | reg_move(st0_ptr, &t); |
st0_ptr | 958 | drivers/FPU-emu/reg_ld_str.c | int reg_store_int16(short *d, FPU_REG *st0_ptr) |
st0_ptr | 962 | drivers/FPU-emu/reg_ld_str.c | char st0_tag = st0_ptr->tag; |
st0_ptr | 977 | drivers/FPU-emu/reg_ld_str.c | reg_move(st0_ptr, &t); |
st0_ptr | 1012 | drivers/FPU-emu/reg_ld_str.c | int reg_store_bcd(char *d, FPU_REG *st0_ptr) |
st0_ptr | 1018 | drivers/FPU-emu/reg_ld_str.c | unsigned char sign = (st0_ptr->sign == SIGN_NEG) ? 0x80 : 0; |
st0_ptr | 1019 | drivers/FPU-emu/reg_ld_str.c | char st0_tag = st0_ptr->tag; |
st0_ptr | 1028 | drivers/FPU-emu/reg_ld_str.c | reg_move(st0_ptr, &t); |