| Index: runtime/vm/flow_graph_compiler_ia32.cc
|
| ===================================================================
|
| --- runtime/vm/flow_graph_compiler_ia32.cc (revision 42713)
|
| +++ runtime/vm/flow_graph_compiler_ia32.cc (working copy)
|
| @@ -1235,15 +1235,29 @@
|
| intptr_t increment_start = assembler_->CodeSize();
|
| #endif // DEBUG
|
| __ IncrementSmiField(FieldAddress(EAX, Array::element_offset(0)), 1);
|
| +#if defined(DEBUG)
|
| // If the assertion below fails, update EdgeCounterIncrementSizeInBytes.
|
| - DEBUG_ASSERT((assembler_->CodeSize() - increment_start) ==
|
| - EdgeCounterIncrementSizeInBytes());
|
| + intptr_t expected = EdgeCounterIncrementSizeInBytes();
|
| + intptr_t actual = assembler_->CodeSize() - increment_start;
|
| + if (actual != expected) {
|
| + FATAL2("Edge counter increment length: %" Pd ", expected %" Pd "\n",
|
| + actual,
|
| + expected);
|
| + }
|
| +#endif // DEBUG
|
| }
|
|
|
|
|
| int32_t FlowGraphCompiler::EdgeCounterIncrementSizeInBytes() {
|
| // Used by CodePatcher; so must be constant across all code in an isolate.
|
| - return VerifiedMemory::enabled() ? 50 : 4;
|
| + int32_t size = 4;
|
| +#if defined(DEBUG)
|
| + size += 19; // VerifySmi
|
| +#endif // DEBUG
|
| + if (VerifiedMemory::enabled()) {
|
| + size += 50;
|
| + }
|
| + return size;
|
| }
|
|
|
|
|
|
|