fschneider@chromium.org
b12e933e43
Refactor handling of test expressions in the graph builder.
...
Instead of generating two instructions and combining them
at lithium translation using the EmitAtUses predicate, we
generate the correct branch instruction right from the start.
Review URL: http://codereview.chromium.org/7237024
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8495 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-30 14:19:52 +00:00
mikhail.naganov@gmail.com
d0559ee206
Heap profiler: annotate fixed arrays by their purpose.
...
This helps understanding what is a particular array for by
just looking at its name.
R=vitalyr@chromium.org
Review URL: http://codereview.chromium.org/7248058
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8494 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-30 14:19:33 +00:00
svenpanne@chromium.org
a482bd7ee3
Unbreak compilation on MIPS after EmitCallIC removal.
...
Note: It has only been verified that compilation is OK, nothing more... ;-)
Review URL: http://codereview.chromium.org/7273097
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8493 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-30 14:02:18 +00:00
ager@chromium.org
8a3d8b41e8
Exclude %_IsNativeOrStrictMode from natives fuzzer.
...
R=ricow@chromium.org
Review URL: http://codereview.chromium.org/7284032
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8492 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-30 13:36:52 +00:00
whesse@chromium.org
3a7e8fb791
Fix compilation on 64-bit Windows build.
...
Review URL: http://codereview.chromium.org/7283043
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8491 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-30 13:08:13 +00:00
whesse@chromium.org
03df9dd50b
Improve pseudorandom number generation and move the PNG state to Isolate.
...
Review URL: http://codereview.chromium.org/7248060
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8490 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-30 13:07:43 +00:00
svenpanne@chromium.org
dd7e3cbdb2
Nuke EmitCallIC, it is a plain call now.
...
Note that the MIPS part will need some similar changes, too.
Review URL: http://codereview.chromium.org/7283042
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8489 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-30 13:05:03 +00:00
ager@chromium.org
0d8c343c90
Do not pass the global object as the receiver to strict-mode and
...
builtin replace and sort functions.
R=ricow@chromium.org
BUG=v8:1360
TEST=mjsunit/regress/regress-1360.js
Review URL: http://codereview.chromium.org/7283006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8488 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-30 12:29:19 +00:00
vegorov@chromium.org
89c83051aa
Fix presubmit failure in gdb-jit.cc.
...
R=ricow@chromium.org
Review URL: http://codereview.chromium.org/7289013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8487 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-30 12:19:47 +00:00
kmillikin@chromium.org
6543526a9d
Remove failing test while working on a fix.
...
TBR=ricow@chromium.org
Review URL: http://codereview.chromium.org/7283040
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8486 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-30 12:07:33 +00:00
vegorov@chromium.org
fb32b10b4c
Fix SConstruct to pass correct defines to samples/preparser when building with library=shared.
...
Fix shell sample build with library=library.
R=ager@chromium.org
Review URL: http://codereview.chromium.org/7283039
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8485 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-30 11:53:54 +00:00
danno@chromium.org
743babcb44
Fix ARM regression introduced with polymorphic array support.
...
BUG=none
TEST=Kraken on ARM
Review URL: http://codereview.chromium.org/7218068
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8484 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-30 11:53:15 +00:00
vegorov@chromium.org
64c897b5cb
Extend gdb-jit support (OSX/locals+parameters/prettyprint)
...
Generate Mach-O in-memory objects for OSX. Dump locals and parameters
for non-optimized frames.
Unfortunately, it seems like more-recent-GDB on OSX there is a little
temperamental (eg, the version from macports will be missing symbols
from gdb-integration_g when the version included in xcode will not--
and this is with --gdbjit off).
Includes some Python scripts to make dealing with V8 values in gdb more
pleasant.
Patch by Luke Zarko.
Review URL: http://codereview.chromium.org/6995161
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8483 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-30 11:52:00 +00:00
svenpanne@chromium.org
233a8dc237
Cleaned up calling-related methods in the ARM assembler.
...
Generalized Call macro instruction to handle AST IDs, too, making things more
similar to the Intel assemblers. Removed unused methods. Minor signature
cleanup. Simplified assertions.
Review URL: http://codereview.chromium.org/7284029
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8482 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-30 11:26:15 +00:00
kmillikin@chromium.org
3f84fcf6c9
Fix a bug in Object.defineProperty.
...
There was a bug in Object.defineProperty when used to add an indexed
property to an arguments object. When converting the elements backing
store to dictionary mode, the parameter map in front of the backing
store does not change.
R=ager@chromium.org ,karlklose@chromium.org
Review URL: http://codereview.chromium.org/7289011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8481 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-30 11:11:19 +00:00
ager@chromium.org
47ca7358e6
MIPS: stub out Support debugger inspection of locals in optimized frames
...
Added Deoptimizer::FillInputFrame as UNIMPLEMENTED method.
Ported r8464 (34f38d1)
BUG=
TEST=
Review URL: http://codereview.chromium.org/7284026
Patch from Paul Lind <plind44@gmail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8480 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-30 09:25:29 +00:00
jkummerow@chromium.org
39b06d8850
Add support for dictionary elements to polymorphic crankshaft code.
...
Review URL: http://codereview.chromium.org/7285001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8479 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-30 08:40:31 +00:00
kmillikin@chromium.org
7d189d848e
MIPS: port Explicitly pass the closure when allocating a catch or with context.
...
Ported r8453 (59dd697)
Original commit message:
Before: allocation of a catch or with context fetched the closure to store
in the context from the previous context in the context chain. Now: the
closure is passed explicitly.
BUG=
TEST=
Review URL: http://codereview.chromium.org/7289008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8478 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-30 08:34:10 +00:00
kmillikin@chromium.org
861d18032a
MIPS: port Remove the fcontext field from all contexts.
...
Ported 8452 (8a2a360)
Original commit message:
Before: every context cached the nearest enclosing function context. This
assumed that for nested contexts (i.e., with and catch contexts) the
enclosing function had a materialized link in the context chain.
Now: when necessary, we loop up the context chain to find such a context.
This enables catch contexts without forcing the enclosing function to
allocate its own context.
BUG=
TEST=
Review URL: http://codereview.chromium.org/7284025
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8477 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-30 08:32:59 +00:00
ager@chromium.org
3a5788915f
Fix platform-solaris after isolate changes.
...
Patch from http://code.google.com/p/v8/issues/detail?id=1509 .
R=ager@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/7273092
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8476 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-30 07:24:49 +00:00
ager@chromium.org
2b286a3128
Remove --strict developer flag from V8.
...
It makes V8 not have JavaScript semantics by throwing exception all
the time. Even our own natives JavaScript code cannot run using that.
R=ricow@chromium.org
BUG=v8:1511
Review URL: http://codereview.chromium.org/7248056
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8475 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-30 06:58:13 +00:00
ager@chromium.org
90a01f626d
Update test expectations for sputnik to match new revision.
...
We should coordinate landing this with an update of the tests on the
buildbots.
R=ricow@chromium.org
Review URL: http://codereview.chromium.org/7280006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8474 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-30 06:10:12 +00:00
vitalyr@chromium.org
150cc3fc33
ll_prof: Terminate mmap file names on the first NUL char.
...
R=fschneider@chromium.org
Review URL: http://codereview.chromium.org/7282011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8473 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-29 15:34:00 +00:00
vitalyr@chromium.org
90c9f1b989
Suspend runtime profiler as soon as we exit JS.
...
Lots of web pages have really frequently firing timers that keep the
profiler thread spinning if we require a period of JS inactivity
before suspending the profiler. While it's possible to throttle it by
increasing the sleep delay and adjusting the duration of the required
inactive period, it seemed much simpler to just stop it immediately on
exiting JS.
Stopping the profiler this way effectively turned off two optimization
heuristics: 1) eager optimization (it's reset on waking up the
profiler and now the profiler wakes up much more frequently) and 2)
optimization throttling based on JS to non-JS state ratio (the ratio
is now 100%). I removed these two heuristics and found no performance
regressions so far.
R=ager@chromium.org
BUG=crbug.com/77625
TEST=none
Review URL: http://codereview.chromium.org/7274024
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8472 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-29 14:56:08 +00:00
jkummerow@chromium.org
d2f08851f0
Fix build on x64
...
Review URL: http://codereview.chromium.org/7284011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8471 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-29 14:28:41 +00:00
svenpanne@chromium.org
b6869174c6
Simplify EmitCallIC.
...
Move the identification of the corresponding StatsCounter where it belongs,
namely into the Code class. Use the null pattern to signal "no inlined Smi
code". Removed a few unused counters.
Review URL: http://codereview.chromium.org/7273066
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8470 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-29 13:43:24 +00:00
sgjesse@chromium.org
c4f28bf274
Temporarily add more test output to help locate test failure
...
R=ricow@chromium.org
BUG=none
TEST=none
Review URL: http://codereview.chromium.org//7250002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8469 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-29 13:40:23 +00:00
jkummerow@chromium.org
6cd99953f1
Using KeyedStoreIC_Generic_Strict must prevent polymorphic case.
...
TEST=Fewer deopts in existing tests.
Review URL: http://codereview.chromium.org/7282007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8467 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-29 13:32:27 +00:00
sgjesse@chromium.org
3878096ed8
Fix compilation of all combinations of disassembler=on/off and objectprint=on/off
...
R=jkummerow@chromium.org
BUG=v8:1473
TEST=none
Review URL: http://codereview.chromium.org//7269002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8465 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-29 13:17:02 +00:00
sgjesse@chromium.org
7d2be7c0e0
Support debugger inspection of locals in optimized frames
...
Optimized frames are now handled by the debugger. When discovering optimized frames during stack inspection in the debugger they are "deoptimized" using the normal deoptimization code and the deoptimizer output information is used to provide frame information to the debugger.
Before this change the debugger reported each optimized frame as one frame no matter the number of inlined functuions that might have been called inside of it. Also all locals where reported as undefined. Locals can still be reposted as undefined when their value is not "known" by the optimized frame.
As the structures used to calculate the output frames when deoptimizing are not GC safe the information for the debugger is copied to another structure (DeoptimizedFrameInfo) which is registered with the global deoptimizer data and processed during GC.
R=fschneider@chromium.org
BUG=v8:1140
TEST=test/mjsunit/debug-evaluate-locals-optimized*
Review URL: http://codereview.chromium.org//7230045
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8464 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-29 13:02:00 +00:00
vegorov@chromium.org
cd9356baa6
Prepare push to trunk. Now working on 3.4.9.
...
R=ager@chromium.org
Review URL: http://codereview.chromium.org/7282005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8462 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-29 11:21:23 +00:00
svenpanne@chromium.org
ac7fca826d
Simplify the way we call UnaryOpStubs, saving one unused no-op after the call itself.
...
Review URL: http://codereview.chromium.org/7280005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8461 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-29 11:12:12 +00:00
sandholm@chromium.org
f9c82bf3a3
Improve JSON.parse to use less memory when using escaped and non-ascii
...
characters.
Review URL: http://codereview.chromium.org/7241023
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8460 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-29 10:54:20 +00:00
sgjesse@chromium.org
39ed137e10
ARM: Improve register allocation and constraints (try 2).
...
Gives ~20% boost for Crypto benchmark on A9.
BUG=none
TEST=added to mjsunit/div-mod.js
Review URL: http://codereview.chromium.org//7276034
Patch from Martyn Capewell <m.m.capewell@googlemail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8459 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-29 10:51:06 +00:00
jkummerow@chromium.org
6f66664386
Error checking for length parameter of external array constructors in shell
...
BUG=v8:1501
Review URL: http://codereview.chromium.org/7268002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8458 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-29 10:27:14 +00:00
yangguo@chromium.org
61c7b030e9
reverting revision r8454
...
Review URL: http://codereview.chromium.org/7218042
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8457 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-29 08:45:22 +00:00
erik.corry@gmail.com
f8fdc62c19
Improvement to SmiLexicalCompare. Landing http://codereview.chromium.org/7261008 for Stephen Adams
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8456 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-29 08:35:10 +00:00
kmillikin@chromium.org
81e8b42e1b
Fix lint failure.
...
TBR=fschneider@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/7284004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8455 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-29 08:32:12 +00:00
yangguo@chromium.org
e6dbce1190
added the --test option for d8 into tools/test.py
...
TEST= tools/test.py --shell d8 -v
Review URL: http://codereview.chromium.org/7272028
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8454 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-29 08:22:36 +00:00
kmillikin@chromium.org
96bbcaf416
Explicitly pass the closure when allocating a catch or with context.
...
Before: allocation of a catch or with context fetched the closure to store
in the context from the previous context in the context chain. Now: the
closure is passed explicitly.
R=ager@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/7275022
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8453 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-29 07:41:42 +00:00
kmillikin@chromium.org
5e7da7f04f
Remove the fcontext field from all contexts.
...
Before: every context cached the nearest enclosing function context. This
assumed that for nested contexts (i.e., with and catch contexts) the
enclosing function had a materialized link in the context chain.
Now: when necessary, we loop up the context chain to find such a context.
This enables catch contexts without forcing the enclosing function to
allocate its own context.
R=ager@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/7230047
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8452 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-28 15:22:08 +00:00
fschneider@chromium.org
2760bd2927
Slightly improved register assignment for %_IsObject on IA32 and ARM.
...
The new approach uses one temp register instead of two on IA32. The ARM
instructions are modified so the input can be UseAtStart again.
Review URL: http://codereview.chromium.org/7274025
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8451 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-28 14:21:55 +00:00
kmillikin@chromium.org
e859416b9f
Better placement of argument pushing for a few hydrogen call instructions.
...
Where it's simple to do so (keyed calls, calls to unknown global variables,
calls to local variables and non-property/non-variable expressions), end the
live range of argument subexpressions immediately after the last use of the
expression rather than at the call.
R=fschneider@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/7274020
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8445 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-28 12:51:21 +00:00
keuchel@chromium.org
3f70c456eb
Fix "illegal access" when calling parseInt with a radix that is not a smi.
...
BUG=v8:1246
TEST=regress-1246.js
Review URL: http://codereview.chromium.org/7206019
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8444 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-28 12:31:42 +00:00
fschneider@chromium.org
c9eefb3f88
Fix bug in register assignment of IsObjectAndBranch.
...
Make sure that input and temp registers don't overlap.
Review URL: http://codereview.chromium.org/7273026
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8443 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-28 09:09:07 +00:00
ager@chromium.org
3f6043d370
Cleanup to HEnvironment::CopyForInlining
...
* src/hydrogen.cc (HEnvironment::CopyForInlining): As the code for both
the ::HYDROGEN and ::LITHIUM compilation phases is the same, just use
one code path and remove the arg.
* src/hydrogen.h (HEnvironment): Remove now-unused CompilationPhase
enum type and arg to CopyForInlining.
* src/arm/lithium-arm.cc (LChunkBuilder::DoEnterInlined):
* src/ia32/lithium-ia32.cc (LChunkBuilder::DoEnterInlined):
* src/x64/lithium-x64.cc (LChunkBuilder::DoEnterInlined): Adapt
callers.
* AUTHORS: Add Igalia.
BUG=
TEST=I ran tools/test.py.
Review URL: http://codereview.chromium.org/7272002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8442 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-28 08:54:09 +00:00
fschneider@chromium.org
b59f2b700b
Fix a bug in %_GetCachedArrayIndex.
...
This inline runtime function had the wrong super class.
It did not cause any problems since it is only used in
our natives and never in a test context.
Review URL: http://codereview.chromium.org/7253004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8441 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-28 08:49:01 +00:00
sgjesse@chromium.org
26e53ac042
MIPS: port Fix receiver check in arguments ICs.
...
Ported r8429 (60a2787)
BUG=
TEST=
Review URL: http://codereview.chromium.org//7276027
Patch from Paul Lind <plind44@gmail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8434 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-28 07:54:01 +00:00
sgjesse@chromium.org
b6afa34afa
MIPS: Long branch implementation and trampoline improvement.
...
Improve the branch and branch-trampoline mechanism to automatically
use long-jumps when function size grows large. Reduce size of emitted
trampoline pools.
Now passes mozilla regress-80981.js.
BUG=
TEST=
Review URL: http://codereview.chromium.org//7239020
Patch from Paul Lind <plind44@gmail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8433 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-28 07:31:42 +00:00
ager@chromium.org
614e542869
Ensure 16-byte stack alignment on Solaris.
...
GCC generates instructions such as movdqa that requires 16-byte alignment.
R=ricow@chromium.org
BUG=v8:1505
TEST=
Review URL: http://codereview.chromium.org/7277031
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8432 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-28 07:07:09 +00:00