OSDN Git Service

Fix an invoke-interface bug that manifests itself with thread state warnings.
authorBen Cheng <bccheng@google.com>
Tue, 20 Oct 2009 20:01:36 +0000 (13:01 -0700)
committerBen Cheng <bccheng@google.com>
Tue, 20 Oct 2009 20:01:36 +0000 (13:01 -0700)
commita8e64a7c83ac6fb487a140f77ab8803b46193f45
tree3f2bc6b6fca5b0a5c810287b5eaaf58cc2a2104e
parent22620b855a2e79e71939c301d1b7c1e3160e57ee
Fix an invoke-interface bug that manifests itself with thread state warnings.

r12 is a scratch register and apparently gcc 4.4 starts to actively use it in
dvmFindInterfaceMethodInCache, the very function that the original live value
is being protected around. This results in useless values setup in the chaining
cell and increases the chances to patch the cell (thus the suspend-all
requests).

Add verbose names for new JIT-related suspend reasons.

With all these changes, the thread state warning will still occur but much less
frequently.

bug 2194174.
vm/Thread.c
vm/Thread.h
vm/compiler/codegen/arm/ArmLIR.h
vm/compiler/codegen/arm/Assemble.c
vm/compiler/codegen/arm/Codegen.c
vm/interp/Jit.c