zig/lib/std/dwarf/EH.zig

34 lines
857 B
Zig

pub const PE = packed struct(u8) {
type: Type,
rel: Rel,
/// Undocumented GCC extension
indirect: bool = false,
/// This is a special encoding which does not correspond to named `type`/`rel` values.
pub const omit: PE = @bitCast(@as(u8, 0xFF));
pub const Type = enum(u4) {
absptr = 0x0,
uleb128 = 0x1,
udata2 = 0x2,
udata4 = 0x3,
udata8 = 0x4,
sleb128 = 0x9,
sdata2 = 0xA,
sdata4 = 0xB,
sdata8 = 0xC,
_,
};
/// The specification considers this a `u4`, but the GCC `indirect` field extension conflicts
/// with that, so we consider it a `u3` instead.
pub const Rel = enum(u3) {
abs = 0x0,
pcrel = 0x1,
textrel = 0x2,
datarel = 0x3,
funcrel = 0x4,
aligned = 0x5,
_,
};
};