- 23 Oct, 2015 18 commits
-
-
zhengxing.li authored
port f2f46aff (r31242). original commit message: The lack of a vector slot for the keyed store operation in filling in non-constant array literal properties led to undesirable contortions in compilers downwind of full-codegen. The use of a single slot to initialize all the array elements is sufficient. BUG= Review URL: https://codereview.chromium.org/1422443004 Cr-Commit-Position: refs/heads/master@{#31505}
-
zhengxing.li authored
port 2d4aeaad (r31204). original commit message: The stack manipulation was expensive. Two virtual registers are better. BUG= Review URL: https://codereview.chromium.org/1410573003 Cr-Commit-Position: refs/heads/master@{#31504}
-
zhengxing.li authored
port 9c8262f1 (r31120). original commit message: When calling into C++ builtins, we need to make sure that the argument count register contains the correct number of arguments, otherwise the CEntryStub will not be able to leave the stack in the correct state. BUG= Review URL: https://codereview.chromium.org/1418533009 Cr-Commit-Position: refs/heads/master@{#31503}
-
zhengxing.li authored
port 75f6ad74 (r31089). 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. BUG=v8:4280 LOG=N Review URL: https://codereview.chromium.org/1418213002 Cr-Commit-Position: refs/heads/master@{#31502}
-
neis authored
This is in preparation of implementing Reflect.set. R=rossberg BUG= Review URL: https://codereview.chromium.org/1394983005 Cr-Commit-Position: refs/heads/master@{#31501}
-
cbruni authored
BUG= Review URL: https://codereview.chromium.org/1419143003 Cr-Commit-Position: refs/heads/master@{#31500}
-
yangguo authored
This is in preparation of using it elsewhere. R=bmeurer@chromium.org Review URL: https://codereview.chromium.org/1408163003 Cr-Commit-Position: refs/heads/master@{#31499}
-
alph authored
BUG=v8:4406 LOG=N Review URL: https://codereview.chromium.org/1416053010 Cr-Commit-Position: refs/heads/master@{#31498}
-
akos.palfi authored
BUG= Review URL: https://codereview.chromium.org/1418693005 Cr-Commit-Position: refs/heads/master@{#31497}
-
mvstanton authored
This patch only treats non-private symbols as valid feedback, thus avoiding the need to switch to Oddballs for the feedback sentinels and avoiding breaking the use of private own symbols. Crankshaft will also optimize these symbol loads into a named load, just as it does for string keyed loads with type feedback. BUG= Review URL: https://codereview.chromium.org/1415333003 Cr-Commit-Position: refs/heads/master@{#31496}
-
jochen authored
BUG=none LOG=n R=verwaest@chromium.org Review URL: https://codereview.chromium.org/1410883006 Cr-Commit-Position: refs/heads/master@{#31495}
-
zhengxing.li authored
port 5cf1c0bc (r31087). original commit message: Previous to this patch, both the lithium and TurboFan register allocators tracked allocated registers by "indices", rather than the register codes used elsewhere in the runtime. This patch ensures that codes are used everywhere, and in the process cleans up a bunch of redundant code and adds more structure to how the set of allocatable registers is defined. Some highlights of changes: * TurboFan's RegisterConfiguration class moved to V8's top level so that it can be shared with Crankshaft. * Various "ToAllocationIndex" and related methods removed. * Code that can be easily shared between Register classes on different platforms is now shared. * The list of allocatable registers on each platform is declared as a list rather than implicitly via the register index <-> code mapping. additional comment: This patch must be work with CL https://codereview.chromium.org/1405673003/ and CL https://codereview.chromium.org/1413343002/ which provide the needed register allocation common code change in v8 for this CL BUG= Review URL: https://codereview.chromium.org/1410393004 Cr-Commit-Position: refs/heads/master@{#31494}
-
alph authored
BUG=v8:4406 LOG=N Review URL: https://codereview.chromium.org/1420653005 Cr-Commit-Position: refs/heads/master@{#31493}
-
chunyang.dai authored
Currently X87 turbofan backend use only one double register. But crankshaft needs to use more than 1 double register. The reason is that the X87 register is stack-based and the register allocator use the same algorithm for all registers. So the backend of X87 needs to maintain the X87 stack status between basic blocks during code generation. But for Turbofan backend, it can only handle discrete platform-related LIRs. It's difficult to maintain the x87 stack status during different basic blocks. So we use the register configuration selection mechanism to return different register configuration for X87 turbofan and crankshaft seperately. This CL is a follow-up of https://codereview.chromium.org/1405673003/. BUG= Review URL: https://codereview.chromium.org/1413343002 Cr-Commit-Position: refs/heads/master@{#31492}
-
bmeurer authored
R=jarin@chromium.org Review URL: https://codereview.chromium.org/1409933003 Cr-Commit-Position: refs/heads/master@{#31491}
-
alph authored
BUG=v8:4406 LOG=N Review URL: https://codereview.chromium.org/1420543003 Cr-Commit-Position: refs/heads/master@{#31490}
-
mvstanton authored
It doesn't fail on tip of tree, we'll investigate if it recurs. R=mstarzinger@chromium.org BUG=v8:4493 LOG=N Review URL: https://codereview.chromium.org/1416453004 Cr-Commit-Position: refs/heads/master@{#31489}
-
alph authored
BUG=v8:4406 LOG=N Review URL: https://codereview.chromium.org/1421733003 Cr-Commit-Position: refs/heads/master@{#31488}
-
- 22 Oct, 2015 22 commits
-
-
ahaas authored
R=titzer@chromium.org Review URL: https://codereview.chromium.org/1418183002 Cr-Commit-Position: refs/heads/master@{#31487}
-
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}
-
rmcilroy authored
Adds support for compound expressions for variables and named / keyed property assignments. BUG=v8:4280 LOG=N Review URL: https://codereview.chromium.org/1420503002 Cr-Commit-Position: refs/heads/master@{#31485}
-
rmcilroy authored
Adds support for count operations to the interpreter. Deals with count operations on locals, globals, context allocated variables and named and keyed properties. Adds the following bytecodes: ToNumber Inc Dec BUG=v8:4280 LOG=N TBR=mstarzinger@chromium.org Review URL: https://codereview.chromium.org/1416623003 Cr-Commit-Position: refs/heads/master@{#31484}
-
jkummerow authored
Review URL: https://codereview.chromium.org/1416053007 Cr-Commit-Position: refs/heads/master@{#31483}
-
rmcilroy authored
Unifies the global and unallocated variable type accesses given that --global_var_shortcuts is going away. Lda/StaGlobal is modified to use Load/StoreICs on the global object. The named LoadIC and StoreIC bytecodes are also modified so that they take a constant pool entry index for the name rather than a register, avoiding unecessary LdaConstant bytecodes to be emitted. BUG=v8:4280 LOG=N Review URL: https://codereview.chromium.org/1419003002 Cr-Commit-Position: refs/heads/master@{#31482}
-
yangguo authored
Review URL: https://codereview.chromium.org/1420473002 Cr-Commit-Position: refs/heads/master@{#31481}
-
verwaest authored
BUG=v8:3330 LOG=n Review URL: https://codereview.chromium.org/1415723005 Cr-Commit-Position: refs/heads/master@{#31480}
-
yangguo authored
R=littledan@chromium.org BUG=v8:4342 LOG=Y Committed: https://crrev.com/722719fe31fe7fd5bb50be6256b3581bb28a8169 Cr-Commit-Position: refs/heads/master@{#31390} Review URL: https://codereview.chromium.org/1412133002 Cr-Commit-Position: refs/heads/master@{#31479}
-
hpayer authored
Review URL: https://codereview.chromium.org/1416273003 Cr-Commit-Position: refs/heads/master@{#31478}
-
Benedikt Meurer authored
TBR=machenbach@chromium.org BUG=v8:4470 LOG=n Review URL: https://codereview.chromium.org/1414963004 . Cr-Commit-Position: refs/heads/master@{#31477}
-
chunyang.dai authored
register configurations currently. This CL provides a mechanism so that optimizing compilers can select different Register Configuration. BUG= Review URL: https://codereview.chromium.org/1405673003 Cr-Commit-Position: refs/heads/master@{#31476}
-
bmeurer authored
This slightly generalizes the current mechnanism for property loads to also deal with property stores (both monomorphic and polymorphic). It's still somewhat adhoc, but it already handles a lot of the interesting cases. We might want to wait for keyed accesses before we start refactoring to a more general solution. R=jarin@chromium.org BUG=v8:4470 LOG=n Review URL: https://codereview.chromium.org/1422573002 Cr-Commit-Position: refs/heads/master@{#31475}
-
jkummerow authored
BUG=v8:4507 LOG=y R=bmeurer@chromium.org Review URL: https://codereview.chromium.org/1409353005 Cr-Commit-Position: refs/heads/master@{#31474}
-
jkummerow authored
This reverts commit 581ead5c. Review URL: https://codereview.chromium.org/1413123004 Cr-Commit-Position: refs/heads/master@{#31473}
-
mstarzinger authored
R=bmeurer@chromium.org TEST=webkit/fast/js/toString-number Review URL: https://codereview.chromium.org/1410543007 Cr-Commit-Position: refs/heads/master@{#31472}
-
mstarzinger authored
This switches inlining back to use a temporary zone for parsing and analyzing inlinees. The inlinee graph however is still built in the same zone as the parent graph. R=bmeurer@chromium.org Review URL: https://codereview.chromium.org/1422503005 Cr-Commit-Position: refs/heads/master@{#31471}
-
yangguo authored
R=bmeurer@chromium.org Review URL: https://codereview.chromium.org/1417203003 Cr-Commit-Position: refs/heads/master@{#31470}
-
mstarzinger authored
This moves the bailout point in the JSInliner up to a point where it is still allowed to decide not to inline. Once the inlining decision has been recorded with CompilationInfo::AddInlinedFunction, we should not abort anymore. R=jarin@chromium.org Review URL: https://codereview.chromium.org/1410023006 Cr-Commit-Position: refs/heads/master@{#31469}
-
littledan authored
The patch in https://crrev.com/ddb5c2d999c5ee6e31c4a9599bb3ddb293cc3f49 moved all fractional digit settings to default values due to a coding error. These were not even correct default values, and users observed errors where percentages were written as "23.0%" instead of "23%". This patch fixes the setting propagation when appropriate and it changes the default max fractional digits of a percentage to 0, per spec. BUG=chromium:544122 R=mnita,jochen CC=hichris123,adamk LOG=Y Review URL: https://codereview.chromium.org/1420883002 Cr-Commit-Position: refs/heads/master@{#31468}
-
yangguo authored
R=cbruni@chromium.org Review URL: https://codereview.chromium.org/1413173003 Cr-Commit-Position: refs/heads/master@{#31467}
-
chunyang.dai authored
port 81ee94b6 (r31410). contributed by zhengxing.li@intel.com original commit message: additional comment: The original r31410 patch needs some additional changes for x87 1. The frames-x87.h is under src/x87 instead of src/crankshaft/x87 R=weiliang.lin@intel.com BUG= Review URL: https://codereview.chromium.org/1417193002 Cr-Commit-Position: refs/heads/master@{#31466}
-