http://codereview.chromium.org/7744052/diff/1/src/ia32/code-stubs-ia32.cc
File src/ia32/code-stubs-ia32.cc (right):

http://codereview.chromium.org/7744052/diff/1/src/ia32/code-stubs-ia32.cc#newcode5707
src/ia32/code-stubs-ia32.cc:5707: __ SmiTag(edx);  // Make edx a smi
again.
On 2011/08/29 12:55:56, Yang wrote:
On 2011/08/26 16:10:55, antonm wrote:
> do you want to fallback here from make_two_character_string?

Yes.

Brevity is .... :)  I meant you know for sure you won't need a slice for
two char string, so you're doing redundant work.

http://codereview.chromium.org/7744052/diff/1/src/ia32/code-stubs-ia32.cc#newcode5728
src/ia32/code-stubs-ia32.cc:5728: const uint32_t kSlicedNotConsMask =
kSlicedStringTag & ~kConsStringTag;
On 2011/08/26 16:10:55, antonm wrote:
lift those constants into objects.h?

any response?

http://codereview.chromium.org/7744052/diff/1/src/ia32/code-stubs-ia32.cc#newcode5747
src/ia32/code-stubs-ia32.cc:5747: __ mov(edi, eax);
On 2011/08/29 12:55:56, Yang wrote:
On 2011/08/26 16:10:55, antonm wrote:
> maybe keep the parent string in eax and save this move?

eax has to be used as destination when allocation the new sliced
string and as
return value.

I am not sure, apparently you can allocate into any register you like,
at least w/ some minimal amount of work (at least AllocateInNewSpace
behaves this way)

http://codereview.chromium.org/7744052/diff/1/src/ia32/code-stubs-ia32.cc#newcode5769
src/ia32/code-stubs-ia32.cc:5769: __ SmiTag(ecx);
On 2011/08/29 12:55:56, Yang wrote:
On 2011/08/26 16:10:55, antonm wrote:
> apparently there is too much of tagging/untagging, but it should
have only
> minimal perf impact.

The alternative saves this one tagging, but would make may other
places ugly
(compare with shifted immediates etc.). The reason is that many macros
take
un-smi-tagged register values as parameter.

Up to you.

http://codereview.chromium.org/7744052/

--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev

Reply via email to