diff options
author | 2013-07-25 23:52:52 +0000 | |
---|---|---|
committer | 2013-07-25 17:35:15 -0700 | |
commit | b8c7859f21f5ae4c9b90f2ef2effc51967299737 (patch) | |
tree | 7f7c06a648a8fe8b134cee82111935f27b1606b0 /runtime/verifier/instruction_flags.h | |
parent | be576f48e4bf5c2afcaadd6e3a6d0f6a3153f031 (diff) |
Revert "Revert "Remove non-live vregs from GC map on return.""
This reverts commit 73dda0bc2adcd6a3a7d75f663a3559f8b527d485.
It also fixes the problematic line in the ReferenceMap test.
Change-Id: Ic3b62db7c040853a5ddfed589f6e0acff25d82b7
Diffstat (limited to 'runtime/verifier/instruction_flags.h')
-rw-r--r-- | runtime/verifier/instruction_flags.h | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/runtime/verifier/instruction_flags.h b/runtime/verifier/instruction_flags.h index 9b2e595b9d..e50ba13932 100644 --- a/runtime/verifier/instruction_flags.h +++ b/runtime/verifier/instruction_flags.h @@ -93,6 +93,21 @@ class InstructionFlags { return IsVisited() || IsChanged(); } + void SetReturn() { + flags_ |= 1 << kReturn; + } + void ClearReturn() { + flags_ &= ~(1 << kReturn); + } + bool IsReturn() const { + return (flags_ & (1 << kReturn)) != 0; + } + + void SetCompileTimeInfoPointAndReturn() { + SetCompileTimeInfoPoint(); + SetReturn(); + } + std::string ToString() const; private: @@ -108,6 +123,8 @@ class InstructionFlags { kBranchTarget = 3, // Location of interest to the compiler for GC maps and verifier based method sharpening. kCompileTimeInfoPoint = 4, + // A return instruction. + kReturn = 5, }; // Size of instruction in code units. |