Lines Matching +full:0 +full:x007fffff

57 	exp = exponent16(ptr) & 0x7fff;  in FPU_tagof()
58 if (exp == 0) { in FPU_tagof()
66 if (exp == 0x7fff) { in FPU_tagof()
71 if (!(ptr->sigh & 0x80000000)) { in FPU_tagof()
106 negative = (m64 & 0x80000000) ? SIGN_Negative : SIGN_Positive; in FPU_load_double()
107 exp = ((m64 & 0x7ff00000) >> 20) - DOUBLE_Ebias + EXTENDED_Ebias; in FPU_load_double()
108 m64 &= 0xfffff; in FPU_load_double()
111 if ((m64 == 0) && (l64 == 0)) { in FPU_load_double()
113 loaded_data->sigh = 0x80000000; in FPU_load_double()
114 loaded_data->sigl = 0x00000000; in FPU_load_double()
120 loaded_data->sigh = (m64 << 11) | 0x80000000; in FPU_load_double()
127 if ((m64 == 0) && (l64 == 0)) { in FPU_load_double()
130 exp = 0; in FPU_load_double()
140 | (denormal_operand() < 0 ? FPU_Exception : 0); in FPU_load_double()
143 loaded_data->sigh = (m64 << 11) | 0x80000000; in FPU_load_double()
166 negative = (m32 & 0x80000000) ? SIGN_Negative : SIGN_Positive; in FPU_load_single()
168 if (!(m32 & 0x7fffffff)) { in FPU_load_single()
174 exp = ((m32 & 0x7f800000) >> 23) - SINGLE_Ebias + EXTENDED_Ebias; in FPU_load_single()
175 m32 = (m32 & 0x7fffff) << 8; in FPU_load_single()
179 loaded_data->sigl = 0; in FPU_load_single()
182 | (denormal_operand() < 0 ? FPU_Exception : 0); in FPU_load_single()
185 if (m32 == 0) { in FPU_load_single()
187 loaded_data->sigh = 0x80000000; in FPU_load_single()
188 loaded_data->sigl = 0x00000000; in FPU_load_single()
194 loaded_data->sigh = m32 | 0x80000000; in FPU_load_single()
195 loaded_data->sigl = 0; in FPU_load_single()
199 loaded_data->sigh = m32 | 0x80000000; in FPU_load_single()
200 loaded_data->sigl = 0; in FPU_load_single()
214 FPU_REG *st0_ptr = &st(0); in FPU_load_int64()
222 if (s == 0) { in FPU_load_int64()
227 if (s > 0) in FPU_load_int64()
250 if (s == 0) { in FPU_load_int32()
255 if (s > 0) in FPU_load_int32()
263 loaded_data->sigl = 0; in FPU_load_int32()
279 if (s == 0) { in FPU_load_int16()
284 if (s > 0) in FPU_load_int16()
292 loaded_data->sigl = 0; in FPU_load_int16()
300 FPU_REG *st0_ptr = &st(0); in FPU_load_bcd()
303 long long l = 0; in FPU_load_bcd()
309 for (pos = 8; pos >= 0; pos--) { in FPU_load_bcd()
316 l += bcd & 0x0f; in FPU_load_bcd()
321 sign = sign & 0x80 ? SIGN_Negative : SIGN_Positive; in FPU_load_bcd()
324 if (l == 0) { in FPU_load_bcd()
368 FPU_put_user(0, (unsigned long __user *)d); in FPU_store_extended()
369 FPU_put_user(0xc0000000, 1 + (unsigned long __user *)d); in FPU_store_extended()
370 FPU_put_user(0xffff, 4 + (short __user *)d); in FPU_store_extended()
374 return 0; in FPU_store_extended()
382 unsigned long increment = 0; /* avoid gcc warnings */ in FPU_store_double()
387 l[0] = 0; in FPU_store_double()
388 l[1] = 0; in FPU_store_double()
403 ((tmp.sigh == 0x00100000) && (tmp.sigl == 0) in FPU_store_double()
404 && (st0_ptr->sigl & 0x000007ff))) in FPU_store_double()
411 return 0; in FPU_store_double()
415 return 0; in FPU_store_double()
417 l[0] = tmp.sigl; in FPU_store_double()
420 if (tmp.sigl & 0x000007ff) { in FPU_store_double()
425 increment = ((tmp.sigl & 0x7ff) > 0x400) | /* nearest */ in FPU_store_double()
426 ((tmp.sigl & 0xc00) == 0xc00); /* odd -> even */ in FPU_store_double()
430 signpositive(&tmp) ? 0 : tmp. in FPU_store_double()
431 sigl & 0x7ff; in FPU_store_double()
436 sigl & 0x7ff : 0; in FPU_store_double()
439 increment = 0; in FPU_store_double()
444 tmp.sigl &= 0xfffff800; in FPU_store_double()
447 if (tmp.sigl >= 0xfffff800) { in FPU_store_double()
449 if (tmp.sigh == 0xffffffff) { in FPU_store_double()
451 tmp.sigh = 0x80000000; in FPU_store_double()
458 tmp.sigl = 0x00000000; in FPU_store_double()
461 tmp.sigl += 0x00000800; in FPU_store_double()
465 precision_loss = 0; in FPU_store_double()
467 l[0] = (tmp.sigl >> 11) | (tmp.sigh << 21); in FPU_store_double()
468 l[1] = ((tmp.sigh >> 11) & 0xfffff); in FPU_store_double()
474 return 0; in FPU_store_double()
477 return 0; in FPU_store_double()
481 l[1] = 0x7ff00000; /* Set to + INF */ in FPU_store_double()
490 l[1] |= (((exp + DOUBLE_Ebias) & 0x7ff) << 20); in FPU_store_double()
509 l[1] = 0x7ff00000; in FPU_store_double()
513 && (st0_ptr->sigh & 0x80000000)) { in FPU_store_double()
515 l[0] = in FPU_store_double()
518 l[1] = ((st0_ptr->sigh >> 11) & 0xfffff); in FPU_store_double()
519 if (!(st0_ptr->sigh & 0x40000000)) { in FPU_store_double()
523 return 0; in FPU_store_double()
524 l[1] |= (0x40000000 >> 11); in FPU_store_double()
526 l[1] |= 0x7ff00000; in FPU_store_double()
531 return 0; in FPU_store_double()
532 l[1] = 0xfff80000; in FPU_store_double()
543 FPU_put_user(0, (unsigned long __user *)dfloat); in FPU_store_double()
544 FPU_put_user(0xfff80000, in FPU_store_double()
549 return 0; in FPU_store_double()
552 l[1] |= 0x80000000; in FPU_store_double()
556 FPU_put_user(l[0], (unsigned long __user *)dfloat); in FPU_store_double()
566 long templ = 0; in FPU_store_single()
567 unsigned long increment = 0; /* avoid gcc warnings */ in FPU_store_single()
588 if (!((tmp.sigl == 0x00800000) && in FPU_store_single()
589 ((st0_ptr->sigh & 0x000000ff) in FPU_store_single()
597 return 0; in FPU_store_single()
601 return 0; in FPU_store_single()
605 if (tmp.sigl | (tmp.sigh & 0x000000ff)) { in FPU_store_single()
612 increment = ((sigh & 0xff) > 0x80) /* more than half */ in FPU_store_single()
613 ||(((sigh & 0xff) == 0x80) && sigl) /* more than half */ in FPU_store_single()
614 ||((sigh & 0x180) == 0x180); /* round to even */ in FPU_store_single()
618 ? 0 : (sigl | (sigh & 0xff)); in FPU_store_single()
622 ? (sigl | (sigh & 0xff)) : 0; in FPU_store_single()
625 increment = 0; in FPU_store_single()
630 tmp.sigl = 0; in FPU_store_single()
633 if (sigh >= 0xffffff00) { in FPU_store_single()
635 tmp.sigh = 0x80000000; in FPU_store_single()
640 tmp.sigh &= 0xffffff00; in FPU_store_single()
641 tmp.sigh += 0x100; in FPU_store_single()
644 tmp.sigh &= 0xffffff00; /* Finish the truncation */ in FPU_store_single()
647 precision_loss = 0; in FPU_store_single()
649 templ = (tmp.sigh >> 8) & 0x007fffff; in FPU_store_single()
655 return 0; in FPU_store_single()
658 return 0; in FPU_store_single()
662 templ = 0x7f800000; in FPU_store_single()
671 templ |= ((exp + SINGLE_Ebias) & 0xff) << 23; in FPU_store_single()
675 templ = 0; in FPU_store_single()
691 templ = 0x7f800000; in FPU_store_single()
695 && (st0_ptr->sigh & 0x80000000)) { in FPU_store_single()
698 if (!(st0_ptr->sigh & 0x40000000)) { in FPU_store_single()
702 return 0; in FPU_store_single()
703 templ |= (0x40000000 >> 8); in FPU_store_single()
705 templ |= 0x7f800000; in FPU_store_single()
710 return 0; in FPU_store_single()
711 templ = 0xffc00000; in FPU_store_single()
716 EXCEPTION(EX_INTERNAL | 0x164); in FPU_store_single()
717 return 0; in FPU_store_single()
728 FPU_put_user(0xffc00000, in FPU_store_single()
733 return 0; in FPU_store_single()
737 EXCEPTION(EX_INTERNAL | 0x163); in FPU_store_single()
738 return 0; in FPU_store_single()
742 templ |= 0x80000000; in FPU_store_single()
773 ((long *)&tll)[0] = t.sigl; in FPU_store_int64()
776 ((t.sigh & 0x80000000) && in FPU_store_int64()
777 !((t.sigh == 0x80000000) && (t.sigl == 0) && signnegative(&t)))) { in FPU_store_int64()
783 tll = 0x8000000000000000LL; in FPU_store_int64()
785 return 0; in FPU_store_int64()
823 ((t.sigl & 0x80000000) && in FPU_store_int32()
824 !((t.sigl == 0x80000000) && signnegative(&t)))) { in FPU_store_int32()
830 t.sigl = 0x80000000; in FPU_store_int32()
832 return 0; in FPU_store_int32()
869 ((t.sigl & 0xffff8000) && in FPU_store_int16()
870 !((t.sigl == 0x8000) && signnegative(&t)))) { in FPU_store_int16()
876 t.sigl = 0x8000; in FPU_store_int16()
878 return 0; in FPU_store_int16()
901 u_char sign = (getsign(st0_ptr) == SIGN_NEG) ? 0x80 : 0; in FPU_store_bcd()
920 if ((t.sigh > 0x0de0b6b3) || in FPU_store_bcd()
921 ((t.sigh == 0x0de0b6b3) && (t.sigl > 0xa763ffff))) { in FPU_store_bcd()
929 for (i = 0; i < 7; i++) in FPU_store_bcd()
930 FPU_put_user(0, d + i); /* These bytes "undefined" */ in FPU_store_bcd()
931 FPU_put_user(0xc0, d + 7); /* This byte "undefined" */ in FPU_store_bcd()
932 FPU_put_user(0xff, d + 8); in FPU_store_bcd()
933 FPU_put_user(0xff, d + 9); in FPU_store_bcd()
937 return 0; in FPU_store_bcd()
946 for (i = 0; i < 9; i++) { in FPU_store_bcd()
977 significand(r) = 0; in FPU_round_to_int()
978 return 0; /* o.k. */ in FPU_round_to_int()
982 r->sigl = r->sigh = ~0; /* The largest representable number */ in FPU_round_to_int()
987 very_big = !(~(r->sigh) | ~(r->sigl)); /* test for 0xfff...fff */ in FPU_round_to_int()
988 #define half_or_more (eax & 0x80000000) in FPU_round_to_int()
990 #define more_than_half ((eax & 0x80000001) == 0x80000001) in FPU_round_to_int()
1021 return eax ? PRECISION_LOST_DOWN : 0; in FPU_round_to_int()
1029 unsigned short tag_word = 0; in fldenv()
1037 FPU_access_ok(s, 0x0e); in fldenv()
1046 (unsigned short __user *)(s + 0x0a)); in fldenv()
1048 (unsigned short __user *)(s + 0x0c)); in fldenv()
1050 s += 0x0e; in fldenv()
1053 += (instruction_address.selector & 0xf000) << 4; in fldenv()
1055 (operand_address.selector & 0xf000) << 4; in fldenv()
1059 FPU_access_ok(s, 0x1c); in fldenv()
1064 (unsigned long __user *)(s + 0x0c)); in fldenv()
1066 (unsigned short __user *)(s + 0x10)); in fldenv()
1068 (unsigned short __user *)(s + 0x12)); in fldenv()
1070 (unsigned long __user *)(s + 0x14)); in fldenv()
1072 (unsigned long __user *)(s + 0x18)); in fldenv()
1074 s += 0x1c; in fldenv()
1078 control_word &= ~0xe080; in fldenv()
1088 for (i = 0; i < 8; i++) { in fldenv()
1106 0x7fff - EXTENDED_Ebias) { in fldenv()
1108 } else if (fpu_register(i).sigh & 0x80000000) in fldenv()
1134 for (i = 0; i < 8; i++) { in FPU_frstor()
1151 FPU_put_user(control_word & ~0xe080, (unsigned long __user *)d); in fstenv()
1160 (unsigned short __user *)(d + 0x0a)); in fstenv()
1163 offset & 0xf0000) >> 4, in fstenv()
1165 FPU_put_user((operand_address.offset & 0xf0000) >> 4, in fstenv()
1166 (unsigned short __user *)(d + 0x0c)); in fstenv()
1171 (unsigned short __user *)(d + 0x0c)); in fstenv()
1174 d += 0x0e; in fstenv()
1179 control_word &= ~0xe080; in fstenv()
1181 control_word |= 0xffff0040; in fstenv()
1182 partial_status = status_word() | 0xffff0000; in fstenv()
1183 fpu_tag_word |= 0xffff0000; in fstenv()
1184 I387->soft.fcs &= ~0xf8000000; in fstenv()
1185 I387->soft.fos |= 0xffff0000; in fstenv()
1190 d += 0x1c; in fstenv()