summaryrefslogtreecommitdiff
path: root/tests/DynamicCodeLoggerIntegrationTests/src/cpp/test_executable.cpp
diff options
context:
space:
mode:
authorEric Holk <eholk@google.com>2019-01-29 08:32:42 -0800
committerEric Holk <eholk@google.com>2019-01-31 15:15:14 -0800
commitd1b4383660de31590f855b336f489e696c5d6cf5 (patch)
tree127795a77d1b4225236ed5d816571c1d3bb14acb /tests/DynamicCodeLoggerIntegrationTests/src/cpp/test_executable.cpp
parenta5a7af11d7023fdd19b9dec9b5c42cccda0c3157 (diff)
[viewcompiler] Support more than 16 registers in invoke instructions
This was causing the viewcompiler to crash on deeper layout hierarchies. We fix this by reserving several scratch registers. When an invoke instruction uses registers that don't fit in a 4-bit field, we move all of these values into the scratch registers and use an invoke/range instruction instead. The scratch registers are all above the highest allocated register, so they are guaranteed not to clobber meaningful values. Supporting more registers for invoke also required supporting register-to-register moves, which some how we'd gotten by without so far. Finally, to make viewcompiler fail more loudly when things go wrong, many DCHECKs have been changed to CHECKs. Bug: 123517491 Test: atest Change-Id: I9eb7c9bcf1fc7d713e664b331804bdcddafc95a4
Diffstat (limited to 'tests/DynamicCodeLoggerIntegrationTests/src/cpp/test_executable.cpp')
0 files changed, 0 insertions, 0 deletions