structstd.macho.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 Code

Source code
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,
}