pfeldman@chromium.org [Thu, 25 Mar 2010 12:28:24 +0000 (12:28 +0000)]
Make following ES5 functions work with undetectable parameters/target (document.all):
ObjectIsPrototypeOf
ObjectDefineGetter
ObjectLookupGetter
ObjectDefineSetter
ObjectLookupSetter
ObjectKeys
ObjectGetPrototypeOf
ObjectGetOwnPropertyDescriptor
ObjectGetOwnPropertyNames
ObjectDefineProperty
ObjectDefineProperties
I did not implement tests covering calls with undetectable parameters since I would need to make these tests native. Just thought it was not worth the effort. If you think tests would make sense, I can add them. We might want to allow other functions to receive undetectable parameters, but I am not seeing any good candidates.
Review URL: http://codereview.chromium.org/1297003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4264
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
pfeldman@chromium.org [Thu, 25 Mar 2010 12:20:59 +0000 (12:20 +0000)]
Fail with out-of-bounds exception upon illegal access to the ExecutionState's frame.
Review URL: http://codereview.chromium.org/1284001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4263
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Thu, 25 Mar 2010 12:04:34 +0000 (12:04 +0000)]
Re-apply "Inline floating point compare"
This re-applies r4220 and r4233, which was reverted in r4254 due to a bug. This bug has now been fixed, with the only change being line 2884 changed from
__ SmiTag(left_side->reg());
to
__ SmiTag(operand->reg());
Added a regression test.
BUG=http://crbug.com/39160
TEST=test/mjsunit/regress/regress-crbug-39160.js
Review URL: http://codereview.chromium.org/1251009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4261
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Thu, 25 Mar 2010 11:52:42 +0000 (11:52 +0000)]
Avoid calling ToRegister(register) when result is in register already, and register is shared.
Review URL: http://codereview.chromium.org/1325004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4260
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Thu, 25 Mar 2010 09:09:42 +0000 (09:09 +0000)]
Change StringSearch to not call exec and build unnecessary intermediate array.
Review URL: http://codereview.chromium.org/1223006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4259
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Wed, 24 Mar 2010 16:37:27 +0000 (16:37 +0000)]
Check for negative 0 when deciding whether a constant has type Integer32.
Review URL: http://codereview.chromium.org/1225005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4258
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Wed, 24 Mar 2010 15:55:15 +0000 (15:55 +0000)]
Fix Win32 build.
Use correct constants for min/max-int.
Review URL: http://codereview.chromium.org/1239004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4257
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Wed, 24 Mar 2010 15:29:41 +0000 (15:29 +0000)]
Store type information with constants.
Instead of testing the value of a constant frame element to determine
the type we compute its type information at construction time.
This speeds up querying the type information during code generation.
This change also adds support for Integer32 constants and sets
the type information accordingly.
Review URL: http://codereview.chromium.org/1277001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4256
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Wed, 24 Mar 2010 14:26:14 +0000 (14:26 +0000)]
Revert "Inline floating point compare"
This reverts svn revisons r4220 and r4233.
Review URL: http://codereview.chromium.org/1279001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4254
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Wed, 24 Mar 2010 13:24:46 +0000 (13:24 +0000)]
Implement support for reattaching a global object to a context. This
can be used to use the same global object for different contexts at
different points in time.
Review URL: http://codereview.chromium.org/1207003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4253
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Wed, 24 Mar 2010 13:10:18 +0000 (13:10 +0000)]
Fix Android scons build by putting -lv8 before -lgcc.
Review URL: http://codereview.chromium.org/1275001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4252
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
pfeldman@chromium.org [Wed, 24 Mar 2010 13:09:02 +0000 (13:09 +0000)]
Expose debug context into the native code. This change is doing several things:
1) Exposes Local<Context> v8::Debug::GetDebugContext().
Rationale: We can already get debugger context instance using various workarounds,
so exposing it explicitly in the API only makes things more clear.
2) Removes debugger.HasJavaScriptFrames() requirement for entering debugger context.
Rationale: Sometimes we'd like to call into debugger from the external native code.
3) Makes Debugger v8::Debug::Call execute on debugger context's global object.
Rationale: This is somewhat arguable, but temporary measure. We've agreed that we
should introduce a DebugAPI object that would expose necessary API in the debug-delay.
The problem is that it would take some time to define this API and it is not really
convenient to do that on the v8 land given the difference in v8 / host lifecycle.
The plan is to compose this API as a Debug.* wrapper outside v8 by means of exposing
debugger context's global object here, and once API settles down, upstream it to v8 and
start making Debug::Calls on this new DebugAPI object instead.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4251
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Wed, 24 Mar 2010 12:34:27 +0000 (12:34 +0000)]
Add primitive type and string type to the number info.
This change adds two new type attributes to the lattice
defined in the class NumberInfo. Currently the new types
are not used yet.
I plan to rename NumberInfo into TypeInfo as a separate change.
Review URL: http://codereview.chromium.org/1249002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4250
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Wed, 24 Mar 2010 11:48:01 +0000 (11:48 +0000)]
Revert revisions 4241, 4243 and 4247 because of Windows build errors
and test failures.
TBR=serya@chromium.org
Review URL: http://codereview.chromium.org/1269003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4249
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Wed, 24 Mar 2010 11:22:56 +0000 (11:22 +0000)]
Fix presubmit error (multiple statements on the same line).
TBR=fschneider@chromium.org
Review URL: http://codereview.chromium.org/1257002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4248
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
serya@chromium.org [Wed, 24 Mar 2010 11:11:33 +0000 (11:11 +0000)]
Fix conform test.
Review URL: http://codereview.chromium.org/1217007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4247
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Wed, 24 Mar 2010 10:36:18 +0000 (10:36 +0000)]
Initial support for marking live code.
As part of aggressive dead code elimination, we initially assume all
flow-graph instructions are not live. We mark those that are critical
and recursively all their children. The children of variable
references (VariableProxies occurring as rvalues) include all their
reaching definitions.
Review URL: http://codereview.chromium.org/1159005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4246
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Wed, 24 Mar 2010 10:32:23 +0000 (10:32 +0000)]
Added flag for seeding the random generator deterministically.
Review URL: http://codereview.chromium.org/1247003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4245
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
serya@chromium.org [Wed, 24 Mar 2010 09:48:58 +0000 (09:48 +0000)]
Fixing build in debug mode.
Review URL: http://codereview.chromium.org/1225003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4243
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
antonm@chromium.org [Wed, 24 Mar 2010 09:26:28 +0000 (09:26 +0000)]
Pass the proper number of fields to update remembered set for.
By oversight kPointerSize more fields were passed.
BUG=39128
Review URL: http://codereview.chromium.org/1265001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4242
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
serya@chromium.org [Wed, 24 Mar 2010 08:51:03 +0000 (08:51 +0000)]
StringToDouble rewritten not using String::Get and memory allocations.
It converts the number to "canonical" form removing insignificant digits,
leading zerroes and spaces what guarantees to fit a fixed size buffer and
does not changes result of strtod.
Review URL: http://codereview.chromium.org/1096002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4241
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Wed, 24 Mar 2010 08:46:17 +0000 (08:46 +0000)]
Add comments to test-log-stack-tracer.
Review URL: http://codereview.chromium.org/1181001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4240
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Wed, 24 Mar 2010 08:12:14 +0000 (08:12 +0000)]
Prepare push to trunk. Now working on version 2.1.9.
Review URL: http://codereview.chromium.org/1217006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4237
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
oleg@chromium.org [Tue, 23 Mar 2010 15:28:58 +0000 (15:28 +0000)]
Make the new Date test independent of the timezone in which it is run.
Review URL: http://codereview.chromium.org/1084018
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4236
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Tue, 23 Mar 2010 15:18:00 +0000 (15:18 +0000)]
Fix an error in optimized modulus operator, add unit test.
Review URL: http://codereview.chromium.org/1118008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4235
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Tue, 23 Mar 2010 15:04:45 +0000 (15:04 +0000)]
MIPS simple function calls
This lands http://codereview.chromium.org/1018001.
Patch by Alexandre Rames <alexandre.rames@gmail.com> from Sigma Designs Inc.
Mads, please just have to look at the new flag --disable-native-files (two files not in the mips directory).
Review URL: http://codereview.chromium.org/1140004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4234
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Tue, 23 Mar 2010 14:59:36 +0000 (14:59 +0000)]
Fix GetName and Print for CompareStub
Review URL: http://codereview.chromium.org/1108006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4233
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
oleg@chromium.org [Tue, 23 Mar 2010 14:47:02 +0000 (14:47 +0000)]
Fix bug code.google.com/p/v8/issues/detail?id=659. Move the limits check for date before the time zone offset is applied.
Review URL: http://codereview.chromium.org/1075016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4232
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Tue, 23 Mar 2010 14:33:42 +0000 (14:33 +0000)]
Fix pop push optimization to work with partial snapshots (correct
registration of external references in Proxy objects).
I moved the declaration of the two functions to stub-cache.h
because with all the types they use it's hard to declare them
anywhere else. But the actual definition is still in runtime.cc
near to the place where they are used.
Review URL: http://codereview.chromium.org/1079012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4231
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Tue, 23 Mar 2010 14:24:41 +0000 (14:24 +0000)]
Add binary operations with constants to the safe-int32 expression compiler.
Review URL: http://codereview.chromium.org/1089004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4230
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
antonm@chromium.org [Tue, 23 Mar 2010 14:05:16 +0000 (14:05 +0000)]
Trim underlying fixed array by one element from the left when doing shift.
For now this trick is only done to objects in new space, see comments
for reasons.
Review URL: http://codereview.chromium.org/1076010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4229
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Tue, 23 Mar 2010 13:38:04 +0000 (13:38 +0000)]
Port of optimized ICs for external and pixel arrays from ia32 to ARM.
Review URL: http://codereview.chromium.org/993002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4228
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Tue, 23 Mar 2010 13:36:38 +0000 (13:36 +0000)]
Mark all loop conditions.
Previously we marked compare operations that occurred as for loop
conditions so as to avoid inlining the floating-point code for them.
Begin marking all expressions that occur as any loop condition
(because they are never dead code).
Review URL: http://codereview.chromium.org/1074009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4227
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Tue, 23 Mar 2010 13:11:44 +0000 (13:11 +0000)]
New GCCallbacks with additional parameters.
Author: Ilya Tikhonovsky <loislo@chromium.org>
Original issue: http://codereview.chromium.org/1094002
TBR=sgjesse@chromium.org
Review URL: http://codereview.chromium.org/1165004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4226
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Tue, 23 Mar 2010 13:09:33 +0000 (13:09 +0000)]
Update Visual Studio project files.
Review URL: http://codereview.chromium.org/1111011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4225
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Tue, 23 Mar 2010 13:01:37 +0000 (13:01 +0000)]
Add iterative primitive type analysis.
This change adds a data-flow pass to statically determine
if a variable contains a primitive type.
It requires building the flow graph and computing reaching
definitions as pre-requisites. The analysis annotates all
VariableProxy nodes with the result.
Review URL: http://codereview.chromium.org/1132005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4224
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
oleg@chromium.org [Tue, 23 Mar 2010 12:48:42 +0000 (12:48 +0000)]
Modify FastD2I to use static_cast instead of lrint(). Benchmarks show that it's much faster this way.
Review URL: http://codereview.chromium.org/1128010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4223
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Tue, 23 Mar 2010 12:42:47 +0000 (12:42 +0000)]
Fix issue 658: update test-log-stack-tracer after r4211.
It appears that semi-automatic changes made to test's code were
incorrect. v8::Script::Compile returns wrapped JSFunction,
not SharedFunctionInfo.
Review URL: http://codereview.chromium.org/1169002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4222
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kasperl@chromium.org [Tue, 23 Mar 2010 12:36:41 +0000 (12:36 +0000)]
Remove the last of the obsolete *-delay.js files. This one
is replaced by src/liveedit-debugger.js.
Review URL: http://codereview.chromium.org/1158005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4221
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Tue, 23 Mar 2010 12:36:31 +0000 (12:36 +0000)]
Inline floating point compare
Inline floating point compare instead of calling the stub when the following conditions are met:
* Code is in a loop
* Compare is not a for loop condition
* Compare is not an equal comparison
This inlined code handles heap number to heap number and heap number to smi compare. It can also handle smi to smi compare, but whenever there is a chance of comparing two smis the smi compare is inlined before the inlined floating point compare. Support for non SSE2 hardware is included.
A new set of variants of the compare stub without the floating point comparison code is called if the inline comapre fails due to the operands not beeing heap numbers or smis.
The virtual frame has been extended with a branch taking two live results to be carried through to the destination. This makes this change much simpler as the inlined code have two live results in registers and a number of bailouts.
CompareStub::GetName needs to be updated as well. I will do that as a separate change.
Also inlined equality check if both operands can't be NaN. This can only provide positive equals if it is the same object.
Review URL: http://codereview.chromium.org/1117011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4220
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kasperl@chromium.org [Tue, 23 Mar 2010 12:31:52 +0000 (12:31 +0000)]
Bring back source line accidentally removed in r4217.
Review URL: http://codereview.chromium.org/1153008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4219
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kasperl@chromium.org [Tue, 23 Mar 2010 12:23:15 +0000 (12:23 +0000)]
Fix issue 658 by adapting the d8.cc code to the new types of
scripts (either a JSFunction or a SharedFunctionInfo).
Review URL: http://codereview.chromium.org/1077010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4218
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kasperl@chromium.org [Tue, 23 Mar 2010 11:40:38 +0000 (11:40 +0000)]
Merge the partial_snapshots branch back into bleeding_edge. For
now, the custom call generator stuff is disabled.
Review URL: http://codereview.chromium.org/1094014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4217
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kasperl@chromium.org [Tue, 23 Mar 2010 07:14:25 +0000 (07:14 +0000)]
Fix issue 656 on ARM.
TBR=iposva@chromium.org
Review URL: http://codereview.chromium.org/1117010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4214
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kasperl@chromium.org [Tue, 23 Mar 2010 06:58:48 +0000 (06:58 +0000)]
Fix issue 656 on x64.
TBR=iposva@chromium.org
Review URL: http://codereview.chromium.org/1081014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4213
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kasperl@chromium.org [Tue, 23 Mar 2010 06:40:29 +0000 (06:40 +0000)]
Fix issue 656 on x86.
TBR=iposva@chromium.org
Review URL: http://codereview.chromium.org/1159004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4212
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
iposva@chromium.org [Tue, 23 Mar 2010 06:04:44 +0000 (06:04 +0000)]
- Remove function boilerplate objects and use SharedFunctionInfos in
their place.
- Add one field to the SharedFunctionInfo to remember the number of
literals used in this function.
Review URL: http://codereview.chromium.org/669240
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4211
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Mon, 22 Mar 2010 14:31:28 +0000 (14:31 +0000)]
Use bit fields to calculate compare stub minor key
Review URL: http://codereview.chromium.org/1081010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4208
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Mon, 22 Mar 2010 14:23:45 +0000 (14:23 +0000)]
Add multithreading test for SamplingCircularQueue, fix implementation.
This is for the case of Linux, where sampling is done using SIGPROF
signal handler which is executed in the context of an interrupted
thread. In this case, my previous implementation with TLS doesn't
work.
Review URL: http://codereview.chromium.org/1138004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4207
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Mon, 22 Mar 2010 14:07:18 +0000 (14:07 +0000)]
Include initial definitions in reaching definitions analysis.
Include the initial definitions for parameters on input to the
function, and the initial definition of stack-allocated locals as
undefined.
Review URL: http://codereview.chromium.org/1155006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4206
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Mon, 22 Mar 2010 13:21:32 +0000 (13:21 +0000)]
Loop peeling for inner loops.
This change adds the option to peel off the first iteration of inner loops.
Loop peeling is off by default and can enabled by a flag. It also requires building a flow graph.
As part of this I added the possibility to clone AST nodes.
Review URL: http://codereview.chromium.org/998001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4205
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Mon, 22 Mar 2010 12:19:18 +0000 (12:19 +0000)]
Prepare push to trunk. Now working on version 2.1.8.
Review URL: http://codereview.chromium.org/1164001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4204
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Mon, 22 Mar 2010 12:16:11 +0000 (12:16 +0000)]
Revert change 4201.
Review URL: http://codereview.chromium.org/1113007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4203
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Mon, 22 Mar 2010 11:55:12 +0000 (11:55 +0000)]
Fix code generation for fast smi loops to support parameters as well.
This change fixes an assert we hit when we recognized a fast smi loop
with a parameter as the loop variable.
BUG=650
Review URL: http://codereview.chromium.org/1138003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4202
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kaznacheev@chromium.org [Mon, 22 Mar 2010 11:07:22 +0000 (11:07 +0000)]
Porting binary op ICs to arm
Review URL: http://codereview.chromium.org/883001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4201
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
peter.rybin@gmail.com [Sun, 21 Mar 2010 00:23:03 +0000 (00:23 +0000)]
Fix broken build: disable stale assert
Review URL: http://codereview.chromium.org/1094008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4200
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
peter.rybin@gmail.com [Sat, 20 Mar 2010 22:37:15 +0000 (22:37 +0000)]
Explicitly declare temporary cooked frames state
Review URL: http://codereview.chromium.org/995006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4199
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Fri, 19 Mar 2010 14:05:11 +0000 (14:05 +0000)]
Implement function calls on ARM using the blx instruction when
available. Using blx will allow the CPU to predict the return address
fo the function, resulting in better overall performamce.
This is a copy of http://codereview.chromium.org/1113002 by
rodolph.perfetta@googlemail.com
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4198
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Fri, 19 Mar 2010 13:51:01 +0000 (13:51 +0000)]
Add a few tests to ProfilerEventsProcessor.
Review URL: http://codereview.chromium.org/1084009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4197
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Fri, 19 Mar 2010 13:49:28 +0000 (13:49 +0000)]
Really fix ARM build (this time verified locally.)
TBR=ager@chromium.org
Review URL: http://codereview.chromium.org/1154001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4196
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Fri, 19 Mar 2010 13:07:43 +0000 (13:07 +0000)]
Fix ARM build (GCC 3 'all member functions in class are private' warning.)
TBR=ager@chromium.org
Review URL: http://codereview.chromium.org/1084010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4195
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Fri, 19 Mar 2010 12:54:35 +0000 (12:54 +0000)]
Remove unused LivenessAnalyzer class.
Also remove unused attributes related to it from the ast.
Review URL: http://codereview.chromium.org/1117003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4194
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Fri, 19 Mar 2010 12:53:55 +0000 (12:53 +0000)]
Fix presubmit errors.
I will lint my code, I will lint my code, I will lint my code. :)
TBR=sgjesse@chromium.org
Review URL: http://codereview.chromium.org/1115007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4193
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Fri, 19 Mar 2010 12:26:45 +0000 (12:26 +0000)]
Port number-dictionary probing in generated code to x64.
BUG=640
Review URL: http://codereview.chromium.org/1113001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4192
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
floitschV8@gmail.com [Fri, 19 Mar 2010 12:15:24 +0000 (12:15 +0000)]
Rename files containing underscores.
Review URL: http://codereview.chromium.org/1102002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4191
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Fri, 19 Mar 2010 12:01:17 +0000 (12:01 +0000)]
Refactoring of RegExp interface to better support calling several times in a row.
Review URL: http://codereview.chromium.org/1114001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4190
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Fri, 19 Mar 2010 09:46:53 +0000 (09:46 +0000)]
Add basic C++ implementation of CPU profiler.
Review URL: http://codereview.chromium.org/1079006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4189
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Fri, 19 Mar 2010 08:00:52 +0000 (08:00 +0000)]
Add parens to DateYMDFromTimeSlow to clearify.
BUG=649
Review URL: http://codereview.chromium.org/1132002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4188
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Fri, 19 Mar 2010 07:43:03 +0000 (07:43 +0000)]
Add debug code assertions where we expect smi inputs.
Review URL: http://codereview.chromium.org/998007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4187
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
peter.rybin@gmail.com [Thu, 18 Mar 2010 22:15:54 +0000 (22:15 +0000)]
Show file name/line number in stack trace
Review URL: http://codereview.chromium.org/1002010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4186
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Thu, 18 Mar 2010 14:32:02 +0000 (14:32 +0000)]
Fix bug when generating a fast smi loop.
We may encounter an invalid frame after generating code
for the loop body in case the loop body ends in an unconditional
return. Before setting the type information for the loop variable
we need to check for a valid frame.
Review URL: http://codereview.chromium.org/1106002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4182
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
floitschV8@gmail.com [Thu, 18 Mar 2010 13:19:59 +0000 (13:19 +0000)]
Rename grisu to fast-dtoa. Get rid of template.
Review URL: http://codereview.chromium.org/1032007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4181
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
oleg@chromium.org [Thu, 18 Mar 2010 13:00:57 +0000 (13:00 +0000)]
Improve Math.round(). Fix the bug in r4146. Further improve performance by checking the exponent instead of comparing doubles. Add several tests for numbers near the limits of SMI and several tests from WebKit.
Review URL: http://codereview.chromium.org/1008004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4180
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kaznacheev@chromium.org [Thu, 18 Mar 2010 11:54:53 +0000 (11:54 +0000)]
Porting binary op ICs to x64.
Review URL: http://codereview.chromium.org/845002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4179
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Thu, 18 Mar 2010 10:01:53 +0000 (10:01 +0000)]
Update number info for count operations.
If the input of a ++ or -- operation is a smi, the
result is an Integer32. Otherwise it is a number.
Review URL: http://codereview.chromium.org/1075004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4177
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Thu, 18 Mar 2010 09:38:30 +0000 (09:38 +0000)]
Fix windows build again: one more memchr call.
Review URL: http://codereview.chromium.org/1109001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4176
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Thu, 18 Mar 2010 09:27:15 +0000 (09:27 +0000)]
Fix windows build.
On windows memchr returns const void* instead of void*.
Review URL: http://codereview.chromium.org/1074003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4175
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Thu, 18 Mar 2010 09:08:24 +0000 (09:08 +0000)]
Add test cases for fast smi loops.
Review URL: http://codereview.chromium.org/1014007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4174
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Thu, 18 Mar 2010 09:01:08 +0000 (09:01 +0000)]
String search performance improvements:
* Using memchr for first/only char lookup is faster than hand-coded
loop. It processes one machine word per iteration so it helps even
more on x64.
* Tweaked badness computation in simple search. We pay only for the
first char memchr scans, not for all of them.
Review URL: http://codereview.chromium.org/1100002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4173
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Wed, 17 Mar 2010 16:39:29 +0000 (16:39 +0000)]
Fix type propagation rules for count operation.
Also treat const-variables as not side-effect free.
Review URL: http://codereview.chromium.org/982009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4172
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
floitschV8@gmail.com [Wed, 17 Mar 2010 15:57:26 +0000 (15:57 +0000)]
Fix arm compilation. DiyFp multiplications are now in a separate procedure.
Review URL: http://codereview.chromium.org/971006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4171
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
antonm@chromium.org [Wed, 17 Mar 2010 15:15:45 +0000 (15:15 +0000)]
Reenable ability to Dispose already Disposed Vector.
Review URL: http://codereview.chromium.org/1016006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4170
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Wed, 17 Mar 2010 14:53:16 +0000 (14:53 +0000)]
Fix formatting around * and &.
Review URL: http://codereview.chromium.org/1000007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4169
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
antonm@chromium.org [Wed, 17 Mar 2010 14:42:01 +0000 (14:42 +0000)]
Properly release zero-length Vectors.
Review URL: http://codereview.chromium.org/987004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4168
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Wed, 17 Mar 2010 13:23:53 +0000 (13:23 +0000)]
Don't generate inline constructors if this.__proto__ is assigned.
BUG=http://code.google.com/p/v8/issues/detail?id=646
TEST=test/mjsunit/regress/regress-646.js
Review URL: http://codereview.chromium.org/1023008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4167
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Wed, 17 Mar 2010 13:15:42 +0000 (13:15 +0000)]
Re-apply r4159 now with working test on x64
TBR=sgjesse@chromium.org
Review URL: http://codereview.chromium.org/979005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4164
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Wed, 17 Mar 2010 13:08:58 +0000 (13:08 +0000)]
Prepare push to trunk. Now working on version 2.1.7.
Review URL: http://codereview.chromium.org/974005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4163
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Wed, 17 Mar 2010 13:04:07 +0000 (13:04 +0000)]
Revert r4159 because of x64 test failures.
Review URL: http://codereview.chromium.org/1049003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4162
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Wed, 17 Mar 2010 12:46:17 +0000 (12:46 +0000)]
Prepare push to trunk. Now working on version 2.1.6.
Review URL: http://codereview.chromium.org/1050002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4161
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Wed, 17 Mar 2010 12:27:32 +0000 (12:27 +0000)]
Fix excessive stack usage by compiler due to local in recursive scope.
Review URL: http://codereview.chromium.org/1019006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4160
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Wed, 17 Mar 2010 12:25:10 +0000 (12:25 +0000)]
Implement circular queues for the C++ version of CPU profiler.
Circular queues serve as a transport for communicating between
VM, stack sampler and analyzer threads. Logging requirements
for VM and stack sampler are completely different, that's why
I introduced two different versions of CQs.
Review URL: http://codereview.chromium.org/1047002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4159
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Wed, 17 Mar 2010 10:28:44 +0000 (10:28 +0000)]
Make the C++ tests run without SSE2 support.
Review URL: http://codereview.chromium.org/982007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4158
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Wed, 17 Mar 2010 10:23:06 +0000 (10:23 +0000)]
Fix a bug in the regexp caching. Also add a few more places to
cache. We now cache most of the places where Opera cache and
one or two where they do not cache for some reason. Since
these optimizations aren't necessarily useful on real code we
may remove them if and when the Dromaeo website makes the
benchmarks harder to game.
Review URL: http://codereview.chromium.org/995005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4157
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Wed, 17 Mar 2010 09:58:28 +0000 (09:58 +0000)]
Revert r4146. Add a special case in Math.round for a SMI result. Also change the imp...
TBR=ager@chromium.org,
Review URL: http://codereview.chromium.org/1042006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4156
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Wed, 17 Mar 2010 09:49:03 +0000 (09:49 +0000)]
Fix bug in propagation of type information into registers.
The number type information of results has to be also copied when
calling ToRegister with a fixed register as destination.
Also fix an unbound label and a missing CpuFeatures scope.
Review URL: http://codereview.chromium.org/987003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4155
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
antonm@chromium.org [Wed, 17 Mar 2010 09:40:54 +0000 (09:40 +0000)]
Restore code.google.com/p/v8/source/detail?r=4151 fixing a typo:
index d545c34..91cb151 100644
--- a/src/builtins.cc
+++ b/src/builtins.cc
@@ -738,7 +738,7 @@ BUILTIN(ArrayConcat) {
int result_len = 0;
for (int i = 0; i < n_arguments; i++) {
Object* arg = args[i];
- if (!arg->IsJSArray() || JSArray::cast(arg)->HasFastElements()) {
+ if (!arg->IsJSArray() || !JSArray::cast(arg)->HasFastElements()) {
return CallJsBuiltin("ArrayConcat", args);
}
This reverts 4153.
# Please enter the commit message for your changes. Lines starting
Review URL: http://codereview.chromium.org/1055003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4154
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
antonm@chromium.org [Wed, 17 Mar 2010 09:13:39 +0000 (09:13 +0000)]
Revert "More generic version of Array.concat builtin."
Review URL: http://codereview.chromium.org/1058003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4153
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kasperl@chromium.org [Wed, 17 Mar 2010 08:53:21 +0000 (08:53 +0000)]
Remove handle scope that caused debug mode assertion failures
because a handle was returned out of the destroyed scope.
Review URL: http://codereview.chromium.org/1029003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4152
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
antonm@chromium.org [Wed, 17 Mar 2010 08:30:07 +0000 (08:30 +0000)]
More generic version of Array.concat builtin.
Review URL: http://codereview.chromium.org/1036002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4151
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Wed, 17 Mar 2010 08:14:59 +0000 (08:14 +0000)]
Keep more track of whether code is from the built
in .js files in V8. This change gets bleeding edge
a tiny bit closer to the partial snapshots branch.
Review URL: http://codereview.chromium.org/1052003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4150
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00