From 023572b9577a388eaf354962635766dc9708244b Mon Sep 17 00:00:00 2001 From: klutzy Date: Wed, 17 Dec 2014 22:02:50 +0900 Subject: pprust: Fix asm options --- src/libsyntax/print/pprust.rs | 28 +++++++++++++++++++++++----- 1 file changed, 23 insertions(+), 5 deletions(-) (limited to 'src/libsyntax/print') diff --git a/src/libsyntax/print/pprust.rs b/src/libsyntax/print/pprust.rs index a9717a526ad..66ef7a9aee1 100644 --- a/src/libsyntax/print/pprust.rs +++ b/src/libsyntax/print/pprust.rs @@ -1786,11 +1786,7 @@ impl<'a> State<'a> { } } ast::ExprInlineAsm(ref a) => { - if a.volatile { - try!(word(&mut self.s, "__volatile__ asm!")); - } else { - try!(word(&mut self.s, "asm!")); - } + try!(word(&mut self.s, "asm!")); try!(self.popen()); try!(self.print_string(a.asm.get(), a.asm_str_style)); try!(self.word_space(":")); @@ -1828,6 +1824,28 @@ impl<'a> State<'a> { try!(s.print_string(co.get(), ast::CookedStr)); Ok(()) })); + + let mut options = vec!(); + if a.volatile { + options.push("volatile"); + } + if a.alignstack { + options.push("alignstack"); + } + if a.dialect == ast::AsmDialect::AsmIntel { + options.push("intel"); + } + + if options.len() > 0 { + try!(space(&mut self.s)); + try!(self.word_space(":")); + try!(self.commasep(Inconsistent, &*options, + |s, &co| { + try!(s.print_string(co, ast::CookedStr)); + Ok(()) + })); + } + try!(self.pclose()); } ast::ExprMac(ref m) => try!(self.print_mac(m, token::Paren)), -- cgit 1.4.1-3-g733a5