Do we need to do anything special to mask MMX/FP exceptions under X32?

Jeffrey Walton <[email protected]>
Newsgroups gmane.linux.debian.ports.amd64
Message-ID <CAH8yC8nXjOWWq5+d-i4iaT4Ogyn8KaS=W9C0y-VAK1HsxQRWXQ@mail.gmail.com>
I'm working on an X32 port due to some reports from a Debian maintainer.

I'm catching a bus error on an 'emms' instruction, which clears state
for the next set of MMX/FP operations:

       ...
       0x005520fd <+3885>:    pop    %rsp
       0x005520fe <+3886>:    emms
    => 0x00552100 <+3888>:    pop    %rbx
       0x00552101 <+3889>:    jmpq   0x5519e3
<Tiger::Transform(unsigned long long*, unsigned long long
const*)+2067>
       0x00552106 <+3894>:    nopw   %cs:0x0(%rax,%rax,1)
       ...

Here's the MMX/FP status register:

    mxcsr    0x1f80    [ IM DM ZM OM UM PM ]

The same code (some hand waiving) works fine under X86 and X64 assembler.

Does anything special need to be done under X32? Do we need to mask a
different set of MMX/FP exceptions under X32?

Or any other thoughts?

Thanks in advance,
Jeff
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.