mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-22 06:44:35 +00:00
centralize turning asm flags into human readable names
This commit is contained in:
parent
d3dd34a1d4
commit
c31ff97bf1
@ -2264,6 +2264,42 @@ bitflags::bitflags! {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
impl InlineAsmOptions {
|
||||||
|
pub fn human_readable_names(&self) -> Vec<&'static str> {
|
||||||
|
let mut options = vec![];
|
||||||
|
|
||||||
|
if self.contains(InlineAsmOptions::PURE) {
|
||||||
|
options.push("pure");
|
||||||
|
}
|
||||||
|
if self.contains(InlineAsmOptions::NOMEM) {
|
||||||
|
options.push("nomem");
|
||||||
|
}
|
||||||
|
if self.contains(InlineAsmOptions::READONLY) {
|
||||||
|
options.push("readonly");
|
||||||
|
}
|
||||||
|
if self.contains(InlineAsmOptions::PRESERVES_FLAGS) {
|
||||||
|
options.push("preserves_flags");
|
||||||
|
}
|
||||||
|
if self.contains(InlineAsmOptions::NORETURN) {
|
||||||
|
options.push("noreturn");
|
||||||
|
}
|
||||||
|
if self.contains(InlineAsmOptions::NOSTACK) {
|
||||||
|
options.push("nostack");
|
||||||
|
}
|
||||||
|
if self.contains(InlineAsmOptions::ATT_SYNTAX) {
|
||||||
|
options.push("att_syntax");
|
||||||
|
}
|
||||||
|
if self.contains(InlineAsmOptions::RAW) {
|
||||||
|
options.push("raw");
|
||||||
|
}
|
||||||
|
if self.contains(InlineAsmOptions::MAY_UNWIND) {
|
||||||
|
options.push("may_unwind");
|
||||||
|
}
|
||||||
|
|
||||||
|
options
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
impl std::fmt::Debug for InlineAsmOptions {
|
impl std::fmt::Debug for InlineAsmOptions {
|
||||||
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
|
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
|
||||||
bitflags::parser::to_writer(self, f)
|
bitflags::parser::to_writer(self, f)
|
||||||
|
@ -1505,35 +1505,7 @@ impl<'a> State<'a> {
|
|||||||
AsmArg::Options(opts) => {
|
AsmArg::Options(opts) => {
|
||||||
s.word("options");
|
s.word("options");
|
||||||
s.popen();
|
s.popen();
|
||||||
let mut options = vec![];
|
s.commasep(Inconsistent, &opts.human_readable_names(), |s, &opt| {
|
||||||
if opts.contains(InlineAsmOptions::PURE) {
|
|
||||||
options.push("pure");
|
|
||||||
}
|
|
||||||
if opts.contains(InlineAsmOptions::NOMEM) {
|
|
||||||
options.push("nomem");
|
|
||||||
}
|
|
||||||
if opts.contains(InlineAsmOptions::READONLY) {
|
|
||||||
options.push("readonly");
|
|
||||||
}
|
|
||||||
if opts.contains(InlineAsmOptions::PRESERVES_FLAGS) {
|
|
||||||
options.push("preserves_flags");
|
|
||||||
}
|
|
||||||
if opts.contains(InlineAsmOptions::NORETURN) {
|
|
||||||
options.push("noreturn");
|
|
||||||
}
|
|
||||||
if opts.contains(InlineAsmOptions::NOSTACK) {
|
|
||||||
options.push("nostack");
|
|
||||||
}
|
|
||||||
if opts.contains(InlineAsmOptions::ATT_SYNTAX) {
|
|
||||||
options.push("att_syntax");
|
|
||||||
}
|
|
||||||
if opts.contains(InlineAsmOptions::RAW) {
|
|
||||||
options.push("raw");
|
|
||||||
}
|
|
||||||
if opts.contains(InlineAsmOptions::MAY_UNWIND) {
|
|
||||||
options.push("may_unwind");
|
|
||||||
}
|
|
||||||
s.commasep(Inconsistent, &options, |s, &opt| {
|
|
||||||
s.word(opt);
|
s.word(opt);
|
||||||
});
|
});
|
||||||
s.pclose();
|
s.pclose();
|
||||||
|
@ -1289,35 +1289,7 @@ impl<'a> State<'a> {
|
|||||||
AsmArg::Options(opts) => {
|
AsmArg::Options(opts) => {
|
||||||
s.word("options");
|
s.word("options");
|
||||||
s.popen();
|
s.popen();
|
||||||
let mut options = vec![];
|
s.commasep(Inconsistent, &opts.human_readable_names(), |s, &opt| {
|
||||||
if opts.contains(ast::InlineAsmOptions::PURE) {
|
|
||||||
options.push("pure");
|
|
||||||
}
|
|
||||||
if opts.contains(ast::InlineAsmOptions::NOMEM) {
|
|
||||||
options.push("nomem");
|
|
||||||
}
|
|
||||||
if opts.contains(ast::InlineAsmOptions::READONLY) {
|
|
||||||
options.push("readonly");
|
|
||||||
}
|
|
||||||
if opts.contains(ast::InlineAsmOptions::PRESERVES_FLAGS) {
|
|
||||||
options.push("preserves_flags");
|
|
||||||
}
|
|
||||||
if opts.contains(ast::InlineAsmOptions::NORETURN) {
|
|
||||||
options.push("noreturn");
|
|
||||||
}
|
|
||||||
if opts.contains(ast::InlineAsmOptions::NOSTACK) {
|
|
||||||
options.push("nostack");
|
|
||||||
}
|
|
||||||
if opts.contains(ast::InlineAsmOptions::ATT_SYNTAX) {
|
|
||||||
options.push("att_syntax");
|
|
||||||
}
|
|
||||||
if opts.contains(ast::InlineAsmOptions::RAW) {
|
|
||||||
options.push("raw");
|
|
||||||
}
|
|
||||||
if opts.contains(ast::InlineAsmOptions::MAY_UNWIND) {
|
|
||||||
options.push("may_unwind");
|
|
||||||
}
|
|
||||||
s.commasep(Inconsistent, &options, |s, &opt| {
|
|
||||||
s.word(opt);
|
s.word(opt);
|
||||||
});
|
});
|
||||||
s.pclose();
|
s.pclose();
|
||||||
|
Loading…
Reference in New Issue
Block a user