GeezerVison is showing github.com — deps: V8: cherry-pick 5c6c99a8dc72 · nodejs/node@fdb4a0c
File treeExpand file treeCollapse file tree Open diff view settings test/mjsunit/regress/wasm
Expand file treeCollapse file tree Open diff view settings Collapse file Copy file name to clipboardExpand all lines: common.gypi +1-1Lines changed: 1 addition & 1 deletion | Original file line number | Diff line number | Diff line change |
|---|
| 36 | 36 |
| 37 | 37 | # Reset this number to 0 on major V8 upgrades. | 38 | 38 | # Increment by one for each non-official patch applied to deps/v8. | 39 | | - 'v8_embedder_string': '-node.42', | | 39 | + 'v8_embedder_string': '-node.43', | 40 | 40 |
| 41 | 41 | ##### V8 defaults for Node.js ##### | 42 | 42 |
| |
Collapse file Copy file name to clipboardExpand all lines: deps/v8/src/wasm/baseline/arm/liftoff-assembler-arm.h +7-7Lines changed: 7 additions & 7 deletions | Original file line number | Diff line number | Diff line change |
|---|
@@ -880,11 +880,13 @@ void LiftoffAssembler::AtomicLoad(LiftoffRegister dst, Register src_addr, | 880 | 880 | if (cache_state()->is_used(LiftoffRegister(dst_high))) { | 881 | 881 | SpillRegister(LiftoffRegister(dst_high)); | 882 | 882 | } | 883 | | - UseScratchRegisterScope temps(this); | 884 | | - Register actual_addr = liftoff::CalculateActualAddress( | 885 | | - this, &temps, src_addr, offset_reg, offset_imm); | 886 | | - ldrexd(dst_low, dst_high, actual_addr); | 887 | | - dmb(ISH); | | 883 | + { | | 884 | + UseScratchRegisterScope temps(this); | | 885 | + Register actual_addr = liftoff::CalculateActualAddress( | | 886 | + this, &temps, src_addr, offset_reg, offset_imm); | | 887 | + ldrexd(dst_low, dst_high, actual_addr); | | 888 | + dmb(ISH); | | 889 | + } | 888 | 890 |
| 889 | 891 | LiftoffAssembler::ParallelRegisterMoveTuple reg_moves[]{ | 890 | 892 | {dst, LiftoffRegister::ForPair(dst_low, dst_high), kWasmI64}}; | @@ -1196,12 +1198,10 @@ void LiftoffAssembler::Move(DoubleRegister dst, DoubleRegister src, | 1196 | 1198 | } | 1197 | 1199 |
| 1198 | 1200 | void LiftoffAssembler::Spill(int offset, LiftoffRegister reg, ValueType type) { | 1199 | | -#ifdef DEBUG | 1200 | 1201 | // The {str} instruction needs a temp register when the immediate in the | 1201 | 1202 | // provided MemOperand does not fit into 12 bits. This happens for large stack | 1202 | 1203 | // frames. This DCHECK checks that the temp register is available when needed. | 1203 | 1204 | DCHECK(UseScratchRegisterScope{this}.CanAcquire()); | 1204 | | -#endif | 1205 | 1205 | DCHECK_LT(0, offset); | 1206 | 1206 | RecordUsedSpillOffset(offset); | 1207 | 1207 | MemOperand dst(fp, -offset); | |
Collapse file Copy file name to clipboard +61Lines changed: 61 additions & 0 deletions | Original file line number | Diff line number | Diff line change |
|---|
| | 1 | +// Copyright 2020 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: --experimental-wasm-threads | | 6 | + | | 7 | +load('test/mjsunit/wasm/wasm-module-builder.js'); | | 8 | + | | 9 | +const builder = new WasmModuleBuilder(); | | 10 | +builder.addMemory(1, 1, false, true); | | 11 | +builder.addGlobal(kWasmI32, 1); | | 12 | +builder.addGlobal(kWasmI32, 1); | | 13 | +builder.addType(makeSig([kWasmI32, kWasmI64, kWasmI32], [])); | | 14 | +// Generate function 1 (out of 1). | | 15 | +builder.addFunction(undefined, 0 /* sig */) | | 16 | + .addLocals(kWasmI32, 10) | | 17 | + .addBodyWithEnd([ | | 18 | +// signature: v_ili | | 19 | +// body: | | 20 | +kExprI32Const, 0x00, // i32.const | | 21 | +kExprLocalSet, 0x04, // local.set | | 22 | +kExprI32Const, 0x01, // i32.const | | 23 | +kExprLocalSet, 0x05, // local.set | | 24 | +kExprBlock, kWasmStmt, // block @11 | | 25 | + kExprBr, 0x00, // br depth=0 | | 26 | + kExprEnd, // end @15 | | 27 | +kExprGlobalGet, 0x01, // global.get | | 28 | +kExprLocalSet, 0x03, // local.set | | 29 | +kExprLocalGet, 0x03, // local.get | | 30 | +kExprI32Const, 0x01, // i32.const | | 31 | +kExprI32Sub, // i32.sub | | 32 | +kExprLocalSet, 0x06, // local.set | | 33 | +kExprI64Const, 0x01, // i64.const | | 34 | +kExprLocalSet, 0x01, // local.set | | 35 | +kExprI32Const, 0x00, // i32.const | | 36 | +kExprI32Eqz, // i32.eqz | | 37 | +kExprLocalSet, 0x07, // local.set | | 38 | +kExprBlock, kWasmStmt, // block @36 | | 39 | + kExprBr, 0x00, // br depth=0 | | 40 | + kExprEnd, // end @40 | | 41 | +kExprGlobalGet, 0x01, // global.get | | 42 | +kExprLocalSet, 0x08, // local.set | | 43 | +kExprI32Const, 0x01, // i32.const | | 44 | +kExprI32Const, 0x01, // i32.const | | 45 | +kExprI32Sub, // i32.sub | | 46 | +kExprLocalSet, 0x09, // local.set | | 47 | +kExprLocalGet, 0x00, // local.get | | 48 | +kExprLocalSet, 0x0a, // local.set | | 49 | +kExprGlobalGet, 0x00, // global.get | | 50 | +kExprLocalSet, 0x0b, // local.set | | 51 | +kExprI32Const, 0x00, // i32.const | | 52 | +kExprI32Const, 0x0f, // i32.const | | 53 | +kExprI32And, // i32.and | | 54 | +kExprLocalSet, 0x0c, // local.set | | 55 | +kExprI32Const, 0x00, // i32.const | | 56 | +kAtomicPrefix, kExprI64AtomicLoad, 0x03, 0x04, // i64.atomic.load64 | | 57 | +kExprDrop, // drop | | 58 | +kExprUnreachable, // unreachable | | 59 | +kExprEnd, // end @75 | | 60 | +]); | | 61 | +builder.toModule(); |
|