LGTM. Q: do you have most fresh numbers for performance impact?
As a thought: if even a single move counts, couldn't we squeeze next and limit into a single pointer? For example, if we properly align blocks and allocate in 2^n blocks, next could be easily obtained from next like something like next &
0xffff0000 + 0x10000. http://codereview.chromium.org/3792003/diff/43019/13031 File src/ia32/macro-assembler-ia32.cc (right): http://codereview.chromium.org/3792003/diff/43019/13031#newcode1088 src/ia32/macro-assembler-ia32.cc:1088: void MacroAssembler::TailCallApiFunction(ApiFunction* function, completely optional: if we ever consider different strategy for handling of empty returned results (think of interceptors), it might be handy to have a hook for it already---just pass on empty result and come back labels. http://codereview.chromium.org/3792003/diff/43019/13032 File src/ia32/macro-assembler-ia32.h (right): http://codereview.chromium.org/3792003/diff/43019/13032#newcode484 src/ia32/macro-assembler-ia32.h:484: // returned value from handle and propogates exceptions. maybe add some words about what this macro expects in regard of stack, parameter passing, etc. http://codereview.chromium.org/3792003/diff/43019/13038 File src/x64/macro-assembler-x64.cc (right): http://codereview.chromium.org/3792003/diff/43019/13038#newcode518 src/x64/macro-assembler-x64.cc:518: // rsi is only callee-save on Win64. On other platforms it must be restored. as was discussed offline, that's not the best explanation why it is allowed not to restore base_reg on Win64 http://codereview.chromium.org/3792003/diff/43019/13039 File src/x64/macro-assembler-x64.h (right): http://codereview.chromium.org/3792003/diff/43019/13039#newcode824 src/x64/macro-assembler-x64.h:824: void TailCallApiFunction(ApiFunction* function, int stack_space); Ditto for better documentation http://codereview.chromium.org/3792003/show -- v8-dev mailing list [email protected] http://groups.google.com/group/v8-dev
