- 30 Oct, 2009 1 commit
-
-
kmillikin@chromium.org authored
Since it is (currently) only an enum, change it to an enum (for now). Review URL: http://codereview.chromium.org/342035 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3181 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 15 Oct, 2009 2 commits
-
-
kmillikin@chromium.org authored
fast-mode code generator. AST expression nodes are annotated with a location when doing the initial syntactic check of the AST. In the current implementation, expression locations are 'temporary' (ie, allocated to the stack) or 'nowhere' (ie, the expression's value is not needed though it must be evaluated for side effects). For the assignment '.result = true' on IA32, we had before (with the true value already on top of the stack): 32 mov eax,[esp] 35 mov [ebp+0xf4],eax 38 pop eax Now: 32 pop [ebp+0xf4] ======== On x64, before: 37 movq rax,[rsp] 41 movq [rbp-0x18],rax 45 pop rax Now: 37 pop [rbp-0x18] ======== On ARM, before (with the true value in register ip): 36 str ip, [sp, #-4]! 40 ldr ip, [sp, #+0] 44 str ip, [fp, #-12] 48 add sp, sp, #4 Now: 36 str ip, [fp, #-12] Review URL: http://codereview.chromium.org/267118 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3076 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
kmillikin@chromium.org authored
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
-
- 14 Oct, 2009 1 commit
-
-
kmillikin@chromium.org authored
fast code generator is optimized for compilation time and code size. Currently it is only implemented on IA32. It is potentially triggered for any code in the global scope (including code eval'd in the global scope). It performs a syntactic check and chooses to compile in fast mode if the AST contains only supported constructs and matches some other constraints. Initially supported constructs are * ExpressionStatement, * ReturnStatement, * VariableProxy (variable references) to parameters and stack-allocated locals, * Assignment with lhs a parameter or stack-allocated local, and * Literal This allows compilation of literals at the top level and not much else. All intermediate values are allocated to temporaries and the stack is used for all temporaries. The extra memory traffic is a known issue. The code generated for 'true' is: 0 push ebp 1 mov ebp,esp 3 push esi 4 push edi 5 push 0xf5cca135 ;; object: 0xf5cca135 <undefined> 10 cmp esp,[0x8277efc] 16 jnc 27 (0xf5cbbb1b) 22 call 0xf5cac960 ;; code: STUB, StackCheck, minor: 0 27 push 0xf5cca161 ;; object: 0xf5cca161 <true> 32 mov eax,[esp] 35 mov [ebp+0xf4],eax 38 pop eax 39 mov eax,[ebp+0xf4] 42 mov esp,ebp ;; js return 44 pop ebp 45 ret 0x4 48 mov eax,0xf5cca135 ;; object: 0xf5cca135 <undefined> 53 mov esp,ebp ;; js return 55 pop ebp 56 ret 0x4 Review URL: http://codereview.chromium.org/273050 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3067 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 08 Oct, 2009 1 commit
-
-
sgjesse@chromium.org authored
Review URL: http://codereview.chromium.org/266004 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3034 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 30 Sep, 2009 1 commit
-
-
kmillikin@chromium.org authored
Review URL: http://codereview.chromium.org/255022 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2996 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 16 Sep, 2009 1 commit
-
-
mikhail.naganov@gmail.com authored
The profile is taken together with constructors profile. In theory, it should represent a complete heap graph. However, this takes a lot of memory, so it is reduced to a more compact, but still useful form. Namely: - objects are aggregated by their constructors, except for Array and Object instances, that are too hetereogeneous; - for Arrays and Objects, initially every instance is concerned, but then they are grouped together based on their retainer graph paths similarity (e.g. if two objects has the same retainer, they are considered equal); Review URL: http://codereview.chromium.org/200132 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2903 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 11 Sep, 2009 1 commit
-
-
sgjesse@chromium.org authored
The SCons build now has the options profilingsupport and debuggersupport for controlling the setting of the defines ENABLE_LOGGIGN_AND_PROFILING and ENABLE_DEBUGGER_SUPPORT. By default both are set to true. The changes to the XCode project have not been tested. Review URL: http://codereview.chromium.org/195061 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2875 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 09 Sep, 2009 1 commit
-
-
sgjesse@chromium.org authored
Review URL: http://codereview.chromium.org/195024 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2847 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 07 Sep, 2009 1 commit
-
-
sgjesse@chromium.org authored
Use different output directories when building using the Visual Studion solution.The different Visual Studio solutions for building for the different architures ia32, x64 and arm (simulator) now use separate output directories. Debug/Release for ia32, Debug64/Release64 for x64 and DebugArm/ReleaseArm for arm (simulator).It was required to duplicate all the project files for arm to avoid output from ia32 and arm to get mixed. Review URL: http://codereview.chromium.org/199006 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2835 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 26 Aug, 2009 1 commit
-
-
christian.plesner.hansen@gmail.com authored
made inline versions of some hot functions. Changed api to use internal Object pointers rather than void pointers. Speeds up getElementById by ~7%. Review URL: http://codereview.chromium.org/173348 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2761 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 24 Aug, 2009 1 commit
-
-
whesse@chromium.org authored
Review URL: http://codereview.chromium.org/174137 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2742 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 19 Aug, 2009 1 commit
-
-
sgjesse@chromium.org authored
These files will make it possible to start working with the 64-bit version on Windows. The GUID's of the x64 project files are the same as their ia32 counterparts, but that does not matter as they will never be used in the same solution. Added a temporary #error when building 64-bit version on Windows. Review URL: http://codereview.chromium.org/171111 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2711 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 31 Jul, 2009 2 commits
-
-
mikhail.naganov@gmail.com authored
Added necessary code to initialize Top::js_entry_sp value. Renamed 'test-log-ia32' test to 'test-log-stack-tracer' and enabled it in 64-bit version. Review URL: http://codereview.chromium.org/160446 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2597 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
kmillikin@chromium.org authored
generated in one-pass from the source AST, code is generated from the CFG. Enabled by the flag --multipass and disabled by default. Rudimentary and currently only supports literal expressions and return statements. There are some other known limitations (e.g., missing support for tracing). Review URL: http://codereview.chromium.org/159695 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2596 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 29 Jul, 2009 1 commit
-
-
mikhail.naganov@gmail.com authored
It is activated with '--log-gc' flag. JS object size is calculated as its size + size of 'properties' and 'elements' arrays, if they are non-empty. This doesn't take maps, strings, heap numbers, and other shared objects into account. As Soeren suggested, I've moved ZoneSplayTree from jsregexp to zone, and removed now empty jsregexp-inl header file. Review URL: http://codereview.chromium.org/159504 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2570 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 17 Jul, 2009 1 commit
-
-
kasperl@chromium.org authored
Original review: http://codereview.chromium.org/149768 TBR=kmillikin@chromium.org Review URL: http://codereview.chromium.org/155679 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2492 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 07 Jul, 2009 1 commit
-
-
lrn@chromium.org authored
Clean-up of RegExp code. Review URL: http://codereview.chromium.org/155085 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2366 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 24 Jun, 2009 1 commit
-
-
antonm@chromium.org authored
Review URL: http://codereview.chromium.org/125141 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2263 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 28 May, 2009 1 commit
-
-
mikhail.naganov@gmail.com authored
The goal of this change is to allow longer profiling sessions and preserve memory when profiler isn't started. The buffer starts with 64K and grows until it reaches the upper limit, which is currently set to 50MB --- according to my evaluations, this is enough for at least 20 minutes of GMail profiling. As we're planning to introduce compression for the profiler log, this time boundary will be significantly increased soon. To make possible unit testing of the new component, I've factored out Logger's utility classes into a separate source file: log-utils.h/cc. Log and LogMessageBuilder are moved there from log.cc without any semantical changes. Review URL: http://codereview.chromium.org/115814 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2067 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 14 May, 2009 3 commits
-
-
ager@chromium.org authored
Add virtual destructor to jump targets to make compiler happy. Review URL: http://codereview.chromium.org/113396 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1951 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
ager@chromium.org authored
Review URL: http://codereview.chromium.org/115350 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1950 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
ager@chromium.org authored
encoding the values in one word and by using an indirection table for handles. This reduces compilation time by roughly 10% and we should be able to make the slow case equality checking of frame elements faster as well. Review URL: http://codereview.chromium.org/115347 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1949 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 05 May, 2009 2 commits
-
-
mikhail.naganov@gmail.com authored
This will enable reading profiler log in Chrome. The current implementation of memory buffer is trivial (fixed size buffer, no memory recycling) but enough to start end-to-end DevTools Profiler implementation. Later it will be enhanced. Review URL: http://codereview.chromium.org/108011 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1870 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
deanm@chromium.org authored
- TARGET, the architecture we will generate code for. This is brought it from the build system. - HOST, the architecture our C++ compiler is building for. This is detected automatically based on compiler defines. This adds macros for 32 or 64 bit, and cleans up some include conditionals, etc. Review URL: http://codereview.chromium.org/99355 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1864 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 30 Apr, 2009 1 commit
-
-
sgjesse@chromium.org authored
The current version is now held in src/version.cc in a number of defines which needs to be modified when changing version. The following defines make up the version information: MAJOR_VERSION MINOR_VERSION BUILD_NUMBER PATCH_LEVEL CANDIDATE_VERSION The first four are numbers and the fifth is a boolean. Besides these five the define SONAME can be used to set a specific soname when building the a shared library (see below). This will most likely be used on stable branches where binary compatibility is ensured between different versions. This define is a string. This version information is now read by the SCons build to support setting the soname for a Linux shared library. This requires passing the option soname=on to the SCons build. When soname=on is specified the soname for the shared library can be set in two different ways. Either it will be the full versioned library name (e.g. libv8-1.2.2.so) or a specific soname defined in src/version.cc. Whenever a shared library is build with an soname the filename of the library will hold the full version name (e.g. libv8-1.2.2.so). I did not update the xcode project with the new files. BUG=151 Review URL: http://codereview.chromium.org/100104 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1826 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 29 Apr, 2009 2 commits
-
-
lrn@chromium.org authored
Fix SConstruct to only add -m32 if the compiler needs it. Review URL: http://codereview.chromium.org/100160 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1820 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
lrn@chromium.org authored
Possible to attempt to build for X64. Build will be unsuccessful, since all x64 source files are missing and pointers are reinterpreted as integers everywhere. Review URL: http://codereview.chromium.org/99186 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1817 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 24 Apr, 2009 1 commit
-
-
christian.plesner.hansen@gmail.com authored
- Added lazily loaded JSON object. git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1784 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 23 Apr, 2009 1 commit
-
-
lrn@chromium.org authored
Move ia32 and arm specific files to subdirectories to make it easier to add more backends. Review URL: http://codereview.chromium.org/92068 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1782 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 22 Apr, 2009 1 commit
-
-
sgjesse@chromium.org authored
Review URL: http://codereview.chromium.org/93007 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1762 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 14 Apr, 2009 1 commit
-
-
mikhail.naganov@gmail.com authored
Currently function name inference is wired with AST optimization pass to avoid introducing another pass over AST. A better solution would be to rewrite AST visitors so they can be naturally combined together in a single pass, as their current implementation doesn't allow it. For examples of cases where function names can be inferred, see the tests file. Review URL: http://codereview.chromium.org/62146 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1696 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 07 Apr, 2009 1 commit
-
-
sgjesse@chromium.org authored
TBR=erik.corry@gmail.com Review URL: http://codereview.chromium.org/62103 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1686 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 31 Mar, 2009 1 commit
-
-
sgjesse@chromium.org authored
Fixed the OS check in the SCons build. Moved SetEnvironment to platform file as Windows does not have setenv. Added the d8-windows.cc to the Visual Studio project. Review URL: http://codereview.chromium.org/57050 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1649 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 05 Mar, 2009 1 commit
-
-
mikhail.naganov@gmail.com authored
Review URL: http://codereview.chromium.org/40159 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1427 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 03 Mar, 2009 1 commit
-
-
sgjesse@chromium.org authored
The debugger agent listens on a TCP/IP port for a remote debugger connection. When such a connection is established the debuger JSON protocol is communicated between the agent the the remote debugger. The messages containing the JSON protocol has a RFC-822 like header with a Content-Length field and with the body containing the JSON in UTF-8 encoding. The D8 shell has option --debugger-agent to start the debugger agent. Review URL: http://codereview.chromium.org/27355 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1405 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 27 Feb, 2009 1 commit
-
-
kmillikin@chromium.org authored
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1389 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 25 Feb, 2009 2 commits
-
-
mikhail.naganov@gmail.com authored
The testing is a bit tricky because we need to obtain a frame pointer (EBP on IA-32) from inside of a function. This is especially interesting in case of a compiled JavaScript function. Review URL: http://codereview.chromium.org/28112 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1365 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
erik.corry@gmail.com authored
Review URL: http://codereview.chromium.org/21504 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1355 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 24 Feb, 2009 1 commit
-
-
sgjesse@chromium.org authored
The new Socket class is an encapsulation of the standard BSD socket API. As it depends on platform specific include files and have some slight platform variations it is part of the platform code. On Mac OS only the option SO_REUSEADDR is set to true for server sockets. Running the test required it as the bound listener socket would sometimes end up in TIME_WAIT. On Windows and Linux this has never been observed (given the client end of the socket is closed before the server end). The code has been tested on Windows, Linux and Mac OS. The FreeBSD version is a copy of the Linux version but has not been compiled nor tested. Missing Xcode project updates. Review URL: http://codereview.chromium.org/27085 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1349 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-