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

Marcel Moolenaar marcel at FreeBSD.org
Sat May 31 13:57:28 PDT 2003


marcel      2003/05/31 13:57:27 PDT

  FreeBSD src repository

  Modified files:
    sys/ia64/ia64        syscall.s 
  Log:
  Some ia32 related finetuning for the EPC syscall path:
  o  The SDM states that flushing the RSE in the cycle prior to the
     call to ia32 code yields the best performance. We don't really
     care to much about performance here, but we do the same anyway.
     I'm being paranoia and conservative here.
  o  Only initialize the ia32 state registers, not the registers used
     as scratch by the ia32 engine. This saves a couple of loads from
     the trapframe, but also helps debugging: we don't clobber useful
     debugging data (engineering hints :-)
  o  Make sure all general registers constituting ia32 state have been
     initialized. If there's no useful to be loaded from the trapframe,
     clear the register. This avoids accidentally leaking NaT bits.
  o  Make sure we set ar.k6 prior to clobbering ar.bspstore and also
     set ar.k7 prior to setting sp. This fixes a race seen for ia64
     native code as well (and previously fixed too).
  
  Revision  Changes    Path
  1.3       +32 -25    src/sys/ia64/ia64/syscall.s


More information about the cvs-src mailing list