Revision: 19491
Author: [email protected]
Date: Wed Feb 19 14:37:18 2014 UTC
Log: 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=
[email protected]
Review URL: https://codereview.chromium.org/172453002
http://code.google.com/p/v8/source/detail?r=19491
Modified:
/branches/bleeding_edge/src/a64/macro-assembler-a64.cc
/branches/bleeding_edge/src/a64/macro-assembler-a64.h
=======================================
--- /branches/bleeding_edge/src/a64/macro-assembler-a64.cc Wed Feb 19
09:43:45 2014 UTC
+++ /branches/bleeding_edge/src/a64/macro-assembler-a64.cc Wed Feb 19
14:37:18 2014 UTC
@@ -1079,7 +1079,8 @@
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
=======================================
--- /branches/bleeding_edge/src/a64/macro-assembler-a64.h Wed Feb 19
09:43:45 2014 UTC
+++ /branches/bleeding_edge/src/a64/macro-assembler-a64.h Wed Feb 19
14:37:18 2014 UTC
@@ -2167,6 +2167,9 @@
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.