- 03 Nov, 2009 6 commits
-
-
fschneider@chromium.org authored
(== SetFunctionPosition in the top-level compiler) IA32 and X64 already do this at the beginning of CodeGenerator::gencode Review URL: http://codereview.chromium.org/354026 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3207 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
kmillikin@chromium.org authored
directly-applied function literals that are themselves compiled with the top-level code generator. The choice is guarded by a test that the function is anonymous (thus not expected to be recursive) and not in a loop. A compilation hint is set in the shared function info and used to make the choice. Review URL: http://codereview.chromium.org/341081 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3206 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
christian.plesner.hansen@gmail.com authored
Review URL: http://codereview.chromium.org/351021 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3205 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
kmillikin@chromium.org authored
Calls to a non-global variable would go through the "call to a global" path, rather than the "call to an arbitrary (other) expression" path. Review URL: http://codereview.chromium.org/355009 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3204 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
christian.plesner.hansen@gmail.com authored
Review URL: http://codereview.chromium.org/345046 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3202 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
christian.plesner.hansen@gmail.com authored
Review URL: http://codereview.chromium.org/342078 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3201 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 02 Nov, 2009 9 commits
-
-
whesse@chromium.org authored
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3200 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
kmillikin@chromium.org authored
Review URL: http://codereview.chromium.org/340059 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3199 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
kmillikin@chromium.org authored
generator, mimicing the behavior of the optimizing compiler. Initialization blocks can only contain (thus begin and end) with a property assignment in toplevel code. Review URL: http://codereview.chromium.org/348038 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3198 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
sgjesse@chromium.org authored
Re-apply r3153 with a fix for issue 490. Except for the change in line 1756 and the added test this change is identical to http://codereview.chromium.org/342015. BUG=490 TEST=test/mjsunit/regress/regress-490.js Review URL: http://codereview.chromium.org/341064 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3197 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
fschneider@chromium.org authored
a function in the top-level compiler. e.g. function f() { return (function() { return true; }) } f()() Review URL: http://codereview.chromium.org/346029 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3196 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
kmillikin@chromium.org authored
a platform-independent structure and a few platform-specific helpers to do the heavy lifting. Review URL: http://codereview.chromium.org/342073 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3195 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
fschneider@chromium.org authored
variable for the top-level compiler. Review URL: http://codereview.chromium.org/342058 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3194 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
whesse@chromium.org authored
Review URL: http://codereview.chromium.org/343057 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3193 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
whesse@chromium.org authored
Review URL: http://codereview.chromium.org/340058 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3192 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 30 Oct, 2009 10 commits
-
-
peter.rybin@gmail.com authored
Review URL: http://codereview.chromium.org/341024 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3189 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
kmillikin@chromium.org authored
Review URL: http://codereview.chromium.org/346022 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3188 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
kmillikin@chromium.org authored
context. Test contexts are used for the left subexpressions of short-circuited boolean operators. The right subexpressions inherit their expression context from the binary op expression. Compilation of short-circuited operations in effect and test context is straightforward: effect(e0 || e1) = test(e0, L0, L1) L1: effect(e1) L0: test(e0 || e1, L0, L1) = test(e0, L0, L2) L2: test(e1, L0, L1) Because the value of the first subexpression may be needed as the value of the whole expression in a value context, we introduce a hybrid value/test contest (the value is needed if true, but not if false). value(e0 || e1) = value/test(e0, L0, L1) L1: value(e1) L0: The compilation of value/test and test/value (introduced by boolean AND) is: value/test(e0 || e1, L0, L1) = value/test(e0, L0, L2) L2: value/test(e1, L0, L1) test/value(e0 || e1, L0, L1) = test(e0, L0, L2) L2: test/value(e1, L0, L1) Boolean AND is the dual. The AST nodes themselves (not their parents) are responsible for producing the proper result (effect, value, or control flow) depending on their context. Review URL: http://codereview.chromium.org/339082 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3187 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
whesse@chromium.org authored
Review URL: http://codereview.chromium.org/342055 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3186 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
erik.corry@gmail.com authored
Review URL: http://codereview.chromium.org/349001 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3185 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
erik.corry@gmail.com authored
it on by default. Includes bug fixes for new snapshots. Review URL: http://codereview.chromium.org/342054 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3184 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
fschneider@chromium.org authored
o.x() and o[expr]() other changes: - Fix missing relocation info for StoreIC on global object. - Generate only one common return sequence instead of always appending "return <undefined>" at the end of each function: The first JS return-statement will generate the common return sequence. All other return-statements will generate a unconditional branch to the common return sequence. Review URL: http://codereview.chromium.org/340037 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3183 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
kmillikin@chromium.org authored
TBR=whesse@chromium.org Review URL: http://codereview.chromium.org/343055 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3182 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
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
-
fschneider@chromium.org authored
The code for .result = (b.y = 99) where b is a global variable is: push [esi+0x17] mov ecx,0xf5c229ad ;; object: 0xf5c229ad <String[1]: b> call LoadIC_Initialize nop mov [esp],eax mov eax,0xc6 mov ecx,0xf5c25c41 ;; object: 0xf5c25c41 <String[1]: y> call StoreIC_Initialize nop mov [esp],eax pop [ebp+0xf4] There is still some room for improvement in the generated code. Other changes: - Replaced switch-statement in FastCodeGenerator::VisitProperty with DropAndMove(...) - Do not emit nop after IC calls on ARM. Review URL: http://codereview.chromium.org/347001 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3180 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 29 Oct, 2009 8 commits
-
-
antonm@chromium.org authored
BUG=25819 Review URL: http://codereview.chromium.org/334043 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3179 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
sgjesse@chromium.org authored
Review URL: http://codereview.chromium.org/348010 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3176 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
kmillikin@chromium.org authored
scheme for enumerations (eg, EFFECT => kEffect). Remove the ability to move from one Location to another, which should never be necessary. Review URL: http://codereview.chromium.org/340034 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3175 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
sgjesse@chromium.org authored
TBR=christian.plesner.hansen@gmail.com Review URL: http://codereview.chromium.org/343035 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3174 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
kmillikin@chromium.org authored
TBR=whesse@chromium.org Review URL: http://codereview.chromium.org/346012 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3173 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
whesse@chromium.org authored
Review URL: http://codereview.chromium.org/342019 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3172 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
kmillikin@chromium.org authored
context of the expressions they label. Introduce an "unintialized" location to catch failure to assign any location at all. Changed the object literal initialization on ARM to use a Store IC in the same cases where it did on the other platforms. This was required because the location of the literal property name is given an "unitialized" location. Review URL: http://codereview.chromium.org/339045 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3171 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
sgjesse@chromium.org authored
TBR=erik.corry@gmail.com Review URL: http://codereview.chromium.org/341031 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3170 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 28 Oct, 2009 7 commits
-
-
ager@chromium.org authored
Review URL: http://codereview.chromium.org/338063 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3166 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
erik.corry@gmail.com authored
Review URL: http://codereview.chromium.org/339043 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3165 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
lrn@chromium.org authored
Review URL: http://codereview.chromium.org/345007 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3164 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
kmillikin@chromium.org authored
location to an Expression AST node from the node's parent to the node itself. This allows an inherited code generation context from a parent node to be passed arbitrarily far down the tree (eg, the subexpression of a unary not is in the same context as the unary expression itself, the then and else subexpressions of the ternary operator are in the same context as the whole expression, and so forth). We do not yet take advantage of this in the backend (eg, the right subexpression of short-circuited OR is still compiled by using the parent's destination location, rather than the subexpression's itself). Review URL: http://codereview.chromium.org/340005 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3163 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
sgjesse@chromium.org authored
* The maximum length of short and medium sized strings is now derived from other constants. * Remove the redundant String part of their names. Review URL: http://codereview.chromium.org/347002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3162 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
erik.corry@gmail.com authored
Review URL: http://codereview.chromium.org/344011 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3161 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
christian.plesner.hansen@gmail.com authored
Review URL: http://codereview.chromium.org/343016 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3160 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-