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
| | |
%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
| | |
%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
| | |
%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