Hi

Over at RTEMS, we have had a report that this very old code has quit
compiling:

#ifdef __SSE__
#define _CPU_Context_restore_fp(fp_context_pp) \
  do {                                         \
    __asm__ __volatile__(                      \
      "fldcw %0"                               \
      ::"m"((*(fp_context_pp))->fpucw)         \
      :"fpcr"                                  \
    );                                         \
    __builtin_ia32_ldmxcsr(_Thread_Executing->fp_context->mxcsr);  \
  } while (0)
#else

The error is "error: unknown register name 'fpcr' in 'asm'"

This is when compiling for two i386 variants:

CPU_CFLAGS = -mtune=pentium4 -march=pentium4 -msse3
CPU_CFLAGS = -mtune=pentium -march=pentium -msse2

Is there a change we should be aware of in the inline assembly macros? Or
is it possible that __SSE__ and fpcr are not tied together like they were
until recently?

If needed, I can put together a full test case. I was hoping this one was
an obvious explanation before that.

Thanks.

--joel

Reply via email to