- 14 Jul, 2016 3 commits
-
-
ishell authored
All stores require a Slot parameter so VectorStoreICTrampolineDescriptor is a new StoreDescriptor. VectorStoreICDescriptor renamed to StoreWithVectorDescriptor. Review-Url: https://codereview.chromium.org/2147043002 Cr-Commit-Position: refs/heads/master@{#37779}
-
ishell authored
VectorStoreICStub -> StoreICStub VectorStoreICTrampolineStub -> StoreICTrampolineStub VectorKeyedStoreICStub -> KeyedStoreICStub VectorKeyedStoreICTrampolineStub -> KeyedStoreICTrampolineStub Review-Url: https://codereview.chromium.org/2147013002 Cr-Commit-Position: refs/heads/master@{#37752}
-
yangguo authored
R=bmeurer@chromium.org BUG=v8:5197 Review-Url: https://codereview.chromium.org/2145023002 Cr-Commit-Position: refs/heads/master@{#37740}
-
- 13 Jul, 2016 3 commits
-
-
bbudge authored
- Adds move/swap handling for 4 and 16 bytes to ia32. - Register allocator now only requests 4 bytes for floats on ia32 and arm. - We probably need similar support in mips. LOG=N BUG=v8:4124 Review-Url: https://codereview.chromium.org/2027043002 Cr-Commit-Position: refs/heads/master@{#37714}
-
ishell authored
After this CL we can avoid using Code::flags in hash computations for megamorphic stub caches and therefore the unused ICState field can be finally removed from flags. BUG=chromium:618701 Review-Url: https://codereview.chromium.org/2123983004 Cr-Commit-Position: refs/heads/master@{#37708}
-
mythria authored
Collect type feedback in the call bytecode handler. The current implementation only collects feedback for JS function objects. The other objects and Array functions do not collect any feedback. They will be marked Megamorphic. BUG=v8:4280, v8:4780 LOG=N Review-Url: https://codereview.chromium.org/2122183002 Cr-Commit-Position: refs/heads/master@{#37700}
-
- 11 Jul, 2016 1 commit
-
-
bbudge authored
All architectures return false for now. LOG=N BUG=v8:4124 Review-Url: https://codereview.chromium.org/2135573003 Cr-Commit-Position: refs/heads/master@{#37649}
-
- 08 Jul, 2016 1 commit
-
-
jgruber authored
BUG=v8:5173 R=bmeurer@chromium.org Review-Url: https://codereview.chromium.org/2118283003 Cr-Commit-Position: refs/heads/master@{#37598}
-
- 06 Jul, 2016 1 commit
-
-
danno authored
BUG=608675 Review-Url: https://codereview.chromium.org/2113673002 Cr-Commit-Position: refs/heads/master@{#37550}
-
- 04 Jul, 2016 1 commit
-
-
jgruber authored
Stack trace generation requires access to the receiver; and while the receiver is already on the stack, we cannot determine its position during stack trace generation (it's stored in argv[0], and argc is only stored in a callee-saved register). This patch grants access to the receiver by pushing argc onto builtin exit frames as an extra argument. Compared to simply pushing the receiver, this requires an additional dereference during stack trace generation, but one fewer during builtin calls. BUG=v8:4815 Review-Url: https://codereview.chromium.org/2106883003 Cr-Commit-Position: refs/heads/master@{#37500}
-
- 01 Jul, 2016 1 commit
-
-
bradnelson authored
Directs 'use asm' traffic through asm-wasm conversion when --validate-asm is passed. Adds a builtin that handles the fallback to JS. BUG= https://bugs.chromium.org/p/v8/issues/detail?id=4203 TEST=asm-wasm R=mstarzinger@chromium.org,titzer@chromium.org LOG=N Review-Url: https://codereview.chromium.org/2057403003 Cr-Commit-Position: refs/heads/master@{#37470}
-
- 30 Jun, 2016 2 commits
-
-
bbudge authored
-Defines SIMD128_REGISTERS for all platforms. -Adds Simd128 register information to RegisterConfiguration, and implements aliasing calculations. LOG=N BUG=v8:4124 Review-Url: https://codereview.chromium.org/2092103004 Cr-Commit-Position: refs/heads/master@{#37437}
-
jgruber authored
Prior to this commit, calls to C++ builtins created standard exit frames, which are skipped when constructing JS stack traces. In order to show these calls on traces, we introduce a new builtin exit frame type. Builtin exit frames contain target and new.target on the stack and are not skipped during stack trace construction. BUG=v8:4815 R=bmeurer@chromium.org, yangguo@chromium.org CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_chromium_rel_ng;tryserver.blink:linux_blink_rel;tryserver.v8:v8_linux_nosnap_dbg Committed: https://crrev.com/3c60c6b105f39344f93a8407f41534e5e60cf19a Review-Url: https://codereview.chromium.org/2090723005 Cr-Original-Commit-Position: refs/heads/master@{#37384} Cr-Commit-Position: refs/heads/master@{#37416}
-
- 29 Jun, 2016 4 commits
-
-
yangguo authored
R=mstarzinger@chromium.org BUG=v8:5117 Review-Url: https://codereview.chromium.org/2109613004 Cr-Commit-Position: refs/heads/master@{#37397}
-
bmeurer authored
Revert of [builtins] New frame type for exits to C++ builtins (patchset #5 id:80001 of https://codereview.chromium.org/2090723005/ ) Reason for revert: Looks like this breaks on nosnap: http://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20nosnap%20-%20debug/builds/7626 Original issue's description: > [builtins] New frame type for exits to C++ builtins > > Prior to this commit, calls to C++ builtins created standard exit > frames, which are skipped when constructing JS stack traces. In order to > show these calls on traces, we introduce a new builtin exit frame type. > > Builtin exit frames contain target and new.target on the stack and are > not skipped during stack trace construction. > > BUG=v8:4815 > R=bmeurer@chromium.org, yangguo@chromium.org > CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_chromium_rel_ng;tryserver.blink:linux_blink_rel > > Committed: https://crrev.com/3c60c6b105f39344f93a8407f41534e5e60cf19a > Cr-Commit-Position: refs/heads/master@{#37384} TBR=yangguo@chromium.org,jgruber@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:4815 Review-Url: https://codereview.chromium.org/2106113002 Cr-Commit-Position: refs/heads/master@{#37394}
-
yangguo authored
R=bmeurer@chromium.org BUG=v8:5117 Review-Url: https://codereview.chromium.org/2109673003 Cr-Commit-Position: refs/heads/master@{#37392}
-
jgruber authored
Prior to this commit, calls to C++ builtins created standard exit frames, which are skipped when constructing JS stack traces. In order to show these calls on traces, we introduce a new builtin exit frame type. Builtin exit frames contain target and new.target on the stack and are not skipped during stack trace construction. BUG=v8:4815 R=bmeurer@chromium.org, yangguo@chromium.org CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_chromium_rel_ng;tryserver.blink:linux_blink_rel Review-Url: https://codereview.chromium.org/2090723005 Cr-Commit-Position: refs/heads/master@{#37384}
-
- 28 Jun, 2016 5 commits
-
-
epertoso authored
The opcodes for 'cmpw r/m16, r16' and 'cmpw r16, r/m16' were swapped, causing a few issues when less than/greater than comparison were performed. Adds a regression test. BUG=621926 Committed: https://crrev.com/efa7095e3e360fbadbe909d831ac11b268ca26b0 Review-Url: https://codereview.chromium.org/2103713003 Cr-Original-Commit-Position: refs/heads/master@{#37339} Cr-Commit-Position: refs/heads/master@{#37345}
-
epertoso authored
Revert of [ia32] Fixes a bug in cmpw. (patchset #3 id:40001 of https://codereview.chromium.org/2103713003/ ) Reason for revert: Causes "buildbot failure in V8 on V8 Linux gcc 4.8, Check" Original issue's description: > [ia32] Fixes a bug in cmpw. > > The opcodes for 'cmpw r/m16, r16' and 'cmpw r16, r/m16' were swapped, causing a few issues when less than/greater than comparison were performed. > > Adds a regression test. > > BUG=621926 > > Committed: https://crrev.com/efa7095e3e360fbadbe909d831ac11b268ca26b0 > Cr-Commit-Position: refs/heads/master@{#37339} TBR=bmeurer@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=621926 Review-Url: https://codereview.chromium.org/2106913002 Cr-Commit-Position: refs/heads/master@{#37342}
-
epertoso authored
The opcodes for 'cmpw r/m16, r16' and 'cmpw r16, r/m16' were swapped, causing a few issues when less than/greater than comparison were performed. Adds a regression test. BUG=621926 Review-Url: https://codereview.chromium.org/2103713003 Cr-Commit-Position: refs/heads/master@{#37339}
-
ahaas authored
The reason for reverting is: This breaks gc-stress bot: https://chromegw.corp.google.com/i/client.v8/builders/V8%20Linux64%20GC%20Stress%20-%20custom%20snapshot Abortion of compaction could cause duplicate entries in the typed-old-to-new remembered set. These duplicates could cause a DCHECK to trigger which checks that slots recorded in the remembered set never point to to-space. This reland-CL allows duplicates in the remembered set by removing the DCHECK, and additionally clears entries in the remembered set if objects are moved. Original issue's description: Cells were needed originally because there was no typed remembered set to record direct pointers from code space to new space. A previous CL (https://codereview.chromium.org/2003553002/) already introduced the remembered set, this CL uses it. This CL * stores direct pointers in code objects, even if the target is in new space, * records the slot of the pointer in typed-old-to-new remembered set, * adds a list which stores weak code-to-new-space references, * adds a test to test-heap.cc for weak code-to-new-space references, * removes prints in tail-call-megatest.js Review-Url: https://codereview.chromium.org/2097023002 Cr-Commit-Position: refs/heads/master@{#37325}
-
bmeurer authored
Introduce a new machine operator Float64Pow that for now is backed by the existing MathPowStub to start the unification of Math.pow, and at the same time address the main performance issue that TurboFan still has with the imaging-darkroom benchmark in Kraken. Also migrate the Math.pow builtin itself to a TurboFan builtin and remove a few hundred lines of hand-written platform code for special handling of the fullcodegen Math.pow version. BUG=v8:3599,v8:5086,v8:5157 Review-Url: https://codereview.chromium.org/2103733003 Cr-Commit-Position: refs/heads/master@{#37323}
-
- 27 Jun, 2016 3 commits
-
-
bbudge authored
Replaces ArchDefault method with Crankshaft and Turbofan getters. Eliminates IsAllocated method on Register, FloatRegister, DoubleRegister. Eliminates ToString method too. Changes call sites to access appropriate arch default RegisterConfiguration. LOG=N BUG= Review-Url: https://codereview.chromium.org/2092413002 Cr-Commit-Position: refs/heads/master@{#37297}
-
ssanfilippo authored
the .eh_frame format as part of the jitdump generated when FLAG_perf_prof is enabled. The final goal is allowing precise unwinding of callchains that include JITted code when profiling V8 using perf. Unwinding information is stored in the body of code objects after the code itself, prefixed with its length and aligned to a 8-byte boundary. A boolean flag in the header signals its presence, resulting in zero memory overhead when the generation of unwinding info is disabled or no such information was attached to the code object. A new jitdump record type (with id 4) is introduced for specifying optional unwinding information for code load records. The EhFrameHdr struct is also introduced, together with a constructor to initialise it from the associated code object. At this stage no unwinding information is written to the jitdump, but the infrastructure for doing so is ready in place. BUG=v8:4899 LOG=N Review-Url: https://codereview.chromium.org/1993653003 Cr-Commit-Position: refs/heads/master@{#37296}
-
bbudge authored
- Add a const bool kSimpleFPAliasing variable for each platform so it's easier for the compiler to eliminate dead code. - Modify RegisterAllocator to use it. LOG=N BUG=v8:4124 Review-Url: https://codereview.chromium.org/2101473002 Cr-Commit-Position: refs/heads/master@{#37288}
-
- 24 Jun, 2016 1 commit
-
-
balazs.kilvady authored
Port fc59eb8a Original commit message: Moves between operands with different representations shouldn't happen, so don't test them. This makes it easier to modify canonicalization to differentiate between floating point types, which is needed to support floating point register aliasing for ARM and MIPS. This change also expands tests to include explicit FP moves (both register and stack slot). LOG=N BUG=v8:4124 BUG=chromium:622619 Review-Url: https://codereview.chromium.org/2090993002 Cr-Commit-Position: refs/heads/master@{#37241}
-
- 23 Jun, 2016 2 commits
-
-
vogelheim authored
Revert of Reland [heap] Avoid the use of cells to point from code to new-space objects. (patchset #3 id:40001 of https://codereview.chromium.org/2091733002/ ) Reason for revert: This breaks gc-stress bot: https://chromegw.corp.google.com/i/client.v8/builders/V8%20Linux64%20GC%20Stress%20-%20custom%20snapshot # # Fatal error in ../../src/heap/mark-compact.cc, line 3715 # Check failed: Page::FromAddress(reinterpret_cast<HeapObject*>(*slot)->address()) ->IsFlagSet(Page::PAGE_NEW_NEW_PROMOTION). # I can reproduce locally, and local revert also fixes it -> revert. Reproduce with: out/Debug/d8 --test --random-seed=2140216864 --nohard-abort --nodead-code-elimination --nofold-constants --enable-slow-asserts --debug-code --verify-heap --allow-natives-syntax --harmony-tailcalls test/mjsunit/mjsunit.js test/mjsunit/es6/tail-call-megatest-shard2.js --gc-interval=500 --stress-compaction --concurrent-recompilation-queue-length=64 --concurrent-recompilation-delay=500 --concurrent-recompilation (Maybe run in loop; it's flaky when broken; but passes reliably w/ revert.) Original issue's description: > Reland [heap] Avoid the use of cells to point from code to new-space objects. > > The reason for reverting was: [Sheriff] Breaks arm debug: > https://build.chromium.org/p/client.v8.ports/builders/V8%20Linux%20-%20arm%20-%20sim%20-%20debug/builds/1038. > > The problem was the dereferencing of handles for smi checks. It turned out > that these smi checks can be removed anyways, both on arm and on mips. > > Additionally some rebasing was necessary. > > Original issue's description: > > Cells were needed originally because there was no typed remembered set to > record direct pointers from code space to new space. A previous > CL (https://codereview.chromium.org/2003553002/) already introduced > the remembered set, this CL uses it. > > This CL > * stores direct pointers in code objects, even if the target is in new space, > * records the slot of the pointer in typed-old-to-new remembered set, > * adds a list which stores weak code-to-new-space references, > * adds a test to test-heap.cc for weak code-to-new-space references, > * removes prints in tail-call-megatest.js > > R=mlippautz@chromium.org > > Committed: https://crrev.com/5508e16592522658587da71ba6743c8e832fe4d1 > Cr-Commit-Position: refs/heads/master@{#37217} TBR=mlippautz@chromium.org,ahaas@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review-Url: https://codereview.chromium.org/2090983002 Cr-Commit-Position: refs/heads/master@{#37221}
-
ahaas authored
The reason for reverting was: [Sheriff] Breaks arm debug: https://build.chromium.org/p/client.v8.ports/builders/V8%20Linux%20-%20arm%20-%20sim%20-%20debug/builds/1038. The problem was the dereferencing of handles for smi checks. It turned out that these smi checks can be removed anyways, both on arm and on mips. Additionally some rebasing was necessary. Original issue's description: Cells were needed originally because there was no typed remembered set to record direct pointers from code space to new space. A previous CL (https://codereview.chromium.org/2003553002/) already introduced the remembered set, this CL uses it. This CL * stores direct pointers in code objects, even if the target is in new space, * records the slot of the pointer in typed-old-to-new remembered set, * adds a list which stores weak code-to-new-space references, * adds a test to test-heap.cc for weak code-to-new-space references, * removes prints in tail-call-megatest.js R=mlippautz@chromium.org Review-Url: https://codereview.chromium.org/2091733002 Cr-Commit-Position: refs/heads/master@{#37217}
-
- 22 Jun, 2016 1 commit
-
-
jgruber authored
edi is expected to contain the JS function. Ensure that it is not overwritten. BUG=chromium:621431,chromium:621550,chromium:621217 R=bmeurer@chromium.org Review-Url: https://codereview.chromium.org/2085043004 Cr-Commit-Position: refs/heads/master@{#37173}
-
- 21 Jun, 2016 4 commits
-
-
neis authored
This runtime function now also works for Ignition generators. It returns the source position of the yield at which a suspended generator got suspended. This works by storing the current bytecode offset at suspension and using an existing mechanism to map it back to a source position. TBR=littledan@chromium.org BUG= Review-Url: https://codereview.chromium.org/2079613003 Cr-Commit-Position: refs/heads/master@{#37140}
-
machenbach authored
Revert of [heap] Avoid the use of cells to point from code to new-space objects. (patchset #7 id:120001 of https://codereview.chromium.org/2045263002/ ) Reason for revert: [Sheriff] Breaks arm debug: https://build.chromium.org/p/client.v8.ports/builders/V8%20Linux%20-%20arm%20-%20sim%20-%20debug/builds/1038 Original issue's description: > [heap] Avoid the use of cells to point from code to new-space objects. > > Cells were needed originally because there was no typed remembered set to > record direct pointers from code space to new space. A previous > CL (https://codereview.chromium.org/2003553002/) already introduced > the remembered set, this CL uses it. > > This CL > * stores direct pointers in code objects, even if the target is in new space, > * records the slot of the pointer in typed-old-to-new remembered set, > * adds a list which stores weak code-to-new-space references, > * adds a test to test-heap.cc for weak code-to-new-space references, > * removes prints in tail-call-megatest.js > > R=ulan@chromium.org > > Committed: https://crrev.com/2d2087b79a293a92a6ed34a2775e481ff2173b3c > Cr-Commit-Position: refs/heads/master@{#37134} TBR=titzer@chromium.org,ulan@chromium.org,ahaas@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review-Url: https://codereview.chromium.org/2087463004 Cr-Commit-Position: refs/heads/master@{#37139}
-
ahaas authored
Cells were needed originally because there was no typed remembered set to record direct pointers from code space to new space. A previous CL (https://codereview.chromium.org/2003553002/) already introduced the remembered set, this CL uses it. This CL * stores direct pointers in code objects, even if the target is in new space, * records the slot of the pointer in typed-old-to-new remembered set, * adds a list which stores weak code-to-new-space references, * adds a test to test-heap.cc for weak code-to-new-space references, * removes prints in tail-call-megatest.js R=ulan@chromium.org Review-Url: https://codereview.chromium.org/2045263002 Cr-Commit-Position: refs/heads/master@{#37134}
-
ahaas authored
With the tail call, pointers to the JS heap could be pushed on a js-to-wasm frame. On the js-to-wasm frame, however, this pointer would not be updated by the GC. R=bmeurer@chromium.org, v8-arm-ports@googlegroups.com, v8-mips-ports@googlegroups.com BUG=617084 TEST=mjsunit/wasm/gc-frame.js:GCInJSToWasmTest() Review-Url: https://codereview.chromium.org/2079393003 Cr-Commit-Position: refs/heads/master@{#37132}
-
- 20 Jun, 2016 2 commits
-
-
yangguo authored
R=bmeurer@chromium.org, jgruber@chromium.org Review-Url: https://codereview.chromium.org/2072963003 Cr-Commit-Position: refs/heads/master@{#37089}
-
mtrofin authored
Compilation of wasm functions happens before instantiation. Imports are linked afterwards, at instantiation time. Globals and memory are also allocated and then tied in via relocation at instantiation time. This paves the way for implementing Wasm.compile, a prerequisite to offering the compiled code serialization feature. Currently, the WasmModule::Compile method just returns a fixed array containing the code objects. More appropriate modeling of the compiled module to come. Opportunistically centralized the logic on how to update memory references, size, and globals, since that logic is the exact same on each architecture, except for the actual storing of values back in the instruction stream. BUG=v8:5072 Review-Url: https://codereview.chromium.org/2056633002 Cr-Commit-Position: refs/heads/master@{#37086}
-
- 17 Jun, 2016 4 commits
-
-
jgruber authored
As a first step towards showing builtin frames in stack traces, we will now push target and new target unconditionally. Since the various specializations of BuiltinArguments are made redundant by this change, we can remove them and all related code. R=bmeurer@chromium.org BUG= Review-Url: https://codereview.chromium.org/2074063002 Cr-Commit-Position: refs/heads/master@{#37061}
-
jgruber authored
Construct a BUILTIN frame before throwing an exception from runtime. R=bmeurer@chromium.org BUG= Review-Url: https://codereview.chromium.org/2078443002 Cr-Commit-Position: refs/heads/master@{#37053}
-
jgruber authored
This adds a new BUILTIN frame type, which supports variable number of arguments for builtins implemented in hand-written native code (we will extend this mechanism to TurboFan builtins at some point). Convert the Math.max and Math.min builtins to construct a BUILTIN frame if required. This does not yet work for C++ builtins, but that'll be the next step. R=bmeurer@chromium.org, jarin@chromium.org BUG=v8:4815 LOG=n Review-Url: https://codereview.chromium.org/2069423002 Cr-Commit-Position: refs/heads/master@{#37051}
-
bmeurer authored
Import base::ieee754::exp() from FreeBSD msun and introduce a Float64Exp TurboFan operator based on that, similar to what we do for Float64Log. Rewrite Math.exp() as TurboFan builtin and use that operator to also inline Math.exp() into optimized TurboFan functions. CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_chromium_rel_ng;tryserver.blink:linux_blink_rel BUG=v8:3266,v8:3468,v8:3493,v8:5086,v8:5108,chromium:620786 R=mvstanton@chromium.org Committed: https://crrev.com/93e26314afc9da9b5b8bd998688262444ed73260 Review-Url: https://codereview.chromium.org/2077533002 Cr-Original-Commit-Position: refs/heads/master@{#37037} Cr-Commit-Position: refs/heads/master@{#37047}
-
- 16 Jun, 2016 1 commit
-
-
machenbach authored
Revert of [builtins] Introduce proper Float64Exp operator. (patchset #5 id:80001 of https://codereview.chromium.org/2077533002/ ) Reason for revert: [Sheriff] Leads to some different rounding as it seems in some audio layout tests. Please rebase upstream first if intended: https://build.chromium.org/p/client.v8.fyi/builders/V8-Blink%20Linux%2064/builds/7508 Original issue's description: > [builtins] Introduce proper Float64Exp operator. > > Import base::ieee754::exp() from FreeBSD msun and introduce a Float64Exp > TurboFan operator based on that, similar to what we do for Float64Log. > Rewrite Math.exp() as TurboFan builtin and use that operator to also > inline Math.exp() into optimized TurboFan functions. > > BUG=v8:3266,v8:3468,v8:3493,v8:5086,v8:5108 > R=mvstanton@chromium.org > > Committed: https://crrev.com/93e26314afc9da9b5b8bd998688262444ed73260 > Cr-Commit-Position: refs/heads/master@{#37037} TBR=mvstanton@chromium.org,ahaas@chromium.org,bmeurer@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:3266,v8:3468,v8:3493,v8:5086,v8:5108 Review-Url: https://codereview.chromium.org/2070813002 Cr-Commit-Position: refs/heads/master@{#37039}
-