- 03 Dec, 2015 1 commit
-
-
mstarzinger authored
This drops the specific slot containing the new.target value from our construct stub frames. This side-channel has been deprecated and will no longer be accessed by any consumers. R=verwaest@chromium.org Review URL: https://codereview.chromium.org/1489353004 Cr-Commit-Position: refs/heads/master@{#32550}
-
- 25 Nov, 2015 1 commit
-
-
mstarzinger authored
This passes the new.target value in a register instead of through a side-channel via the construct stub. The interpreter entry trampoline stores this value in a bytecode register so that it can be accessed directly by the interpreter. The size of the interpreter stack frame hence grows by one slot. R=oth@chromium.org BUG=v8:4544 LOG=n Review URL: https://codereview.chromium.org/1469313002 Cr-Commit-Position: refs/heads/master@{#32264}
-
- 13 Nov, 2015 1 commit
-
-
mstarzinger authored
This aligns the naming of "new target" with the spec text throughout TurboFan and the stack frame walker. The goal is to avoid unnecessary confusion for people familiar with the spec. R=verwaest@chromium.org Review URL: https://codereview.chromium.org/1442643002 Cr-Commit-Position: refs/heads/master@{#31978}
-
- 03 Nov, 2015 1 commit
-
-
ishell authored
Review URL: https://codereview.chromium.org/1432493003 Cr-Commit-Position: refs/heads/master@{#31754}
-
- 22 Oct, 2015 1 commit
-
-
rmcilroy authored
Fills out some more of the function prologue support in the interpreter. Deals with creation of arguments objects and throwing IllegalRedeclarations if necessary. Also adds (untested) support for this.function and new.target variable assignment. Also fixes a bug in Frames::is_java_script() to deal with interpreter frames correctly. Cleans up comments in builtins InterpreterEntryTrampoline about missing prologue support. Adds the following bytecodes: - CreateArgumentsSloppy - CreateArgumentsStrict BUG=v8:4280 LOG=N Review URL: https://codereview.chromium.org/1412953007 Cr-Commit-Position: refs/heads/master@{#31486}
-
- 16 Oct, 2015 1 commit
-
-
rmcilroy authored
Adds basic support for iterating interpreter stack frames for GC. Currently InterpreterStackFrames are treated just like JavaScriptStackFrames since the JavaScriptFrame::IterateExpressions() will correctly iterate over all the local / temp interpeter Registers, and will iterate over the interpreter_entry_trampoline pc address. There is no need to explicitly iterate over the BytecodeArray object since that is held in a machine register in the bytecode handler which is marked as kMachTaggedAny by TurboFan, and so will get iterated appropriately when iterating the bytecode handler stub's stack frame. BUG=v8:4280 LOG=N Review URL: https://codereview.chromium.org/1407513003 Cr-Commit-Position: refs/heads/master@{#31342}
-
- 07 Oct, 2015 1 commit
-
-
rmcilroy authored
Implements support for declaring global variables. Also adds support for loading from and storing to both global and unallocated global variables. Adds the following bytecodes: - StoreGlobal - LoadContextSlot BUG=v8:4280 LOG=N Review URL: https://codereview.chromium.org/1378523005 Cr-Commit-Position: refs/heads/master@{#31166}
-
- 30 Sep, 2015 1 commit
-
-
mstarzinger authored
This enables linter checking for "readability/namespace" violations during presubmit and instead marks the few known exceptions that we allow explicitly. R=bmeurer@chromium.org Review URL: https://codereview.chromium.org/1371083003 Cr-Commit-Position: refs/heads/master@{#31019}
-
- 16 Sep, 2015 1 commit
-
-
mstarzinger authored
This adds debug code that makes sure that the runtime functions that materialize arguments objects, {Runtime_New[Sloppy|Strict]Arguments}, are not being called from within an inlined scope. They would produce wrong results and we should avoid producing code that does this. R=bmeurer@chromium.org Review URL: https://codereview.chromium.org/1343763002 Cr-Commit-Position: refs/heads/master@{#30761}
-
- 02 Sep, 2015 1 commit
-
-
rmcilroy authored
Adds support for property load operations via Load/KeyedLoad ICs. Adds the following bytecodes: - LoadIC - KeyedLoadIC Also adds support to the interpreter assembler for loading the type feedback vector from the function on the stack, and calling ICs. BUG=v8:4280 LOG=N Review URL: https://codereview.chromium.org/1309843007 Cr-Commit-Position: refs/heads/master@{#30543}
-
- 31 Aug, 2015 1 commit
-
-
mstarzinger authored
This CL us a pure refactoring that makes an empty compilation unit including just "frames.h" but not "handles-inl.h" compile without warnings or errors. This is needed to further reduce the header dependency tangle. R=ishell@chromium.org Review URL: https://codereview.chromium.org/1319423003 Cr-Commit-Position: refs/heads/master@{#30476}
-
- 28 Aug, 2015 1 commit
-
-
mbrandy authored
Account for the constant pool pointer slot during register allocation data initialization. R=danno@chromium.org, titzer@chromium.org, bmeurer@chromium.org, mcilroy@chromium.org, TEST=cctest/test-run-machops/RunSpillConstantsAndParameters BUG= Review URL: https://codereview.chromium.org/1317123003 Cr-Commit-Position: refs/heads/master@{#30430}
-
- 27 Aug, 2015 1 commit
-
-
rmcilroy authored
Adds support for parameters to the BytecodeArrayBuilder and BytecodeGenerator. Parameters are accessed as negative interpreter registers. BUG=v8:4280 LOG=N Review URL: https://codereview.chromium.org/1303403004 Cr-Commit-Position: refs/heads/master@{#30403}
-
- 18 Aug, 2015 1 commit
-
-
danno authored
Previously, it was not possible to specify StackSlotOperands for all slots in both the caller and callee stacks. Specifically, the region of the callee's stack including the saved return address, frame pointer, function pointer and context pointer could not be addressed by the register allocator/gap resolver. In preparation for better tail call support, which will use the gap resolver to reconcile outgoing parameters, this change makes it possible to address all slots on the stack, because slots in the previously inaccessible dead zone may become parameter slots for outgoing tail calls. All caller stack slots are accessible as they were before, with slot -1 corresponding to the last stack parameter. Stack slot indices >= 0 access the callee stack, with slot 0 corresponding to the callee's saved return address, 1 corresponding to the saved frame pointer, 2 corresponding to the current function context, 3 corresponding to the frame marker/JSFunction, and slots 4 and above corresponding to spill slots. The following changes were specifically needed: * Frame has been changed to explicitly manage three areas of the callee frame, the fixed header, the spill slot area, and the callee-saved register area. * Conversions from stack slot indices to fp offsets all now go through a common bottleneck: OptimizedFrame::StackSlotOffsetRelativeToFp * The generation of deoptimization translation tables has been changed to support the new stack slot indexing scheme. Crankshaft, which doesn't support the new slot numbering in its register allocator, must adapt the indexes when creating translation tables. * Callee-saved parameters are now kept below spill slots, not above, to support saving only the optimal set of used registers, which is only known after register allocation is finished and spill slots have been allocated. Review URL: https://codereview.chromium.org/1261923007 Cr-Commit-Position: refs/heads/master@{#30224}
-
- 17 Jul, 2015 1 commit
-
-
mlippautz authored
Additionally, push the allocation site or undefined independently of creating a memento to preserve a fixed size for the construct frames. BUG= Review URL: https://codereview.chromium.org/1239593003 Cr-Commit-Position: refs/heads/master@{#29719}
-
- 10 Jul, 2015 1 commit
-
-
mstarzinger authored
R=bmeurer@chromium.org Review URL: https://codereview.chromium.org/1213623020 Cr-Commit-Position: refs/heads/master@{#29562}
-
- 07 Jul, 2015 1 commit
-
-
mstarzinger authored
This unifies the existing frame constants that are the same accross all architectures. It also adds a new kOriginalConstructorOffset constant for construct frames and uses is in full-codegen. R=bmeurer@chromium.org Review URL: https://codereview.chromium.org/1220223005 Cr-Commit-Position: refs/heads/master@{#29509}
-
- 06 Jul, 2015 1 commit
-
-
mstarzinger authored
This implements the proper initialization of the new.target internal variable in the AstGraphBuilder. For now this uses a runtime call that cannot handle inlined frames correctly. R=arv@chromium.org Review URL: https://codereview.chromium.org/1212813008 Cr-Commit-Position: refs/heads/master@{#29500}
-
- 16 Jun, 2015 1 commit
-
-
bmeurer authored
Using TranslatedState and friends is too expensive compared to the low level TranslationIterator, because some code (i.e. in Speedometer) depends on the OptimizedFrame summary/function listing to be very fast. BUG=chromium:499338 LOG=n R=jarin@chromium.org Review URL: https://codereview.chromium.org/1181373003 Cr-Commit-Position: refs/heads/master@{#29037}
-
- 10 Jun, 2015 1 commit
-
-
bmeurer authored
Up until now we can only inline based on JSFunction, because of the way the deoptimization works. With this change we will be able to inline based on the SharedFunctionInfo and materialize the JSFunction from a literal or a stack slot when necessary. R=jarin@chromium.org Review URL: https://codereview.chromium.org/1169103004 Cr-Commit-Position: refs/heads/master@{#28906}
-
- 09 Jun, 2015 1 commit
-
-
bmeurer authored
R=mstarzinger@chromium.org Review URL: https://codereview.chromium.org/1176473002 Cr-Commit-Position: refs/heads/master@{#28860}
-
- 04 Jun, 2015 1 commit
-
-
mbrandy authored
Embed constant pools within their corresponding Code objects. This removes support for out-of-line constant pools in favor of the new approach -- the main advantage being that it eliminates the need to allocate and manage separate constant pool array objects. Currently supported on PPC and ARM. Enabled by default on PPC only. This yields a 6% improvment in Octane on PPC64. R=bmeurer@chromium.org, rmcilroy@chromium.org, michael_dawson@ca.ibm.com BUG=chromium:478811 LOG=Y Review URL: https://codereview.chromium.org/1162993006 Cr-Commit-Position: refs/heads/master@{#28801}
-
- 03 Jun, 2015 1 commit
-
-
bmeurer authored
Revert of Embedded constant pools. (patchset #12 id:220001 of https://codereview.chromium.org/1131783003/) Reason for revert: Breaks Linux nosnap cctest/test-api/FastReturnValuesWithProfiler, see http://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20nosnap%20-%20debug%20-%202/builds/609/steps/Check/logs/FastReturnValuesWithP.. Original issue's description: > Add support for Embedded Constant Pools for PPC and Arm > > Embed constant pools within their corresponding Code > objects. > > This removes support for out-of-line constant pools in favor > of the new approach -- the main advantage being that it > eliminates the need to allocate and manage separate constant > pool array objects. > > Currently supported on PPC and ARM. Enabled by default on > PPC only. > > This yields a 6% improvment in Octane on PPC64. > > R=danno@chromium.org, svenpanne@chromium.org, bmeurer@chromium.org, rmcilroy@chromium.org, dstence@us.ibm.com, michael_dawson@ca.ibm.com > BUG=chromium:478811 > LOG=Y > > Committed: https://crrev.com/a9404029343d65f146e3443f5280c40a97e736af > Cr-Commit-Position: refs/heads/master@{#28770} TBR=rmcilroy@chromium.org,ishell@chromium.org,rodolph.perfetta@arm.com,mbrandy@us.ibm.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=chromium:478811 Review URL: https://codereview.chromium.org/1155703006 Cr-Commit-Position: refs/heads/master@{#28772}
-
- 02 Jun, 2015 1 commit
-
-
mbrandy authored
Embed constant pools within their corresponding Code objects. This removes support for out-of-line constant pools in favor of the new approach -- the main advantage being that it eliminates the need to allocate and manage separate constant pool array objects. Currently supported on PPC and ARM. Enabled by default on PPC only. This yields a 6% improvment in Octane on PPC64. R=danno@chromium.org, svenpanne@chromium.org, bmeurer@chromium.org, rmcilroy@chromium.org, dstence@us.ibm.com, michael_dawson@ca.ibm.com BUG=chromium:478811 LOG=Y Review URL: https://codereview.chromium.org/1131783003 Cr-Commit-Position: refs/heads/master@{#28770}
-
- 29 May, 2015 1 commit
-
-
yangguo authored
R=mstarzinger@chromium.org BUG=chromium:492522 LOG=Y Review URL: https://codereview.chromium.org/1154163006 Cr-Commit-Position: refs/heads/master@{#28696}
-
- 25 Mar, 2015 1 commit
-
-
mstarzinger authored
This switches full-codegen to no longer push and pop StackHandler markers onto the operand stack, but relies on a range-based handler table instead. We only use StackHandlers in JSEntryStubs to mark the transition from C to JS code. Note that this makes deoptimization and OSR from within any try-block work out of the box, makes the non-exception paths faster and should overall be neutral on the memory footprint (pros). On the other hand it makes the exception paths slower and actually throwing and exception more expensive (cons). R=yangguo@chromium.org TEST=cctest/test-run-jsexceptions/DeoptTry Review URL: https://codereview.chromium.org/1010883002 Cr-Commit-Position: refs/heads/master@{#27440}
-
- 18 Mar, 2015 1 commit
-
-
mstarzinger authored
This relands commit 96f79568. This makes the Isolate::Throw logic not depend on a prediction of whether an exception is caught or uncaught. Such a prediction is inherently undecidable because a finally block can decide between consuming or re-throwing an exception depending on arbitray control flow. There still is a conservative prediction mechanism in place that components like the debugger or tracing can use for reporting. With this change we can get rid of the StackHandler::kind field, a pre-requisite to do table-based lookups of exception handlers. R=yangguo@chromium.org Review URL: https://codereview.chromium.org/997213003 Cr-Commit-Position: refs/heads/master@{#27263}
-
- 16 Mar, 2015 2 commits
-
-
mstarzinger authored
Revert of Remove kind field from StackHandler. (patchset #4 id:60001 of https://codereview.chromium.org/1002203002/) Reason for revert: Layout test failure in inspector/sources/debugger/debugger-pause-on-promise-rejection.html Original issue's description: > Remove kind field from StackHandler. > > This makes the Isolate::Throw logic not depend on a prediction of > whether an exception is caught or uncaught. Such a prediction is > inherently undecidable because a finally block can decide between > consuming or re-throwing an exception depending on arbitray control > flow. > > There still is a conservative prediction mechanism in place that > components like the debugger or tracing can use for reporting. > > With this change we can get rid of the StackHandler::kind field, a > pre-requisite to do table-based lookups of exception handlers. > > R=yangguo@chromium.org > > Committed: https://crrev.com/96f79568a926966ebcf0685bf9adc947f4e1fbff > Cr-Commit-Position: refs/heads/master@{#27210} TBR=yangguo@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review URL: https://codereview.chromium.org/1009903002 Cr-Commit-Position: refs/heads/master@{#27215}
-
mstarzinger authored
This makes the Isolate::Throw logic not depend on a prediction of whether an exception is caught or uncaught. Such a prediction is inherently undecidable because a finally block can decide between consuming or re-throwing an exception depending on arbitray control flow. There still is a conservative prediction mechanism in place that components like the debugger or tracing can use for reporting. With this change we can get rid of the StackHandler::kind field, a pre-requisite to do table-based lookups of exception handlers. R=yangguo@chromium.org Review URL: https://codereview.chromium.org/1002203002 Cr-Commit-Position: refs/heads/master@{#27210}
-
- 10 Mar, 2015 2 commits
-
-
mstarzinger authored
This reduces the size of the StackHandler by yet another word. We no longer need to keep track of the frame pointer, as the stack walk will be able to recalculate it. R=yangguo@chromium.org Review URL: https://codereview.chromium.org/991893003 Cr-Commit-Position: refs/heads/master@{#27115}
-
mstarzinger authored
This reduces the size of the StackHandler by one word. We no longer need to keep track of the code object, as the stack walk finds it. R=yangguo@chromium.org Review URL: https://codereview.chromium.org/985803002 Cr-Commit-Position: refs/heads/master@{#27103}
-
- 05 Mar, 2015 1 commit
-
-
mstarzinger authored
This extends the stack unwinding logic to respect optimized frames and perform a lookup in the handler table to find handlers. It also contains fixes to the API call stubs to allow a stack walk while promoting scheduled exceptions. R=jarin@chromium.org TEST=cctest/test-run-jsexceptions Review URL: https://codereview.chromium.org/969533004 Cr-Commit-Position: refs/heads/master@{#27016}
-
- 03 Mar, 2015 1 commit
-
-
mstarzinger authored
R=jarin@chromium.org Review URL: https://codereview.chromium.org/960273002 Cr-Commit-Position: refs/heads/master@{#26957}
-
- 01 Oct, 2014 1 commit
-
-
svenpanne@chromium.org authored
These are some changes split off from https://codereview.chromium.org/422063005 frames-inl.h, frames.h based on https://github.com/andrewlow/v8ppc/commit/05db7d2d714c44bd4e0b710fdaa51d34938aaa27 On 64bit big endian systems, the integer value is in the second slot, thus we need a new offset. objects-inl.h, objects.h based on https://github.com/andrewlow/v8ppc/commit/09b680b2af7412fe8fa5a3a01f1b8e29698d7797 Similarly, the hash slot is an integer field and we need to do the right thing on 64bit big endian systems objects.cc based on: https://github.com/andrewlow/v8ppc/commit/065742b0783b0705d9f9711198248a92bac11d85 Prettier printing of constant pools test-strings.cc based on: https://github.com/andrewlow/v8ppc/commit/9889d60cd6e68e0d248c4a362ffdff0755b92aec endian fixes BUG= R=svenpanne@chromium.org Review URL: https://codereview.chromium.org/551803004 Patch from Andrew Low <andrew_low@ca.ibm.com>. git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24365 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 04 Aug, 2014 1 commit
-
-
bmeurer@chromium.org authored
This way we don't clash with the ASSERT* macros defined by GoogleTest, and we are one step closer to being able to replace our homegrown base/ with base/ from Chrome. R=jochen@chromium.org, svenpanne@chromium.org Review URL: https://codereview.chromium.org/430503007 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22812 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 08 Jul, 2014 1 commit
-
-
jkummerow@chromium.org authored
Also add IC tracing to a path where it was missing. R=jarin@chromium.org Review URL: https://codereview.chromium.org/368833003 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22268 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 03 Jun, 2014 1 commit
-
-
jochen@chromium.org authored
- this avoids using relative include paths which are forbidden by the style guide - makes the code more readable since it's clear which header is meant - allows for starting to use checkdeps BUG=none R=jkummerow@chromium.org, danno@chromium.org LOG=n Review URL: https://codereview.chromium.org/304153016 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21625 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 12 May, 2014 1 commit
-
-
yangguo@chromium.org authored
R=ulan@chromium.org Review URL: https://codereview.chromium.org/261253005 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21270 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 29 Apr, 2014 1 commit
-
-
bmeurer@chromium.org authored
R=svenpanne@chromium.org Review URL: https://codereview.chromium.org/259183002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@21035 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 21 Mar, 2014 1 commit
-
-
jochen@chromium.org authored
BUG=354405 R=ulan@chromium.org, rodolph.perfetta@arm.com LOG=y Review URL: https://codereview.chromium.org/207823003 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20148 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-