floitschV8@gmail.com
808d00f8ef
Bignum implementation of Strtod.
...
This removes the dependency on Gay's strtod.
Review URL: http://codereview.chromium.org/4060001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5778 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-08 11:49:47 +00:00
lrn@chromium.org
f386f97476
Move part of scanner.* into scanner-base.* for reuse in preparser scanner.
...
Make checks.h not depend on flags.h or global.h (or anything else except
include/v8stdint.h). Only checks.cc has the dependencies (so another
implementation of checks.cc can be provided by the preparser).
Now files depending on checks.h (using ASSERT macros) can include it
directly without depending on all of v8.
Review URL: http://codereview.chromium.org/4576001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5775 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-05 13:33:40 +00:00
ager@chromium.org
08da2bd6fb
Remove vm-state.cc from build files. Forgot to do that when
...
removing the file from the repository.
Review URL: http://codereview.chromium.org/3950001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5666 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-10-20 06:47:49 +00:00
floitschV8@gmail.com
f5ea94da69
Simplify powers-of-ten cache.
...
The existing cache was build to support changes to fast-dtoa. This complicated the cache. Since the cached numbers are now in a .cc file they can be shared with other parts of v8.
Review URL: http://codereview.chromium.org/3608011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5606 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-10-07 13:02:36 +00:00
floitschV8@gmail.com
caf6856ade
Move gay_strtod outside conversions.cc.
...
This is the first part of removing calls to gay's strtod. Future CLs will
get rid of calls to gay_strtod entirely.
BUG=
TEST=
Review URL: http://codereview.chromium.org/3563009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5600 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-10-07 08:54:10 +00:00
lrn@chromium.org
2c85faf1ae
Refactored string search code.
...
Made string search state explicit for repreated calls (a StringSearch class).
Review URL: http://codereview.chromium.org/3467010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5550 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-09-29 10:57:23 +00:00
whesse@chromium.org
82309445ad
Move code stub implementations from codegen-[platform].cc files to new code-stub-[platform].cc files, and declarations to new code-stub-[platform].h files.
...
Remaining work is to do the same for platform-independent code stub declarations, and to remove all dependencies on codegen header files from code stub files.
Review URL: http://codereview.chromium.org/3195022
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5338 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-08-25 09:44:44 +00:00
kasperl@chromium.org
7b51dc7edb
Cleanup the AST code by removing unused parts and get rid of the
...
flow graph code completely. Add new AST node for null compares
and use it to make the full codegens better at generating code
for null comparisons.
Review URL: http://codereview.chromium.org/3146037
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5323 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-08-24 07:26:49 +00:00
ager@chromium.org
3e936b547a
Remove experimental fast-codegen. We are no longer working on this
...
approach.
Review URL: http://codereview.chromium.org/3152016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5259 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-08-13 09:07:09 +00:00
vegorov@chromium.org
28f9412cbd
Generalize virtually dispatched scavenger to virtually dispatched specialized visitors.
...
Review URL: http://codereview.chromium.org/3066044
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5246 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-08-11 14:30:14 +00:00
erik.corry@gmail.com
d0241c98c5
Remove the fledgling Thumb2 support since we are concentrating
...
on other ways to make ARM code more compact.
Review URL: http://codereview.chromium.org/2080017
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4698 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-05-21 09:23:33 +00:00
floitschV8@gmail.com
7fc98eb1f4
Dtoa for fixed notation.
...
Review URL: http://codereview.chromium.org/1956005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4596 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-05-05 13:51:27 +00:00
floitschV8@gmail.com
92a9e30cd8
Revert r4591
...
Review URL: http://codereview.chromium.org/1968003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4592 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-05-05 10:33:27 +00:00
floitschV8@gmail.com
b441d246b3
Provide (non Gay) dtoa for fixed notation.
...
Review URL: http://codereview.chromium.org/1865001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4591 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-05-05 09:29:18 +00:00
erik.corry@gmail.com
4418b58973
Fix cross compilation of snapshot builds using scons.
...
With this change we also activate snapshots for ARM
benchmarking builds.
Review URL: http://codereview.chromium.org/1627019
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4394 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-04-13 09:01:30 +00:00
mikhail.naganov@gmail.com
c520e28dcb
Make VM state tracking to be independent of logging and profiling.
...
Also pull out VMState into its own set of source files.
Review URL: http://codereview.chromium.org/1519027
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4361 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-04-08 13:37:39 +00:00
whesse@chromium.org
75003d7e76
Change a TypeInfo function from inline to non-inline, reducing stack usage during code compilation.
...
Review URL: http://codereview.chromium.org/1369003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4297 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-03-26 11:34:00 +00:00
kmillikin@chromium.org
70bbac9c56
Move flow graph and helper classes to their own file.
...
The FlowGraph, FlowGraphBuilder, and flow graph node classes are moved
to src/flow-graph.cc.
Review URL: http://codereview.chromium.org/1253009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4287 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-03-25 16:22:48 +00:00
erik.corry@gmail.com
f5523ecc6a
Split the virtual frame into heavy and light versions.
...
The heavy version is for x86 and x64. The light version
is for ARM and MIPS. Remove the elements_ array from the
virtual frame in the light version. More simplifications
to come, followed by light register allocation.
Review URL: http://codereview.chromium.org/1164002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4272 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-03-25 13:18:00 +00:00
kasperl@chromium.org
7d6a3b433f
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
2010-03-23 11:40:38 +00:00
floitschV8@gmail.com
05beab6b1f
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
2010-03-19 12:15:24 +00:00
mikhail.naganov@gmail.com
9582645a02
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
2010-03-19 09:46:53 +00:00
floitschV8@gmail.com
9e84308722
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
2010-03-18 13:19:59 +00:00
floitschV8@gmail.com
74b4ad0e69
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
2010-03-17 15:57:26 +00:00
mikhail.naganov@gmail.com
d2188658ca
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
2010-03-17 13:15:42 +00:00
fschneider@chromium.org
9f318feb93
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
2010-03-17 13:04:07 +00:00
mikhail.naganov@gmail.com
ce9298029d
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
2010-03-17 12:25:10 +00:00
mikhail.naganov@gmail.com
12d252eb81
Start migrating profiles processing to C++.
...
Adding code for maintaining (address -> name) mapping and building
call trees.
Review URL: http://codereview.chromium.org/910002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4131 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-03-15 14:11:19 +00:00
floitschV8@gmail.com
8814064337
Fast double-to-ascii conversion.
...
Review URL: http://codereview.chromium.org/866002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4106 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-03-11 14:49:35 +00:00
floitschV8@gmail.com
088afd03a6
Revert grisu commits.
...
Review URL: http://codereview.chromium.org/804005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4092 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-03-10 21:26:32 +00:00
floitschV8@gmail.com
c5eea7fee2
Fast algorithm for double->string conversion.
...
Review URL: http://codereview.chromium.org/619005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4090 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-03-10 20:49:14 +00:00
kmillikin@chromium.org
bce8d2ebae
Remove unneeded variable usage analysis.
...
A variable usage analysis pass was run on toplevel and lazily-compiled
code but never used. Remove this pass and the data structures it
builds.
The representation of variable usage for Variables has been changed
from a struct containing a (weighted) count of reads and writes to a
simple flag. VariableProxies are always used, as before. The unused
"object uses" is removed.
Review URL: http://codereview.chromium.org/669270
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4052 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-03-08 13:01:24 +00:00
peter.rybin@gmail.com
77d63cc29e
Basic implementation of liveedit feature
...
Review URL: http://codereview.chromium.org/652027
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4045 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-03-05 22:08:58 +00:00
ager@chromium.org
fc382f0ffa
Revert pax change as it does not work with older versions of scons.
...
Review URL: http://codereview.chromium.org/661071
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3946 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-02-25 08:27:07 +00:00
ager@chromium.org
be1ea81cbf
Land change to allow building on Gentoo Hardened Linux.
...
Codereview URL: http://codereview.chromium.org/659002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3940 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-02-24 18:50:56 +00:00
fschneider@chromium.org
226769d8bf
Temporarily move the ia32 fast code generator into the platform-specific directory.
...
This allows us to make changes to one platform without affecting the others.
Review URL: http://codereview.chromium.org/646019
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3907 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-02-19 09:17:37 +00:00
peter.rybin@gmail.com
3849f08ade
Add central bridge for liveedit support
...
Review URL: http://codereview.chromium.org/607004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3891 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-02-17 20:37:08 +00:00
sgjesse@chromium.org
a6a7c75ae0
MIPS port initial commit
...
This is the first step in the MIPS port of V8. It adds assembler, disassembler and simulator for the MIPS32 architecture.
Contains stubbed out implementation of all the compiler/code generator infrastructure to make it all build.
Patch by Alexandre Rames from Sigma Designs Inc.
This is the landing of http://codereview.chromium.org/543161 .
Review URL: http://codereview.chromium.org/561072
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3799 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-02-04 20:36:58 +00:00
kmillikin@chromium.org
41865cd677
Implement simple fast-path code for functions containing this property stores and global variables.
...
Code is specialized to the initial receiver.
Review URL: http://codereview.chromium.org/553149
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3760 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-02-01 17:01:58 +00:00
fschneider@chromium.org
88f6734ddb
Add a pass for the fast compiler to label expression nodes.
...
This change adds a post-order numbering to AST nodes that
are relevant for the fast code generator. It is only invoked
together with the fast compiler.
Also changed the ast printer to print the numbering for
testing purposes if it is present.
Review URL: http://codereview.chromium.org/553134
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3738 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-01-29 09:42:13 +00:00
kmillikin@chromium.org
2b62886dab
Refactor the selection of code generator and add the possibility of a
...
simpler backend for non-toplevel code.
Review URL: http://codereview.chromium.org/549158
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3721 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-01-27 15:23:48 +00:00
ager@chromium.org
cd51fcd35f
Land patch to add Solaris platform support.
...
Patch by Erich Ocean and Ryan Dahl.
Review URL: http://codereview.chromium.org/545125
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3688 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-01-25 12:37:31 +00:00
kmillikin@chromium.org
1405258621
Rename the fast-codegen* files to full-codegen*.
...
Review URL: http://codereview.chromium.org/549109
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3662 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-01-20 16:28:21 +00:00
mikhail.naganov@gmail.com
37d3972429
Fix issue 571: display descriptive names for code objects from snapshot.
...
As this is only needed for internal profiling (not for DevTools),
the following approach had been chosen:
- during snapshot creation, positions of serialized objects inside
a snapshot are logged;
- then during V8 initialization, positions of deserealized objects
are logged;
- those positions are used for retrieving code objects names from
snapshot creation log, which needs to be supplied to tick processor
script.
Positions logging is controlled with the new flag: --log_snapshot_positions.
This flag is turned off by default, and this adds no startup penalty.
To plug this fix to Golem, the following actions are needed:
- logs created using 'mksnapshot' need to be stored along with VM images;
- tick processor script needs to be run with '--snapshot-log=...' cmdline
argument.
BUG=571
Review URL: http://codereview.chromium.org/551062
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3635 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-01-18 16:04:25 +00:00
erik.corry@gmail.com
264c055b2f
Create the framework for adding a thumb2 backend for ARM. See http://codereview.chromium.org/464070
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3436 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-12-09 12:56:42 +00:00
sgjesse@chromium.org
209035c996
Initial OpenBSD support
...
Patch by Peter Valchev <pvalchev@gmail.com>.
TBR=ager@chromium.org
Review URL: http://codereview.chromium.org/465002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3398 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-12-02 13:38:50 +00:00
erik.corry@gmail.com
6a3921fc0e
Keep natives source code in external strings instead of putting
...
it in regular flat strings that are part of the snapshot.
After this change we don't need libraries-empty.cc any more. In
this change libraries-empty.cc is just a the same as libraries.cc
and the scons build builds it but does not use it. We can move
in stages to a situation where it is not generated at all for all
the build systems that we have.
Review URL: http://codereview.chromium.org/360050
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3238 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-06 13:48:33 +00:00
kmillikin@chromium.org
11d9e7ff51
Initial port of top-level code generator to ARM. For the constant
...
true at the top level we generate:
0 stmdb sp!, {r1, r8, fp, lr}
4 add fp, sp, #8
8 ldr ip, [r10, #+4]
12 ldr r2, [r10, #+0]
16 str ip, [sp, #-4]!
20 add lr, pc, #4
24 cmp sp, r2
28 ldrcc pc, [pc, #+68] ;; code: STUB, StackCheck, minor: 0
32 ldr ip, [pc, #+68] ;; object: 0xf5bc4161 <true>
36 str ip, [sp, #-4]!
40 ldr ip, [sp, #+0]
44 str ip, [fp, #-12]
48 add sp, sp, #4
52 ldr ip, [fp, #-12]
56 str ip, [sp, #-4]!
60 ldr r0, [sp], #+4
64 mov sp, fp ;; js return
68 ldmia sp!, {fp, lr}
72 add sp, sp, #4
76 bx lr
80 ldr r0, [r10, #+4]
84 mov sp, fp ;; js return
88 ldmia sp!, {fp, lr}
92 add sp, sp, #4
96 bx lr
100 constant pool begin
104 constant
108 constant
Review URL: http://codereview.chromium.org/264067
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3073 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-15 12:42:16 +00:00
kmillikin@chromium.org
d664dfaf4b
Port the initial fast code generator to x64. For the constant true in
...
top-level code we generate:
0 push rbp
1 movq rbp,rsp
4 push rsi
5 push rdi
6 push [r13+0x8]
10 cmpq rsp,[r13+0x0]
14 jnc 25 (0x7ff2c378ff19)
20 call 0x7ff2c377d260 ;; code: STUB, StackCheck, minor: 0
25 movq r10,0x7ff2e8608199 ;; object: 0x7ff2e8608199 <true>
35 push r10
37 movq rax,[rsp]
41 movq [rbp-0x18],rax
45 pop rax
46 push [rbp-0x18]
50 pop rax
51 movq rsp,rbp ;; js return
54 pop rbp
55 ret 0x8
58 int3
59 int3
60 int3
61 int3
62 int3
63 int3
64 movq rax,[r13+0x8]
68 movq rsp,rbp ;; js return
71 pop rbp
72 ret 0x8
75 int3
76 int3
77 int3
78 int3
79 int3
80 int3
Review URL: http://codereview.chromium.org/264066
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3071 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-15 11:21:26 +00:00
kmillikin@chromium.org
2d6169bf7e
Format the long lists of sources in the SConscript file to be one per
...
line. This is to make it easier to add and remove sources without
having to reformat line breaks. It also enables sorting with M-x
sort-lines (in emacs) or the like.
Review URL: http://codereview.chromium.org/276042
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3070 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-15 08:22:24 +00:00