- 19 Nov, 2009 1 commit
-
-
fschneider@chromium.org authored
Summary: This change fixes a performance regression introduced by the special handling of regular expressions in typeof expressions. As a result we regain ~8% speedup on 3d-raytrace and ~13% on boyer (vs bleeding edge) Description: The macros IS_OBJECT and IS_FUNCTION are frequently used in the JS runtime functions. By introducing new inlined runtime functions %_IsFunction and %_IsObject we avoid invoking the more expensive %_ClassOf function plus comparing its result to a string. Review URL: http://codereview.chromium.org/399111 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3335 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 18 Nov, 2009 7 commits
-
-
ager@chromium.org authored
string is larger than 2047 chars we will encode the slice as two Smis instead of one. The calculation of the max size of the string builder did not take this into account. BUG=http://code.google.com/p/v8/issues/detail?id=515 Review URL: http://codereview.chromium.org/402056 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3334 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
ager@chromium.org authored
Review URL: http://codereview.chromium.org/405018 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3332 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
erik.corry@gmail.com authored
Review URL: http://codereview.chromium.org/402048 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3331 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
ager@chromium.org authored
zero-extended as it should be. Therefore, the index into the pixel array could influence the value on reads. BUG=http://code.google.com/p/chromium/issues/detail?id=26337 Review URL: http://codereview.chromium.org/399067 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3328 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
erik.corry@gmail.com authored
Review URL: http://codereview.chromium.org/402012 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3327 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
sgjesse@chromium.org authored
A callback on the debugger thread when a message is received. Allows the embedding application to wake up the main thread in order to handle the message. Useful when the embedding application is idle and sitting in a select() call. Patch by Ryan Dahl <coldredlemur@gmail.com> Review URL: http://codereview.chromium.org/395013 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3326 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
kasperl@chromium.org authored
returns a failure. Review URL: http://codereview.chromium.org/402034 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3323 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 17 Nov, 2009 5 commits
-
-
http://codereview.chromium.org/391014lrn@chromium.org authored
I added some tests and swapped the lhs and rhs of the && operator in v8natives.js as requested. Review URL: http://codereview.chromium.org/384132 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3319 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
antonm@chromium.org authored
callbacks. Otherwise if callback allocates a new handle, it could orphan some global handles (with disastorous consequences if those global handles are cached). Review URL: http://codereview.chromium.org/395024 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3318 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
erik.corry@gmail.com authored
flattening the strings and not trying too hard to traverse a big cons tree from generated code. Review URL: http://codereview.chromium.org/402008 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3317 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
sgjesse@chromium.org authored
Review URL: http://codereview.chromium.org/397024 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3316 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
sgjesse@chromium.org authored
Change name of shifts picking the shift count from cl to sal_cl, shl_cl and shr_cl. Add special encoding of shift by one for shr which was missing it. git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3314 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 16 Nov, 2009 7 commits
-
-
fschneider@chromium.org authored
This change fixes the problem with the original version of this approach (r3032) that may lead to a corrupted stack if we would invoke spilling during syncing a large SMI constant (unsafe SMIs) in the virtual frame. The new code for storing unsafe SMI constants does not use an extra temporary register. This prevents the compiler from ever having to spill during a virutal frame sync operation. For storing a large SMI constant we previously generated: mov ecx, (large_smi & 0x0000ffff) xor ecx, (large_smi & 0xffff0000) push ecx we now generate: push (large_smi & 0x0000ffff) or [esp], (large_smi & 0xffff0000) Not using a temporary register avoids spilling within an nvocation of VirtualFrame::SyncRange. Review URL: http://codereview.chromium.org/391079 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3313 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
yurys@chromium.org authored
Condition block of do/while statements is a valid break location so it should have its own position. The block is represented by a regular Expression node so we cannot store the position in it, instead the position is stored in a separate field in DoWhileStatement AST node. BUG=514 Review URL: http://codereview.chromium.org/385136 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3312 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
yurys@chromium.org authored
TBR=sgjesse@chromium.org Review URL: http://codereview.chromium.org/400001 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3311 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
yurys@chromium.org authored
BUG=509 Review URL: http://codereview.chromium.org/398002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3310 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
erik.corry@gmail.com authored
Review URL: http://codereview.chromium.org/399001 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3309 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
erik.corry@gmail.com authored
of code that can't be tested on slow targets. Review URL: http://codereview.chromium.org/385133 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3308 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
erik.corry@gmail.com authored
Review URL: http://codereview.chromium.org/394007 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3307 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 13 Nov, 2009 9 commits
-
-
yurys@chromium.org authored
TBR=sgjesse@chromium.org Review URL: http://codereview.chromium.org/384121 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3306 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
yurys@chromium.org authored
The test currently fails on v8 trunk if the new compiler is used. The issue seems to be fixed on bleeding_edge so there is no changes to src, just test. Cromium bug: http://crbug.com/26686 Review URL: http://codereview.chromium.org/384120 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3305 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
fschneider@chromium.org authored
This optimization is already done on x64 and ARM. Until now we used a push immediate for each local variable on IA32: push $undefined push $undefined ... to initialize each local variable. This change does: mov eax, $undefined push eax push eax ... Review URL: http://codereview.chromium.org/393009 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3304 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
fschneider@chromium.org authored
See http://code.google.com/p/chromium/issues/detail?id=27227 Review URL: http://codereview.chromium.org/385092 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3303 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
lrn@chromium.org authored
Review URL: http://codereview.chromium.org/393010 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3302 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
erik.corry@gmail.com authored
available. We use this to ensure that snapshots on MacOSX can use SSE2 instructions. Also clean up and assertify the handling of things we can't do when we are generating a snapshot. Fix a bug in the new serialization tests where they activated Snapshot::enable() too late after code had been generated that assumed no snapshots. Review URL: http://codereview.chromium.org/391051 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3301 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
fschneider@chromium.org authored
This change re-allows non-lazy compiled function literals for top-level compilation. There was a problem on ARM exposed through this change which was fixed as part of r3289 in fast-codegen-arm.cc (Threading and Threading2 tests failed) It occurred before r3289 when we allocate a local context at the beginning of a function. The code for the stack check was split up in an unintended way (load of stack check limit into r2, and use of r2 in the actual stack check code). Review URL: http://codereview.chromium.org/385070 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3300 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
fschneider@chromium.org authored
The test for a SMI before the write barrier tested the wrong register: r0 = target context address r1 = value to be written This change fixes the SMI test and tests r1 instead of r0. Review URL: http://codereview.chromium.org/384085 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3299 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
fschneider@chromium.org authored
Review URL: http://codereview.chromium.org/384087 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3298 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 12 Nov, 2009 9 commits
-
-
yurys@chromium.org authored
TBR=vitalyr Review URL: http://codereview.chromium.org/387037 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3295 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
yurys@chromium.org authored
Interceptors cannot provide a meaningful result for hidden_symbol anyway and some of them crash on empty property name. Related Chromium issue: http://code.google.com/p/chromium/issues/detail?id=27385 Review URL: http://codereview.chromium.org/390020 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3294 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
erik.corry@gmail.com authored
Also move a function into the macro assembler. Fix some *& placement errors that had accumulated. Review URL: http://codereview.chromium.org/385069 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3293 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
erik.corry@gmail.com authored
Review URL: http://codereview.chromium.org/348019 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3292 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
christian.plesner.hansen@gmail.com authored
Review URL: http://codereview.chromium.org/385068 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3291 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
lrn@chromium.org authored
Review URL: http://codereview.chromium.org/385067 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3290 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
lrn@chromium.org authored
Functions using "arguments" have their arguments object created on entry. Also added support for variables rewritten into argument object property access. Review URL: http://codereview.chromium.org/384078 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3289 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
ager@chromium.org authored
Review URL: http://codereview.chromium.org/386019 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3288 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
ager@chromium.org authored
and if it doesn't we need to figure out why. Review URL: http://codereview.chromium.org/385065 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3287 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 11 Nov, 2009 2 commits
-
-
kbr@chromium.org authored
was always falling through to the runtime. Re-examined both load and store ICs and verified they are now in sync with the 32-bit port. Ran tests and benchmarks. Review URL: http://codereview.chromium.org/385020 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3286 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
christian.plesner.hansen@gmail.com authored
potentially leading to bogus FatalProcessOutOfMemory situations. Also fixed a few cases where callers relied on getting a NewSpace object back (to avoid write barrier overhead) which they can't when always_allocate is in effect. Review URL: http://codereview.chromium.org/391018 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3285 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-