sparcv9 workaround

Stephen L Moshier moshier@mediaone.net
Mon Jan 4 16:54:00 GMT 1999


> Thats extremely odd

Look for this

  #define HAVE_cmptf (TARGET_FPU)
  #define HAVE_movtf 1
  #define HAVE_movtfcc (TARGET_V9 && TARGET_FPU)
  #define HAVE_extendsftf2 (TARGET_FPU && TARGET_HARD_QUAD)
  #define HAVE_floatditf2 (TARGET_V9 && TARGET_FPU && TARGET_HARD_QUAD)
  #define HAVE_fix_trunctfsi2 (TARGET_FPU && TARGET_HARD_QUAD)
  #define HAVE_fix_trunctfdi2 (TARGET_V9 && TARGET_FPU && TARGET_HARD_QUAD)
  #define HAVE_addtf3 (TARGET_FPU && TARGET_HARD_QUAD)

and items like this

choose_hard_reg_mode (regno, nregs)
  .. we look for the largest floating-point mode.

and where GET_MODE_WIDER_MODE is used, for example to find a float
mode large enough to hold a DImode.

I haven't looked for it recently, and seldom use sparcs; but I did
document some trouble when TARGET_HARD_QUAD was the default.
Also, the documented i386 and m68k cases were never fixed,
presumably because the ports were considered too obsolete to bother
with.

Since I'm much more interested in having long double work than in
turning it off, I'm not inclined to pursue this issue any further,
except to point out again that it's an accident waiting to happen,
and that the accident does indeed happen once in a while.




More information about the Gcc-patches mailing list