You could look at the code generated for the loop on ARM - it probably cannot
be improved.

The problem is gcc with current defaults generates plain loop for ia32.  I
googled a bit, but all the memset32 implementations I found seems to use loop
(with some unrolling).

Are there other placed we can use this. I am thinking filling hash tables with
undefined.

Yes, undefined and I suspect that stub which creates Array for new Array doesn't
use stos as well.  Going to audit the code.

Thanks a lot for review, Søren, submitting.


http://codereview.chromium.org/661105/diff/1/2
File src/heap.cc (right):

http://codereview.chromium.org/661105/diff/1/2#newcode2981
src/heap.cc:2981: // update RSets.
On 2010/02/25 21:40:15, Søren Gjesse wrote:
Please keep the assert.

Done.

http://codereview.chromium.org/661105/diff/1/3
File src/utils.h (right):

http://codereview.chromium.org/661105/diff/1/3#newcode584
src/utils.h:584: asm("cld\n\trep\n\t" STOS
On 2010/02/25 21:40:15, Søren Gjesse wrote:
Please break this into one instruction per line for better redability.

Done.

http://codereview.chromium.org/661105/diff/1/3#newcode587
src/utils.h:587: :);
On 2010/02/25 21:40:15, Søren Gjesse wrote:
Maybe make a comment why the clobber list is empty.

Done.

http://codereview.chromium.org/661105/diff/1/3#newcode594
src/utils.h:594: #undef HAS_STOS
On 2010/02/25 21:40:15, Søren Gjesse wrote:
HAS_STOS -> STOS

Done.

http://codereview.chromium.org/661105

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

Reply via email to