v8/test/mjsunit/regress/wasm/regress-922933.js
Clemens Hammacher ce2bfb8e2f [Liftoff][arm] Avoid use of temp registers
The temp registers might be needed by the assembler, so avoid using them
in LiftoffAssembler. Use Liftoff cache registers instead. This might
introduce additional spills if all registers are in use, but this is
unlikely.

This also simplifies the logic to ensure non-aliasing of certain
registers.

R=ahaas@chromium.org

Bug: chromium:922933, v8:6600
Change-Id: Ie929d9de0b6f4f41c6117d820b6a367dd0a342f7
Reviewed-on: https://chromium-review.googlesource.com/c/1424862
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#58961}
2019-01-21 13:09:13 +00:00

53 lines
1.5 KiB
JavaScript

// Copyright 2019 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');
const builder = new WasmModuleBuilder();
const sig = builder.addType(makeSig([kWasmI64], [kWasmI64]));
builder.addFunction(undefined, sig)
.addLocals({i32_count: 14}).addLocals({i64_count: 17}).addLocals({f32_count: 14})
.addBody([
kExprBlock, kWasmStmt,
kExprBr, 0x00,
kExprEnd,
kExprBlock, kWasmStmt,
kExprI32Const, 0x00,
kExprSetLocal, 0x09,
kExprI32Const, 0x00,
kExprIf, kWasmStmt,
kExprBlock, kWasmStmt,
kExprI32Const, 0x00,
kExprSetLocal, 0x0a,
kExprBr, 0x00,
kExprEnd,
kExprBlock, kWasmStmt,
kExprBlock, kWasmStmt,
kExprGetLocal, 0x00,
kExprSetLocal, 0x12,
kExprBr, 0x00,
kExprEnd,
kExprGetLocal, 0x16,
kExprSetLocal, 0x0f,
kExprGetLocal, 0x0f,
kExprSetLocal, 0x17,
kExprGetLocal, 0x0f,
kExprSetLocal, 0x18,
kExprGetLocal, 0x17,
kExprGetLocal, 0x18,
kExprI64ShrS,
kExprSetLocal, 0x19,
kExprUnreachable,
kExprEnd,
kExprUnreachable,
kExprElse,
kExprUnreachable,
kExprEnd,
kExprUnreachable,
kExprEnd,
kExprUnreachable
]);
builder.instantiate();