<feed xmlns='http://www.w3.org/2005/Atom'>
<title>android_dalvik/libdex/OpCode.h, branch cm-13.0</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<link rel='alternate' type='text/html' href='https://git.replicant.us/mirrors/LineageOS/android_dalvik/'/>
<entry>
<title>Rename OpCode.h -&gt; DexOpcodes.h.</title>
<updated>2010-12-01T23:52:34+00:00</updated>
<author>
<name>Dan Bornstein</name>
<email>danfuzz@android.com</email>
</author>
<published>2010-12-01T22:23:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.replicant.us/mirrors/LineageOS/android_dalvik/commit/?id=df4daaf8f41e3dcaa8221f54273338160dd43138'/>
<id>df4daaf8f41e3dcaa8221f54273338160dd43138</id>
<content type='text'>
Also incorporate the former contents of OpCodeNames.h. This is a small
attempt to increase naming consistency in libdex. There will be a bit
more to come, in a follow-up.

Change-Id: Ia7ab06042dde2e19eda02ef1fee72fb4260e899d
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Also incorporate the former contents of OpCodeNames.h. This is a small
attempt to increase naming consistency in libdex. There will be a bit
more to come, in a follow-up.

Change-Id: Ia7ab06042dde2e19eda02ef1fee72fb4260e899d
</pre>
</div>
</content>
</entry>
<entry>
<title>Add more "extended opcode" structure to libdex.</title>
<updated>2010-12-01T20:47:45+00:00</updated>
<author>
<name>Dan Bornstein</name>
<email>danfuzz@android.com</email>
</author>
<published>2010-12-01T20:30:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.replicant.us/mirrors/LineageOS/android_dalvik/commit/?id=111221644c5b7b1d4f426d02786aeebf1addc8f6'/>
<id>111221644c5b7b1d4f426d02786aeebf1addc8f6</id>
<content type='text'>
Although we don't yet generate any of the extended opcodes, this
change makes it a bit easier to add them.

In particular, we now differentiate between the raw opcode in a code
unit and an associated "packed opcode number." The packed opcode space
is densely populated in the range 0x000-0x1ff (though there will still
be a few unused slots), whereas the raw opcode values are sparse
throughout the range 0x0000-0xffff.

The OpCode enum is redefined/clarified to have packed, not sparse,
opcode values.

Change-Id: Ie3208a258648fbf044d344646f66c49ad24c31b2
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Although we don't yet generate any of the extended opcodes, this
change makes it a bit easier to add them.

In particular, we now differentiate between the raw opcode in a code
unit and an associated "packed opcode number." The packed opcode space
is densely populated in the range 0x000-0x1ff (though there will still
be a few unused slots), whereas the raw opcode values are sparse
throughout the range 0x0000-0xffff.

The OpCode enum is redefined/clarified to have packed, not sparse,
opcode values.

Change-Id: Ie3208a258648fbf044d344646f66c49ad24c31b2
</pre>
</div>
</content>
</entry>
<entry>
<title>Clean up the opcode maintenance instructions.</title>
<updated>2010-11-30T19:04:05+00:00</updated>
<author>
<name>Dan Bornstein</name>
<email>danfuzz@android.com</email>
</author>
<published>2010-11-30T18:45:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.replicant.us/mirrors/LineageOS/android_dalvik/commit/?id=758a6733f7d1a525aa1530e008cab8a912e7a084'/>
<id>758a6733f7d1a525aa1530e008cab8a912e7a084</id>
<content type='text'>
Change-Id: Ic9d7fcfd234116099ef510e4339a9af0bc3fcb1d
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Change-Id: Ic9d7fcfd234116099ef510e4339a9af0bc3fcb1d
</pre>
</div>
</content>
</entry>
<entry>
<title>Use the generated opcode info tables.</title>
<updated>2010-11-17T22:27:17+00:00</updated>
<author>
<name>Dan Bornstein</name>
<email>danfuzz@android.com</email>
</author>
<published>2010-11-17T22:16:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.replicant.us/mirrors/LineageOS/android_dalvik/commit/?id=543223954993a19fa96670692bc7aa55d851966b'/>
<id>543223954993a19fa96670692bc7aa55d851966b</id>
<content type='text'>
This is, once again, an intermediate step. Soon, I'm going to try to
remove need to keep and pass copies of the opcode info pointers all
over the place.

