Messages in this thread | | | From | Marc Gauthier <> | Date | Thu, 27 May 2010 07:52:03 -0700 | Subject | RE: [PATCH] arch/tile: new multi-core architecture for Linux |
| |
linux-arch-owner@vger.kernel.org wrote: > On Thursday 27 May 2010, Chris Metcalf wrote: >> On 5/27/2010 4:41 AM, Arnd Bergmann wrote: >>>> Hmm, I didn't know about that. Any information would be >>>> appreciated. I guess you could synthesize something that looked >>>> like a signal purely in user-space? But how would debuggers trap >>>> it? I'm not sure how it would work without a system call. >>> >>> I think the C99 standard allows you to not implement SIGFPE at all >>> but instead rely on applications doing fetestexcept() etc. >> >> We use this not for the floating-point operations, but for integer >> divide-by-zero. In principle we could use it for floating-point too, >> but we currently don't, since generally folks don't expect it there. > > Ah, I see. That probably makes a lot of sense to present as a signal > the way you do.
FWIW, this can also be done using some recognizable illegal instruction sequence, if the architecture reserves some opcodes as always illegal. This makes the division routine (typically part of libgcc) more independent of OS, which has some merit. The kernel illegal instruction handler needs to recognize this sequence and turn it into a SIGFPE instead of SIGILL.
The Xtensa architecture libgcc added this recently, but we haven't yet added the SIGILL=>SIGFPE code to the kernel.
-Marc
| |