Chromium Code Reviews| Index: src/IceInstX8632.cpp |
| diff --git a/src/IceInstX8632.cpp b/src/IceInstX8632.cpp |
| index 15e024915f5a405f9bd90c39aa8a7a8f681763f7..7070e27cfbda567ca3fbc138e3988edc0ca2a1fb 100644 |
| --- a/src/IceInstX8632.cpp |
| +++ b/src/IceInstX8632.cpp |
| @@ -318,7 +318,14 @@ InstX8632Fstp::InstX8632Fstp(Cfg *Func, Variable *Dest) |
| : InstX8632(Func, InstX8632::Fstp, 0, Dest) {} |
| InstX8632Pop::InstX8632Pop(Cfg *Func, Variable *Dest) |
| - : InstX8632(Func, InstX8632::Pop, 0, Dest) {} |
| + : InstX8632(Func, InstX8632::Pop, 0, Dest) { |
| + // A pop instruction affects the stack pointer and so it should not |
| + // be allowed to be automatically dead-code eliminated. (The |
| + // corresponding push instruction doesn't need this treatment |
| + // because it has no dest variable and therefore won't be dead-code |
| + // eliminated.) This is needed for asm-verbose mode. |
|
jvoung (off chromium)
2015/04/29 16:41:35
Could this be described more generically (vs "for
Jim Stichnoth
2015/04/29 17:15:27
OK, I added "late-stage liveness analysis" to the
|
| + HasSideEffects = true; |
| +} |
| InstX8632Push::InstX8632Push(Cfg *Func, Variable *Source) |
| : InstX8632(Func, InstX8632::Push, 1, nullptr) { |