Skip to content

Commit

Permalink
deps: backport 102e3e87e7 from V8 upstream
Browse files Browse the repository at this point in the history
This commit backports a fix to a crankshaft bug affects arm64 systems.

Original commit message:

    [arm64] Fix jssp based spill slot accesses in Crankshaft

    Review URL: https://codereview.chromium.org/1401703003

    Cr-Commit-Position: refs/heads/master@{#31304}

Fixes: #7417
PR-URL: #7442
Reviewed-By: Ali Ijaz Sheikh <ofrobots@google.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
  • Loading branch information
Myles Borins committed Jun 28, 2016
1 parent 0ba3c2c commit 49921e8
Show file tree
Hide file tree
Showing 2 changed files with 36 additions and 0 deletions.
2 changes: 2 additions & 0 deletions deps/v8/src/arm64/lithium-codegen-arm64.cc
Expand Up @@ -2801,6 +2801,8 @@ void LCodeGen::DoDoubleToIntOrSmi(LDoubleToIntOrSmi* instr) {

void LCodeGen::DoDrop(LDrop* instr) {
__ Drop(instr->count());

RecordPushedArgumentsDelta(instr->hydrogen_value()->argument_delta());
}


Expand Down
34 changes: 34 additions & 0 deletions deps/v8/test/mjsunit/regress/regress-arm64-spillslots.js
@@ -0,0 +1,34 @@
// Copyright 2015 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: --allow-natives-syntax

"use strict";

function Message(message) {
this.message = message;
}

function Inlined(input) {
var dummy = arguments[1] === undefined;
if (input instanceof Message) {
return input;
}
print("unreachable, but we must create register allocation complexity");
return [];
}

function Process(input) {
var ret = [];
ret.push(Inlined(input[0], 1, 2));
return ret;
}

var input = [new Message("TEST PASS")];

Process(input);
Process(input);
%OptimizeFunctionOnNextCall(Process);
var result = Process(input);
assertEquals("TEST PASS", result[0].message);

0 comments on commit 49921e8

Please sign in to comment.