OSDN Git Service

Jit: Monitor exit, possible fix for Issue 2396073
authorBill Buzbee <buzbee@google.com>
Tue, 16 Feb 2010 22:40:01 +0000 (14:40 -0800)
committerBill Buzbee <buzbee@google.com>
Wed, 17 Feb 2010 01:11:05 +0000 (17:11 -0800)
commit668628abe05cb30f86bd02c824f7219a7e20b82c
treeea2391578057884202c37dfebf70e0090285521a
parent4eb38b7d5838944a6efea772c600b3e7e0897b36
Jit: Monitor exit, possible fix for Issue 2396073

Two problems with monitor-exit:
   1.  The Jit code wasn't checking for exception thrown following
       unlocks of fat locks using dvmUnlockObject().
   2.  The mterp interpreter unlock code branched to handle exceptions
       thrown during dvmUnlockObject() with the wrong dalvik PC (the
       dPC of the unlock, rather than the instruction following the unlock).

Similar issue with the x86 interpreter fixed.  Also, deleted armv7-a
MONITOR_ENTER template, which turned out to be identical to the armv5te
one.
12 files changed:
vm/compiler/codegen/arm/CodegenDriver.c
vm/compiler/codegen/arm/Thumb2/Gen.c
vm/compiler/template/armv7-a/TEMPLATE_MONITOR_ENTER.S [deleted file]
vm/compiler/template/config-armv7-a
vm/compiler/template/out/CompilerTemplateAsm-armv7-a.S
vm/mterp/armv5te/OP_MONITOR_EXIT.S
vm/mterp/out/InterpAsm-armv4t.S
vm/mterp/out/InterpAsm-armv5te-vfp.S
vm/mterp/out/InterpAsm-armv5te.S
vm/mterp/out/InterpAsm-armv7-a.S
vm/mterp/out/InterpAsm-x86.S
vm/mterp/x86/OP_MONITOR_EXIT.S