| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
1 parent 42552a7 commit fdb4a0c
3 files changed
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -36,7 +36,7 @@ | |||
| 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 | ||
| 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); | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -0,0 +1,61 @@ | |||
| 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(); | ||
| Back | FazBrowse Home | New Git URL |
0 commit comments