[interp] Remove saving of clause_args from interp state (#37048)
authormonojenkins <jo.shields+jenkins@xamarin.com>
Mon, 1 Jun 2020 07:59:04 +0000 (03:59 -0400)
committerGitHub <noreply@github.com>
Mon, 1 Jun 2020 07:59:04 +0000 (10:59 +0300)
commit0ba81ca1bfa1af6288b1717307f21ca4d2037cac
tree119e222f178f9a52fedc1ee48337487e8b8293af
parentca527ba36844ea8c6c04283f90398f5277c7b5fb
[interp] Remove saving of clause_args from interp state (#37048)

clause_args can be set only from EH. This means that clause_args can be set only in the first executed frame, so there is no need to save it in the interp state. Also make sure we never check for it in the main_loop block, for normal calls and returns. Added exec_frame to the clause_args so we can detect whether a frame is the first frame invoked from EH. We can no longer use clause_args for this purpose because we no longer save it in the interp state.

Makes calls 6% faster

Co-authored-by: BrzVlad <BrzVlad@users.noreply.github.com>
src/mono/mono/mini/interp/interp-internals.h
src/mono/mono/mini/interp/interp.c