- 10 Jun, 2021 2 commits
-
-
Manos Koukoutos authored
Changes: - Remove endianness transformations from WasmValue contstructors. WasmValue will now use the system's endianness. Remove CopyToWithSystemEndianness. - Remove endianness transformation from global variable load/stores in: wasm-compiler.cc, liftoff-compiler.cc, wasm-objects{.cc, -inl.h}, and wasm-interpreter.cc - Adjust SIMD tests that directly access part of a value by changing which lane they access within that value. We do that by introducing a LANE macro and use it over ReadLittleEndianValue. Change-Id: I99e97c6eae72e9a135b184633ec266049803bb03 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2944437 Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Reviewed-by: Zhi An Ng <zhin@chromium.org> Reviewed-by: Clemens Backes <clemensb@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#75085}
-
John Xu authored
For Cobalt's purpose in the past, we introduced base::Memcpy to intercept memcpy calls and replace it with SbMemoryCopy on Starboard/Cobalt. Recently Cobalt removed SbMemoryCopy because we found out that memcpy implementation is universal. To reduce the cost to maintain base::Memcpy, let us remove it and revert back to raw memcpy. Bug: v8:10927 Change-Id: I060f191f8f1aed8b78ffe4558a3743f3a2da008b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2951462Reviewed-by: Camillo Bruni <cbruni@chromium.org> Reviewed-by: Marja Hölttä <marja@chromium.org> Reviewed-by: Georg Neis <neis@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Clemens Backes <clemensb@chromium.org> Commit-Queue: John Xu <johnx@google.com> Cr-Commit-Position: refs/heads/master@{#75070}
-
- 09 Jun, 2021 2 commits
-
-
Manos Koukoutos authored
- Add support for packed types. - Emit arguments first in wasm-module-builder.cc. Bug: v8:7748 Change-Id: I358ca13db4332e026ee5850de6f629822bc92b04 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2948887Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Cr-Commit-Position: refs/heads/master@{#75061}
-
Manos Koukoutos authored
Changes: - Implement a single function WriteGlobalValue(const WasmGlobal&, const WasmValue&). Compute an intermediate WasmValue when needed. - Add WasmValue::CopyTo() to avoid reading little endian values in WasmValue, and then transforming back to little endian. - Add WasmValue::to_string() for tracing. Change-Id: Ia7d9b9cddc7b8f77ae35fc588fe34c41ef444a2c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2948664 Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Reviewed-by: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#75047}
-
- 08 Jun, 2021 1 commit
-
-
Manos Koukoutos authored
Changes: - Add struct.new_with_rtt as a new WasmInitExpr. Parse it in consume_init_expr(). Add it to InstanceBuilder::EvaluateInitExpression(). - Change WasmInitExpr::operand_ to vector operands_. - In consume_init_expr(), use parsed over hard-coded opcode length. - Improve WasmStruct::WasmStructPrint slightly. - Add Factory::NewWasmStruct(). - Add WasmValue::CopyToWithSystemEndianness. - In wasm-module-builder.js, generalize emit_init_expr for expressions with operands. Add missing init. expression types. - Add tests. Bug: v8:7748 Change-Id: Ica12378d202730aff1b57c7d4240aa00ef124f8e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2940893 Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#75006}
-
- 04 Jun, 2021 1 commit
-
-
Manos Koukoutos authored
So far, initializer-expression evaluation was tied to setting global values. We now need it to operate independently of globals, so that we can implement new constant expressions like struct.new, which need their arguments to be computed before they can be initialized. Changes: - Move type computation of WasmInitExpr into WasmInitExpr::type. - Fix WasmInitExpr::type kRttSub case for rtts without depth. - Introduce InstanceBuilder::EvaluateInitExpression(). - Rename InstanceBuilder::GetRawGlobalPointer() -> GetRawUntaggedGlobalPointer(). - Simplify InstanceBuilder::InitGlobals using EvaluateInitExpression(). - Introduce ValueType::is_numeric. - Add Simd128(byte*) constructor. - Introduce WasmValue::CopyTo() for numeric types. Change-Id: Ic502b611f3998187abd9fc6ec377c2954c27abdc Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2939982 Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Reviewed-by: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#74949}
-
- 05 May, 2021 1 commit
-
-
Manos Koukoutos authored
Main changes: - Allow global.get in elements segments with expressions-as-elements. - Allow element segments with types other than funcref. Detailed changes: - Move WasmInitExpr to its own file. Add stream opearator << support. - Simplify type of PrintCollection. - Make WasmElemSegment use an array of WasmInitExpr's over the previous ad-hoc implementation. Move null_index to WasmModuleBuilder. - Refactor consume_element_segment_header. Make it return a WasmElemSegment. - Refactor consume_element_expr. Make it return a WasmInitExpr. - Refactor DecodeElementSection. Make it invoke consume_element_segment_header, then populate its element array. - Update module-instantiate.cc to handle global.get elements. - Fix bug in wasm-objects.cc where the wrong type index was passed into module()->has_signature() - Adapt and add tests. Change-Id: I5abfbe424dbb750ee2dca59f91c451ffcb79f95f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2857959 Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#74374}
-
- 22 Mar, 2021 1 commit
-
-
Manos Koukoutos authored
This is a more canonical type name, and is in line with {kVoidCode}. Change-Id: Iaae9524b6fb6ecaafd63ce81cf30e3d01ca3e525 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2775565 Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Reviewed-by: Clemens Backes <clemensb@chromium.org> Reviewed-by: Simon Zünd <szuend@chromium.org> Cr-Commit-Position: refs/heads/master@{#73557}
-
- 16 Mar, 2021 1 commit
-
-
Clemens Backes authored
This will make accidental includes much easier to see and fix. Without this, you might get compiler or linker errors instead. R=jkummerow@chromium.org Bug: v8:11238 Cq-Include-Trybots: luci.v8.try:v8_linux64_no_wasm_compile_rel Change-Id: I235d779f9c1ed3af5d736f1554ded427935ddc9b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2756531 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#73422}
-
- 12 Mar, 2021 1 commit
-
-
Junliang Yan authored
Use Read/WriteLittleEndianValue call to make sure we deal with wasm values in the correct endian order on big endian machine. Change-Id: I7ede8226319ecfd0605cefa1823e5bbaeb0ebb6a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2752879 Commit-Queue: Junliang Yan <junyan@redhat.com> Reviewed-by: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#73368}
-
- 05 Mar, 2021 1 commit
-
-
Jakob Kummerow authored
This adds support for WasmGC objects (structs/arrays) to the inspector backend. For prettier printing, it also adds support for reading the "type" and "field" subsections of the "name" section in Wasm modules. This patch includes a revert of most of commit crrev.com/987a7f4a because types are more complicated now. Bug: v8:7748, chromium:1177784 Change-Id: Icec52cbbb32291b0e773b40be6771a678c6ec79b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2715193 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by: Manos Koukoutos <manoskouk@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#73212}
-
- 12 Oct, 2020 1 commit
-
-
Ng Zhi An authored
Load lane loads a value from memory and replaces a single lane of a simd value. This implements the load (no stores yet) for x64 and interpreter. Bug: v8:10975 Change-Id: I95d1b5e781ee9adaec23dda749e514f2485eda10 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2444578 Commit-Queue: Zhi An Ng <zhin@chromium.org> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Reviewed-by: Bill Budge <bbudge@chromium.org> Cr-Commit-Position: refs/heads/master@{#70456}
-
- 24 Sep, 2020 1 commit
-
-
Clemens Backes authored
The memory offset is read as a u64 in the memory64 proposal, independent of the actual type of the memory. The actual memory size of a module (at runtime) can only be within intptr_t/uintptr_t range though. This assumption was already used when constructing the TurboFan graph, but the C++ types did not reflect it yet. This CL fixes that: 1) Use uint64_t type for bounds checks (only within the method for now, callers still pass a uint32_t). 2) Use uintptr_t for storing the minimum and maximum possible memory size at runtime (in CompilationEnv); clamp memory sizes to values that can actually happen at runtime. R=manoskouk@chromium.org Bug: v8:10949 Change-Id: I6559f9a3abc2aa338eba4618479456f6efb5e772 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2426405Reviewed-by: Manos Koukoutos <manoskouk@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#70121}
-
- 23 Sep, 2020 1 commit
-
-
Ng Zhi An authored
For now, V128 values are converted to String16 (since they are not serializable). It is shown as a list of 16 uint8_t (hex). This description can be tweaked as necessary. Some updates to ARM64 required to push/pop the full Q register. Bug: v8:10347 Bug: chromium:1130474 Change-Id: I1bffbb49f47c06da3cd26d830addae0416a4441a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2422082Reviewed-by: Kim-Anh Tran <kimanh@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Reviewed-by: Clemens Backes <clemensb@chromium.org> Commit-Queue: Zhi An Ng <zhin@chromium.org> Cr-Commit-Position: refs/heads/master@{#70096}
-
- 09 Jun, 2020 1 commit
-
-
Manos Koukoutos authored
The reference types wasm proposal dropped all subtyping. Subsequently, the 'anyref' type was renamed to externref. This changes all references of the *type* anyref to externref. Additionally, the flag that permits this extension is renamed to "reftypes" to mirror the proposal name. Bug: v8:7748 Change-Id: Icf323f13b9660fd10540e65125af053fca3a03f9 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2232941 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by: Kim-Anh Tran <kimanh@chromium.org> Reviewed-by: Clemens Backes <clemensb@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#68270}
-
- 24 Oct, 2019 1 commit
-
-
Clemens Backes authored
This will allow us to reuse this method in other contexts. This CL also contains smaller refactorings that helped to move the code. E.g. the WASMVALUE_CTYPES macro (defined in value-type.h) replaces the WASM_CTYPES macro (from wasm-interpreter.cc). R=mstarzinger@chromium.org Bug: v8:9676 Change-Id: Id788f843af9a09eb940593afa1639f12b652c514 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1876054 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#64534}
-
- 16 Jul, 2019 1 commit
-
-
Ng Zhi An authored
Bug: v8:8460 Change-Id: Icd1d047c319450f73f1e728db0ca74fdd70b994d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1690709Reviewed-by: Deepti Gandluri <gdeepti@chromium.org> Reviewed-by: Bill Budge <bbudge@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Zhi An Ng <zhin@chromium.org> Cr-Commit-Position: refs/heads/master@{#62723}
-
- 01 Jul, 2019 2 commits
-
-
Ng Zhi An authored
Bug: v8:8460 Change-Id: I0925f6ad9425b194a1274b14057cc6d36ce3dca1 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1670169 Commit-Queue: Zhi An Ng <zhin@chromium.org> Reviewed-by: Bill Budge <bbudge@chromium.org> Reviewed-by: Deepti Gandluri <gdeepti@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#62478}
-
Ng Zhi An authored
Bug: v8:8460 Change-Id: Id159c81cd2d25924be96e49c64073e154ef32e6a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1667867Reviewed-by: Bill Budge <bbudge@chromium.org> Reviewed-by: Deepti Gandluri <gdeepti@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Auto-Submit: Zhi An Ng <zhin@chromium.org> Commit-Queue: Zhi An Ng <zhin@chromium.org> Cr-Commit-Position: refs/heads/master@{#62475}
-
- 21 Jun, 2019 1 commit
-
-
Sigurd Schneider authored
v8memory.h does not have V8 specific definitions, and having it in base makes it clear that every component may include the file. It also ensures that including it does not create spurious dependencies on v8_base. Change-Id: I565f63b25f33a9ada19d7b2ac5990863ab17f4a7 Bug: v8:9183, v8:8855 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1657923 Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#62309}
-
- 24 May, 2019 1 commit
-
-
Yang Guo authored
TBR=mvstanton@chromium.org,neis@chromium.org,ahaas@chromium.org Bug: v8:9247 Change-Id: I5433c863a54f3412d73df0d38aba3fdbcfac7ebe Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1627973 Commit-Queue: Yang Guo <yangguo@chromium.org> Auto-Submit: Yang Guo <yangguo@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#61830}
-
- 23 May, 2019 2 commits
-
-
Yang Guo authored
NOPRESUBMIT=true TBR=mstarzinger@chromium.org Bug: v8:9247 Change-Id: I4cd6b79a1c2cba944f6f23caed59d4f1a4ee358b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1624217 Commit-Queue: Yang Guo <yangguo@chromium.org> Reviewed-by: Igor Sheludko <ishell@chromium.org> Reviewed-by: Georg Neis <neis@chromium.org> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/master@{#61790}
-
Yang Guo authored
Bug: v8:9247 Change-Id: I0023200c54fa6499ae4e2cf5e4c89407cc35f187 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1624218Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Andreas Haas <ahaas@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Reviewed-by: Michael Stanton <mvstanton@chromium.org> Commit-Queue: Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#61762}
-
- 03 Apr, 2019 1 commit
-
-
Michael Starzinger authored
This adds preliminary support for handling the "br_on_exn" opcode in the interpreter. It also makes "catch" and "rethrow" use a proper exception reference instead of a dummy value. To that end this also adds {Handle<>} as a new kind of {WasmValue} which is intended to pass reference values (e.g. "anyref" or "except_ref") to the runtime system. Therefore lifetime of such a {WasmValue} is directly coupled to any surrounding {HandleScope}. For now we just store {Handle<>} directly on the simulated operand stack of the interpreter. This is of course bogus, since the surrounding scope does not outlive the interpreter activation. Decoupling the lifetime of the operand stack from a {HandleScope} will be done in a follow-up CL. As a drive-by this change also implements support for the "ref_null" and the "ref_is_null" opcodes as a proof-of-concept that the new {WasmValue} is also applicable to the "anyref" reference type. R=clemensh@chromium.org TEST=cctest/test-run-wasm-interpreter/ReferenceTypeLocals BUG=v8:8091,v8:7581 Change-Id: I2307e0689a19c4aab1d67f1ba6742cb3cc31aa3c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1550299 Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#60598}
-
- 01 Aug, 2018 1 commit
-
-
Clemens Hammacher authored
This moves the {ReadUnalignedValue} and {WriteUnalignedValue} methods from utils.h to v8memory.h. R=titzer@chromium.org Bug: v8:7754, v8:7490 Cq-Include-Trybots: luci.chromium.try:linux_chromium_headless_rel;master.tryserver.blink:linux_trusty_blink_rel Change-Id: I8becfc3ac169427968c11e24b035a90856f51e8e Reviewed-on: https://chromium-review.googlesource.com/1158405Reviewed-by: Ben Titzer <titzer@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#54837}
-
- 25 May, 2018 1 commit
-
-
Aseem Garg authored
R=gdeepti@chromium.org,bbudge@chromium.org,clemensh@chromium.org,titzer@chromium.org BUG=v8:6020 Change-Id: I05bb2124751f64565ad4e22f267fe42a3e0f1845 Reviewed-on: https://chromium-review.googlesource.com/1070935 Commit-Queue: Aseem Garg <aseemgarg@chromium.org> Reviewed-by: Ben Titzer <titzer@chromium.org> Cr-Commit-Position: refs/heads/master@{#53374}
-
- 18 May, 2018 1 commit
-
-
Aseem Garg authored
R=gdeepti@chromium.org,bbudge@chromium.org,clemensh@chromium.org,titzer@chromium.org BUG=v8:6020 Change-Id: I25676d4f8a7ea7b1e02a54abe009faec0eb2c6db Reviewed-on: https://chromium-review.googlesource.com/1018840 Commit-Queue: Aseem Garg <aseemgarg@chromium.org> Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#53266}
-
- 02 Feb, 2018 1 commit
-
-
jgruber authored
This check verifies that all .h files in the src/ directory have an include guard of the form #ifndef V8_PATH_TO_FILE_H_ #define V8_PATH_TO_FILE_H_ // ... #endif // V8_PATH_TO_FILE_H_ The check can be skipped with a magic comment: // PRESUBMIT_INTENTIONALLY_MISSING_INCLUDE_GUARD Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng;master.tryserver.blink:linux_trusty_blink_rel Change-Id: I0a7b96abec289ad60f64ba8418f1892a6969596d Reviewed-on: https://chromium-review.googlesource.com/897487Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> Reviewed-by: Georg Neis <neis@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by: Andreas Haas <ahaas@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#51079}
-
- 26 Oct, 2017 1 commit
-
-
Clemens Hammacher authored
The bug was recently introduced in https://crrev.com/c/730716. R=titzer@chromium.org Bug: v8:6954 Change-Id: I9b77baac9fafefaab163700432ddef6e9e686901 Reviewed-on: https://chromium-review.googlesource.com/735540Reviewed-by: Ben Titzer <titzer@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#48953}
-
- 23 Oct, 2017 1 commit
-
-
Clemens Hammacher authored
There are wasm operations which operate on floats or double, but they need to preserve the exact bit pattern. Thus they cannot be stored and passed as float or double, since that might flip the signaling NaN bit. This CL extends WasmValue to store floats and doubles as bit pattern, and adds accessors to extract them as Float32 or Float64. The interpreter is changed to execute certain operations (i32.abs, i32.neg, i64.abs, i64.neg, f32.reinterpret/i32, f64.reinterpret/i64) on boxed floats. R=titzer@chromium.org Bug: v8:6954 Change-Id: I0251d1a67b6caf593194d4eb292a325cdd3f20cf Reviewed-on: https://chromium-review.googlesource.com/730716 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Ben Titzer <titzer@chromium.org> Cr-Commit-Position: refs/heads/master@{#48819}
-
- 18 Jul, 2017 1 commit
-
-
Clemens Hammacher authored
This allows to reuse the class e.g. in the baseline compiler. R=titzer@chromium.org Change-Id: I7251af16e8c74f267834a9cefb676edf3c9f3a07 Reviewed-on: https://chromium-review.googlesource.com/570020Reviewed-by: Ben Titzer <titzer@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#46735}
-