http://codereview.chromium.org/7473028/diff/1/src/code-stubs.cc File src/code-stubs.cc (right):
http://codereview.chromium.org/7473028/diff/1/src/code-stubs.cc#newcode341 src/code-stubs.cc:341: if (Contains(UNDEFINED)) stream->Add("Undefined"); On 2011/07/21 12:39:07, danno wrote:
Doesn't the lack of separation between types end up in unreadable
strings in the output? This is intended and consistent with other conversion routines. The output is nicely readable. http://codereview.chromium.org/7473028/diff/1/src/ia32/code-stubs-ia32.cc File src/ia32/code-stubs-ia32.cc (right): http://codereview.chromium.org/7473028/diff/1/src/ia32/code-stubs-ia32.cc#newcode288 src/ia32/code-stubs-ia32.cc:288: __ xor_(tos_, Operand(tos_)); On 2011/07/21 13:17:23, Vitaly Repeshko wrote:
The macro assembler has Set macro that emits the optimal instruction
without hurting readability. I didn't know that one, thanks. :-) http://codereview.chromium.org/7473028/diff/1/src/ia32/code-stubs-ia32.cc#newcode316 src/ia32/code-stubs-ia32.cc:316: __ mov(eax, FieldOperand(eax, String::kLengthOffset)); On 2011/07/21 12:39:07, danno wrote:
eax -> tos_?
Ooops, fixed, same for Smi part above. http://codereview.chromium.org/7473028/diff/1/src/ia32/code-stubs-ia32.cc#newcode346 src/ia32/code-stubs-ia32.cc:346: if (types_.Contains(INTERNAL_OBJECT)) { On 2011/07/21 13:16:44, fschneider wrote:
Can you explain why we need the INTERNAL_OBJECT case?
While we probably can't encounter internal objects at "normal" runtime (at least I think so), they *do* occur at v8 startup, e.g. object/function templates etc. http://codereview.chromium.org/7473028/diff/1/src/ia32/code-stubs-ia32.cc#newcode362 src/ia32/code-stubs-ia32.cc:362: __ cmp(eax, value); On 2011/07/21 12:39:07, danno wrote:
This should be duplicated in the two if branches so that the else at
the bottom
doesn't generate a spurious cmp.
Done. http://codereview.chromium.org/7473028/ -- v8-dev mailing list [email protected] http://groups.google.com/group/v8-dev
