Landed in r10023.

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

http://codereview.chromium.org/8513010/diff/1012/src/ia32/code-stubs-ia32.cc#newcode5164
src/ia32/code-stubs-ia32.cc:5164: __ cmp(FieldOperand(string,
HeapObject::kMapOffset),
On 2011/11/17 13:40:18, Lasse Reichstein wrote:
Comparing against the same memory location twice in a row. Is there no
register
free to load it?
Or, possibly, keep it alive since we first loaded it in line 5129?
But this'll probably not happen often enough to warrant a scratch
register.

|string| is used as a temp register, so I can use it as scratch at this
point.

http://codereview.chromium.org/8513010/diff/1012/src/ia32/lithium-codegen-ia32.cc
File src/ia32/lithium-codegen-ia32.cc (right):

http://codereview.chromium.org/8513010/diff/1012/src/ia32/lithium-codegen-ia32.cc#newcode3377
src/ia32/lithium-codegen-ia32.cc:3377:
StringCharCodeAtGenerator::GenerateCharLoad(masm(),
On 2011/11/17 13:40:18, Lasse Reichstein wrote:
If GenerateCharLoad is used from outside StringCharCodeAtGenerator,
you might as
well make it a macro in macro-assembler-*.

Moved to codegen-*.cc instead. Big chunks of code that are shared only
in a few places belong there. Fast element transition code is put there
already.

http://codereview.chromium.org/8513010/diff/1012/src/objects-inl.h
File src/objects-inl.h (right):

http://codereview.chromium.org/8513010/diff/1012/src/objects-inl.h#newcode2321
src/objects-inl.h:2321: if (*data_field == NULL) *data_field =
resource()->data();
On 2011/11/17 13:40:18, Lasse Reichstein wrote:
Alternatively, we could ensure that the data_field is always set (by
setting it
when creating the string object). That allows us to avoid checking it
on every
access.

I thought lazy init is nice. I'll check in another CL whether this has
advantages.

http://codereview.chromium.org/8513010/

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

Reply via email to