http://codereview.chromium.org/598072/diff/8001/8003 File src/ia32/macro-assembler-ia32.cc (right):
http://codereview.chromium.org/598072/diff/8001/8003#newcode1168 src/ia32/macro-assembler-ia32.cc:1168: // ret addr (if tail call) I suggest encapsulating this in PrepareCallCFunction/CallCFunction in the macro assembler as on x64 and use these in the RegExp macro assembler. That could be done as a separate commit before this. http://codereview.chromium.org/598072/diff/8001/8003#newcode1211 src/ia32/macro-assembler-ia32.cc:1211: call(FUNCTION_ADDR(ExternalReference(f).address()), RelocInfo::RUNTIME_ENTRY); Please add a comment saying that we are only performing a semi tail call as we need to copy the arguments for alignment. On Windows 32-bit we could consider cheating as the 8 byte alignment set in platform-win is not strictly required. We could measure this after this is done. http://codereview.chromium.org/598072/diff/8001/8004 File src/ia32/macro-assembler-ia32.h (right): http://codereview.chromium.org/598072/diff/8001/8004#newcode369 src/ia32/macro-assembler-ia32.h:369: // Tail call of a runtime routine (jump). This comment needs to be changed as well. http://codereview.chromium.org/598072/diff/8001/8011 File src/x64/macro-assembler-x64.cc (right): http://codereview.chromium.org/598072/diff/8001/8011#newcode405 src/x64/macro-assembler-x64.cc:405: // A expected to be put into the registers in order of Register This comment seems a bit broken. http://codereview.chromium.org/598072/diff/8001/8013 File src/x64/macro-assembler-x64.h (right): http://codereview.chromium.org/598072/diff/8001/8013#newcode44 src/x64/macro-assembler-x64.h:44: static const RegList kCCallerSaved = Can't we use Register.bit here (e.g. rax.bit())? http://codereview.chromium.org/598072/diff/8001/8012 File src/x64/virtual-frame-x64.cc (right): http://codereview.chromium.org/598072/diff/8001/8012#newcode982 src/x64/virtual-frame-x64.cc:982: Forget(arg_count); On ia32 this threw and exception? http://codereview.chromium.org/598072/diff/8001/8012#newcode985 src/x64/virtual-frame-x64.cc:985: This is more or less a duplication of what is in macro assembler CallRuntime. Why is that? I think you should start by just spilling all registers. And then optimizing for calee saved registers later. http://codereview.chromium.org/598072 -- v8-dev mailing list [email protected] http://groups.google.com/group/v8-dev
