Reviewers: ulan, rmcilroy,

Message:
I had to add a TODO to re-enable AssertStackConsistency. I'll create an issue
for it with the details of the tests that fail, though they seem to be
intermittent so the list won't be exhaustive.

Description:
A64: Fix r19474: Tidy up Push and Pop TODOs.

This fixes some snapshot=off, debug-mode regressions.

  - Call CheckConstPool when entering InsturctionAccurateScopes. This
    fixes a problem in PushMultipleTimes where 'count' is very high.
    Each call to PushHelper starts an InstructionAccurateScope
    immediately after the last one finishes, with no opportunity for the
    constant pool to be generated.

  - Temporarily disable AssertStackConsistency in PrepareForPush. This
    assertion seems to push the code size too far, and several cctests
    (intermittently) fail due to buffer size limitations. I would like
    to renable this assertion later.

BUG=

Please review this at https://codereview.chromium.org/172453002/

SVN Base: https://v8.googlecode.com/svn/branches/bleeding_edge

Affected files (+5, -1 lines):
  M src/a64/macro-assembler-a64.h
  M src/a64/macro-assembler-a64.cc


Index: src/a64/macro-assembler-a64.cc
diff --git a/src/a64/macro-assembler-a64.cc b/src/a64/macro-assembler-a64.cc
index fe68b08774d3794bee57646429a61b9fc0779671..cd6b60a8e51489ad05780e9a4d41d6086f8d42d3 100644
--- a/src/a64/macro-assembler-a64.cc
+++ b/src/a64/macro-assembler-a64.cc
@@ -1079,7 +1079,8 @@ void MacroAssembler::PopHelper(int count, int size,


 void MacroAssembler::PrepareForPush(Operand total_size) {
-  AssertStackConsistency();
+ // TODO(jbramley): This assertion generates too much code in some debug tests.
+  // AssertStackConsistency();
   if (csp.Is(StackPointer())) {
// If the current stack pointer is csp, then it must be aligned to 16 bytes // on entry and the total size of the specified registers must also be a
Index: src/a64/macro-assembler-a64.h
diff --git a/src/a64/macro-assembler-a64.h b/src/a64/macro-assembler-a64.h
index 93e9e80d043deee744e2273396a9923864bcdbd9..a4f68f05e332c8912bf0a3ad680be491b1414f37 100644
--- a/src/a64/macro-assembler-a64.h
+++ b/src/a64/macro-assembler-a64.h
@@ -2167,6 +2167,9 @@ class InstructionAccurateScope BASE_EMBEDDED {
  public:
   InstructionAccurateScope(MacroAssembler* masm, size_t count = 0)
       : masm_(masm), size_(count * kInstructionSize) {
+    // Before blocking the const pool, see if it needs to be emitted.
+    masm_->CheckConstPool(false, true);
+
     masm_->StartBlockConstPool();
 #ifdef DEBUG
     if (count != 0) {


--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
--- You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to