gen_settings: dont try to display a Preset descriptor in Flags (#241)

* gen_settings: dont try to display a Preset descriptor in Flags

Trying to display a preset doesnt make sense, and before this commit it
does not display anything meaningful - the printout just says e.g.
"haswell =\n".

The offset byte a preset descriptor isnt a valid offset into the
flag bytes, it is actually an offset into the PRESETS table. It will
cause a panic when the offset is out of bounds for the flag bytes,
which happens in the intel isa as of this commit.

* intel settings: test that display impl doesnt panic
This commit is contained in:
Pat Hickey
2018-02-14 11:51:40 -08:00
committed by Jakob Stoklund Olesen
parent 42e1616b82
commit ed24320eda
3 changed files with 36 additions and 5 deletions

View File

@@ -297,6 +297,17 @@ pub mod detail {
/// The `Descriptor::offset` field refers to the `PRESETS` table.
Preset,
}
impl Detail {
/// Check if a detail is a Detail::Preset. Useful because the Descriptor
/// offset field has a different meaning when the detail is a preset.
pub fn is_preset(&self) -> bool {
match self {
&Detail::Preset => true,
_ => false,
}
}
}
}
// Include code generated by `meta/gen_settings.py`. This file contains a public `Flags` struct