SPARC Assembly Language Reference Manual

Exit Print View

Updated: July 2014
 
 

1.3.10 SPARC V9 Operators and Expressions

The following V9 64-bit operators and expressions in Table 1–4 ease the task of converting from V8/V8plus assembly code to V9 assembly code.

Table 1-4  V9 64-bit Operators and Expressions
Unary
Calculation
Operators
%hh
(address) >> 42
Extract bits 42-63 of a 64-bit word
%hm
((address) >> 32) & 0x3ff
Extract bits 32-41 of a 64-bit word
%lm
(((address) >> 10) & 0x3fffff)
Extract bits 10-31 of a 64-bit word

For example:

sethi %hh (address), %l1
or %l1, %hm (address), %l1
sethi %lm (address), %12
or %12, %lo (address), %12
sllx %l1, 32, %l1
or %l1, %12, %l1

The V9 high 32-bit operators and expressions are identified in Table 1–5.

Table 1-5  V9 32-bit Operators and Expressions
Unary
Calculation
Operators
%hix
((((address) ^ 0xffffffffffffffff >> 10) &0x4fffff)
Invert every bit and extract bits 10-31
%lox
((address) & 0x3ff | 0x1c00
Extract bits 0-9 and sign extend that to 13 bits

For example:

%sethi %hix (address), %l1
or %l1, %lox (address), %l1

The V9 low 44-bit operators and expressions are identified in Table 1–6 .

Table 1-6  Low 44-Bit Operators and Expressions
Unary
Calculation
Operators
%h44
((address) >> 22)
Extract bits 22-43 of a 64-bit word
%m44
((address) >> 12) & 0x3ff
Extract bits 12-21 of a 64-bit word
%l44
(address) & 0xfff
Extract bits 0-11 of a 64-bit word

For example:

%sethi %h44 (address), %l1
or %l1, %m44 (address), %l1
sllx %l1, 12, %l1
or %l1, %

l44 (address), %l1