Change-Id: Ic6af849310b22ca604a7f2d18c78ff8d112459b4
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This is, once again, an intermediate step. Soon, I'm going to try to
remove need to keep and pass copies of the opcode info pointers all
over the place.

Change-Id: Ic6af849310b22ca604a7f2d18c78ff8d112459b4
</pre>
</div>
</content>
</entry>
<entry>
<title>Generate the contents of OpCodeNames.c.</title>
<updated>2010-11-16T23:59:12+00:00</updated>
<author>
<name>Dan Bornstein</name>
<email>danfuzz@android.com</email>
</author>
<published>2010-11-16T23:54:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.replicant.us/mirrors/LineageOS/android_dalvik/commit/?id=d03baafc41fe04167d0a8ba01d8cbc9bcbed8195'/>
<id>d03baafc41fe04167d0a8ba01d8cbc9bcbed8195</id>
<content type='text'>
This was another one that was pretty easy to add to opcode-gen. I did
end up tweaking opcode-gen to make it obvious that the two forms of
name are different by more than just upper vs. lower case, especially
because I duplicated the original distinction of the optimized opcodes
having extra prefix characters in their human-oriented names but not
in the names when used as programming constants.

Change-Id: I5062442540d26318914964bd2722cc32380b19ca
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This was another one that was pretty easy to add to opcode-gen. I did
end up tweaking opcode-gen to make it obvious that the two forms of
name are different by more than just upper vs. lower case, especially
because I duplicated the original distinction of the optimized opcodes
having extra prefix characters in their human-oriented names but not
in the names when used as programming constants.

Change-Id: I5062442540d26318914964bd2722cc32380b19ca
</pre>
</div>
</content>
</entry>
<entry>
<title>Generate most of OpCode.h using opcode-gen.</title>
<updated>2010-11-16T21:14:42+00:00</updated>
<author>
<name>Dan Bornstein</name>
<email>danfuzz@android.com</email>
</author>
<published>2010-11-16T21:09:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.replicant.us/mirrors/LineageOS/android_dalvik/commit/?id=11a4a79b09a2be2bd7a7141ce112de3ad0432e53'/>
<id>11a4a79b09a2be2bd7a7141ce112de3ad0432e53</id>
<content type='text'>
This was the easiest bit to tackle in libdex. More to come!

Change-Id: I3f79039ce98951d694d2c896ee1c7a60b417bc49
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This was the easiest bit to tackle in libdex. More to come!

Change-Id: I3f79039ce98951d694d2c896ee1c7a60b417bc49
</pre>
</div>
</content>
</entry>
<entry>
<title>Add return-void-barrier instruction.</title>
<updated>2010-09-10T21:34:40+00:00</updated>
<author>
<name>Andy McFadden</name>
<email>fadden@android.com</email>
</author>
<published>2010-09-10T15:04:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.replicant.us/mirrors/LineageOS/android_dalvik/commit/?id=291758c5c4902900c6f86794ba8ab9cad9b26197'/>
<id>291758c5c4902900c6f86794ba8ab9cad9b26197</id>
<content type='text'>
This introduces the return-void-barrier instruction, which is identical
to return-void on UP systems, but provides an additional store/store
barrier on SMP.  This is intended for use in constructors of objects
with final fields.

The assembler doesn't like "dmb st", and we don't have an
ANDROID_MEMBAR_STORE barrier defined, so this currently uses full
fences.

This just defines the new instruction.  It's not actually used yet.

Also, removed some stale "unused" files from the x86 and x86-atom
directories.

Bug 2965743.

Change-Id: I072e372fd2d57f2617a8d4fff5fd4b38bdda75d1
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This introduces the return-void-barrier instruction, which is identical
to return-void on UP systems, but provides an additional store/store
barrier on SMP.  This is intended for use in constructors of objects
with final fields.

The assembler doesn't like "dmb st", and we don't have an
ANDROID_MEMBAR_STORE barrier defined, so this currently uses full
fences.

This just defines the new instruction.  It's not actually used yet.

Also, removed some stale "unused" files from the x86 and x86-atom
directories.

Bug 2965743.

