Skip to content

Commit 49921e8

Browse files
author
Myles Borins
committed
deps: backport 102e3e87e7 from V8 upstream
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 <[email protected]> Reviewed-By: James M Snell <[email protected]>
1 parent 0ba3c2c commit 49921e8

File tree

2 files changed

+36
-0
lines changed

2 files changed

+36
-0
lines changed

deps/v8/src/arm64/lithium-codegen-arm64.cc

+2
Original file line numberDiff line numberDiff line change
@@ -2801,6 +2801,8 @@ void LCodeGen::DoDoubleToIntOrSmi(LDoubleToIntOrSmi* instr) {
28012801

28022802
void LCodeGen::DoDrop(LDrop* instr) {
28032803
__ Drop(instr->count());
2804+
2805+
RecordPushedArgumentsDelta(instr->hydrogen_value()->argument_delta());
28042806
}
28052807

28062808

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
// Copyright 2015 the V8 project authors. All rights reserved.
2+
// Use of this source code is governed by a BSD-style license that can be
3+
// found in the LICENSE file.
4+
5+
// Flags: --allow-natives-syntax
6+
7+
"use strict";
8+
9+
function Message(message) {
10+
this.message = message;
11+
}
12+
13+
function Inlined(input) {
14+
var dummy = arguments[1] === undefined;
15+
if (input instanceof Message) {
16+
return input;
17+
}
18+
print("unreachable, but we must create register allocation complexity");
19+
return [];
20+
}
21+
22+
function Process(input) {
23+
var ret = [];
24+
ret.push(Inlined(input[0], 1, 2));
25+
return ret;
26+
}
27+
28+
var input = [new Message("TEST PASS")];
29+
30+
Process(input);
31+
Process(input);
32+
%OptimizeFunctionOnNextCall(Process);
33+
var result = Process(input);
34+
assertEquals("TEST PASS", result[0].message);

0 commit comments

Comments
 (0)