Supported enregistered string and int keys in the vector translator
commitdb827a70d3165e46f5853c74bcc5ecc014c1ac39
authorbsimmers <bsimmers@fb.com>
Mon, 22 Oct 2012 05:54:00 +0000 (21 22:54 -0700)
committerSara Golemon <sgolemon@fb.com>
Fri, 26 Oct 2012 16:18:26 +0000 (26 09:18 -0700)
tree8377728955f2aad2dfb6884ac5591f11b1020730
parent895c89700bef0c4ef0bbb848cd28e97dc99c05d7
Supported enregistered string and int keys in the vector translator

This diff modifies the vector translator to pass integer and
string keys to the helper functions in registers, instead of as
pointers to TypedValues. It causes a bit of code bloat with a whole
boatload of templated funcitons but appears to be a net win. The
primary benefits should be slightly smaller translations and fewer
branches in the helper calls (since the key time is determined at
compile time)
13 files changed:
src/runtime/vm/bytecode.cpp
src/runtime/vm/hhbc.h
src/runtime/vm/member_operations.cpp
src/runtime/vm/member_operations.h
src/runtime/vm/stats.cpp
src/runtime/vm/stats.h
src/runtime/vm/translator/regalloc.cpp
src/runtime/vm/translator/regalloc.h
src/runtime/vm/translator/translator-x64-internal.h
src/runtime/vm/translator/translator-x64-vector.cpp
src/runtime/vm/translator/translator-x64.cpp
src/runtime/vm/translator/translator-x64.h
src/runtime/vm/translator/translator.h