- 05 Nov, 2018 1 commit
-
-
Michael Starzinger authored
The relocation mode in question was by now only used in tests to model a wrapper call from wrapper code (on the GC'ed heap) to a non-movable wasm code object. Instead of using a special relocation mode, we switch to using the existing {EXTERNAL_REFERENCE} mode similar to other static C++ functions called from generated code. R=sigurds@chromium.org BUG=v8:8238 Change-Id: I30af98b92aed207c52ccccaf018a455ecac39c2b Reviewed-on: https://chromium-review.googlesource.com/c/1309821Reviewed-by:
Sigurd Schneider <sigurds@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#57239}
-
- 19 Oct, 2018 1 commit
-
-
Sigurd Schneider authored
Drive-by: Eliminate unnecessary includes to src/assembler.h. Bug: v8:8238 Change-Id: Ia0408b993b8b1c21a76c947f406f96b63fe41994 Reviewed-on: https://chromium-review.googlesource.com/c/1288810Reviewed-by:
Jaroslav Sevcik <jarin@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Cr-Commit-Position: refs/heads/master@{#56817}
-
- 22 Aug, 2018 1 commit
-
-
jgruber authored
Some builtins, so-called wasm runtime stubs, are copied off-heap to ensure reachability through near jumps. These builtins must be individually position-independent. In particular, they may not contain pc-relative calls to other builtins. Drive-by: Set hard_abort mode for all wasm runtime stubs to avoid Abort calls. Bug: v8:6666 Change-Id: Ie5bc9fc539d6a043dcf7dff66c3b4643baec69ab Reviewed-on: https://chromium-review.googlesource.com/1183236 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#55296}
-
- 21 Aug, 2018 1 commit
-
-
jgruber authored
This populates the isolate-independent builtin whitelist with initial builtins that do not access any isolate-dependent data and thus don't need the root register at all. Unlike most other platforms, we can't use a scratch register in the off-heap trampoline since there's no free register available. The trampolines on ia32 are thus implemented as pc-relative jumps (thankfully we can address the entire address space). Drive-by: Made Code::IsIsolateIndependent consistent with FinalizeEmbeddedCodeTargets. Code targets are only allowed on some platforms. Bug: v8:6666 Change-Id: I0bf02eecba8a099afa7b7c892188cd377cbda840 Reviewed-on: https://chromium-review.googlesource.com/1183224Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Sigurd Schneider <sigurds@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#55265}
-
- 17 Aug, 2018 3 commits
-
-
Sigurd Schneider authored
This reduced the number of targets depending on assembler.h from ~900 to ~350. Bug: v8:8054 Change-Id: I74ae2ce7a4b27791d0ee25542ee0b2175bedf5f7 Reviewed-on: https://chromium-review.googlesource.com/1174534 Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Jaroslav Sevcik <jarin@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#55188}
-
jgruber authored
Now that we pass in assembler options during builtin setup, we can be more precise in assembler configuration. Isolate-independent generation is only requested for isolate-independent builtins. And pc-relative jumps additionally need a valid code range. Bug: v8:6666 Change-Id: I64dfb414549a2f1e87610244c48d9405e63a1b12 Reviewed-on: https://chromium-review.googlesource.com/1177707Reviewed-by:
Sigurd Schneider <sigurds@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#55187}
-
Ulan Degenbaev authored
This moves write-barrier for writes into code to heap-write-barrier.h and adds four new functions: - WriteBarrierForCode(host, rinfo, object) - combined generational and marking write barrier. - WriteBarrierForCode(host) - combined write barrier that rescans all pointers in the host (former RecordWritesIntoCode). - GenerationalWriteBarrierForCode. - MarkingWriteBarrierForCode. Bug: v8:8054,v8:7490 Change-Id: Ib1e07cfa1d5998fca2fa44e2ad08c52305f1373f Reviewed-on: https://chromium-review.googlesource.com/1174436Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Sigurd Schneider <sigurds@chromium.org> Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Cr-Commit-Position: refs/heads/master@{#55185}
-
- 17 Jul, 2018 1 commit
-
-
Dan Elphick authored
Also moves ObjectVerify to GlobalHandles::CopyGlobal from V8::CopyPersistent (which was the only caller) so it can get hold of an Isolate*. Bug: v8:7786 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Change-Id: I0758bf6e431bf6e617244741ab2e1583a3566b20 Reviewed-on: https://chromium-review.googlesource.com/1140295Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Commit-Queue: Dan Elphick <delphick@chromium.org> Cr-Commit-Position: refs/heads/master@{#54493}
-
- 09 Jul, 2018 1 commit
-
-
Sigurd Schneider authored
This CL uses pc-relative jumps and calls (B/BL) for calls from embedded builtins to embedded builtins. To make this work, the code range size is limited to 32MB on arm during mksnapshot, which ensures that all builtin to builtin offsets for jumps/calls fit into the B/BL immediate. At code generation time, we put a placeholder into the instruction offset which we resolve to the right code object when the code is copied to the heap. We use a new relocation mode RELATIVE_CODE_TARGET for these relative jumps. The relocation mode RELATIVE_CODE_TARGET should never appear after generating the snapshot. We modify the target_address/set_target_address methods of RelocInfo such that they return the absolute target addresses for pc-relative B/BL instructions. This ensures that the GC can treat RELATIVE_CODE_TARGET in the same way as code targets. This, however, only matters during snapshot creation time, and production code never contains RELATIVE_CODE_TARGET relocations. Bug: v8:6666 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Change-Id: If7eab83ad588859ca87c654a5ddc3e37caea884c Reviewed-on: https://chromium-review.googlesource.com/1117181Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Cr-Commit-Position: refs/heads/master@{#54320}
-
- 06 Jul, 2018 1 commit
-
-
Sigurd Schneider authored
This CL surfaces AssemblerOptions to CodeAssembler::GenerateCode and to pipeline methods. To allow forward declaring AssemblerOptions, AssemblerBase::Options was moved out of the AssemblerBase class. Bug: v8:6666 Change-Id: If9fc50d3d4767bb5dd39a0c3b6e094021f4cae2b Reviewed-on: https://chromium-review.googlesource.com/1127039 Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#54286}
-
- 05 Jul, 2018 1 commit
-
-
Sigurd Schneider authored
The code target vector is used by backends whenever initial code creation uses immediates that cannot hold a code pointer: An index into the vector is used instead, and the vector contains the corresponding code object. This CL makes the code target vector available on all platforms. Bug: v8:6666 Change-Id: I2026acd6a77a3465fe2285b84d47866c3b794855 Reviewed-on: https://chromium-review.googlesource.com/1118885 Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#54236}
-
- 03 Jul, 2018 1 commit
-
-
jgruber authored
This CL replaces most uses of the V8_EMBEDDED_BUILTIN define by a new read-only runtime flag called FLAG_embedded_builtins. The flag is true iff V8_EMBEDDED_BUILTINS is defined. Bug: v8:6666 Change-Id: Ifcc909dc9b028a2c967f8a0e45029df5e71072df Reviewed-on: https://chromium-review.googlesource.com/1122401 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#54156}
-
- 25 Jun, 2018 1 commit
-
-
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}
-
- 22 Jun, 2018 1 commit
-
-
Clemens Hammacher authored
This prologue is not needed any more now that we have the jump table. If optimized code exists, we will not even enter the Liftoff code any more, but instead jump to the optimized code right away. This also allows to remove the {WASM_CODE_TABLE_ENTRY} relocation info kind. R=mstarzinger@chromium.org Bug: v8:7758 Change-Id: I0449693d7434088fb264104fe59365d7ca2b74c6 Reviewed-on: https://chromium-review.googlesource.com/1110222Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#53954}
-
- 21 Jun, 2018 1 commit
-
-
Sigurd Schneider authored
This CL reverts commit 38bec2ea and implements the same functionality via Assembler::RecordRelocInfo. Bug: v8:6666 Change-Id: I2e6b60697f68e956257f4c0877342da1bffca361 Reviewed-on: https://chromium-review.googlesource.com/1107710 Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#53911}
-
- 20 Jun, 2018 2 commits
-
-
Ben L. Titzer authored
This CL attempts to simplify the Assembler's dependency on the isolate, in particular on a global "serializer_enabled" mode contained therein. The "serializer_enabled" condition enabled and disabled a number of things in both the assemblers and macro assemblers. To make these dependencies explicit, the Assembler::IsolateData is refactored to be a proper Assembler::Options struct that controls specific assembler behaviors, with default settings easily computable from the isolate. This also helps make the contract for compiling WASM code more explicit (since WASM code needs to have reloc info recorded for external references) we can explicitly enable this recording without trying to "trick" the assembler using "serializer_enabled". R=jgruber@chromium.org CC=mstarzinger@chromium.org, herhut@chromium.org Change-Id: I7a8ba49df7b75b292d73ec2aa6e507c27a3d99c8 Reviewed-on: https://chromium-review.googlesource.com/1105982 Commit-Queue: Ben Titzer <titzer@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#53890}
-
Georgia Kouveli authored
We can instead pass the deopt id in a register, where before we were passing the deopt entry address. This removes the need for the deopt tables altogether, saving 192kB. Change-Id: I479d4de1a0245de328720b6b03a1955c8c63f696 Reviewed-on: https://chromium-review.googlesource.com/1076472Reviewed-by:
Jaroslav Sevcik <jarin@chromium.org> Commit-Queue: Georgia Kouveli <georgia.kouveli@arm.com> Cr-Commit-Position: refs/heads/master@{#53863}
-
- 19 Jun, 2018 1 commit
-
-
Michael Starzinger authored
This removes special casing in the handling of {RelocInfo::CODE_TARGET} for cases where such references appeared in {WasmCode}. Such references can only appear in real {Code} objects and also only target real {Code} objects by now. R=clemensh@chromium.org Change-Id: I87c55c60cd6344bb67fa8c8d04b66fb523d07ba7 Reviewed-on: https://chromium-review.googlesource.com/1104680 Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#53848}
-
- 18 Jun, 2018 1 commit
-
-
Clemens Hammacher authored
Since https://crrev.com/2951473002, there is only one reloc info for code targets, so there is no need for the special {kCodeTargetMask}. R=mstarzinger@chromium.org Bug: v8:7754 Change-Id: I1055108c0128c7de0f5cfefc5e90bbd9dc75522a Reviewed-on: https://chromium-review.googlesource.com/1098663Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#53776}
-
- 14 Jun, 2018 3 commits
-
-
Clemens Hammacher authored
This is a reland of 0909dbe3. Added missing V8_EXPORT_PRIVATE to AndroidLogStream. TBR=mstarzinger@chromium.org Original change's description: > Introduce StdoutStream which prints to Android log or stdout > > The often used construct {OFStream(stdout)} does not work on Android. > This CL introduces an {StdoutStream} which behaves exactly like > {OFStream(stdout)} on non-android platforms, and redirects to the > Android log on appropriate systems and configurations. > > R=mstarzinger@chromium.org > > Bug: v8:7820 > Change-Id: Ia682fdf6d064e37c605c19b032f5a10b96ac825b > Reviewed-on: https://chromium-review.googlesource.com/1088911 > Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> > Commit-Queue: Clemens Hammacher <clemensh@chromium.org> > Cr-Commit-Position: refs/heads/master@{#53692} Bug: v8:7820 Change-Id: I8164bad78a401dbe4246c9ffcacd050fe511ed58 Reviewed-on: https://chromium-review.googlesource.com/1100636Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#53733}
-
Clemens Hammacher authored
Extract code generation (for the trampoline) from {wasm-code-manager.cc} to a new {JumpTableAssembler}. This prepares a CL to add more logic to the {JumpTableAssembler} to also generate jump tables for lazy compilation and tier up. R=mstarzinger@chromium.org Change-Id: I383585b7e4b5a4af3ca08d07e374b44654c1a09f Reviewed-on: https://chromium-review.googlesource.com/1046585 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#53729}
-
Michael Achenbach authored
This reverts commit 0909dbe3. Reason for revert: Blocks roll: https://chromium-review.googlesource.com/c/chromium/src/+/1099143 Original change's description: > Introduce StdoutStream which prints to Android log or stdout > > The often used construct {OFStream(stdout)} does not work on Android. > This CL introduces an {StdoutStream} which behaves exactly like > {OFStream(stdout)} on non-android platforms, and redirects to the > Android log on appropriate systems and configurations. > > R=mstarzinger@chromium.org > > Bug: v8:7820 > Change-Id: Ia682fdf6d064e37c605c19b032f5a10b96ac825b > Reviewed-on: https://chromium-review.googlesource.com/1088911 > Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> > Commit-Queue: Clemens Hammacher <clemensh@chromium.org> > Cr-Commit-Position: refs/heads/master@{#53692} TBR=mstarzinger@chromium.org,jarin@chromium.org,jgruber@chromium.org,clemensh@chromium.org,bmeurer@chromium.org Change-Id: Iadadd9a0df10dca0fad647138a83db50148e864d No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:7820 Reviewed-on: https://chromium-review.googlesource.com/1100635Reviewed-by:
Michael Achenbach <machenbach@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#53725}
-
- 13 Jun, 2018 3 commits
-
-
Ben L. Titzer authored
Lift the declaration of the heap allocation request list and the method which adds to the list up to AssemblerBase. Change-Id: I099260425af8cb579144998c71c538f19ba00e65 Reviewed-on: https://chromium-review.googlesource.com/1098959Reviewed-by:
Georg Neis <neis@chromium.org> Commit-Queue: Ben Titzer <titzer@chromium.org> Cr-Commit-Position: refs/heads/master@{#53708}
-
Georgia Kouveli authored
Replace all uses of Deoptimizer::BailoutType and CodeEventListener::DeoptKind with DeoptimizeKind from src/globals.h. Change-Id: I5b9002583a69bc43d995cacc7619b018e5a70727 Reviewed-on: https://chromium-review.googlesource.com/1097331 Commit-Queue: Georgia Kouveli <georgia.kouveli@arm.com> Reviewed-by:
Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/master@{#53695}
-
Clemens Hammacher authored
The often used construct {OFStream(stdout)} does not work on Android. This CL introduces an {StdoutStream} which behaves exactly like {OFStream(stdout)} on non-android platforms, and redirects to the Android log on appropriate systems and configurations. R=mstarzinger@chromium.org Bug: v8:7820 Change-Id: Ia682fdf6d064e37c605c19b032f5a10b96ac825b Reviewed-on: https://chromium-review.googlesource.com/1088911Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#53692}
-
- 07 Jun, 2018 2 commits
-
-
Michael Starzinger authored
This uses an optimized single-byte encoding for WASM_STUB_CALL reloc entries when possible, by sacrificing size from DEOPT_REASON. Note that stub calls in WebAssembly are used for trap handlers, which are fairly common on regular WasmCode. R=clemensh@chromium.org BUG=chromium:850111,chromium:850413 Change-Id: I153fdd775290dece2884d438d5defd441486b369 Reviewed-on: https://chromium-review.googlesource.com/1090831 Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/master@{#53587}
-
Clemens Hammacher authored
Struct fields should not end in an underscore according to the style guide. Drive-by: Add {TurboAssembler} constructor which receives an {IsolateData} directly, to allow creating a {TurboAssembler} in a background thread. R=mstarzinger@chromium.org Change-Id: I32800476690f4c8619059519b7d27b06f5d4be95 Reviewed-on: https://chromium-review.googlesource.com/1090278 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#53582}
-
- 04 Jun, 2018 1 commit
-
-
Michael Starzinger authored
This makes stack checks in WasmCode independent of the underlying Isolate by loading the limit address from the WasmInstanceObject instead of embedding it into the instruction stream. It hence removes the last use of the Isolate field from WasmGraphBuilder. Additionally this introduces the notion of a "runtime stub" which represents stub code global to the NativeModule that can be directly called from each WasmCode in the same module. These stubs can act as trampolines via which Isolate-independent WasmCode can enter other V8 builtins or runtime functions that remain Isolate-dependent. They will eventually replace the current "trampoline" in a NativeModule. R=titzer@chromium.org BUG=v8:7424 Change-Id: Ie1f5582ee656b1ab7716ea06316d6e21a0268e74 Reviewed-on: https://chromium-review.googlesource.com/1078732 Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#53487}
-
- 28 May, 2018 1 commit
-
-
Michael Starzinger authored
R=titzer@chromium.org Change-Id: I238835a63403e3688f271fc04f4a80c4b3c767c0 Reviewed-on: https://chromium-review.googlesource.com/1074656Reviewed-by:
Ben Titzer <titzer@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#53381}
-
- 25 May, 2018 1 commit
-
-
jgruber authored
This addresses one of the major remaining slowdowns with embedded builtins on x64. When generating code for a call to a builtin callee from a builtin caller, we'd look up the Code target object from the builtins constant list, calculate the location of the first instruction, and jump to it. Note that for embedded builtin callees, the Code object is itself only a trampoline to the off-heap code and thus an additional indirection. An example of the call sequence in pseudo-asm: // Load from the constants list. mov reg, [kRootPointer, kBuiltinsConstantListOffset] mov reg, [reg, offset_of_the_code_constant] // Calculate first instruction and call it. add reg, Code::kHeaderOffset call reg // The trampoline forwards to the off-heap area. mov kOffHeapTrampolineRegister, <off-heap instruction_start> jmp kOffHeapTrampolineRegister This CL changes calls to embedded builtin targets to use pc-relative addressing. This reduces the above instruction sequence to: call <pc-relative offset to target instruction_start> Embedded-to-embedded calls jump directly to the embedded instruction stream, bypassing the trampoline. Heap-to-embedded calls (and all calls to heap-builtins) use pc-relative addressing targeting the on-heap Code object. Other relevant platforms (arm,arm64,mips,mips64) do not use pc-relative calls. For these, we'll need a different solution, e.g. a table of embedded builtin addresses reachable from the root pointer, similar to the external reference table. Bug: v8:6666 Change-Id: Ic0317d454e2da37d74eaecebcdfcbc0d5f5041ad Reviewed-on: https://chromium-review.googlesource.com/1068732 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#53349}
-
- 15 May, 2018 1 commit
-
-
jgruber authored
The (currently four, soon five) RelocIterator constructors contain basically identical logic. Refactor that into a basic version that all other constructors call. Bug: v8:6666 Change-Id: Ice7b4891d5e539ff6fe63337fc52d480d85dc270 Reviewed-on: https://chromium-review.googlesource.com/1059109 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#53189}
-
- 30 Apr, 2018 1 commit
-
-
Georgia Kouveli authored
This includes the following changes: - Limit code space to 128 MB. - Use direct branches wherever possible. - Where not possible, continue using load literal followed by an indirect branch. - Sort RelocInfo by target_address_address for the serializer, since mixing load literal instructions and branch instructions messes up that order. - Ensure we always wipe out targets in the serializer (not just for the snapshot) in order to be able to distinguish between constant pool entries and branch instructions. Change-Id: I1a1029ce2a5f72a3a94802daf267d14a42c7c790 Reviewed-on: https://chromium-review.googlesource.com/939175Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Jaroslav Sevcik <jarin@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Commit-Queue: Georgia Kouveli <georgia.kouveli@arm.com> Cr-Commit-Position: refs/heads/master@{#52885}
-
- 18 Apr, 2018 1 commit
-
-
Stephan Herhut authored
This is a reland of 4d7ad46d Original change's description: > Introduce CodeReference > > Add a struct CodeReference that can be stack allocated to pass a > reference to either an on-heap code object or off-heap WasmCode object > in a gc safe manner. The struct also provides a common interface such > that code can be written independently of the kind of code object it > references. > > Change-Id: I5a6f74462e6e141d167c7fd9bac8c21941fd83b1 > Reviewed-on: https://chromium-review.googlesource.com/977905 > Commit-Queue: Stephan Herhut <herhut@chromium.org> > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> > Cr-Commit-Position: refs/heads/master@{#52580} Change-Id: I40861474fe4a3efd72e6c59e2e7b847ab6772735 Reviewed-on: https://chromium-review.googlesource.com/1013939 Commit-Queue: Stephan Herhut <herhut@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#52665}
-
- 14 Apr, 2018 1 commit
-
-
Jakob Kummerow authored
The "Address" type is V8's general-purpose type for manipulating memory addresses. Per the C++ spec, pointer arithmetic and pointer comparisons are undefined behavior except within the same array; since we generally don't operate within a C++ array, our general-purpose type shouldn't be a pointer type. Bug: v8:3770 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng;master.tryserver.blink:linux_trusty_blink_rel Change-Id: Ib96016c24a0f18bcdba916dabd83e3f24a1b5779 Reviewed-on: https://chromium-review.googlesource.com/988657 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#52601}
-
- 12 Apr, 2018 2 commits
-
-
Sigurd Schneider authored
This reverts commit 4d7ad46d. Reason for revert: Makes i18n bot red https://logs.chromium.org/v/?s=chromium%2Fbb%2Fclient.v8%2FV8_Linux_-_noi18n_-_debug%2F20162%2F%2B%2Frecipes%2Fsteps%2FCheck%2F0%2Flogs%2FAssemblerIa32JumpTabl..%2F0 Original change's description: > Introduce CodeReference > > Add a struct CodeReference that can be stack allocated to pass a > reference to either an on-heap code object or off-heap WasmCode object > in a gc safe manner. The struct also provides a common interface such > that code can be written independently of the kind of code object it > references. > > Change-Id: I5a6f74462e6e141d167c7fd9bac8c21941fd83b1 > Reviewed-on: https://chromium-review.googlesource.com/977905 > Commit-Queue: Stephan Herhut <herhut@chromium.org> > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> > Cr-Commit-Position: refs/heads/master@{#52580} TBR=mstarzinger@chromium.org,herhut@chromium.org Change-Id: I9c49da9ee97e7423284e58bec3fdc1d212ff1af0 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/1010544Reviewed-by:
Sigurd Schneider <sigurds@chromium.org> Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Cr-Commit-Position: refs/heads/master@{#52582}
-
Stephan Herhut authored
Add a struct CodeReference that can be stack allocated to pass a reference to either an on-heap code object or off-heap WasmCode object in a gc safe manner. The struct also provides a common interface such that code can be written independently of the kind of code object it references. Change-Id: I5a6f74462e6e141d167c7fd9bac8c21941fd83b1 Reviewed-on: https://chromium-review.googlesource.com/977905 Commit-Queue: Stephan Herhut <herhut@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#52580}
-
- 09 Apr, 2018 1 commit
-
-
Kim-Anh Tran authored
The prologue checks if optimized code exists, and if not, continues execution of the current function. Otherwise, it jumps to the address specified in the native module's code_table. Also-by: clemensh@chromium.org Change-Id: If3e76de02115f44ab7758590a949c3f0965a11ca Reviewed-on: https://chromium-review.googlesource.com/985837 Commit-Queue: Kim-Anh Tran <kimanh@google.com> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#52471}
-
- 06 Apr, 2018 1 commit
-
-
Ben L. Titzer authored
This change makes lifetime management of WasmCode much simpler. By using the WasmInstanceObject as the context for WASM code execution, including the pointer to the memory base and indirect function tables, this keeps the instance alive when WASM code is on the stack, since the instance object is passed as a parameter and spilled onto the stack. This is in preparation of sharing the code between instances and isolates. Bug: v8:7424 R=mstarzinger@chromium.org Change-Id: Ia35a3ce91a8f6135767fa764e185cde8bbc889f4 Reviewed-on: https://chromium-review.googlesource.com/997932 Commit-Queue: Ben Titzer <titzer@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#52436}
-
- 05 Apr, 2018 1 commit
-
-
jgruber authored
In order to clarify the difference between, e.g., InstructionStart and instruction_start, rename as follows: Code::instruction_start -> raw_instruction_start Code::instruction_end -> raw_instruction_end Code::instruction_size -> raw_instruction_size The difference between the camel-case and raw_* function families is in how they handle off-heap-trampoline Code objects. For example, when called on an off-heap-trampoline: raw_instruction_start returns the trampoline's entry point, while InstructionStart returns the off-heap code's entry point (located in the .text section of the binary). Some callsites were updated to call the camel-case function family as appropriate. Bug: v8:6666 Change-Id: I4a572f47c2d161a853599d7c17879e263b0d1a87 Reviewed-on: https://chromium-review.googlesource.com/997532 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#52387}
-
- 04 Apr, 2018 1 commit
-
-
Ben Titzer authored
This reverts commit 57bf0bfe. Reason for revert: <INSERT REASONING HERE> Original change's description: > [wasm] Merge the WasmContext into WasmInstanceObject > > This change makes lifetime management of WasmCode much simpler. > By using the WasmInstanceObject as the context for WASM code execution, > including the pointer to the memory base and indirect function tables, > this keeps the instance alive when WASM code is on the stack, since > the instance object is passed as a parameter and spilled onto the stack. > This is in preparation of sharing the code between instances and > isolates. > > Bug: v8:7424 > > Change-Id: Ic2e4b7bcc2feb20001d0553a615a8a9dff36317e > Reviewed-on: https://chromium-review.googlesource.com/958520 > Commit-Queue: Ben Titzer <titzer@chromium.org> > Reviewed-by: Clemens Hammacher <clemensh@chromium.org> > Reviewed-by: Andreas Haas <ahaas@chromium.org> > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> > Cr-Commit-Position: refs/heads/master@{#52361} TBR=mstarzinger@chromium.org,titzer@chromium.org,ahaas@chromium.org,clemensh@chromium.org Change-Id: I653e27b46dbc43ad773eda4292d521a508f42d79 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:7424 Reviewed-on: https://chromium-review.googlesource.com/995418Reviewed-by:
Ben Titzer <titzer@chromium.org> Commit-Queue: Ben Titzer <titzer@chromium.org> Cr-Commit-Position: refs/heads/master@{#52364}
-