Reviewers: Jakob,
Description:
Fix quadratic test in debug-mode ARM64 assembler
[email protected]
BUG=
Please review this at https://codereview.chromium.org/812593002/
Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Affected files (+3, -0 lines):
M src/arm64/assembler-arm64.cc
Index: src/arm64/assembler-arm64.cc
diff --git a/src/arm64/assembler-arm64.cc b/src/arm64/assembler-arm64.cc
index
524be154c53bef81a410c3c648f456fc32f85bd3..bf44c0810e138b729c7cd7f7fbe9ca87ec6517eb
100644
--- a/src/arm64/assembler-arm64.cc
+++ b/src/arm64/assembler-arm64.cc
@@ -603,9 +603,12 @@ void Assembler::Align(int m) {
void Assembler::CheckLabelLinkChain(Label const * label) {
#ifdef DEBUG
if (label->is_linked()) {
+ static const int kMaxLinksToCheck = 256; // Avoid O(n2) behaviour.
+ int links_checked = 0;
int linkoffset = label->pos();
bool end_of_chain = false;
while (!end_of_chain) {
+ if (++links_checked > kMaxLinksToCheck) break;
Instruction * link = InstructionAt(linkoffset);
int linkpcoffset = link->ImmPCOffset();
int prevlinkoffset = linkoffset + linkpcoffset;
--
--
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/d/optout.