summaryrefslogtreecommitdiffstats
path: root/opcode-gen
diff options
context:
space:
mode:
authorCarl Shapiro <cshapiro@google.com>2011-03-21 13:35:24 -0700
committerCarl Shapiro <cshapiro@google.com>2011-03-21 13:35:24 -0700
commit3475f9cdb47a6d6f8ad2ce49bbc3af46bca92f09 (patch)
tree32bccadbd08a353a4650a6451218b0c854ec6fc2 /opcode-gen
parent14b63ca9f3ba5b58c6f8ad703c7a9c68028aa230 (diff)
downloadandroid_dalvik-3475f9cdb47a6d6f8ad2ce49bbc3af46bca92f09.tar.gz
android_dalvik-3475f9cdb47a6d6f8ad2ce49bbc3af46bca92f09.tar.bz2
android_dalvik-3475f9cdb47a6d6f8ad2ce49bbc3af46bca92f09.zip
Move finalization out of the VM.
This change introduces a new reference class whose referent points to instances requiring finalization. This makes the finalization of objects possible using a reference queue and a dedicated thread which removes objects from the queue. Change-Id: I0ff6dd272f00ca08c6ed3aa667bf766a039a944e
Diffstat (limited to 'opcode-gen')
-rw-r--r--opcode-gen/bytecode.txt11
1 files changed, 2 insertions, 9 deletions
diff --git a/opcode-gen/bytecode.txt b/opcode-gen/bytecode.txt
index 7f6921433..89b8c8305 100644
--- a/opcode-gen/bytecode.txt
+++ b/opcode-gen/bytecode.txt
@@ -328,12 +328,7 @@ op ed ^throw-verification-error 20bc n varies optimized|throw
op ee +execute-inline 35mi n inline-method optimized|continue|throw
op ef +execute-inline/range 3rmi n inline-method optimized|continue|throw
-# This opcode is marked neither as "invoke" nor "throw" since it
-# doesn't invoke the method unless a debugger is attached. The verifier
-# will ensure that Object.<init> is present and empty, so there is no
-# opportunity for an exception to be thrown.
-op f0 +invoke-object-init/range 35c n method-ref optimized|continue
-
+op f0 +invoke-object-init/range 35c n method-ref optimized|continue|throw|invoke
op f1 +return-void-barrier 10x n none optimized|return
op f2 +iget-quick 22cs y field-offset optimized|continue|throw
op f3 +iget-wide-quick 22cs y field-offset optimized|continue|throw
@@ -399,9 +394,7 @@ op 26ff invoke-interface/jumbo 5rc n method-ref continue|throw|invoke
# Optimized opcodes (not valid in an unoptimized dex file)
#
-# See notes above invoke-object-init re: no "throw" or "invoke"
-op f2ff +invoke-object-init/jumbo 5rc n method-ref optimized|continue
-
+op f2ff +invoke-object-init/jumbo 5rc n method-ref optimized|continue|throw|invoke
op f3ff +iget-volatile/jumbo 52c y field-ref optimized|continue|throw
op f4ff +iget-wide-volatile/jumbo 52c y field-ref optimized|continue|throw
op f5ff +iget-object-volatile/jumbo 52c y field-ref optimized|continue|throw