P4 to Git Change 1102693 by jsjodin@jsjodin_linux_avx_hsa on 2014/12/04 17:11:26
ECR #304775 - Change the way SIGFPE is handled. Affected files ... ... //depot/stg/opencl/drivers/opencl/runtime/device/cpu/cpucommand.hpp#38 edit ... //depot/stg/opencl/drivers/opencl/runtime/os/os_posix.cpp#39 edit ... //depot/stg/opencl/drivers/opencl/runtime/os/os_win32.cpp#42 edit ... //depot/stg/opencl/drivers/opencl/runtime/thread/thread.hpp#14 edit
이 커밋은 다음에 포함됨:
@@ -450,15 +450,11 @@ divExceptionFilter(struct _EXCEPTION_POINTERS* ep)
|
||||
{
|
||||
DWORD code = ep->ExceptionRecord->ExceptionCode;
|
||||
|
||||
if (code == EXCEPTION_INT_DIVIDE_BY_ZERO
|
||||
|| code == EXCEPTION_INT_OVERFLOW) {
|
||||
// @todo: only handle exception in the generated code.
|
||||
//
|
||||
//if (!isKernelCode(insn)) {
|
||||
// return;
|
||||
//}
|
||||
if (code == EXCEPTION_INT_DIVIDE_BY_ZERO ||
|
||||
code == EXCEPTION_INT_OVERFLOW) {
|
||||
|
||||
address insn = (address)ep->ContextRecord->LP64_SWITCH(Eip,Rip);
|
||||
|
||||
if (Os::skipIDIV(insn)) {
|
||||
ep->ContextRecord->LP64_SWITCH(Eip,Rip) = (uintptr_t)insn;
|
||||
return EXCEPTION_CONTINUE_EXECUTION;
|
||||
@@ -471,9 +467,8 @@ void*
|
||||
Thread::entry(Thread* thread)
|
||||
{
|
||||
void* ret = NULL;
|
||||
// @todo: We only need this for CPU worker threads.
|
||||
#if !defined(_WIN64)
|
||||
if (true /*thread->isWorkerThread()*/) {
|
||||
if (thread->isWorkerThread()) {
|
||||
__try {
|
||||
ret = thread->main();
|
||||
}
|
||||
|
||||
새 이슈에서 참조
사용자 차단