diff options
| author | bors <bors@rust-lang.org> | 2015-12-14 13:48:41 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2015-12-14 13:48:41 +0000 |
| commit | 50a02b43ba17bf1547b7124dff909604e967a7f6 (patch) | |
| tree | 04c161e2e0556bca5bc5e4508847f2bbbae5b480 /src/libsyntax/print | |
| parent | 6b3a3f270219819f8f98c2b6807ff70b92a941ac (diff) | |
| parent | 65707dfc001b4dea745a040c2ecc61847ccba608 (diff) | |
Auto merge of #29735 - Amanieu:asm_indirect_constraint, r=pnkfelix
This PR reverts #29543 and instead implements proper support for "=*m" and "+*m" indirect output operands. This provides a framework on top of which support for plain memory operands ("m", "=m" and "+m") can be implemented.
This also fixes the liveness analysis pass not handling read/write operands correctly.
Diffstat (limited to 'src/libsyntax/print')
| -rw-r--r-- | src/libsyntax/print/pprust.rs | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/src/libsyntax/print/pprust.rs b/src/libsyntax/print/pprust.rs index f7105951296..475bacbc886 100644 --- a/src/libsyntax/print/pprust.rs +++ b/src/libsyntax/print/pprust.rs @@ -2219,16 +2219,16 @@ impl<'a> State<'a> { try!(self.word_space(":")); try!(self.commasep(Inconsistent, &a.outputs, - |s, &(ref co, ref o, is_rw)| { - match co.slice_shift_char() { - Some(('=', operand)) if is_rw => { + |s, out| { + match out.constraint.slice_shift_char() { + Some(('=', operand)) if out.is_rw => { try!(s.print_string(&format!("+{}", operand), ast::CookedStr)) } - _ => try!(s.print_string(&co, ast::CookedStr)) + _ => try!(s.print_string(&out.constraint, ast::CookedStr)) } try!(s.popen()); - try!(s.print_expr(&**o)); + try!(s.print_expr(&*out.expr)); try!(s.pclose()); Ok(()) })); |
