diff options
| author | Alex Crichton <alex@alexcrichton.com> | 2014-12-22 12:48:07 -0800 |
|---|---|---|
| committer | Alex Crichton <alex@alexcrichton.com> | 2014-12-22 12:48:07 -0800 |
| commit | 55cf032f43c04e2c884589dd8737b9ac58fcab20 (patch) | |
| tree | 044590712a37c198a566100646e3ff4a16e69103 /src/libsyntax | |
| parent | 941361b3950500c9c356759e6fd33243588bc59b (diff) | |
| parent | 023572b9577a388eaf354962635766dc9708244b (diff) | |
| download | rust-55cf032f43c04e2c884589dd8737b9ac58fcab20.tar.gz rust-55cf032f43c04e2c884589dd8737b9ac58fcab20.zip | |
rollup merge of #20124: klutzy/pprust-asm
Diffstat (limited to 'src/libsyntax')
| -rw-r--r-- | src/libsyntax/print/pprust.rs | 28 |
1 files changed, 23 insertions, 5 deletions
diff --git a/src/libsyntax/print/pprust.rs b/src/libsyntax/print/pprust.rs index 0d79b7cf925..21410395a90 100644 --- a/src/libsyntax/print/pprust.rs +++ b/src/libsyntax/print/pprust.rs @@ -1787,11 +1787,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(":")); @@ -1829,6 +1825,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)), |
