70fdac9a64
This corrects the case when we need to allocate a
blocked register, but the blockage happens after a
use as an instruction input, and there's no place to
split before that.
BUG=v8:5888
Review-Url: https://codereview.chromium.org/2652153005
Cr-Original-Commit-Position: refs/heads/master@{#42706}
Committed: ca779b29a6
Review-Url: https://codereview.chromium.org/2652153005
Cr-Commit-Position: refs/heads/master@{#42710}
77 lines
1.6 KiB
JavaScript
77 lines
1.6 KiB
JavaScript
// Copyright 2017 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.
|
|
|
|
load("test/mjsunit/wasm/wasm-constants.js");
|
|
load("test/mjsunit/wasm/wasm-module-builder.js");
|
|
|
|
(function() {
|
|
var builder = new WasmModuleBuilder();
|
|
builder.addMemory(32, 32, false);
|
|
builder.addFunction("test", kSig_i_iii)
|
|
.addBodyWithEnd([
|
|
// body:
|
|
kExprI64Const, 0xb4, 0x42,
|
|
kExprI64Const, 0x7a,
|
|
kExprI64Const, 0x42,
|
|
kExprI64Const, 0x7a,
|
|
kExprI64Ior,
|
|
kExprI64Ctz,
|
|
kExprI64Ctz,
|
|
kExprI64Shl,
|
|
kExprI64Mul,
|
|
kExprI64Const, 0x41,
|
|
kExprI64Ctz,
|
|
kExprI64Ctz,
|
|
kExprI64Shl,
|
|
kExprF32SConvertI64,
|
|
kExprI64Const, 0x42,
|
|
kExprI64Const, 0x02,
|
|
kExprI64Const, 0x7a,
|
|
kExprI64Mul,
|
|
kExprI64Const, 0x42,
|
|
kExprI64Ctz,
|
|
kExprI64Shl,
|
|
kExprI64Const, 0x7a,
|
|
kExprI64Ctz,
|
|
kExprI64Shl,
|
|
kExprI64Mul,
|
|
kExprI64Const, 0x41,
|
|
kExprI64Ctz,
|
|
kExprI64Ctz,
|
|
kExprI64Shl,
|
|
kExprF32SConvertI64,
|
|
kExprUnreachable,
|
|
kExprEnd, // @65
|
|
])
|
|
.exportFunc();
|
|
var module = new WebAssembly.Module(builder.toBuffer());
|
|
})();
|
|
|
|
(function() {
|
|
var builder = new WasmModuleBuilder();
|
|
builder.addMemory(16, 32, false);
|
|
builder.addFunction("test", kSig_i_iii)
|
|
.addBodyWithEnd([
|
|
// body:
|
|
kExprI64Const, 0x42,
|
|
kExprI64Const, 0x7a,
|
|
kExprI64Ctz,
|
|
kExprI64Mul,
|
|
kExprI64Ctz,
|
|
kExprI64Const, 0x41,
|
|
kExprI64Ctz,
|
|
kExprI64Ctz,
|
|
kExprI64Shl,
|
|
kExprI64Const, 0x41,
|
|
kExprI64Ctz,
|
|
kExprI64Ctz,
|
|
kExprI64Shl,
|
|
kExprF32SConvertI64,
|
|
kExprUnreachable,
|
|
kExprEnd, // @20
|
|
])
|
|
.exportFunc();
|
|
var module = new WebAssembly.Module(builder.toBuffer());
|
|
})();
|