as: Sparc-Regs

1 
1 9.44.3.2 Register Names
1 .......................
1 
1 The Sparc integer register file is broken down into global, outgoing,
1 local, and incoming.
1 
1    * The 8 global registers are referred to as '%gN'.
1 
1    * The 8 outgoing registers are referred to as '%oN'.
1 
1    * The 8 local registers are referred to as '%lN'.
1 
1    * The 8 incoming registers are referred to as '%iN'.
1 
1    * The frame pointer register '%i6' can be referenced using the alias
1      '%fp'.
1 
1    * The stack pointer register '%o6' can be referenced using the alias
1      '%sp'.
1 
1    Floating point registers are simply referred to as '%fN'.  When
1 assembling for pre-V9, only 32 floating point registers are available.
1 For V9 and later there are 64, but there are restrictions when
1 referencing the upper 32 registers.  They can only be accessed as double
1 or quad, and thus only even or quad numbered accesses are allowed.  For
1 example, '%f34' is a legal floating point register, but '%f35' is not.
1 
1    Floating point registers accessed as double can also be referred
1 using the '%dN' notation, where N is even.  Similarly, floating point
1 registers accessed as quad can be referred using the '%qN' notation,
1 where N is a multiple of 4.  For example, '%f4' can be denoted as both
1 '%d4' and '%q4'.  On the other hand, '%f2' can be denoted as '%d2' but
1 not as '%q2'.
1 
1    Certain V9 instructions allow access to ancillary state registers.
1 Most simply they can be referred to as '%asrN' where N can be from 16 to
1 31.  However, there are some aliases defined to reference ASR registers
1 defined for various UltraSPARC processors:
1 
1    * The tick compare register is referred to as '%tick_cmpr'.
1 
1    * The system tick register is referred to as '%stick'.  An alias,
1      '%sys_tick', exists but is deprecated and should not be used by new
1      software.
1 
1    * The system tick compare register is referred to as '%stick_cmpr'.
1      An alias, '%sys_tick_cmpr', exists but is deprecated and should not
1      be used by new software.
1 
1    * The software interrupt register is referred to as '%softint'.
1 
1    * The set software interrupt register is referred to as
1      '%set_softint'.  The mnemonic '%softint_set' is provided as an
1      alias.
1 
1    * The clear software interrupt register is referred to as
1      '%clear_softint'.  The mnemonic '%softint_clear' is provided as an
1      alias.
1 
1    * The performance instrumentation counters register is referred to as
1      '%pic'.
1 
1    * The performance control register is referred to as '%pcr'.
1 
1    * The graphics status register is referred to as '%gsr'.
1 
1    * The V9 dispatch control register is referred to as '%dcr'.
1 
1    Various V9 branch and conditional move instructions allow
1 specification of which set of integer condition codes to test.  These
1 are referred to as '%xcc' and '%icc'.
1 
1    Additionally, GAS supports the so-called "natural" condition codes;
1 these are referred to as '%ncc' and reference to '%icc' if the word size
1 is 32, '%xcc' if the word size is 64.
1 
1    In V9, there are 4 sets of floating point condition codes which are
1 referred to as '%fccN'.
1 
1    Several special privileged and non-privileged registers exist:
1 
1    * The V9 address space identifier register is referred to as '%asi'.
1 
1    * The V9 restorable windows register is referred to as '%canrestore'.
1 
1    * The V9 savable windows register is referred to as '%cansave'.
1 
1    * The V9 clean windows register is referred to as '%cleanwin'.
1 
1    * The V9 current window pointer register is referred to as '%cwp'.
1 
1    * The floating-point queue register is referred to as '%fq'.
1 
1    * The V8 co-processor queue register is referred to as '%cq'.
1 
1    * The floating point status register is referred to as '%fsr'.
1 
1    * The other windows register is referred to as '%otherwin'.
1 
1    * The V9 program counter register is referred to as '%pc'.
1 
1    * The V9 next program counter register is referred to as '%npc'.
1 
1    * The V9 processor interrupt level register is referred to as '%pil'.
1 
1    * The V9 processor state register is referred to as '%pstate'.
1 
1    * The trap base address register is referred to as '%tba'.
1 
1    * The V9 tick register is referred to as '%tick'.
1 
1    * The V9 trap level is referred to as '%tl'.
1 
1    * The V9 trap program counter is referred to as '%tpc'.
1 
1    * The V9 trap next program counter is referred to as '%tnpc'.
1 
1    * The V9 trap state is referred to as '%tstate'.
1 
1    * The V9 trap type is referred to as '%tt'.
1 
1    * The V9 condition codes is referred to as '%ccr'.
1 
1    * The V9 floating-point registers state is referred to as '%fprs'.
1 
1    * The V9 version register is referred to as '%ver'.
1 
1    * The V9 window state register is referred to as '%wstate'.
1 
1    * The Y register is referred to as '%y'.
1 
1    * The V8 window invalid mask register is referred to as '%wim'.
1 
1    * The V8 processor state register is referred to as '%psr'.
1 
1    * The V9 global register level register is referred to as '%gl'.
1 
1    Several special register names exist for hypervisor mode code:
1 
1    * The hyperprivileged processor state register is referred to as
1      '%hpstate'.
1 
1    * The hyperprivileged trap state register is referred to as
1      '%htstate'.
1 
1    * The hyperprivileged interrupt pending register is referred to as
1      '%hintp'.
1 
1    * The hyperprivileged trap base address register is referred to as
1      '%htba'.
1 
1    * The hyperprivileged implementation version register is referred to
1      as '%hver'.
1 
1    * The hyperprivileged system tick offset register is referred to as
1      '%hstick_offset'.  Note that there is no '%hstick' register, the
1      normal '%stick' is used.
1 
1    * The hyperprivileged system tick enable register is referred to as
1      '%hstick_enable'.
1 
1    * The hyperprivileged system tick compare register is referred to as
1      '%hstick_cmpr'.
1