- 04 Jul, 2018 3 commits
-
-
Dan Elphick authored
In future the RO_SPACE root accessors in Heap will become private, so instead convert them all to use ReadOnlyRoots. Bug: v8:7786 Change-Id: Ib3c45c1023d76bec5e1f4bc8f971062880b6c53f Reviewed-on: https://chromium-review.googlesource.com/1126240Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Dan Elphick <delphick@chromium.org> Cr-Commit-Position: refs/heads/master@{#54221}
-
Clemens Hammacher authored
No need to iterate over imported functions just to skip them in the loop body anyway. R=mstarzinger@chromium.org Bug: v8:7754 Change-Id: I8dabf8d6ee7d0cc029b6236cef319cf8e70e4a5b Reviewed-on: https://chromium-review.googlesource.com/1125802Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#54206}
-
Michael Starzinger authored
R=ahaas@chromium.org Change-Id: I9cf40958978f8ebcc34d4c9d15ea301e54829229 Reviewed-on: https://chromium-review.googlesource.com/1125076 Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#54201}
-
- 03 Jul, 2018 7 commits
-
-
Clemens Hammacher authored
This is an optimization to avoid an unneeded "mov <reg>, #0" instruction. Instead, we can just directly use the zero register. R=ahaas@chromium.org Bug: chromium:854011, v8:6600 Change-Id: I187d7a659c42d7d4a6d5798eddff8b7ee0983bbc Reviewed-on: https://chromium-review.googlesource.com/1124684 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#54186}
-
Clemens Hammacher authored
We need to push the sign-extended constant instead of just the lower 32 bits. Otherwise, the callee might read stale data from the stack. Bug: chromium:854011, v8:6600 R=ahaas@chromium.org CC=rodolph.perfetta@arm.com Change-Id: Iafcfd6ba9532771615b41215fb4d1a2b85ce5623 Reviewed-on: https://chromium-review.googlesource.com/1124683Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#54185}
-
Clemens Hammacher authored
An i64 to i32 conversion within the same register is a noop on arm64, since i32 operations just use the "W" part of the register anyway. R=ahaas@chromium.org CC=rodolph.perfetta@arm.com Bug: v8:6600 Change-Id: Ia7cb49673c4997dc095736a054d052ffd91bb957 Reviewed-on: https://chromium-review.googlesource.com/1124449Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#54175}
-
Michael Starzinger authored
R=clemensh@chromium.org Change-Id: I2a935d87d6f9688af9bd983fc95ae87476c1f612 Reviewed-on: https://chromium-review.googlesource.com/1124464Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#54173}
-
Michael Starzinger authored
R=clemensh@chromium.org Change-Id: Ia3856921a707e7d58d55a74d3f14cbdc0d69eaa5 Reviewed-on: https://chromium-review.googlesource.com/1124332 Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#54168}
-
Dan Elphick authored
Adds a ReadOnlyRoots class trivially constructable from a Heap* or Isolate* and which can be obtained from a any HeapObject which provides access to roots objects that will always be in RO_SPACE. In the longer term this object will be accessed via a global variable without requiring an Isolate or using the memory address of a HeapObject to infer it. Moves the list macros in heap.h to roots.h and splits some of them into two parts (read-only and mutable). Convert cases of heap_object->GetHeap()->root_accessor() to heap_objects->GetReadOnlyRoots().root_accessor(). Bug: v8:7786 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Change-Id: I14b01052adb2af9a5ec82b970e933d6a423d17a5 Reviewed-on: https://chromium-review.googlesource.com/1122127 Commit-Queue: Dan Elphick <delphick@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Hannes Payer <hpayer@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#54160}
-
Clemens Hammacher authored
Only use the "W" part (lower 32 bit) of the src register. Otherwise, we can get results larger than 32. R=ahaas@chromium.org CC=rodolph.perfetta@arm.com Bug: v8:7914, chromium:854011 Change-Id: I6329231e6cc0ae537c165b2d383fc5a14bd28ca3 Reviewed-on: https://chromium-review.googlesource.com/1122409 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#54152}
-
- 02 Jul, 2018 3 commits
-
-
Clemens Hammacher authored
On Windows (32-bit), we need to emit explicit stack limit checks for stack frames bigger than one page (4kB). This CL implements this by emitting corresponding code at the end of Liftoff functions if needed. R=mstarzinger@chromium.org Bug: v8:7908, v8:6600 Change-Id: Iacb3e7afdd433a4e68620d9230bd0ba473611da8 Reviewed-on: https://chromium-review.googlesource.com/1120175 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#54141}
-
Michael Starzinger authored
This correctly serializes {RelocInfo::INTERNAL_REFERENCE} addresses in a position-independent form, so that they can be properly relocated when the code is deserialized again. We store the offset within the code in the serialized stream. R=clemensh@chromium.org TEST=mjsunit/wasm/compiled-module-serialization BUG=chromium:857049 Change-Id: Ie8c84ee67bdfc17a65faa159a21cc1f2a78ac924 Reviewed-on: https://chromium-review.googlesource.com/1122414Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#54140}
-
Michael Starzinger authored
This makes sure the reverse tag translation of direct call targets to respective call tags is properly performed. Otherwise all direct call end up being deserialized to call the function with index '0'. Ooops! R=clemensh@chromium.org TEST=mjsunit/wasm/compiled-module-serialization BUG=chromium:857049 Change-Id: I37c1ee72b000daec87efdeed08d60a067b1a1b0c Reviewed-on: https://chromium-review.googlesource.com/1120256Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#54124}
-
- 29 Jun, 2018 6 commits
-
-
Aseem Garg authored
This CL adds simd select, addHoriz, shuffle, anyTrue and all true to the interpreter. It also gets rid of SIMD_COMPILED_AND_LOWERED_TEST and SIMD_COMPILED_TEST macros. R=gdeepti@chromium.org BUG=v8:6020 Change-Id: I44abbcaddc3223a95c79ccc65ae9c6bf1a911c5d Reviewed-on: https://chromium-review.googlesource.com/1119258 Commit-Queue: Aseem Garg <aseemgarg@chromium.org> Reviewed-by:
Deepti Gandluri <gdeepti@chromium.org> Cr-Commit-Position: refs/heads/master@{#54116}
-
Michael Starzinger authored
R=clemensh@chromium.org Change-Id: Ia5f1d52df1b2ebbe4ea4d38464fc59b0d128426d Reviewed-on: https://chromium-review.googlesource.com/1119924Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#54111}
-
Clemens Hammacher authored
Since the wire bytes are now stored on the C++ heap, referenced directly from the {NativeModule}, there is no need any more for the additional copy in the {CompilationState}. R=mstarzinger@chromium.org Bug: v8:7868 Change-Id: I3ca25981b37bc14037a83a199354b70b4e52f8c7 Reviewed-on: https://chromium-review.googlesource.com/1118886 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#54107}
-
Clemens Hammacher authored
R=mstarzinger@chromium.org Bug: v8:7754 Change-Id: I0cbd3e82a865aa2e52019057cea796cd6a8b17e2 Reviewed-on: https://chromium-review.googlesource.com/1118560 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#54106}
-
Clemens Hammacher authored
Just a refactoring to make clear that we are talking about function names. Note that there are also names for locals inside functions, which we currently don't use. Drive-by: Remove style-guide violation by {WasmModule::names_} field. R=mstarzinger@chromium.org Bug: v8:7754 Change-Id: I9c47ea01893f128e1716be01032adfaf006ae28a Reviewed-on: https://chromium-review.googlesource.com/1118271Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#54105}
-
Clemens Hammacher authored
No need to go via the {ModuleEnv} in the {CompilationState}. R=mstarzinger@chromium.org Change-Id: I11ff647824ad107131ce329453b365d6ecaec7fb Reviewed-on: https://chromium-review.googlesource.com/1118561Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#54102}
-
- 28 Jun, 2018 7 commits
-
-
Clemens Hammacher authored
We should only cancel asynchronous compilation jobs for the isolate which is being recycled. R=titzer@chromium.org Bug: chromium:854755 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Change-Id: I31d6c3ccb648f5465e52f4bc47c4261894458e60 Reviewed-on: https://chromium-review.googlesource.com/1118378Reviewed-by:
Ben Titzer <titzer@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#54092}
-
Clemens Hammacher authored
Another pair of {std::unique_ptr} and {size_t} that can be stored as one {OwnedVector}, which allows to pass it as one thing. R=mstarzinger@chromium.org Bug: v8:7754 Change-Id: Ideac0dbd390ba8147b6620daa86f0d3da6c3b609 Reviewed-on: https://chromium-review.googlesource.com/1118236 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#54091}
-
Clemens Hammacher authored
Instead of storing both the {NativeModule} and the {WasmModule} in a {Managed} object, just store the {WasmModule} in the {NativeModule} directly. This fixes crashes that happen if the {Managed<WasmModule>} dies before the {Managed<NativeModule>}. R=mstarzinger@chromium.org Bug: chromium:854794, v8:7879, v8:7889 Change-Id: I6b11729943fe7a03d225138782655ee5dafd26a6 Reviewed-on: https://chromium-review.googlesource.com/1118171 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#54090}
-
Clemens Hammacher authored
R=mstarzinger@chromium.org Bug: chromium:856938 Change-Id: I57699de23b5c35a531c7601fd14a91f075abb0da Reviewed-on: https://chromium-review.googlesource.com/1117182 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#54085}
-
Clemens Hammacher authored
This CL removes the friendship between {NativeModule} and {NativeModuleSerializer}/{NativeModuleDeserializer}. Instead, it adds a new public method ({AddDeserializedCode}) which is being called from the deserializer. Drive-by: Unify the argument order to {AddCode}, {AddOwnedCode} and {WasmCode}. R=mstarzinger@chromium.org Bug: chromium:856938 Change-Id: I88943c90c45650e21ae6bc17395a17f86319c046 Reviewed-on: https://chromium-review.googlesource.com/1117075Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#54084}
-
Clemens Hammacher authored
We pass the {WasmModule} by non-const pointer and by non-const reference a lot. This violates the style guide, and adds the risk of accidentally modifying it. This CL makes the {WasmModule} const during compilation and instantiation. R=mstarzinger@chromium.org Bug: v8:7754 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Change-Id: Ie1878322828b63284b341d97da595e8e91dd4f51 Reviewed-on: https://chromium-review.googlesource.com/1117194Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#54078}
-
Michael Starzinger authored
This loads the stack limit address from the instance object instead of embedding it into the instruction stream. It is another piece towards making the generated code independent of the Isolate. R=clemensh@chromium.org BUG=v8:7424 Change-Id: I9381956adf2d7c42f6626708229cfdd5c4ca114f Reviewed-on: https://chromium-review.googlesource.com/1117189 Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#54076}
-
- 27 Jun, 2018 7 commits
-
-
Michael Starzinger authored
R=clemensh@chromium.org BUG=v8:7754 Change-Id: Ic6157ab1219bcdbdb6ac751d05602ab411d58ce2 Reviewed-on: https://chromium-review.googlesource.com/1117072 Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#54065}
-
Clemens Hammacher authored
The name itself does not make sense any more since the {NativeModule} is shared across instances. It is also only used for debugging, so remove it, and replace it by the address of the {NativeModule} itself in debug output. R=mstarzinger@chromium.org Bug: v8:7754 Change-Id: I02f9252981b776934811a904287be31c7076e90b Reviewed-on: https://chromium-review.googlesource.com/1114965 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#54064}
-
Clemens Hammacher authored
Since the Liftoff prologue is gone (https://crrev.com/c/1110222), this field is dead. R=mstarzinger@chromium.org Bug: v8:6600 Change-Id: I9d3e94a63087e7111939523c11fba4f009cecd54 Reviewed-on: https://chromium-review.googlesource.com/1116963Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#54059}
-
Michael Starzinger authored
R=clemensh@chromium.org Change-Id: I01b0b4948973ebbe0386ae8ae08e722ad16bcab8 Reviewed-on: https://chromium-review.googlesource.com/1114616Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#54058}
-
Clemens Hammacher authored
Replace two more pairs of {std::unique_ptr} and {size_t} by {OwnedVector}. R=mstarzinger@chromium.org Change-Id: Ifdf03abf9759fbbb4adde76a494073625723a03d Reviewed-on: https://chromium-review.googlesource.com/1116785 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#54057}
-
Clemens Hammacher authored
We currently store the protected instructions per code object in a {std::unique_ptr<std::vector<ProtectedInstructionData>>}. This wastes memory, because it requires two heap allocations, plus the vector might over-allocate (and it currently does, because it is filled dynamically during compilation). This CL changes that to store the protected instructions in an {OwnedVector}. This requires one copy after generating the list of {ProtectedInstructionData} in an {std::vector} during compilation, but saves memory afterwards. R=mstarzinger@chromium.org Bug: chromium:856938 Change-Id: Ie290a17dc32f27fbbfe0c000a52297181c954550 Reviewed-on: https://chromium-review.googlesource.com/1116701Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#54052}
-
Clemens Hammacher authored
{PrintCollection} can print any collection which is iterable via a standard for-each loop in C++. The output format of {4, 7, 11} is: [4, 7, 11] This helper avoids a few repetitions of manually outputting such collections. R=titzer@chromium.org Bug: v8:7754 Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng Change-Id: Iaa91e5465968a029815b3aa2b35948f711956cdb Reviewed-on: https://chromium-review.googlesource.com/1112005 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#54048}
-
- 26 Jun, 2018 5 commits
-
-
Dan Elphick authored
All Object::Print functions now take an Isolate* parameter. Various XX::XXPrint functions now take an Isolate if it's needed rather than calling GetIsolate(). Such method use DECL_PRINTER_WITH_ISOLATE rather than DECL_PRINTER. The _v8_internal_Print_ function (intended for use in gdb) now uses Isolate::Current() to get hold of an Isolate. Reduces the GetIsolate and GetHeap count by 9 and 5 respectively. Also removes unneeded gdb/lldb macros (along with their support functions), jfv, jfm, jda and jta, since job does the same thing. Bug: v8:7786 Change-Id: Ib93ebca6ca47c4db9c85cc6d9ff8004da5942dec Reviewed-on: https://chromium-review.googlesource.com/1112001 Commit-Queue: Dan Elphick <delphick@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#54029}
-
Michael Starzinger authored
R=clemensh@chromium.org Change-Id: Id8a0849d3456be1062a065a23f51bac250de4f7d Reviewed-on: https://chromium-review.googlesource.com/1107936Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#54026}
-
Leszek Swirski authored
Remove the one-argument Handle constructor and "handle" factory method, replacing them with Isolates where available and GetIsolate() methods otherwise. TBR=verwaest@chromium.org Bug: v8:7786 Change-Id: I8ee92ef727c05382c984a3e4c290198d0b312619 Reviewed-on: https://chromium-review.googlesource.com/1113542Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Dan Elphick <delphick@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#54025}
-
Michael Starzinger authored
R=titzer@chromium.org BUG=v8:7424 Change-Id: I1e5f41fba6cc575001cac1fd0a862736784a2131 Reviewed-on: https://chromium-review.googlesource.com/1113456 Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Ben Titzer <titzer@chromium.org> Cr-Commit-Position: refs/heads/master@{#54021}
-
Michael Starzinger authored
The field in question is a phantom link back into the GC'ed heap from the native WebAssembly heap. It is one of the last pieces that makes the compiled module specific to an Isolate. This is intended to finally make code sharable between Isolates. R=herhut@chromium.org BUG=v8:7424 Change-Id: I75bcfabaf5149ca98a75d3ea3f19d8d8a8d96dce Reviewed-on: https://chromium-review.googlesource.com/1113452Reviewed-by:
Stephan Herhut <herhut@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#54019}
-
- 25 Jun, 2018 2 commits
-
-
Michael Starzinger authored
In the two remaining places that call the {Reset} method, it is already guaranteed that the {next_instance} and {prev_instance} is undefined. R=titzer@chromium.org Change-Id: Iab2e764d88b7ba710c664fea363951fb6f9132e0 Reviewed-on: https://chromium-review.googlesource.com/1113551Reviewed-by:
Ben Titzer <titzer@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#54009}
-
Michael Starzinger authored
R=titzer@chromium.org Change-Id: I760a2568194edce486383d2bf32d598bdb9d44b1 Reviewed-on: https://chromium-review.googlesource.com/1109938Reviewed-by:
Ben Titzer <titzer@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#54001}
-