339e0c804e
This change adds new flavors of Visit() methods for obtaining expression results: - VisitForAccumulatorValue() which places result in the accumulator. - VisitForRegisterValue() which places the result in a register. - VisitForEffect() which evaluates the expression and discards the result. The targets of these calls place the expression result with result_scope()->SetResultInRegister() or result_scope()->SetResultInAccumulator(). By being smarter about result locations, there's less temporary register usage. However, we now have a hazard with assignments in binary expressions that didn't exist before. This change detects and DCHECK's when a hazard is detected. A follow on CL will address this. There are consequential changes to test-bytecode-generator.cc and this change also adds new bytecode macros A(x, n) and THIS(n) for register file entries for arguments and this. BUG=v8:4280 LOG=NO Review URL: https://codereview.chromium.org/1392933002 Cr-Commit-Position: refs/heads/master@{#31445} |
||
---|---|---|
.. | ||
base | ||
compiler | ||
heap | ||
interpreter | ||
libplatform | ||
runtime | ||
atomic-utils-unittest.cc | ||
char-predicates-unittest.cc | ||
counters-unittest.cc | ||
DEPS | ||
run-all-unittests.cc | ||
test-utils.cc | ||
test-utils.h | ||
unittests.gyp | ||
unittests.isolate | ||
unittests.status |