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
