Lines Matching +full:- +full:- +full:add +full:- +full:architecture
13 .TH "LIBUNWIND\-IA64" "3" "16 August 2007" "Programming Library " "Programming Library "
15 libunwind\-ia64
16 \-\- IA\-64\-specific support in libunwind
21 The IA\-64 version of libunwind
22 uses a platform\-string of
25 operating systems adhering to the processor\-specific ABI defined for
26 the Itanium Processor Family. This includes both little\-endian Linux
27 and big\-endian HP\-UX. Furthermore, to make it possible for a single
28 library to unwind both 32\- and 64\-bit targets, the type
31 of the natural word\-size of the host). Having said that, the current
32 implementation has been tested only with IA\-64 Linux.
34 When targeting IA\-64, the libunwind
39 possible for platform\-dependent unwind code to use
40 conditional\-compilation to select an appropriate implementation. The
42 target\-platform\-specific symbols.
44 One special feature of IA\-64 is the use of NaT bits to support
45 speculative execution. Often, NaT bits are thought of as the ``65\-th
47 64\-bit wide unw_word_t
50 NaT\-bits like separate boolean registers, whose 64\-bit value is either
51 TRUE (non\-zero) or FALSE (zero).
53 .SH MACHINE\-STATE
56 The machine\-state (set of registers) that is accessible through
59 points to. For normal frames, all ``preserved\&'' (callee\-saved)
60 registers are accessible. For signal\-trampoline frames, all registers
61 (including ``scratch\&'' (caller\-saved) registers) are accessible. Most
62 applications do not have to worry a\-priori about which registers are
69 call will fail with a return\-value of \-UNW_EBADREG\&.
72 r15\-r18
77 For a detailed description of the IA\-64 register usage convention,
78 please see the ``Itanium Software Conventions and Runtime Architecture
88 The IA\-64\-version of libunwind
90 name macros: frame\-register macros, normal register macros, and
93 .SS FRAME\-REGISTER MACROS
95 Frame\-registers are special (pseudo) registers because they always
98 previous stack\-pointer value can be calculated simply as
100 so there is no need to save the stack\-pointer
102 identifies a stack frame. The IA\-64 architecture defines two stacks
103 (a memory and a register stack). Including the instruction\-pointer
109 the remaining machine\-state corresponds to the register\-values that
113 this frame\-register encode the slot number of the instruction.
115 Due to the way the call instruction works on IA\-64,
116 the slot number is usually zero, but can be non\-zero, e.g., in the
117 stack\-frame of a signal\-handler trampoline.
120 Contains the (memory) stack\-pointer
124 Contains the register backing\-store
137 The base\-index for general (integer)
138 registers. Add an index in the range from 0..127 to get a
145 are read\-only,
147 (\-UNW_EREADONLYREG).
150 read\-only, libunwind
152 the instruction\-pointer (UNW_IA64_IP)
159 will return the global\-pointer
163 The base\-index for the NaT bits of the
164 general (integer) registers. A non\-zero value in these registers
165 corresponds to a set NaT\-bit. Add an index in the range from 0..127
166 to get a particular NaT\-bit register. For example, to access the
172 The base\-index for floating\-point
173 registers. Add an index in the range from 0..127 to get a
174 particular floating\-point register. For example, to access
180 are read\-only, and any
185 (\-UNW_EREADONLYREG).
188 The base\-index for application
189 registers. Add an index in the range from 0..127 to get a
194 used. The IA\-64 architecture defines several application registers
196 results in an error (\-UNW_EBADREG).
199 The base\-index for branch registers.
208 This 64\-bit wide register contains registers p0
211 in the ``broad\-side\&'' format. Just like with the
217 in bit 16 + ((N\-16)+CFM.rrb.pr) % 48\&.
220 Contains the current\-frame\-mask
230 the global\-pointer register.
234 the thread\-pointer register.
238 the register\-stack configuration register.
252 the register\-backing store write pointer.
256 the register\-backing store NaT\-collection register.
260 the compare\-and\-swap value register.
264 the compare\-and\-swap\-data register (used by 16\-byte atomic operations).
268 the user NaT\-collection register.
272 the floating\-point status (and control) register.
276 the previous frame\-state register.
280 the loop\-count register.
284 the epilogue\-count register.
286 .SH THE UNWIND\-CONTEXT TYPE
289 On IA\-64, unw_context_t
297 example. However, since this is an IA\-64\-specific extension to
309 David Mosberger\-Tang