consumer

[알림판목록 I] [알림판목록 II] [글목록][이 전][다 음]
[ consumer ] in KIDS
글 쓴 이(By): Convex (4ever 0~)
날 짜 (Date): 1994년12월08일(목) 05시36분04초 KST
제 목(Title): {re] 꿈나무님의 경우..


다음 포스팅을 참조하세요.

언더비에 앙마님이 쓰신겁니다.

Posted By: hellcat (:)) on 'IBMPC'
Title:     Re: just for fun or nightmare? (forwarded message)
Date:      Thu Nov 17 09:23:17 1994


그게.. 7 월 이후에 나온 펜티움에는 조용히 그 벌레 고쳐
놨다는데..그거 아마 FDIV 가 에러가 나죠.

18 비트 부텀 비트 패턴이 작살 나서..정밀도가 개판이
되더군요.

그거  벌레 테스팅하는 프로그램 p87test.zip 으로
korea.slip.umd.edu 에 있어요..ftp 로 가져가여.

근데.. Linux 에서는 그걸 어케 어셈블리로 코딩하는지
못봤지만... 답이 제대로 잘 나오데요.


Posted By: hellcat (:)) on 'IBMPC'
Title:     Re: just for fun or nightmare? (forwarded message)
Date:      Sat Nov 19 13:37:58 1994


In most cases, unless you directly write ASSEMBLY code
your C compiler or some other stuff does OPTIMIZE
those calculations for you and those Buggy operations
will disappear on the resulting ASSEMBLY code.

Here's how I got the buggy result using GCC on LINUX
on my expensive buggy P5-90

824633702449.000000000000000000000000000000000000000000000000000000000000000000
0000
1.0000000000000000000000000000000000000000000000000000000000000000000000
824633705521.000000000000000000000000000000000000000000000000000000000000000000
0000
0.9999999962747095905157834749843459576368331909179687500000000000000000

The code is
#include <stdio.h>
#define C 824633702449.0

double f(double ff) { return (double) ff; }

main()
{
        printf("%.70f\n",f(C));
        printf("%.70f\n",f(C)/f(C));
        printf("%.70f\n",f(1.0)/(f(1.0)/f(C)));
        printf("%.70f\n",f(f(1.0)/f(C))*f(C));
}

double f(double) is used to avoid any optimization
so it generate assembly code as I instructed.

*********************************************

펜티움 결함여부 테스트 해주는 프로그램에서 FDIV에러가 안난다면

그 칩은 전상입니다 (7월이후 조용히 고쳐진거겠죠)   (전상=>정상)

에러가 나는데 계산결과는 제대로 나온다면 계속 노력해보시기 바랍니다.:)

[알림판목록 I] [알림판목록 II] [글 목록][이 전][다 음]
키 즈 는 열 린 사 람 들 의 모 임 입 니 다.