- 08 Jan, 2016 1 commit
-
-
rmcilroy authored
Adds support for calling runtime functions which return a pair of values. Adds the bytecode CallRuntimePair. Also adds support to TurboFan for calling stubs which return multiple values. BUG=v8:4280 LOG=N Review URL: https://codereview.chromium.org/1568493002 Cr-Commit-Position: refs/heads/master@{#33181}
-
- 05 Jan, 2016 1 commit
-
-
mvstanton authored
R=bmeurer@chromium.org BUG= Review URL: https://codereview.chromium.org/1557883002 Cr-Commit-Position: refs/heads/master@{#33105}
-
- 11 Dec, 2015 1 commit
-
-
bmeurer authored
Remove unused obsolete %_StringGetStringLength intrinsic, and properly optimize the %_SubString, %_RegExpExec, %_RegExpFlags, %_RegExpSource and %_RegExpConstructResult intrinsics. Review URL: https://codereview.chromium.org/1516753006 Cr-Commit-Position: refs/heads/master@{#32782}
-
- 10 Dec, 2015 1 commit
-
-
bmeurer authored
Lower JSCallConstruct with known target JSFunction to a direct call to the target's construct_stub, and JSCallConstruct with function target to direct call to ConstructFunction builtin. R=jarin@chromium.org Review URL: https://codereview.chromium.org/1517593003 Cr-Commit-Position: refs/heads/master@{#32735}
-
- 04 Dec, 2015 1 commit
-
-
bmeurer authored
Revert of Provide call counts for constructor calls, surface them as a vector IC. (patchset #4 id:60001 of https://codereview.chromium.org/1476413003/ ) Reason for revert: Seems to be (mostly) responsible for the most recent Speedometer regression, not 100% sure. Let's see what the bots have to say. Original issue's description: > Provide call counts for constructor calls, surface them as a vector IC. > > CallIC and CallConstructStub look so alike, at least in the feedback they gather even if the implementation differs...and CallIC has such a nice way of surfacing the feedback (CallICNexus), that there is a request to make CallConstructStub look analogous. Enter ConstructICStub. > > BUG= > > Committed: https://crrev.com/66d5a9df62da458a51e8c7ed1811dc9660f4f418 > Cr-Commit-Position: refs/heads/master@{#32452} TBR=mvstanton@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG= Review URL: https://codereview.chromium.org/1489413006 Cr-Commit-Position: refs/heads/master@{#32599}
-
- 02 Dec, 2015 1 commit
-
-
bmeurer authored
Also remove the ResultMode from ToBooleanStub and always return true or false and use the same mechanism in fullcodegen. This is in preparation for adding ToBoolean hints to TurboFan. Drive-by-fix: We can use the power of the ToBooleanIC in TurboFan now that the ResultMode is gone (and the runtime always returns true or false from the miss handler). R=mstarzinger@chromium.org BUG=v8:4583 LOG=n Review URL: https://codereview.chromium.org/1491223002 Cr-Commit-Position: refs/heads/master@{#32524}
-
- 01 Dec, 2015 1 commit
-
-
mvstanton authored
CallIC and CallConstructStub look so alike, at least in the feedback they gather even if the implementation differs...and CallIC has such a nice way of surfacing the feedback (CallICNexus), that there is a request to make CallConstructStub look analogous. Enter ConstructICStub. BUG= Review URL: https://codereview.chromium.org/1476413003 Cr-Commit-Position: refs/heads/master@{#32452}
-
- 25 Nov, 2015 1 commit
-
-
bmeurer authored
This is the initial step towards refactoring the regexp literation creation code to make it less obscure and more similar to the mechanism we use to create array and object literals. There's now a new runtime entry %CreateRegExpLiteral with the same interface as the entries for array and object literals, except that we still pass the flags as string. Instead of embedding the hand written native to clone JSRegExp instances we now have a FastCloneRegExpStub, which behaves similar to the other FastCloneShallowArrayStub and FastCloneShallowObjectStub that we already had. R=mlippautz@chromium.org, yangguo@chromium.org Review URL: https://codereview.chromium.org/1475823003 Cr-Commit-Position: refs/heads/master@{#32255}
-
- 23 Nov, 2015 1 commit
-
-
bmeurer authored
There's no point in collecting feedback for super constructor calls, because in all (interesting) cases we can gather (better) feedback from other sources (i.e. via inlining or via using a LOAD_IC to get to the [[Prototype]] of the target). So CallConstructStub is now only used for new Foo(...args) sites where we want to collect feedback in the baseline compiler. The optimizing compilers, Reflect.construct and super constructor calls use the Construct builtin directly, which allows us to remove some weird code from the CallConstructStub (and opens the possibility for more code sharing with the CallICStub, maybe even going for a ConstructICStub). Also remove the 100% redundant HCallNew instruction, which is just a wrapper for the Construct builtin anyway (indirectly via the CallConstructStub). Drive-by-fix: Drop unused has_function_cache bit on Code objects. R=mstarzinger@chromium.org, yangguo@chromium.org BUG=v8:4413, v8:4430 LOG=n Review URL: https://codereview.chromium.org/1469793002 Cr-Commit-Position: refs/heads/master@{#32172}
-
- 09 Nov, 2015 1 commit
-
-
bmeurer authored
Introduce receiver conversion mode specialization for the Call and CallFunction builtins, so we can specialize the builtin functionality (actually an optimization only) based on static information from the callsite (this is basically a superset of the optimizations that were available with the CallFunctionStub and CallICStub, except that these optimizations are correct now). This fixes a regression introduced by the removal of CallFunctionStub, for programs that call a lot. R=yangguo@chromium.org BUG=chromium:552244 LOG=n Review URL: https://codereview.chromium.org/1436493002 Cr-Commit-Position: refs/heads/master@{#31871}
-
- 05 Nov, 2015 2 commits
-
-
bmeurer authored
This inserts a new bit set type Function, which is used to represent JSFunctions, and uses that type in typed lowering to optimize calls to use the CallFunction builtin directly. Also allows for better typing of the typeof operator, which can infern "function" for JSFunctions properly. R=jarin@chromium.org Review URL: https://codereview.chromium.org/1410343016 Cr-Commit-Position: refs/heads/master@{#31827}
-
verwaest authored
This fixes receiver conversion since the Call builtin does it correctly. BUG=v8:4526 LOG=n Review URL: https://codereview.chromium.org/1407373007 Cr-Commit-Position: refs/heads/master@{#31823}
-
- 04 Nov, 2015 2 commits
-
-
bmeurer authored
Use the Call builtin instead, which does the right thing(TM) always, especially since the CallFunctionStub is going away. R=jarin@chromium.org BUG=v8:4413 LOG=n Review URL: https://codereview.chromium.org/1410853007 Cr-Commit-Position: refs/heads/master@{#31794}
-
bmeurer authored
Call directly into the ArgumentsAdaptorTrampoline when we call a known JSFunction, but that actual argument count doesn't match the expected argument count. R=jarin@chromium.org Review URL: https://codereview.chromium.org/1417213004 Cr-Commit-Position: refs/heads/master@{#31781}
-
- 30 Oct, 2015 1 commit
-
-
bmeurer authored
This introduces an AllocateMutableHeapNumberStub for the boxed double field case, where we need to allocate a box in case of a transitioning store first. We cannot use our inline allocations for this currently, because mutable HeapNumber objects have certain alignment constraints, and I don't want to mess up Allocate/AllocateInNewSpace eagerly. Also refactor the PropertyAccessInfoFactory slightly to split the long methods into simpler parts. R=jarin@chromium.org BUG=v8:4470 LOG=n Review URL: https://codereview.chromium.org/1419173007 Cr-Commit-Position: refs/heads/master@{#31695}
-
- 27 Oct, 2015 1 commit
-
-
bmeurer authored
Change CompareNilIC to return true/false instead of 1/0, and use the CompareNilICStub in TurboFan for abstract equality with null/undefined. This way we don't always run into the %Equals runtime fallback when comparing objects with null/undefined. R=jarin@chromium.org Review URL: https://codereview.chromium.org/1417503008 Cr-Commit-Position: refs/heads/master@{#31596}
-
- 22 Oct, 2015 1 commit
-
-
ishell authored
Remove support for "loads and stores to global vars through property cell shortcuts installed into parent script context" from all compilers. The plan is to implement the same idea using vector IC machinery. Stubs implementations and scopes modifications are left untouched for now. Review URL: https://codereview.chromium.org/1419823003 Cr-Commit-Position: refs/heads/master@{#31458}
-
- 19 Oct, 2015 2 commits
-
-
jarin authored
Review URL: https://codereview.chromium.org/1412153002 Cr-Commit-Position: refs/heads/master@{#31372}
-
bmeurer authored
Use %_ToLength for TO_LENGTH, implemented via a ToLengthStub that supports a fast path for small integers. Everything else is still handled in the runtime. CQ_INCLUDE_TRYBOTS=tryserver.v8:v8_linux_nosnap_rel BUG=v8:4494 LOG=n Review URL: https://codereview.chromium.org/1412963002 Cr-Commit-Position: refs/heads/master@{#31358}
-
- 16 Oct, 2015 1 commit
-
-
jarin authored
The stub is used for Turbofan's fast path allocation. Review URL: https://codereview.chromium.org/1404773002 Cr-Commit-Position: refs/heads/master@{#31326}
-
- 15 Oct, 2015 3 commits
-
-
oth authored
This change add a new bytecode for operator new and implements it using the Construct() builtin. BUG=v8:4280 LOG=N Committed: https://crrev.com/8e4f9963d53913eab7fbd2f61a5733d8dc2169e7 Cr-Commit-Position: refs/heads/master@{#31293} Review URL: https://codereview.chromium.org/1402943002 Cr-Commit-Position: refs/heads/master@{#31312}
-
machenbach authored
Revert of [Interpreter] Support for operator new. (patchset #17 id:290001 of https://codereview.chromium.org/1402943002/ ) Reason for revert: [Sheriff] Breaks arm64 debug: http://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20arm64%20-%20sim%20-%20debug/builds/4595 Original issue's description: > [Interpreter] Support for operator new. > > This change add a new bytecode for operator new and implements it using > the Construct() builtin. > > BUG=v8:4280 > LOG=N > > Committed: https://crrev.com/8e4f9963d53913eab7fbd2f61a5733d8dc2169e7 > Cr-Commit-Position: refs/heads/master@{#31293} TBR=rmcilroy@chromium.org,bmeurer@chromium.org,oth@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:4280 Review URL: https://codereview.chromium.org/1402153004 Cr-Commit-Position: refs/heads/master@{#31298}
-
oth authored
This change add a new bytecode for operator new and implements it using the Construct() builtin. BUG=v8:4280 LOG=N Review URL: https://codereview.chromium.org/1402943002 Cr-Commit-Position: refs/heads/master@{#31293}
-
- 02 Oct, 2015 6 commits
-
-
rmcilroy authored
Adds support for calling runtime functions from the interpreter. Adds the CallRuntime bytecode which takes a Runtime::FunctionId of the function to call and the arguments in sequential registers. Adds a InterpreterCEntry builtin to enable the interpreter to enter C++ code based on the functionId. Also renames Builtin::PushArgsAndCall to Builtin::InterpreterPushArgsAndCall and groups all the interpreter builtins together. BUG=v8:4280 LOG=N Review URL: https://codereview.chromium.org/1362383002 Cr-Commit-Position: refs/heads/master@{#31089}
-
rmcilroy authored
Revert of [Interpreter] Add CallRuntime support to the interpreter. (patchset #8 id:220001 of https://codereview.chromium.org/1362383002/ ) Reason for revert: Now breaking arm32 debug bot (worked locally even with --debug-code, so I'll need to figure out what's different on the bot) Original issue's description: > [Interpreter] Add CallRuntime support to the interpreter. > > Adds support for calling runtime functions from the interpreter. Adds the > CallRuntime bytecode which takes a Runtime::FunctionId of the function to call > and the arguments in sequential registers. Adds a InterpreterCEntry builtin > to enable the interpreter to enter C++ code based on the functionId. > > Also renames Builtin::PushArgsAndCall to Builtin::InterpreterPushArgsAndCall > and groups all the interpreter builtins together. > > BUG=v8:4280 > LOG=N > TBR=bmeurer@chromium.org,oth@chromium.org,mstarzinger@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:4280 Review URL: https://codereview.chromium.org/1379933003 Cr-Commit-Position: refs/heads/master@{#31078}
-
rmcilroy authored
Adds support for calling runtime functions from the interpreter. Adds the CallRuntime bytecode which takes a Runtime::FunctionId of the function to call and the arguments in sequential registers. Adds a InterpreterCEntry builtin to enable the interpreter to enter C++ code based on the functionId. Also renames Builtin::PushArgsAndCall to Builtin::InterpreterPushArgsAndCall and groups all the interpreter builtins together. BUG=v8:4280 LOG=N Committed: https://crrev.com/40e8424b744f8b6e3e1d93e20f23487419911dfc Cr-Commit-Position: refs/heads/master@{#31064} Review URL: https://codereview.chromium.org/1362383002 Cr-Commit-Position: refs/heads/master@{#31076}
-
mstarzinger authored
This lowers JSCreateFunctionContext nodes to call the above stub for help with allocating function contexts when possible. It also contains an implementation for inlined allocations of such contexts, which is still behind a flag until inlined allocations are ready for prime time. TEST=unittests/JSTypedLoweringTest.JSCreateFunctionContext R=mvstanton@chromium.org Review URL: https://codereview.chromium.org/1380113002 Cr-Commit-Position: refs/heads/master@{#31068}
-
rmcilroy authored
Revert of [Interpreter] Add CallRuntime support to the interpreter. (patchset #6 id:180001 of https://codereview.chromium.org/1362383002/ ) Reason for revert: Broke Arm64 bot (CEntry stub is trying to pop arguments off stack when argv_in_reg, so I need to fix this). Original issue's description: > [Interpreter] Add CallRuntime support to the interpreter. > > Adds support for calling runtime functions from the interpreter. Adds the > CallRuntime bytecode which takes a Runtime::FunctionId of the function to call > and the arguments in sequential registers. Adds a InterpreterCEntry builtin > to enable the interpreter to enter C++ code based on the functionId. > > Also renames Builtin::PushArgsAndCall to Builtin::InterpreterPushArgsAndCall > and groups all the interpreter builtins together. > > BUG=v8:4280 > LOG=N > > Committed: https://crrev.com/40e8424b744f8b6e3e1d93e20f23487419911dfc > Cr-Commit-Position: refs/heads/master@{#31064} TBR=bmeurer@chromium.org,oth@chromium.org,mstarzinger@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:4280 Review URL: https://codereview.chromium.org/1387543002 Cr-Commit-Position: refs/heads/master@{#31066}
-
rmcilroy authored
Adds support for calling runtime functions from the interpreter. Adds the CallRuntime bytecode which takes a Runtime::FunctionId of the function to call and the arguments in sequential registers. Adds a InterpreterCEntry builtin to enable the interpreter to enter C++ code based on the functionId. Also renames Builtin::PushArgsAndCall to Builtin::InterpreterPushArgsAndCall and groups all the interpreter builtins together. BUG=v8:4280 LOG=N Review URL: https://codereview.chromium.org/1362383002 Cr-Commit-Position: refs/heads/master@{#31064}
-
- 24 Sep, 2015 1 commit
-
-
mstarzinger authored
This lowers JSCreateArgument nodes to call the ArgumentsAccessStub for help with materializing arguments objects when possible. Along the way this changes the calling convention of said stub to take parameters in registers instead of on the stack. R=mvstanton@chromium.org Review URL: https://codereview.chromium.org/1348773002 Cr-Commit-Position: refs/heads/master@{#30919}
-
- 18 Sep, 2015 1 commit
-
-
bmeurer authored
The StringCompareStub used to take its parameters on the (JavaScript) stack, which made it impossible to use in TurboFan. Actually StringCompareStub was currently completely unused. This changes the calling convention to something TurboFan compatible and introduces a CallInterfaceDescriptor for StringCompareStub. It also changes HStringCompareAndBranch to use the StringCompareStub instead of using the full blown CompareICStub for a stupid string comparison. R=jarin@chromium.org Review URL: https://codereview.chromium.org/1347913003 Cr-Commit-Position: refs/heads/master@{#30818}
-
- 14 Sep, 2015 1 commit
-
-
rmcilroy authored
Adds support for JS calls to the interpreter. In order to support calls from the interpreter, the PushArgsAndCall builtin is added which pushes a sequence of arguments onto the stack and calls builtin::Call. Adds the Call bytecode. MIPS port contributed by akos.palfi@imgtec.com in https://codereview.chromium.org/1334873002/ BUG=v8:4280 LOG=N Review URL: https://codereview.chromium.org/1323463005 Cr-Commit-Position: refs/heads/master@{#30710}
-
- 28 Aug, 2015 1 commit
-
-
bmeurer authored
This adds a new ToString runtime function and a fast-path ToStringStub (which is just a simple dispatcher for existing functionality), and also implements %_ToName using the ToStringStub. R=mstarzinger@chromium.org, yangguo@chromium.org BUG=v8:4307 LOG=n Review URL: https://codereview.chromium.org/1319973007 Cr-Commit-Position: refs/heads/master@{#30442}
-
- 25 Aug, 2015 1 commit
-
-
bmeurer authored
The previous hack with HInstanceOfKnownGlobal was not only slower, but also very brittle and required a lot of weird hacks to support it. And what's even more important it wasn't even correct (because a map check on the lhs is never enough for instanceof). The new implementation provides a sane runtime implementation for InstanceOf plus a fast case in the InstanceOfStub, combined with a proper specialization in the case of a known global in CrankShaft, which does only the prototype chain walk (coupled with a code dependency on the known global). As a drive-by-fix: Also fix the incorrect Object.prototype.isPrototypeOf implementation. BUG=v8:4376 LOG=y Review URL: https://codereview.chromium.org/1304633002 Cr-Commit-Position: refs/heads/master@{#30342}
-
- 31 Jul, 2015 1 commit
-
-
bmeurer authored
This is the initial (big) step towards a more uniform implementation of the ToObject abstract operation (ES6 7.1.13), where we have a fallback implementation in JSReceiver::ToObject() and a fast (hydrogen) CodeStub to deal with the fast case (we should be able to do more cleanup on this in a followup CL). For natives we expose the abstract operation via a %_ToObject intrinsic, also exposed via a macro TO_OBJECT, that unifies the previous confusion with TO_OBJECT_INLINE, ToObject, TO_OBJECT, $toObject and %$toObject. Now the whole implementation of the abstract operation is context independent, meaning we don't need any magic in the builtins object nor the native context. R=mvstanton@chromium.org,yangguo@chromium.org Review URL: https://codereview.chromium.org/1266013006 Cr-Commit-Position: refs/heads/master@{#29953}
-
- 13 Jul, 2015 2 commits
-
-
ishell authored
NON_CONTEXTUAL ~> INSIDE_TYPEOF CONTEXTUAL ~> NOT_INSIDE_TYPEOF Review URL: https://codereview.chromium.org/1227893005 Cr-Commit-Position: refs/heads/master@{#29611}
-
ishell authored
Loads and stores to global vars are now made via property cell shortcuts installed into parent script context. This CL also adds hydrogen stubs for global loads and global stores, full-codegen and TurboFan now uses this machinery. Review URL: https://codereview.chromium.org/1224793002 Cr-Commit-Position: refs/heads/master@{#29592}
-
- 30 Jun, 2015 1 commit
-
-
conradw authored
Revert "Revert relanded strong property access CL" Regression issues should be solved. Initial patchset is the original, subsequent patchsets are the fixing modifications. This reverts commit 4ac7be56. BUG=v8:3956 LOG=N Review URL: https://codereview.chromium.org/1199983002 Cr-Commit-Position: refs/heads/master@{#29384}
-
- 26 Jun, 2015 1 commit
-
-
mvstanton authored
BUG= Review URL: https://codereview.chromium.org/1209903003 Cr-Commit-Position: refs/heads/master@{#29310}
-
- 22 Jun, 2015 1 commit
-
-
mstarzinger authored
R=mvstanton@chromium.org TEST=cctest/test-run-jsops/BinopInstanceOf Review URL: https://codereview.chromium.org/1196213004 Cr-Commit-Position: refs/heads/master@{#29187}
-