- 09 Sep, 2015 9 commits
-
-
mbrandy authored
Port ccbb4ff0 Original commit message: The new Call and CallFunction builtins supersede the current CallFunctionStub (and CallIC magic) and will be the single bottleneck for all calling, including the currently special Function.prototype.call and Function.prototype.apply builtins, which had handwritten (and not fully compliant) versions of CallFunctionStub, and also the CallIC(s), which where also slightly different. This also reduces the overhead for API function calls, which is still unnecessary high, but let's do that step-by-step. This also fixes a bunch of cases where the implicit ToObject for sloppy receivers was done in the wrong context (in the caller context instead of the callee context), which basically meant that we allowed cross context access to %ObjectPrototype%. MIPS and MIPS64 ports contributed by akos.palfi@imgtec.com. 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/1327093002 Cr-Commit-Position: refs/heads/master@{#30656}
-
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}
-
mstarzinger authored
This makes the C++ fallback implementations for the two intrinsics, %Arguments and %ArgumentsLength composable with respect to inlining. Using deoptimization information gives us accurate data here. R=bmeurer@chromium.org TEST=mjsunit/regress/regress-4374 BUG=v8:4374 LOG=n Review URL: https://codereview.chromium.org/1328363002 Cr-Commit-Position: refs/heads/master@{#30654}
-
balazs.kilvady authored
Port ba7b6413 Original commit message: This CL makes do with a single dispatcher which inlines the special handling for the Array() call case, loading the allocation site found in the vector and calling the array constructor stub appropriately. BUG= Review URL: https://codereview.chromium.org/1324093005 Cr-Commit-Position: refs/heads/master@{#30653}
-
bmeurer authored
This has been dead code for quite a while now. R=mstarzinger@chromium.org Review URL: https://codereview.chromium.org/1314353006 Cr-Commit-Position: refs/heads/master@{#30652}
-
mstarzinger authored
R=bmeurer@chromium.org BUG=chromium:527364 LOG=n Review URL: https://codereview.chromium.org/1322203005 Cr-Commit-Position: refs/heads/master@{#30651}
-
jochen authored
BUG=none R=danno@chromium.org LOG=y Review URL: https://codereview.chromium.org/1308953011 Cr-Commit-Position: refs/heads/master@{#30650}
-
mvstanton authored
On a call to Array(), we patched a call ic. This CL makes do with a single dispatcher which inlines the special handling for the Array() call case, loading the allocation site found in the vector and calling the array constructor stub appropriately. BUG= Review URL: https://codereview.chromium.org/1332563003 Cr-Commit-Position: refs/heads/master@{#30649}
-
bmeurer authored
The number of actual arguments should always be available, there's no point in trying to optimize away a simple assignment of an immediate to a register before some calls. The main motivation is to have a consistent state at the beginning of every function. Currently the arguments register (i.e. rax or eax) either contains the number of arguments or some random garbage depending on whether the callsite decided that the callee might need the information or not. This causes trouble with runtime implementations of functions that do not set internal_formal_parameter_count to the DontAdaptArguments sentinel (we don't have any of those yet), but also makes it impossible to sanity check the arguments in the callee, because the callee doesn't know whether the caller decided to pass the number of arguments or random garbage. BUG=v8:4413 LOG=n Review URL: https://codereview.chromium.org/1330033002 Cr-Commit-Position: refs/heads/master@{#30648}
-
- 08 Sep, 2015 23 commits
-
-
caitpotter88 authored
BUG=v8:2160 LOG=N R=adamk, rossberg, wingo Review URL: https://codereview.chromium.org/1317113007 Cr-Commit-Position: refs/heads/master@{#30647}
-
paul.lind authored
Fix some dodgy temp-register usage and remove some unnecessary push/pop's. BUG= Review URL: https://codereview.chromium.org/1324553004 Cr-Commit-Position: refs/heads/master@{#30646}
-
dusan.m.milosavljevic authored
The instruction selection for following sequences is improved: 113: Word64Sar(107, 91) : Internal/Any 114: TruncateInt64ToInt32(113) : Signed32/UntaggedSigned32 115: ChangeInt32ToFloat64(114) : Signed32/UntaggedFloat64 TEST=unittests/InstructionSelectorTest.ChangesFromToSmi BUG= Review URL: https://codereview.chromium.org/1318153006 Cr-Commit-Position: refs/heads/master@{#30645}
-
balazs.kilvady authored
For simulator optimization we modified Instruction::InstructionType() function so a simpler but less complete InstructionType() function used by default. This fix enables the full InstructionType checking to properly decode a dd-constant label as unsupported opcode, rather than aborting. BUG=chromium:528875 LOG=NO Review URL: https://codereview.chromium.org/1314673010 Cr-Commit-Position: refs/heads/master@{#30644}
-
paul.lind authored
Porting mistake in ccbb4ff0 '[builtins] Unify the various versions of [[Call]] with a Call builtin.', which only showed as debug assertion in later commit db2ba190 '[runtime] Replace many buggy uses of %_CallFunction with %_Call.' Use temporary register rather than push/pop of 'object' register. BUG= TEST=cctest/test-api/SetFunctionEntryHook, cctest/test-serialize/PerIsolateSnapshotBlobs, ... Review URL: https://codereview.chromium.org/1309163006 Cr-Commit-Position: refs/heads/master@{#30643}
-
mstarzinger authored
R=mlippautz@chromium.org Review URL: https://codereview.chromium.org/1314543014 Cr-Commit-Position: refs/heads/master@{#30642}
-
ulan authored
This moves incremental marking steps from gc-idle-time-handler and heap to the new incremental marking task. BUG=chromium:490559 LOG=NO Review URL: https://codereview.chromium.org/1265423002 Cr-Commit-Position: refs/heads/master@{#30641}
-
vogelheim authored
- Modify js2c to accept --js and --nojs, - modify mksnapshot to accept --startup_src (instead of a positional parameter, so that it can be omitted), - modify v8.gyp to use the above so that no target has multiple output dependencies, and - update GN to use the switches above. (I have not succeeded in fixing the GYP->make translator to properly map multi-output rules, so that they work as expected in all edge cases. This CL signals defeat on that front, and instead I rewrite the GYP file to avoid that situation in the first place.) R=jochen@chromium.org BUG=v8:4382 LOG=N Review URL: https://codereview.chromium.org/1310273009 Cr-Commit-Position: refs/heads/master@{#30640}
-
rmcilroy authored
When there is no explicit return we need to generate an implicit return undefined. BUG=v8:4280 LOG=N Review URL: https://codereview.chromium.org/1308693014 Cr-Commit-Position: refs/heads/master@{#30639}
-
jianghua.yjh authored
BUG= Review URL: https://codereview.chromium.org/1314253006 Cr-Commit-Position: refs/heads/master@{#30638}
-
mstarzinger authored
This removes the DisallowAllocationFailure assertion scope which mostly coincided with the AlwaysAllocateScope anyways. Access to the bitfield in the Isolate was not synchronized and hence the AlwaysAllocateScope was not thread-safe in debug mode, now it is. R=mlippautz@chromium.org Review URL: https://codereview.chromium.org/1319153006 Cr-Commit-Position: refs/heads/master@{#30637}
-
cbruni authored
By using an InternArray for the pivot calculation we can get rid of yet another %_CallFunction. Review URL: https://codereview.chromium.org/1316673008 Cr-Commit-Position: refs/heads/master@{#30636}
-
mstarzinger authored
This switches Isolate::ComputeLocation to use baseline code when computing message locations. This unifies locations between optimized and non-optimized code by always going through the FrameSummary for location computation. R=bmeurer@chromium.org TEST=message/regress/regress-4266 BUG=v8:4266 LOG=n Review URL: https://codereview.chromium.org/1331603002 Cr-Commit-Position: refs/heads/master@{#30635}
-
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}
-
mstarzinger authored
R=bmeurer@chromium.org Review URL: https://codereview.chromium.org/1329133002 Cr-Commit-Position: refs/heads/master@{#30633}
-
karl authored
Before String.split only cached results if the seperator was found BUG=v8:4191 LOG=N Review URL: https://codereview.chromium.org/1308373005 Cr-Commit-Position: refs/heads/master@{#30632}
-
karl authored
Replace Math{Min,Max} Direct string comparison Compared to https://codereview.chromium.org/1321853006/ single character found at true 77 P found at false 70 က found at false 70 BUG=v8:4384 LOG=N Review URL: https://codereview.chromium.org/1324353002 Cr-Commit-Position: refs/heads/master@{#30631}
-
mlippautz authored
R=mstarzinger@chromium.org Review URL: https://codereview.chromium.org/1302423007 Cr-Commit-Position: refs/heads/master@{#30630}
-
bmeurer authored
The new Call and CallFunction builtins supersede the current CallFunctionStub (and CallIC magic) and will be the single bottleneck for all calling, including the currently special Function.prototype.call and Function.prototype.apply builtins, which had handwritten (and not fully compliant) versions of CallFunctionStub, and also the CallIC(s), which where also slightly different. This also reduces the overhead for API function calls, which is still unnecessary high, but let's do that step-by-step. This also fixes a bunch of cases where the implicit ToObject for sloppy receivers was done in the wrong context (in the caller context instead of the callee context), which basically meant that we allowed cross context access to %ObjectPrototype%. MIPS and MIPS64 ports contributed by akos.palfi@imgtec.com. R=mstarzinger@chromium.org, jarin@chromium.org, mvstanton@chromium.org CQ_INCLUDE_TRYBOTS=tryserver.v8:v8_linux_layout_dbg,v8_linux_nosnap_dbg BUG=v8:4413 LOG=n Committed: https://crrev.com/ef268a83be4dead004047c25b702319ea4be7277 Cr-Commit-Position: refs/heads/master@{#30627} Review URL: https://codereview.chromium.org/1311013008 Cr-Commit-Position: refs/heads/master@{#30629}
-
bmeurer authored
Revert of [builtins] Unify the various versions of [[Call]] with a Call builtin. (patchset #10 id:260001 of https://codereview.chromium.org/1311013008/ ) Reason for revert: Breaks nosnap, needs investigation Original issue's description: > [builtins] Unify the various versions of [[Call]] with a Call builtin. > > The new Call and CallFunction builtins supersede the current > CallFunctionStub (and CallIC magic) and will be the single bottleneck > for all calling, including the currently special Function.prototype.call > and Function.prototype.apply builtins, which had handwritten (and > not fully compliant) versions of CallFunctionStub, and also the > CallIC(s), which where also slightly different. > > This also reduces the overhead for API function calls, which is still > unnecessary high, but let's do that step-by-step. > > This also fixes a bunch of cases where the implicit ToObject for > sloppy receivers was done in the wrong context (in the caller > context instead of the callee context), which basically meant > that we allowed cross context access to %ObjectPrototype%. > > MIPS and MIPS64 ports contributed by akos.palfi@imgtec.com. > > R=mstarzinger@chromium.org, jarin@chromium.org, mvstanton@chromium.org > CQ_INCLUDE_TRYBOTS=tryserver.v8:v8_linux_layout_dbg > BUG=v8:4413 > LOG=n > > Committed: https://crrev.com/ef268a83be4dead004047c25b702319ea4be7277 > Cr-Commit-Position: refs/heads/master@{#30627} TBR=rmcilroy@chromium.org,jarin@chromium.org,mstarzinger@chromium.org,mvstanton@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:4413 Review URL: https://codereview.chromium.org/1328963004 Cr-Commit-Position: refs/heads/master@{#30628}
-
bmeurer authored
The new Call and CallFunction builtins supersede the current CallFunctionStub (and CallIC magic) and will be the single bottleneck for all calling, including the currently special Function.prototype.call and Function.prototype.apply builtins, which had handwritten (and not fully compliant) versions of CallFunctionStub, and also the CallIC(s), which where also slightly different. This also reduces the overhead for API function calls, which is still unnecessary high, but let's do that step-by-step. This also fixes a bunch of cases where the implicit ToObject for sloppy receivers was done in the wrong context (in the caller context instead of the callee context), which basically meant that we allowed cross context access to %ObjectPrototype%. MIPS and MIPS64 ports contributed by akos.palfi@imgtec.com. R=mstarzinger@chromium.org, jarin@chromium.org, mvstanton@chromium.org CQ_INCLUDE_TRYBOTS=tryserver.v8:v8_linux_layout_dbg BUG=v8:4413 LOG=n Review URL: https://codereview.chromium.org/1311013008 Cr-Commit-Position: refs/heads/master@{#30627}
-
chunyang.dai authored
This CL is a fix for c0c3d866 (r30606). In r30606, initialization of FPU implementation is not moved to prologue generation correctly. BUG= Review URL: https://codereview.chromium.org/1317643009 Cr-Commit-Position: refs/heads/master@{#30626}
-
v8-autoroll authored
Rolling v8/build/gyp to 5d01a8cda53bfa23f1dcbe0c31c33aa30f50cf4c TBR=machenbach@chromium.org,vogelheim@chromium.org,hablich@chromium.org Review URL: https://codereview.chromium.org/1330793002 Cr-Commit-Position: refs/heads/master@{#30625}
-
- 07 Sep, 2015 8 commits
-
-
fedor authored
Move various ArrayBuffer-related methods from Heap class to the newly created ArrayBufferTracker. Consolidate and simplify things! BUG= R=mlippautz@chromium.org Review URL: https://codereview.chromium.org/1324023007 Cr-Commit-Position: refs/heads/master@{#30624}
-
brettw authored
The is_*san flags are moving from the master build config file into this .gni file. This patch will allow V8 to continue compiling when that change is landed. Review URL: https://codereview.chromium.org/1330713003 Cr-Commit-Position: refs/heads/master@{#30623}
-
jochen authored
BUG=4134 R=vogelheim@chromium.org,rmcilroy@chromium.org LOG=n Review URL: https://codereview.chromium.org/1333463002 Cr-Commit-Position: refs/heads/master@{#30622}
-
mstarzinger authored
This enables the general linter checking for "build/c++11" violations during presubmit and instead marks the few known exceptions that we allow explicitly. R=jochen@chromium.org Review URL: https://codereview.chromium.org/1317463007 Cr-Commit-Position: refs/heads/master@{#30621}
-
cbruni authored
BUG= Review URL: https://codereview.chromium.org/1324103003 Cr-Commit-Position: refs/heads/master@{#30620}
-
cbruni authored
- Moving parts of ArrayConcat from builtins.cc to the ElementsAccessor - Removing ArrayConcat Runtime Function BUG=v8:4317 LOG=N Review URL: https://codereview.chromium.org/1330483003 Cr-Commit-Position: refs/heads/master@{#30619}
-
cbruni authored
Review URL: https://codereview.chromium.org/1326263002 Cr-Commit-Position: refs/heads/master@{#30618}
-
machenbach authored
This information can be used on the buildbot side to only rebuild the failing target for bisection. BUG=chromium:511215 LOG=n NOTRY=true Review URL: https://codereview.chromium.org/1313353006 Cr-Commit-Position: refs/heads/master@{#30617}
-