cvs commit: src/sys/ia64/ia64 syscall.S

Marcel Moolenaar marcel at
Tue Aug 12 19:49:52 PDT 2003

marcel      2003/08/12 19:49:50 PDT

  FreeBSD src repository

  Modified files:
    sys/ia64/ia64        syscall.S 
  Put an instruction group break between the move to ar.rnat and the
  move to ar.rsc. The RSE must be in enforced lazy mode when writing
  to RSE modifyable registers. In this case we restore the RSE NaT
  collection register ar.rnat. I have seen 2 general exception faults
  on pluto1 now that indicate that the move to ar.rsc has already
  happened prior to the move to ar.rnat, meaning that the RSE is not
  in enforced lazy mode anymore. The ia64 dependency and instruction
  ordering rules seem to allow having both registers written to in
  the same instruction group, provided ar.rsc is written to later than
  ar.rnat (based on the ordering semantics). It appears that we may
  be pushing our luck. For now, put them in seperate cycles (by means
  of the instruction group break). If we ever get a general exception
  fault on the move to ar.rnat again, we have definite proof that
  something else is fishy.
  Revision  Changes    Path
  1.7       +1 -0      src/sys/ia64/ia64/syscall.S

More information about the cvs-src mailing list