[Interpreter] Fix incorrect Register OperandSize calculation for ExtraWide.
Fixes a mistake made in r35618 for register OperandSize calculations. BUG=605470 LOG=N Review URL: https://codereview.chromium.org/1908033002 Cr-Commit-Position: refs/heads/master@{#35719}
This commit is contained in:
parent
6d21841ec3
commit
11e3ba34f5
@ -724,7 +724,7 @@ OperandSize Register::SizeOfOperand() const {
|
||||
int32_t operand = ToOperand();
|
||||
if (operand >= kMinInt8 && operand <= kMaxInt8) {
|
||||
return OperandSize::kByte;
|
||||
} else if (index_ >= kMinInt16 && index_ <= kMaxInt16) {
|
||||
} else if (operand >= kMinInt16 && operand <= kMaxInt16) {
|
||||
return OperandSize::kShort;
|
||||
} else {
|
||||
return OperandSize::kQuad;
|
||||
|
17
test/mjsunit/regress/regress-605470.js
Normal file
17
test/mjsunit/regress/regress-605470.js
Normal file
@ -0,0 +1,17 @@
|
||||
// Copyright 2016 the V8 project authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
// Flags: --ignition
|
||||
|
||||
function function_with_m_args(m) {
|
||||
var source = '(function f() { return; })(';
|
||||
for (var arg = 0; arg < m ; arg++) {
|
||||
if (arg != 0) source += ',';
|
||||
source += arg;
|
||||
}
|
||||
source += ')';
|
||||
return eval(source);
|
||||
}
|
||||
|
||||
function_with_m_args(0x7FFF);
|
Loading…
Reference in New Issue
Block a user