The IC exposes a register definition.
authormvstanton@chromium.org <mvstanton@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Wed, 25 Jun 2014 12:32:12 +0000 (12:32 +0000)
committermvstanton@chromium.org <mvstanton@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Wed, 25 Jun 2014 12:32:12 +0000 (12:32 +0000)
commitaddd35df56b05cfe9e2d0154eba5c1a54abd01ef
treecd9b6a661d89f7dc1ac08f5c3ae4b139198a7d37
parent6f2368627c2ba3582b6a3e9df56a537cf86b4acf
The IC exposes a register definition.

Centralize a register definition in an IC that provides:
1) symbolic names for the register (like, edx == receiver)
2) defines ordering when passed on the stack

Code that implements or uses the IC should use this definition instead of "knowing" what the registers are. Or at least have the definition to validate it's assumptions.

As a side effect of avoiding runtime static initializers (enforced by tools/check-static-initializers.sh, neat), I gave ownership of the registers array to CodeStubInterfaceDescriptor. This prompted a cleanup of that struct.

R=jkummerow@chromium.org

Review URL: https://codereview.chromium.org/352583002

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22011 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
22 files changed:
src/arm/code-stubs-arm.cc
src/arm/deoptimizer-arm.cc
src/arm/ic-arm.cc
src/arm/stub-cache-arm.cc
src/arm64/code-stubs-arm64.cc
src/arm64/deoptimizer-arm64.cc
src/arm64/ic-arm64.cc
src/arm64/stub-cache-arm64.cc
src/code-stubs-hydrogen.cc
src/code-stubs.cc
src/code-stubs.h
src/deoptimizer.cc
src/ia32/code-stubs-ia32.cc
src/ia32/deoptimizer-ia32.cc
src/ia32/ic-ia32.cc
src/ia32/stub-cache-ia32.cc
src/ic.h
src/isolate.h
src/x64/code-stubs-x64.cc
src/x64/deoptimizer-x64.cc
src/x64/ic-x64.cc
src/x64/stub-cache-x64.cc