OSDN Git Service

Add execute-inline/range instruction.
authorAndy McFadden <fadden@android.com>
Thu, 19 Nov 2009 18:23:41 +0000 (10:23 -0800)
committerAndy McFadden <fadden@android.com>
Fri, 20 Nov 2009 18:58:03 +0000 (10:58 -0800)
commitb0a0541b59d1126ff77c88de742b4a74579fe296
tree6af78c04d58182deb16166bf81d5a7ac3870e5ac
parentab875c79c56eacc510b09710d38a9b20f7337486
Add execute-inline/range instruction.

Like "execute-inline", this is an instruction generated by dexopt that
replaces a method invoke instruction.  It's useful for small, frequently
called methods in the core libs.

As with execute-inline, we allow at most 4 arguments, but with /range
we're no longer limited to the low 16 registers.

Also: marked execute-inline as being able to throw an exception.

Needed: native x86 implementation; support in JIT.

For bug 2268232.
27 files changed:
dexdump/DexDump.c
dexdump/OpCodeNames.c
libdex/InstrUtils.c
libdex/InstrUtils.h
libdex/OpCode.h
vm/DalvikVersion.h
vm/analysis/CodeVerify.c
vm/analysis/DexOptimize.c
vm/analysis/RegisterMap.c
vm/compiler/Dataflow.c
vm/compiler/codegen/arm/Codegen.c
vm/mterp/armv5te/OP_EXECUTE_INLINE.S
vm/mterp/armv5te/OP_EXECUTE_INLINE_RANGE.S [new file with mode: 0644]
vm/mterp/armv5te/OP_UNUSED_EF.S [deleted file]
vm/mterp/c/OP_EXECUTE_INLINE_RANGE.c [new file with mode: 0644]
vm/mterp/c/OP_UNUSED_EF.c [deleted file]
vm/mterp/config-x86
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/out/InterpC-allstubs.c
vm/mterp/out/InterpC-portdbg.c
vm/mterp/out/InterpC-portstd.c
vm/mterp/out/InterpC-x86.c
vm/mterp/x86/OP_EXECUTE_INLINE_RANGE.S [moved from vm/mterp/x86/OP_UNUSED_EF.S with 100% similarity]