These “high” mnemonics extract bits 31:10 of their operand,
and the “low” mnemonics extract bits 9:0 of their operand.

V9 code model relocations can be requested as follows:

R_SPARC_HH22 is requested using `%hh'. It can
also be generated using `%uhi'.

R_SPARC_HM10 is requested using `%hm'. It can
also be generated using `%ulo'.

R_SPARC_LM22 is requested using `%lm'.

R_SPARC_H44 is requested using `%h44'.

R_SPARC_M44 is requested using `%m44'.

R_SPARC_L44 is requested using `%l44'.

The PC relative relocation R_SPARC_PC22 can be obtained by
enclosing an operand inside of `%pc22'. Likewise, the
R_SPARC_PC10 relocation can be obtained using `%pc10'.
These are mostly used when assembling PIC code. For example, the
standard PIC sequence on Sparc to get the base of the global offset
table, PC relative, into a register, can be performed as:

Several relocations exist to allow the link editor to potentially
optimize GOT data references. The R_SPARC_GOTDATA_OP_HIX22
relocation can obtained by enclosing an operand inside of
`%gdop_hix22'. The R_SPARC_GOTDATA_OP_LOX10
relocation can obtained by enclosing an operand inside of
`%gdop_lox10'. Likewise, R_SPARC_GOTDATA_OP can be
obtained by enclosing an operand inside of `%gdop'.
For example, assuming the GOT base is in register %l7:

When assembling for 64-bit, and a secondary constant addend is
specified in an address expression that would normally generate
an R_SPARC_LO10 relocation, the assembler will emit an
R_SPARC_OLO10 instead.