fschneider@chromium.org
befd149ef8
Optimize simple constant cases for bitwise &, | and ^.
...
For integer bitwise operations we can replace
x & -1 with x, x | 0 with x and x ^ 0 with x.
Review URL: http://codereview.chromium.org/9177001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10382 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-11 10:01:59 +00:00
vegorov@chromium.org
c92a3949ea
Fix build failure introduced by r10380
...
TBR=mstarzinger@chromium.org
Review URL: http://codereview.chromium.org/9190002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10381 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-11 09:49:47 +00:00
vegorov@chromium.org
74ef753067
Change inlined cache of intanceof stub to use indirection through cell.
...
The stub was directly patching caller's code without issuing write barrier which violated incremental marking invariants.
R=mstarzinger@chromium.org
BUG=http://crbug.com/109448
TEST=cctest/test-heap/InstanceOfStubWriteBarrier
Review URL: http://codereview.chromium.org/9158015
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10380 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-11 09:39:37 +00:00
fschneider@chromium.org
62168ff831
Tiny improvement of register constraints in LClassOfTest instructions.
...
The input register does not need to be made writable. We already
allocate enough temp registers and the input register will always
be preserved.
Review URL: http://codereview.chromium.org/9166007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10379 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-11 08:29:42 +00:00
kmillikin@chromium.org
32d7dd0409
Fix for an ARM register allocation bug.
...
An off-by-one in the register allocator could lead to allocating (and
clobbering) the reserved 0.0 double register. This required a function with
14 or more live double values.
BUG=
TEST=
Review URL: http://codereview.chromium.org/9114038
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10374 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-10 16:59:55 +00:00
svenpanne@chromium.org
d90860b42f
Changes after code review#
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10373 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-10 16:12:24 +00:00
svenpanne@chromium.org
6997dbe13e
Fixed AccessorPair handling
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10372 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-10 16:12:16 +00:00
svenpanne@chromium.org
73f2f5db68
Use a separate new type AccessorPair for JavaScript callbacks instead of a FixedArray of length 2
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10371 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-10 16:11:33 +00:00
fschneider@chromium.org
9e0be36948
Avoid recording unnecessary deoptimization environments in a couple of places.
...
This reduces the number of uses and potentially shortens live ranges.
Review URL: http://codereview.chromium.org/8983018
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10370 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-10 16:06:32 +00:00
jkummerow@chromium.org
7cfb086b34
Inline fast case of CodeGenerationFromStringsAllowed
...
Review URL: http://codereview.chromium.org/9155011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10369 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-10 14:52:41 +00:00
erik.corry@gmail.com
6a5afd9403
MIPS: Check that address given to __RecordWrite is correct.
...
ARM: Clean up equivalent functionality on ARM.
This subsumes http://codereview.chromium.org/8561001/
Review URL: http://codereview.chromium.org/9168006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10368 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-10 13:43:44 +00:00
erik.corry@gmail.com
dc9910f4a4
Minor cleanups of numeric seeded hashing patch.
...
Review URL: http://codereview.chromium.org/9155010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10367 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-10 13:24:18 +00:00
erik.corry@gmail.com
6178a8d42c
Add seed to hash of numeric keyed properties. This is a commit of http://codereview.chromium.org/9148006/ for Fedor Indutny.
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10366 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-10 12:58:41 +00:00
erik.corry@gmail.com
0aff6c26d3
Fix zero hash handling on ARM.
...
Some cleanup.
Review URL: http://codereview.chromium.org/9169010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10362 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-10 12:01:04 +00:00
danno@chromium.org
df8b359f41
Fix handling of -0.0 in IsInt32/IsUInt32
...
R=ager@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/9169009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10361 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-10 10:05:45 +00:00
yangguo@chromium.org
842d8b9108
Fixing windows builds.
...
Review URL: http://codereview.chromium.org/9169007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10358 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-10 08:37:45 +00:00
yangguo@chromium.org
e6be821ca4
Fixing minGW build.
...
BUG=
TEST=
Review URL: http://codereview.chromium.org/9149001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10357 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-10 08:17:08 +00:00
danno@chromium.org
03c737625a
Make sure transitioned arrays efficiently call builtin Array functions
...
Loosen the requirement for Map equivalency on several map checks, including checks up the prototype chain, that are not sensitive to ElementsKinds. These selected map checks should also match against FAST_DOUBLE_ELEMENT and FAST_ELEMENT transitions of the original map. This specifically helps all variants of transitioned JSArrays to still efficiently call builtins like push, pop and sort.
BUG=none
TEST=none
Committed: http://code.google.com/p/v8/source/detail?r=10331
Review URL: http://codereview.chromium.org/9015020
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10356 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-09 16:37:47 +00:00
erik.corry@gmail.com
0264008354
Use shift and add instead of mul on ARM for integer hash.
...
Review URL: http://codereview.chromium.org/9153002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10355 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-09 13:33:59 +00:00
erik.corry@gmail.com
4bea3b5c54
Fix test-hashing after recent changes to string hashing.
...
Acriave test-hashing in SCons and buildbot runs.
Small cleanups in root register handling on ARM and MIPS.
Review URL: http://codereview.chromium.org/9110029
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10351 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-06 11:33:20 +00:00
vegorov@chromium.org
c4d3a110a2
Adjust position recorded for call expressions.
...
For calls of the form ident(...) record position of the identifier as the position of the call. For other calls record positions of the opening parenthesis.
This guarantees that for expressions of the form function(){}() call position will not intersect with positions recorded for function literal which is used by the debugger for scope chain resolution.
R=kmillikin@chromium.org
BUG=http://crbug.com/109195
TEST=test/mjsunit/regress/regress-109195.js
Review URL: http://codereview.chromium.org/9125001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10350 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-06 10:26:17 +00:00
ulan@chromium.org
746ef93362
Move handlified functions from handles.cc to objects.cc
...
BUG=
TEST=
Review URL: http://codereview.chromium.org/9008012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10348 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-05 17:16:19 +00:00
rossberg@chromium.org
c427c35c87
Prepare push to trunk. Now working on version 3.8.6.
...
R=yangguo@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/9114009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10345 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-05 14:56:44 +00:00
mstarzinger@chromium.org
dfb18ce094
Fix several minor issues with grokdump.py tool.
...
This includes the following changes:
* Bring instance type mapping up to date.
* Enable loading of maps without available meta-map.
* Add missing IntSize() method.
* Fix reference to Code.CODE_ALIGNMENT_MASK.
* Add alignment checks for objects and maps.
R=vegorov@chromium.org
Review URL: http://codereview.chromium.org/9075003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10344 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-05 14:28:45 +00:00
erik.corry@gmail.com
9de3992837
Fix broken test that assumes that no GC can clear the regexp
...
cache (GC can happen at any time due to Crankshaft).
Review URL: http://codereview.chromium.org/9113012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10343 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-05 13:16:15 +00:00
mstarzinger@chromium.org
e79274abe6
Fix handling of bogus receivers for Harmony collections.
...
R=rossberg@chromium.org
BUG=v8:1884
TEST=mjsunit/harmony/collections
Review URL: http://codereview.chromium.org/9074003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10342 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-05 12:55:06 +00:00
yangguo@chromium.org
5253363cc2
Add netbsd support to gyp build.
...
Review URL: http://codereview.chromium.org/9071004
Patch from Matthew Sporleder <msporleder@gmail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10341 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-05 12:17:08 +00:00
erik.corry@gmail.com
ea3a515d9d
Fix the logic that should ensure that a string cannot have
...
a hash key of zero.
Review URL: http://codereview.chromium.org/9113006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10338 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-05 10:18:28 +00:00
erik.corry@gmail.com
1327cb0acd
Determine page size at runtime on posix platforms. Landing for kalmard. http://codereview.chromium.org/9023007/
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10337 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-05 10:07:33 +00:00
vegorov@chromium.org
22bc8f6ac5
Alter the second hash used in StoreBuffer::Compact.
...
hash2 >> (kHashMapLengthLog2 * 2) was always zero because hash2 was masked with (kHashMapLength - 1).
R=erik.corry@gmail.com
Review URL: http://codereview.chromium.org/9085021
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10336 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-05 09:57:10 +00:00
vegorov@chromium.org
50f235fe49
MIPS: Avoid embedding new space objects into code objects in the lithium gap resolver.
...
Port r10301 (c91aeb4c).
BUG=
TEST=
Review URL: http://codereview.chromium.org/9032005
Patch from Daniel Kalmar <kalmard@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10335 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-05 09:26:15 +00:00
vegorov@chromium.org
07eb3ada9d
Ensure that store buffer filtering hash sets are cleared after StoreBuffer::Filter.
...
R=erik.corry@gmail.com
Review URL: http://codereview.chromium.org/8964025
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10334 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-05 07:53:28 +00:00
vegorov@chromium.org
e726c00ea6
When shrinking semispace don't relink pages if semispace is not committed
...
R=mstarzinger@chromium.org
Review URL: http://codereview.chromium.org/9086005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10333 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-04 19:59:01 +00:00
danno@chromium.org
2335545108
Rollback 10331: Make sure transitioned arrays efficiently call builtin Array functions
...
Due to perf regressions
TBR=fschneider@chromium.org
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/8983027
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10332 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-04 17:29:01 +00:00
danno@chromium.org
69366adfb6
Make sure transitioned arrays efficiently call builtin Array functions
...
Loosen the requirement for Map equivalency on several map checks, including checks up the prototype chain, that are not sensitive to ElementsKinds. These selected map checks should also match against FAST_DOUBLE_ELEMENT and FAST_ELEMENT transitions of the original map. This specifically helps all variants of transitioned JSArrays to still efficiently call builtins like push, pop and sort.
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/9015020
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10331 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-04 17:16:04 +00:00
erik.corry@gmail.com
81a0271004
Randomize the seed used for string hashing. This helps guard against
...
CPU-eating DOS attacks against node.js servers. Based on code from
Bert Belder. This version only solves the issue for those that compile
V8 themselves or those that do not use snapshots. A snapshot-based
precompiled V8 will still have predictable string hash codes.
Review URL: http://codereview.chromium.org/9086006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10330 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-04 15:12:15 +00:00
kmillikin@chromium.org
4a4ccbf434
Fix a few preprocessor macros that could capture an 'else'.
...
Namely they are SLOW_ASSERT, RETURN_IF_SCHEDULED_EXCEPTION, and
RETURN_IF_EMTPY_HANDLE_VALUE.
R=svenpanne@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/8983016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10329 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-04 14:45:29 +00:00
yangguo@chromium.org
f953e7fcea
Fix windows build.
...
Review URL: http://codereview.chromium.org/8983014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10328 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-04 09:58:21 +00:00
danno@chromium.org
0f8be1f92f
MIPS: Undo allocation of half-formed array during elements transition
...
Port r10320 (bb429e82)
BUG=
TEST=
Review URL: http://codereview.chromium.org/9082001
Patch from Gergely Kis <gergely@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10327 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-04 09:40:47 +00:00
danno@chromium.org
b6e11b5bcc
MIPS: Add InternalArrayCodeGeneric
...
Port r10308 (4e74cc88)
BUG=
TEST=
Review URL: http://codereview.chromium.org/9078002
Patch from Gergely Kis <gergely@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10326 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-04 09:39:35 +00:00
danno@chromium.org
2063b374d6
MIPS: Ensure that InternalArrays remain InternalArrays regardless of how they are constructed.
...
Port r10306 (9141da8e)
BUG=
TEST=
Review URL: http://codereview.chromium.org/9080001
Patch from Gergely Kis <gergely@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10325 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-04 09:38:08 +00:00
yangguo@chromium.org
d9f7cf819c
Implement callback when script finishes running in V8 API.
...
TEST=test-api/LeaveScriptCallback
Review URL: http://codereview.chromium.org/8937003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10323 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-04 08:48:35 +00:00
danno@chromium.org
c17dafd3a3
Update LICENSE file
...
R=erik.corry@gmail.com
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/9074002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10322 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-03 16:38:42 +00:00
yangguo@chromium.org
fa2688a101
Improve performance of Math.min and Math.max for the case of two arguments.
...
BUG=v8:1325
TEST=
Review URL: http://codereview.chromium.org/9065008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10321 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-03 10:45:28 +00:00
danno@chromium.org
79f18cae93
Undo allocation of half-formed array during elements transition
...
R=vegorov@chromium.org
BUG=none
TEST=no asserts in debug tests with smi-only-array on
Review URL: http://codereview.chromium.org/9015023
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10320 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-03 09:39:34 +00:00
kmillikin@chromium.org
b75beff3fc
Make Runtime_Apply safer.
...
There is a call to Object::GetElement that could conceivably cause a GC.
Handlify all raw pointer local variables.
R=vegorov@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/8952028
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10319 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-02 15:22:21 +00:00
vegorov@chromium.org
49acd1843b
Fix typo in tools/grokdump.py. Stack pointer on x86 is esp not rbp.
...
R=fschneider@chromium.org
Review URL: http://codereview.chromium.org/9069001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10316 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-02 09:46:47 +00:00
svenpanne@chromium.org
747f779974
Prepare push to trunk. Now working on version 3.8.5.
...
R=danno@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/8952023
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10313 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-02 09:20:45 +00:00
vegorov@chromium.org
4907f424ad
Filter transitions while searching for CONSTANT_FUNCTION property in Call::ComputeTarget.
...
Otherwise transition will hide CONSTANT_FUNCTION property with the same name residing on the prototype.
R=danno@chromium.org
BUG=v8:1883
Review URL: http://codereview.chromium.org/9064003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10312 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-02 08:54:01 +00:00
danno@chromium.org
f648626eb9
Reland 10309: Ensure large Smi-only arrays don't transition to FAST_DOUBLE_ARRAY
...
TBR=jkummerow@chromium.org
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/9051014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10311 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-12-30 14:28:14 +00:00