LGTM, except for first comment.

http://codereview.chromium.org/113997/diff/1012/9
File src/x64/assembler-x64.cc (right):

http://codereview.chromium.org/113997/diff/1012/9#newcode126
Line 126: __ movq(rdx, rcx);
Here you should combine ecx and edx into eax to return it as a 64-bit
value. The F0-function typedef returns a 64-bit value in rax, not in
edx:eax as in 32-bit mode.
I.e.,
__ movl(rax, rdx);  // i.e., 32-bit zero-extending move
__ or_(rax, 1 << CPUID);
__ shl(ecx, 32);
__ or_(rax, ecx);

http://codereview.chromium.org/113997/diff/1012/9#newcode476
Line 476: emit_rex_64(rax);
Just emit 0x40, or make a plain emit_rex_64(). The rax register use is
confusing.

http://codereview.chromium.org/113997/diff/1012/10
File src/x64/assembler-x64.h (right):

http://codereview.chromium.org/113997/diff/1012/10#newcode403
Line 403: // TODO(): Move to macro assembler.
Labels are part of the assembler proper. No need to move it to the
macro-assembler.

http://codereview.chromium.org/113997

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

Reply via email to