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