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 -~----------~----~----~----~------~----~------~--~---
