- 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}
-
- 12 Oct, 2015 1 commit
-
-
mbrandy authored
Port 2d4aeaad Original commit message: The stack manipulation was expensive. Two virtual registers are better. R=mvstanton@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, dstence@us.ibm.com BUG= Review URL: https://codereview.chromium.org/1390343004 Cr-Commit-Position: refs/heads/master@{#31213}
-
- 05 Oct, 2015 1 commit
-
-
mbrandy authored
Port 75f6ad74 Original commit message: 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. R=rmcilroy@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, dstence@us.ibm.com BUG=v8:4280 LOG=N Review URL: https://codereview.chromium.org/1384483004 Cr-Commit-Position: refs/heads/master@{#31098}
-
- 30 Sep, 2015 1 commit
-
-
mbrandy authored
Port 9b12ec9a Original commit message: 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=mstarzinger@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, dstence@us.ibm.com BUG= Review URL: https://codereview.chromium.org/1376303002 Cr-Commit-Position: refs/heads/master@{#31033}
-
- 18 Sep, 2015 1 commit
-
-
mbrandy authored
Port 8016547c Original commit message: 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=bmeurer@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, dstence@us.ibm.com BUG= Review URL: https://codereview.chromium.org/1358553002 Cr-Commit-Position: refs/heads/master@{#30837}
-
- 14 Sep, 2015 1 commit
-
-
mbrandy authored
Port e7fb2339 Original commit message: 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. R=rmcilroy@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, dstence@us.ibm.com BUG=v8:4280 LOG=N Review URL: https://codereview.chromium.org/1345543002 Cr-Commit-Position: refs/heads/master@{#30721}
-
- 09 Sep, 2015 1 commit
-
-
mbrandy authored
Port db2ba190 Original commit message: 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). R=bmeurer@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, dstence@us.ibm.com BUG=v8:4413 LOG=n Review URL: https://codereview.chromium.org/1310303008 Cr-Commit-Position: refs/heads/master@{#30655}
-
- 28 Aug, 2015 1 commit
-
-
mbrandy authored
Port 09de997b Original commit message: 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=bmeurer@chromium.org, jyan@ca.ibm.com, dstence@us.ibm.com, joransiu@ca.ibm.com BUG=v8:4307 LOG=n Review URL: https://codereview.chromium.org/1310493004 Cr-Commit-Position: refs/heads/master@{#30449}
-
- 27 Aug, 2015 1 commit
-
-
mbrandy authored
Port 5d875a57 Original commit message: 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. R=bmeurer@chromium.org, jyan@ca.ibm.com, dstence@us.ibm.com, joransiu@ca.ibm.com BUG=v8:4376 LOG=n Review URL: https://codereview.chromium.org/1314263002 Cr-Commit-Position: refs/heads/master@{#30419}
-
- 26 Aug, 2015 1 commit
-
-
mbrandy authored
Port cd351559 R=mvstanton@chromium.org, jyan@ca.ibm.com, dstence@us.ibm.com, joransiu@ca.ibm.com BUG= Review URL: https://codereview.chromium.org/1319763004 Cr-Commit-Position: refs/heads/master@{#30393}
-
- 17 Aug, 2015 1 commit
-
-
mstarzinger authored
R=yangguo@chromium.org Review URL: https://codereview.chromium.org/1299563003 Cr-Commit-Position: refs/heads/master@{#30187}
-
- 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}
-
- 30 Jul, 2015 1 commit
-
-
mbrandy authored
Port 5dff4bdf Original commit message: 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. R=bmeurer@chromium.org, dstence@us.ibm.com, michael_dawson@ca.ibm.com BUG= NOTREECHECKS=true Review URL: https://codereview.chromium.org/1258273002 Cr-Commit-Position: refs/heads/master@{#29906}
-
- 27 Jul, 2015 1 commit
-
-
mbrandy authored
Port d6ee366d Original commit message: 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=bmeurer@chromium.org, dstence@us.ibm.com, michael_dawson@ca.ibm.com BUG=chromium:510694 LOG=n Review URL: https://codereview.chromium.org/1261473002 Cr-Commit-Position: refs/heads/master@{#29867}
-
- 23 Jul, 2015 2 commits
-
-
mbrandy authored
Port 3334b830 Original commit message; 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. R=mvstanton@chromium.org, dstence@us.ibm.com, michael_dawson@ca.ibm.com BUG= Review URL: https://codereview.chromium.org/1256563002 Cr-Commit-Position: refs/heads/master@{#29820}
-
mbrandy authored
Port 26ffee2c Original commit message: It's just the same as StoreTransitionDescriptor. R=mvstanton@chromium.org, dstence@us.ibm.com, michael_dawson@ca.ibm.com BUG= Review URL: https://codereview.chromium.org/1246143004 Cr-Commit-Position: refs/heads/master@{#29819}
-
- 16 Jul, 2015 1 commit
-
-
mbrandy authored
Port 1d9d8957 Original commit message: This changes the calling convention of the CallConstructStub to take the original constructor (i.e. new.target in JS-speak) in a register instead of magically via the operand stack. For optimizing compilers the operand stack doesn't exist, hence cannot be peeked into. R=mstarzinger@chromium.org, dstence@us.ibm.com, michael_dawson@ca.ibm.com BUG= Review URL: https://codereview.chromium.org/1230103004 Cr-Commit-Position: refs/heads/master@{#29702}
-
- 13 Jul, 2015 2 commits
-
-
mbrandy authored
PPC: This CL also adds hydrogen stubs for global loads and global stores, full-codegen and TurboFan now uses this machinery. Fix f87286e2 R=ishell@chromium.org, dstence@us.ibm.com, michael_dawson@ca.ibm.com Original commit message: Loads and stores to global vars are now made via property cell shortcuts installed into parent script context. BUG= Review URL: https://codereview.chromium.org/1228393005 Cr-Commit-Position: refs/heads/master@{#29619}
-
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 1 commit
-
-
mbrandy authored
Port 8f13b655 Original commit message: - 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. R=danno@chromium.org, dstence@us.ibm.com, michael_dawson@ca.ibm.com BUG= Review URL: https://codereview.chromium.org/1207253003 Cr-Commit-Position: refs/heads/master@{#29542}
-
- 01 Jul, 2015 1 commit
-
-
mbrandy authored
Port 7015fd20 Original commit message: 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. R=danno@chromium.org, dstence@us.ibm.com, michael_dawson@ca.ibm.com BUG= Review URL: https://codereview.chromium.org/1218463004 Cr-Commit-Position: refs/heads/master@{#29421}
-
- 24 Jun, 2015 1 commit
-
-
mbrandy authored
Port c019d7f4 Original commit message: - 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. R=danno@chromium.org, dstence@us.ibm.com, michael_dawson@ca.ibm.com BUG= Review URL: https://codereview.chromium.org/1206893002 Cr-Commit-Position: refs/heads/master@{#29257}
-
- 01 Jun, 2015 1 commit
-
-
erikcorry authored
When compiling on a laptop I like to concatenate the small test files. This makes a big difference to compile times. These changes make that easier. R=ulan@chromium.org BUG= Review URL: https://codereview.chromium.org/1163803002 Cr-Commit-Position: refs/heads/master@{#28742}
-
- 26 May, 2015 1 commit
-
-
mbrandy authored
Port a86384f1 Original commit message: Also introduce new interface descriptors for the trampoline and full versions of those stubs. Currently, the stubs aren't functional. R=mvstanton@chromium.org, dstence@us.ibm.com, michael_dawson@ca.ibm.com BUG= Review URL: https://codereview.chromium.org/1159483003 Cr-Commit-Position: refs/heads/master@{#28636}
-
- 20 May, 2015 1 commit
-
-
mbrandy authored
Port 09aaf003 R=mvstanton@chromium.org, dstence@us.ibm.com, michael_dawson@ca.ibm.com BUG= Review URL: https://codereview.chromium.org/1145223003 Cr-Commit-Position: refs/heads/master@{#28525}
-
- 12 May, 2015 1 commit
-
-
mbrandy authored
Port 3bce9c3a Original commit message: 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. R=mvstanton@chromium.org, dstence@us.ibm.com, michael_dawson@ca.ibm.com BUG= Review URL: https://codereview.chromium.org/1132743004 Cr-Commit-Position: refs/heads/master@{#28372}
-
- 11 May, 2015 1 commit
-
-
mbrandy authored
Port abc35080 Original commit message: 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. R=danno@chromium.org, dstence@us.ibm.com, michael_dawson@ca.ibm.com BUG= Review URL: https://codereview.chromium.org/1137033002 Cr-Commit-Position: refs/heads/master@{#28341}
-
- 06 May, 2015 1 commit
-
-
mbrandy authored
Port 7798548a Original commit message: typeof was implemented as a runtime function. Calling it in optimized code with a non-constant input becomes burdensome. R=mvstanton@chromium.org, dstence@us.ibm.com, michael_dawson@ca.ibm.com BUG= Review URL: https://codereview.chromium.org/1124243002 Cr-Commit-Position: refs/heads/master@{#28273}
-
- 30 Apr, 2015 1 commit
-
-
mbrandy authored
Port fb8e6136 Original commit message: We were deopting without learning anything. This is a rebase/reland of https://codereview.chromium.org/368263003 BUG= R=mvstanton@chromium.org, dstence@us.ibm.com, michael_dawson@ca.ibm.com Review URL: https://codereview.chromium.org/1113063002 Cr-Commit-Position: refs/heads/master@{#28177}
-
- 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}
-
- 05 Feb, 2015 1 commit
-
-
michael_dawson authored
Contribution of PowerPC port (continuation of 422063005, 817143002 and 866843003) This patch brings the ppc directories up to date with our repo. We have removed 5 individual optimizations which require changes in both the ppc and common directories so they can be more easily reviewed on their own in subsequent patches. Subsequent patches will cover: - individual optimizations for PPC (5) - remaining AIX changes not resolved by 4.8 compiler (4.8 is only recently available for AIX) - incremental updates required to ppc directories due to platform specific changes made in google repos while we complete the above steps. With the update there are still some timeouts seen when run in simulated mode which may be a result of the missing optimizations. Once we have the optimizations in we will review the simulation results and address/exclude tests as necessary so that the simulated runs are clean. new file: src/compiler/ppc/code-generator-ppc.cc new file: src/compiler/ppc/instruction-codes-ppc.h new file: src/compiler/ppc/instruction-selector-ppc.cc new file: src/compiler/ppc/linkage-ppc.cc modified: src/ic/ppc/handler-compiler-ppc.cc modified: src/ic/ppc/ic-compiler-ppc.cc modified: src/ic/ppc/ic-ppc.cc modified: src/ic/ppc/stub-cache-ppc.cc modified: src/ppc/assembler-ppc.cc modified: src/ppc/assembler-ppc.h modified: src/ppc/builtins-ppc.cc modified: src/ppc/code-stubs-ppc.cc modified: src/ppc/code-stubs-ppc.h modified: src/ppc/codegen-ppc.cc modified: src/ppc/constants-ppc.h modified: src/ppc/deoptimizer-ppc.cc modified: src/ppc/disasm-ppc.cc modified: src/ppc/full-codegen-ppc.cc modified: src/ppc/interface-descriptors-ppc.cc modified: src/ppc/lithium-codegen-ppc.cc modified: src/ppc/lithium-codegen-ppc.h modified: src/ppc/lithium-ppc.cc modified: src/ppc/lithium-ppc.h modified: src/ppc/macro-assembler-ppc.cc modified: src/ppc/macro-assembler-ppc.h modified: src/ppc/regexp-macro-assembler-ppc.cc modified: src/ppc/regexp-macro-assembler-ppc.h modified: src/ppc/simulator-ppc.cc modified: src/ppc/simulator-ppc.h new file: test/unittests/compiler/ppc/instruction-selector-ppc-unittest.cc R=danno@chromium.org, svenpanne@chromium.org BUG= Review URL: https://codereview.chromium.org/901083004 Cr-Commit-Position: refs/heads/master@{#26471}
-
- 11 Nov, 2014 1 commit
-
-
svenpanne@chromium.org authored
Technically, this is https://codereview.chromium.org/571173003/ from Andrew Low <andrew_low@ca.ibm.com>. TBR=bmeurer@chromium.org Review URL: https://codereview.chromium.org/714093002 Cr-Commit-Position: refs/heads/master@{#25255} git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25255 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 04 Nov, 2014 1 commit
-
-
balazs.kilvady@imgtec.com authored
Port 983ca3f1e7bd8cbba45684d5c1642cd495ca9bc1 Port r25107 TEST=unittests BUG= R=paul.lind@imgtec.com Review URL: https://codereview.chromium.org/699903002 Cr-Commit-Position: refs/heads/master@{#25118} git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25118 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
-
-
balazs.kilvady@imgtec.com authored
Port r23854 (3870059) Original commit message: Added CallInterfaceDescriptors to all code stubs. A handful 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. BUG= R=dusan.milosavljevic@imgtec.com Review URL: https://codereview.chromium.org/562153002 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23872 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 04 Sep, 2014 1 commit
-
-
akos.palfi@imgtec.com authored
Port r23652 (3bd900e4) BUG= R=paul.lind@imgtec.com Review URL: https://codereview.chromium.org/537753002 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23669 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 03 Sep, 2014 1 commit
-
-
balazs.kilvady@imgtec.com authored
Port r23639 (e5a2758) Original commit message: The ic-convention classes that hold register specifications are merged into these new call descriptor classes, which should represent a final home for that information. BUG= R=paul.lind@imgtec.com Review URL: https://codereview.chromium.org/538573002 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23666 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-