Lines Matching +full:non +full:- +full:volatile

1 //===----------------------------------------------------------------------===//
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
10 //===----------------------------------------------------------------------===//
36 // The compact unwind encoding is a 32-bit value which encoded in an
56 // 1-bit: start
57 // 1-bit: has lsda
58 // 2-bit: personality index
60 // 4-bits: 0=old, 1=ebp based, 2=stack-imm, 3=stack-ind, 4=DWARF
62 // 15-bits (5*3-bits per reg) register permutation
63 // 8-bits for stack offset
65 // 8-bits stack size
66 // 3-bits stack adjust
67 // 3-bits register count
68 // 10-bits register permutation
105 // All non-volatile registers that need to be restored must have been saved
106 // in a small range in the stack that starts EBP-4 to EBP-1020. The offset/4
108 // are encoded in the UNWIND_X86_EBP_FRAME_REGISTERS bits as five 3-bit entries.
115 // All non-volatile registers that need to be restored must have been saved
129 // No compact unwind encoding is available. Instead the low 24-bits of the
136 // single variable-base number so we can encode the ordering of up to
137 // six registers in a 10-bit space.
146 // for (int i=6-registerCount; i < 6; ++i) {
148 // for (int j=6-registerCount; j < i; ++j) {
152 // renumregs[i] = registers[i] - countless -1;
191 // 1-bit: start
192 // 1-bit: has lsda
193 // 2-bit: personality index
195 // 4-bits: 0=old, 1=rbp based, 2=stack-imm, 3=stack-ind, 4=DWARF
197 // 15-bits (5*3-bits per reg) register permutation
198 // 8-bits for stack offset
200 // 8-bits stack size
201 // 3-bits stack adjust
202 // 3-bits register count
203 // 10-bits register permutation
239 // All non-volatile registers that need to be restored must have been saved
240 // in a small range in the stack that starts RBP-8 to RBP-2040. The offset/8
242 // are encoded in the UNWIND_X86_64_RBP_FRAME_REGISTERS bits as five 3-bit entries.
249 // All non-volatile registers that need to be restored must have been saved
263 // No compact unwind encoding is available. Instead the low 24-bits of the
273 // 1-bit: start
274 // 1-bit: has lsda
275 // 2-bit: personality index
277 // 4-bits: 4=frame-based, 3=DWARF, 2=frameless
279 // 12-bits of stack size
280 // frame-based:
281 // 4-bits D reg pairs saved
282 // 5-bits X reg pairs saved
284 // 24-bits offset of DWARF FDE in __eh_frame section
308 // stack, then SP is copied to FP. If there are any non-volatile registers
315 // remains in LR throughout the function. If any non-volatile registers
318 // non-volatile registers) divided by 16 is encoded in the bits
321 // No compact unwind encoding is available. Instead the low 24-bits of the
346 // range-start pointer to start of function/range
347 // range-length
348 // compact-unwind-encoding 32-bit encoding
349 // personality-function or zero if no personality function
352 // The length and encoding fields are 32-bits. The other are all pointer sized.
360 // .set L1,LfooEnd-_foo
368 // .set L2,LbarEnd-_bar
377 // range-length at assembly time, instead of generating relocations.
379 // To support future compiler optimizations where which non-volatile registers
380 // are saved changes within a function (e.g. delay saving non-volatiles until
382 // function, each with a different (non-overlapping) range and each with
383 // different compact unwind encodings that correspond to the non-volatiles
391 // and later. So, the compiler should not generate it when targeting pre-10.6.
467 // 32-bit entry array