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
