- 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}
-
- 08 Sep, 2015 1 commit
-
-
bmeurer authored
The semantics of the %_CallFunction intrinsic seem to be very unclear, which resulted in a lot of bugs. Especially the combination with %IsSloppyModeFunction is always a bug, because the receiver would be wrapped in the wrong context. So the %IsSloppyModeFunction helper is gone now, and many of the buggy uses of %_CallFunction are also eliminated. If you ever need to call something with a different receiver, then %_Call is your friend now. It does what you want and implements the call sequence fully (and correct). BUG=v8:4413 LOG=n Review URL: https://codereview.chromium.org/1325573004 Cr-Commit-Position: refs/heads/master@{#30634}
-
- 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}
-
- 21 Aug, 2015 1 commit
-
-
mvstanton authored
BUG= Review URL: https://codereview.chromium.org/1292173003 Cr-Commit-Position: refs/heads/master@{#30284}
-
- 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}
-
- 28 Jul, 2015 1 commit
-
-
bmeurer authored
No need to pass the name explicitly to the stubs; the runtime can extract the name from the ScopeInfo (the extension of the ScriptContext) on-demand easily without any performance impact. Review URL: https://codereview.chromium.org/1259963002 Cr-Commit-Position: refs/heads/master@{#29886}
-
- 24 Jul, 2015 1 commit
-
-
bmeurer authored
This is the initial round of optimizations for the LoadGlobalViaContextStub and StoreGlobalViaContextStub, basically turning them into platform code stubs to avoid the Crankshaft overhead in the fast case, and making the runtime interface cheaper. R=ishell@chromium.org BUG=chromium:510694 LOG=n Review URL: https://codereview.chromium.org/1238143002 Cr-Commit-Position: refs/heads/master@{#29834}
-
- 23 Jul, 2015 1 commit
-
-
mvstanton authored
All of this is controlled by the CallDescriptor. It's simply the case that if you specify less registers than the function arity calls for, the rest are assumed to be on the stack. Bailout handlers accept these constant stack arguments too. BUG= Review URL: https://codereview.chromium.org/1250563004 Cr-Commit-Position: refs/heads/master@{#29813}
-
- 22 Jul, 2015 1 commit
-
-
mvstanton authored
It's just the same as StoreTransitionDescriptor. BUG= Review URL: https://codereview.chromium.org/1248973002 Cr-Commit-Position: refs/heads/master@{#29789}
-
- 13 Jul, 2015 2 commits
-
-
rmcilroy authored
Review URL: https://codereview.chromium.org/1221433021 Cr-Commit-Position: refs/heads/master@{#29604}
-
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}
-
- 08 Jul, 2015 3 commits
-
-
danno authored
- Add a TurboFanIC class, derived from TurboFanCodeStub, that automatically distinguishes between versions of the IC called from optimized and unoptimized code. - Add appropriate InterfaceDescriptors for both the versions of the stub called from unoptimized and optimized code - Change the MathFloor TF stub generator to output either the for-optimized or for-unoptimized version based on the minor_key parameter. Committed: https://crrev.com/8f13b655b8a10dae2116dd18b32f09337bb2d410 Cr-Commit-Position: refs/heads/master@{#29534} Review URL: https://codereview.chromium.org/1225943002 Cr-Commit-Position: refs/heads/master@{#29539}
-
danno authored
Revert of Add unoptimized/optimized variants of MathFloor TF code stub (patchset #4 id:60001 of https://codereview.chromium.org/1225943002/) Reason for revert: Failure on compiling runtime.js on windows Original issue's description: > Add unoptimized/optimized variants of MathFloor TF code stub > > - Add a TurboFanIC class, derived from TurboFanCodeStub, that > automatically distinguishes between versions of the IC called from > optimized and unoptimized code. > - Add appropriate InterfaceDescriptors for both the versions of the > stub called from unoptimized and optimized code > - Change the MathFloor TF stub generator to output either the > for-optimized or for-unoptimized version based on the minor_key > parameter. > > Committed: https://crrev.com/8f13b655b8a10dae2116dd18b32f09337bb2d410 > Cr-Commit-Position: refs/heads/master@{#29534} TBR=mvstanton@chromium.org,bmeurer@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review URL: https://codereview.chromium.org/1220783006 Cr-Commit-Position: refs/heads/master@{#29535}
-
danno authored
- Add a TurboFanIC class, derived from TurboFanCodeStub, that automatically distinguishes between versions of the IC called from optimized and unoptimized code. - Add appropriate InterfaceDescriptors for both the versions of the stub called from unoptimized and optimized code - Change the MathFloor TF stub generator to output either the for-optimized or for-unoptimized version based on the minor_key parameter. Review URL: https://codereview.chromium.org/1225943002 Cr-Commit-Position: refs/heads/master@{#29534}
-
- 01 Jul, 2015 1 commit
-
-
danno authored
Up until now the context register was listed explicitly in each stub's CallInterfaceDescriptor. This was problematic, because it was listed first in the list of register parameters--which is fine for Crankshaft, which is more or less built to handle the context as the first parameter-- but not ideal for TurboFan, which adds the context at the end of all function parameters. Now the context register is no longer in the register list and can be handled appropriately by both compilers. Specifically, this allows the FunctionType specified for each CallInterfaceDescriptor to exactly match the parameter register list. Review URL: https://codereview.chromium.org/1211333003 Cr-Commit-Position: refs/heads/master@{#29402}
-
- 24 Jun, 2015 1 commit
-
-
danno authored
- Thread Type::FunctionType through stubs and the TF pipeline. - Augment Typer to decorate parameter nodes with types from a Type::FunctionType associated with interface descriptors. - Factor interface descriptors into platform-specific and platform-independent components so that all descriptors share a common Type::FunctionType for all platforms. Review URL: https://codereview.chromium.org/1197703002 Cr-Commit-Position: refs/heads/master@{#29248}
-
- 22 May, 2015 1 commit
-
-
mvstanton authored
Also introduce new interface descriptors for the trampoline and full versions of those stubs. Currently, the stubs aren't functional. BUG= Review URL: https://codereview.chromium.org/1149903005 Cr-Commit-Position: refs/heads/master@{#28597}
-
- 20 May, 2015 1 commit
-
-
mvstanton authored
Also removed ornamentation like "VectorRaw" from stub names. BUG= Review URL: https://codereview.chromium.org/1144063002 Cr-Commit-Position: refs/heads/master@{#28516}
-
- 12 May, 2015 1 commit
-
-
mvstanton authored
HMaybeGrowElements moves the situation where you actually have to grow into deferred code. This means crankshaft doesn't have to spill registers just to make the bounds comparison to see if it'll need to grow or not. It makes the growing case a bit more expensive, but reduces the cost of the general case. BUG=chromium:484025 LOG=N Review URL: https://codereview.chromium.org/1124443004 Cr-Commit-Position: refs/heads/master@{#28359}
-
- 11 May, 2015 1 commit
-
-
danno authored
This stub will be used as the basis of a Math.floor-specific CallIC to detect and track calls to floor that return -0. Along the way: - Create a TurboFanCodeStub super class from which the StringLength and MathRound TF stubs derive. - Fix the ugly hack that passes the first stub parameter as the "this" pointer in the the TF-compiled JS function. - Fix bugs in the ia32/x64 disassembler. Review URL: https://codereview.chromium.org/1137703002 Cr-Commit-Position: refs/heads/master@{#28339}
-
- 06 May, 2015 1 commit
-
-
mvstanton authored
typeof was implemented as a runtime function. Calling it in optimized code with a non-constant input becomes burdensome. BUG= Review URL: https://codereview.chromium.org/1114563003 Cr-Commit-Position: refs/heads/master@{#28260}
-
- 30 Apr, 2015 1 commit
-
-
mvstanton authored
We were deopting without learning anything. This is a rebase/reland of https://codereview.chromium.org/368263003 BUG=v8:3417 LOG=N Review URL: https://codereview.chromium.org/1109333003 Cr-Commit-Position: refs/heads/master@{#28163}
-
- 19 Mar, 2015 1 commit
-
-
bmeurer authored
R=jarin@chromium.org Review URL: https://codereview.chromium.org/1006173003 Cr-Commit-Position: refs/heads/master@{#27305}
-
- 04 Feb, 2015 1 commit
-
-
mvstanton authored
The first try failed because I needed to make a better distinction between clearing ICs according to policy at GC time or unconditional clearing (say, via %ClearFunctionTypeFeedback). It was also blocked by an issue in super constructor calls. This fix (https://codereview.chromium.org/892113002/) needs to land before checking in this CL. R=ulan@chromium.org Review URL: https://codereview.chromium.org/866493003 Cr-Commit-Position: refs/heads/master@{#26420}
-
- 29 Jan, 2015 2 commits
-
-
machenbach authored
Revert of Use a WeakCell in the CallIC type vector. (patchset #4 id:80001 of https://codereview.chromium.org/881433002/) Reason for revert: Breaks a regression test on linux isloates, and linux with gcc 4.8. Original issue's description: > Use a WeakCell in the CallIC type vector. > > This allows us to clear the IC on a more sedate schedule, just > like Load and Store ICs. > > R=ulan@chromium.org > BUG= > > Committed: https://crrev.com/bcc79d33ca6d97d9ecfcfcf110a6ea84a0225389 > Cr-Commit-Position: refs/heads/master@{#26332} TBR=ulan@chromium.org,mvstanton@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG= Review URL: https://codereview.chromium.org/886663004 Cr-Commit-Position: refs/heads/master@{#26334}
-
mvstanton authored
This allows us to clear the IC on a more sedate schedule, just like Load and Store ICs. R=ulan@chromium.org BUG= Review URL: https://codereview.chromium.org/881433002 Cr-Commit-Position: refs/heads/master@{#26332}
-
- 27 Jan, 2015 1 commit
-
-
mvstanton authored
BUG= Review URL: https://codereview.chromium.org/871063002 Cr-Commit-Position: refs/heads/master@{#26290}
-
- 16 Jan, 2015 1 commit
-
-
dcarney authored
BUG= Review URL: https://codereview.chromium.org/836093007 Cr-Commit-Position: refs/heads/master@{#26097}
-
- 19 Nov, 2014 1 commit
-
-
Michael Stanton authored
Due to performance issue. TBR=danno@chromium.org Review URL: https://codereview.chromium.org/735323002 Cr-Commit-Position: refs/heads/master@{#25421}
-
- 18 Nov, 2014 3 commits
-
-
Michael Stanton authored
Code was vulnerable to different evaluation order in Clang. R=danno@chromium.org Review URL: https://codereview.chromium.org/726693004 Cr-Commit-Position: refs/heads/master@{#25397}
-
Michael Stanton authored
This reverts commit d40204f8. TBR=danno@chromium.org Review URL: https://codereview.chromium.org/735653003 Cr-Commit-Position: refs/heads/master@{#25393}
-
Michael Stanton authored
We were deopting without learning anything. BUG=v8:3417 LOG=N R=danno@chromium.org Review URL: https://codereview.chromium.org/368263003 Cr-Commit-Position: refs/heads/master@{#25392}
-
- 04 Nov, 2014 1 commit
-
-
bmeurer@chromium.org authored
TEST=unittests R=mstarzinger@chromium.org Review URL: https://codereview.chromium.org/703473004 Cr-Commit-Position: refs/heads/master@{#25107} git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25107 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 30 Oct, 2014 1 commit
-
-
dcarney@chromium.org authored
T=jarin@chromium.org BUG= R=jarin@chromium.org Review URL: https://codereview.chromium.org/688633002 Cr-Commit-Position: refs/heads/master@{#25008} git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25008 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 30 Sep, 2014 1 commit
-
-
ishell@chromium.org authored
Hydrogenize (and share) part of StoreTransition handler as a StoreTransitionStub and StoreField handler simplification. R=yangguo@chromium.org Review URL: https://codereview.chromium.org/609463003 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24333 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 29 Sep, 2014 1 commit
-
-
ishell@chromium.org authored
R=yangguo@chromium.org Review URL: https://codereview.chromium.org/587203002 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24286 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 11 Sep, 2014 1 commit
-
-
mvstanton@chromium.org authored
of code stubs are too complex to be described this way, and they are encoded with the macro DEFINE_NULL_CALL_INTERFACE_DESCRIPTOR(). Along the way: * allowed inheritance of CallInterfaceDescriptors. * Defined static Register methods for some of the new CallInterfaceDescriptors. We could go a lot further here, but it doesn't have to be done immediately. * Added Representation arrays to some CallInterfaceDescriptors, especially where future hydrogen versions of the stubs could benefit from this knowledge. R=yangguo@chromium.org Review URL: https://codereview.chromium.org/551043005 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23854 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 08 Sep, 2014 1 commit
-
-
yangguo@chromium.org authored
R=mvstanton@chromium.org Review URL: https://codereview.chromium.org/552803002 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23778 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 03 Sep, 2014 1 commit
-
-
mvstanton@chromium.org authored
CallInterfaceDescriptors initialize themselves lazily. Soon we can also tear down the CodeStubInterfaceDescriptor explicit initialization step. R=yangguo@chromium.org Review URL: https://codereview.chromium.org/535103002 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23652 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-