OSDN Git Service

Delete extra arm64/mips64 MterpReturn suspend check
authorMathieu Chartier <mathieuc@google.com>
Tue, 10 Jan 2017 02:48:11 +0000 (18:48 -0800)
committerbuzbee <buzbee@google.com>
Tue, 10 Jan 2017 15:58:01 +0000 (07:58 -0800)
commitaceff18580b94a586a469110565f2ba166f3635a
treef6904a81ad70e54bc1968f7c0d9d6f33b9e19196
parentfac5c658f17c059c42c75cf8cbfbb0680c591c1d
Delete extra arm64/mips64 MterpReturn suspend check

Doing a suspend check after moving the result into the shadow frame
result_register_ is not safe since result_register_ is not a GC
root. The suspend check is unnecessary since the opcodes that branch
to MterpReturn already do a suspend check.

This could maybe explain one crash for CC that was seen after calling
a getter that had no compiled code.

The extra suspend check appears to only be present on arm64 amd mips64.

Test: test-art-target ART_TEST_INTERPRETER=true

Bug: 33211261
Change-Id: I70b8863f40a25a26f278ac8ef0d57e083b663e0f
runtime/interpreter/mterp/arm64/footer.S
runtime/interpreter/mterp/mips64/footer.S
runtime/interpreter/mterp/out/mterp_arm64.S
runtime/interpreter/mterp/out/mterp_mips64.S