From e7fc0207ab4dc5a32183eb5c2f9ccb360ab38d7f Mon Sep 17 00:00:00 2001 From: "mmassi@chromium.org" Date: Wed, 26 Sep 2012 09:35:41 +0000 Subject: [PATCH] Lowered kMaxVirtualRegisters (fixes v8 2139 and chrome 123822 and 128252). BUG=128252 Review URL: https://chromiumcodereview.appspot.com/10966031 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12613 ce2b1a6d-e550-0410-aec6-3dcde31c8c00 --- src/lithium.h | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/lithium.h b/src/lithium.h index e1cd52a..b4eb2bb 100644 --- a/src/lithium.h +++ b/src/lithium.h @@ -133,13 +133,15 @@ class LUnallocated: public LOperand { // index in the upper bits. static const int kPolicyWidth = 3; static const int kLifetimeWidth = 1; - static const int kVirtualRegisterWidth = 18; + static const int kVirtualRegisterWidth = 15; static const int kPolicyShift = kKindFieldWidth; static const int kLifetimeShift = kPolicyShift + kPolicyWidth; static const int kVirtualRegisterShift = kLifetimeShift + kLifetimeWidth; static const int kFixedIndexShift = kVirtualRegisterShift + kVirtualRegisterWidth; + static const int kFixedIndexWidth = 32 - kFixedIndexShift; + STATIC_ASSERT(kFixedIndexWidth > 5); class PolicyField : public BitField { }; @@ -154,8 +156,8 @@ class LUnallocated: public LOperand { }; static const int kMaxVirtualRegisters = 1 << kVirtualRegisterWidth; - static const int kMaxFixedIndex = 63; - static const int kMinFixedIndex = -64; + static const int kMaxFixedIndex = (1 << kFixedIndexWidth) - 1; + static const int kMinFixedIndex = -(1 << kFixedIndexWidth); bool HasAnyPolicy() const { return policy() == ANY; -- 2.7.4