유틸리티 라이브러리에 포함되어 있고 C++ Builder에서 컴파일 및 실행될 때 생성 된 유닛 테스트에 실패했습니다. 문제는 다음과 같습니다. 단위 테스트를 실행할 때 프로그램은 라인 fldcw controlWord
에서 멈추어 서 지나갈 수 없습니다. 그것은 결코 일어나지 않을 무언가를 기다리고있는 것 같습니다. 어떤 아이디어?문제 설정 FPU 제어 워드
void FPUControl::setControlWord(short controlWord)
{
// set the control word - note this assembly construct works on
// Visual C++ and Borland C++, but may need to be changed for other
// compilers
#ifndef __GNUC__
__asm
{
fldcw controlWord
}
#else
asm volatile
(
"fldcw %[controlWord]"
:
: [controlWord] "m" (controlWord)
);
#endif
}
이렇게하기 전에 FPU를 재설정하는 것이 좋습니다. 그러면 즉시 예외가 발생하지 않습니다. FNINIT. –