Ensure non-standard returns release monitors

We were incorrectly failing to unlock monitors that were acquired by a
frame when the frame is popped off the stack in a non-standard manner.
This can lead to monitors having an incorrect count and being
impossible for any other thread to lock.

Test: ./test.py --host
Bug: 133901254
Change-Id: I2efbb8854dd5530c66d780f6853ec6e05a69c83b
diff --git a/test/1954-pop-frame-jit/expected.txt b/test/1954-pop-frame-jit/expected.txt
index a20a045..e75ea64 100644
--- a/test/1954-pop-frame-jit/expected.txt
+++ b/test/1954-pop-frame-jit/expected.txt
@@ -116,3 +116,6 @@
 	art.Test1953.runTests(Test1953.java)
 	<Additional frames hidden>
 result is NativeCallerObject { cnt: 1 } base-call count: 1
+Test stopped with monitor in enclosing frame.
+Single call with PopFrame on StandardTestObject { cnt: 0 } base-call-count: 0
+result is StandardTestObject { cnt: 2 } base-call count: 1