Change-Id: I072e372fd2d57f2617a8d4fff5fd4b38bdda75d1
</pre>
</div>
</content>
</entry>
<entry>
<title>Add opcodes for volatile field accesses</title>
<updated>2010-06-18T19:43:08+00:00</updated>
<author>
<name>Andy McFadden</name>
<email>fadden@android.com</email>
</author>
<published>2010-06-17T19:36:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.replicant.us/mirrors/LineageOS/android_dalvik/commit/?id=c35a2ef53d0cccd6f924eeba36633220ec67c32e'/>
<id>c35a2ef53d0cccd6f924eeba36633220ec67c32e</id>
<content type='text'>
This adds instructions for {i,s}{get,put}{,-object}-volatile, for a
total of eight new instructions.

On SMP systems, these instructions will be substituted in for existing
field access instructions, either by dexopt or during just-in-time
verification.  Unlike the wide-volatile instructions, these will not be
used at all when the VM is not built for SMP.

(Ideally we'd omit the volatile instruction implementations entirely on
non-SMP builds, but that requires a little work in gen-mterp.py.)

The change defines and implements the opcodes and support methods, but
does not cause them to be used.

Also, changed dvmQuasiAtomicRead64's argument to be const.

Change-Id: I9e44fe881e87f27aa41f6c6e898ec4402cb5493e
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This adds instructions for {i,s}{get,put}{,-object}-volatile, for a
total of eight new instructions.

On SMP systems, these instructions will be substituted in for existing
field access instructions, either by dexopt or during just-in-time
verification.  Unlike the wide-volatile instructions, these will not be
used at all when the VM is not built for SMP.

(Ideally we'd omit the volatile instruction implementations entirely on
non-SMP builds, but that requires a little work in gen-mterp.py.)

The change defines and implements the opcodes and support methods, but
does not cause them to be used.

Also, changed dvmQuasiAtomicRead64's argument to be const.

Change-Id: I9e44fe881e87f27aa41f6c6e898ec4402cb5493e
</pre>
</div>
</content>
</entry>
<entry>
<title>Remove trailing whitespace.</title>
<updated>2010-06-09T00:04:11+00:00</updated>
<author>
<name>Carl Shapiro</name>
<email>cshapiro@google.com</email>
</author>
<published>2010-06-08T23:37:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.replicant.us/mirrors/LineageOS/android_dalvik/commit/?id=de75089fb7216d19e9c22cce4dc62a49513477d3'/>
<id>de75089fb7216d19e9c22cce4dc62a49513477d3</id>
<content type='text'>
Change-Id: I95534bb2b88eaf48f2329282041118cd034c812b
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Change-Id: I95534bb2b88eaf48f2329282041118cd034c812b
</pre>
</div>
</content>
</entry>
<entry>
<title>Add instructions for volatile wide fields.</title>
<updated>2010-03-05T20:07:05+00:00</updated>
<author>
<name>Andy McFadden</name>
<email>fadden@android.com</email>
</author>
<published>2010-03-05T15:24:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.replicant.us/mirrors/LineageOS/android_dalvik/commit/?id=5387824f19033ed51a945fbc8c2b574998404b3d'/>
<id>5387824f19033ed51a945fbc8c2b574998404b3d</id>
<content type='text'>
This adds four new instructions for accessing volatile wide fields (long
and double).  The JLS requires that such accesses are atomic, but the
VM doesn't otherwise make guarantees about the atomicity of reads and
writes on 64-bit fields.

There are no behavioral changes.  This just adds definitions for the new
instructions and a couple of tests.  The current implementation is just
the non-volatile form of the instructions or a C stub, but since we're
not generating them it doesn't really matter yet.

Also:
 - bumped Dalvik version to 1.3.0
 - added a note to the x86-atom TODO list

For bug 1633591.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This adds four new instructions for accessing volatile wide fields (long
and double).  The JLS requires that such accesses are atomic, but the
VM doesn't otherwise make guarantees about the atomicity of reads and
writes on 64-bit fields.

There are no behavioral changes.  This just adds definitions for the new
instructions and a couple of tests.  The current implementation is just
the non-volatile form of the instructions or a C stub, but since we're
not generating them it doesn't really matter yet.

Also:
 - bumped Dalvik version to 1.3.0
 - added a note to the x86-atom TODO list

For bug 1633591.
</pre>
</div>
</content>
</entry>
</feed>
