struct CompactUnwindEncoding [src]
Fields
value: packed union {
x86_64: packed union {
frame: packed struct(u24) {
reg4: u3,
reg3: u3,
reg2: u3,
reg1: u3,
reg0: u3,
unused: u1 = 0,
frame_offset: u8,
},
frameless: packed struct(u24) {
stack_reg_permutation: u10,
stack_reg_count: u3,
stack: packed union {
direct: packed struct(u11) {
_: u3,
stack_size: u8,
},
indirect: packed struct(u11) {
stack_adjust: u3,
sub_offset: u8,
},
},
},
dwarf: u24,
},
arm64: packed union {
frame: packed struct(u24) {
x_reg_pairs: packed struct(u5) {
x19_x20: u1,
x21_x22: u1,
x23_x24: u1,
x25_x26: u1,
x27_x28: u1,
},
d_reg_pairs: packed struct(u4) {
d8_d9: u1,
d10_d11: u1,
d12_d13: u1,
d14_d15: u1,
},
_: u15,
},
frameless: packed struct(u24) {
_: u12 = 0,
stack_size: u12,
},
dwarf: u24,
},
}
mode: packed union {
x86_64: UNWIND_X86_64_MODE,
arm64: UNWIND_ARM64_MODE,
}
personality_index: u2
has_lsda: u1
start: u1
Source
pub const CompactUnwindEncoding = packed struct(u32) {
value: packed union {
x86_64: packed union {
frame: packed struct(u24) {
reg4: u3,
reg3: u3,
reg2: u3,
reg1: u3,
reg0: u3,
unused: u1 = 0,
frame_offset: u8,
},
frameless: packed struct(u24) {
stack_reg_permutation: u10,
stack_reg_count: u3,
stack: packed union {
direct: packed struct(u11) {
_: u3,
stack_size: u8,
},
indirect: packed struct(u11) {
stack_adjust: u3,
sub_offset: u8,
},
},
},
dwarf: u24,
},
arm64: packed union {
frame: packed struct(u24) {
x_reg_pairs: packed struct(u5) {
x19_x20: u1,
x21_x22: u1,
x23_x24: u1,
x25_x26: u1,
x27_x28: u1,
},
d_reg_pairs: packed struct(u4) {
d8_d9: u1,
d10_d11: u1,
d12_d13: u1,
d14_d15: u1,
},
_: u15,
},
frameless: packed struct(u24) {
_: u12 = 0,
stack_size: u12,
},
dwarf: u24,
},
},
mode: packed union {
x86_64: UNWIND_X86_64_MODE,
arm64: UNWIND_ARM64_MODE,
},
personality_index: u2,
has_lsda: u1,
start: u1,
}