cvs commit: src/sys/ia64/include _regset.h

Marcel Moolenaar marcel at FreeBSD.org
Thu May 15 01:36:05 PDT 2003


marcel      2003/05/15 01:36:03 PDT

  FreeBSD src repository

  Added files:
    sys/ia64/include     _regset.h 
  Log:
  This file creates register sets based on the runtime specification.
  The advantage of using register sets is that you don't focus on each
  register seperately, but instead instroduce a level of abstraction.
  This reduces the chance of errors, and also simplifies the code.
  The register sers form the basis of everything register.
  The sets in this file are:
  
  struct _special
  contains all of the control related registers, such as instruction
  pointer and stack pointer. It also contains interrupt specific registers
  like the faulting address. The set is roughly split in 3 groups. The
  first contains the registers that define a context or thread. This is
  the only group that the kernel needs to switch threads.  The second group
  contains registers needed in addition to the first group needed to switch
  userland threads. This group contains the thread pointer and the FP control
  register. The third group contains those registers we need for execption
  handling and are used on top of the first two groups.
  
  struct _callee_saved, struct _callee_saved_fp
  These sets contain the preserved registers, including the NaT after
  spilling. The general registers (including branch registers) are
  seperated from the FP registers for ptrace(2).
  
  struct _caller_saved, struct _caller_saved_fp
  These sets contain the scratch registers based on SDM 2.1, This means that
  both ar.csd and ar.ccd are included here, even though they contain ia32
  segment register descriptions. We keep seperate NaT bits for scratch and
  preserved registers, because they are never saved/restored at the same
  time.
  
  struct _high_fp
  The upper 96 FP registers that can be enabled/disabled seperately on
  the CPU from the lower 32 FP registers. Due to the size of this set,
  we treat them specially, even though they are defined as scratch
  registers.
  
  CVS ----------------------------------------------------------------------
  
  Revision  Changes    Path
  1.1       +180 -0    src/sys/ia64/include/_regset.h (new)


More information about the cvs-all mailing list