6986bcfd1cdeafb594203fee605ebed456fe83c3 |
|
14-Sep-2012 |
Elliott Hughes <enh@google.com> |
Optimize those StrictMath routines that are identical to Math routines. We can just use the existing Math intinsics. Bug: 7146208 Change-Id: I9e78d33cf65a5dcc5a7c0133e67bd9c3c1e43f23
|
100dbe0d8d5b419bc3727e5b8a07e995351fe129 |
|
18-Jul-2012 |
Elliott Hughes <enh@google.com> |
Avoid sign extension in packed-switch. This code (at least in the ARM version) is trying to assign to r0 and r1 from C by returning a 64-bit result. The mistaken use of signed integers for pointers can lead to sign extension if the JIT code cache is at a sufficiently high address. Bug: 6799823 Bug: 6703991 (cherry-pick from 2d0c1c2dbe44458ebb199c47ce1047f266db5349.) Change-Id: I79e72228b60e195272d11899ac69bb4a76b7402f
|
51801371a9b0f829303d326a2300518177dde3e8 |
|
18-Jul-2012 |
Elliott Hughes <enh@google.com> |
Avoid sign extension in packed-switch. This code (at least in the ARM version) is trying to assign to r0 and r1 from C by returning a 64-bit result. The mistaken use of signed integers for pointers can lead to sign extension if the JIT code cache is at a sufficiently high address. Bug: 6799823 Bug: 6703991 (cherry picked from commit 2d0c1c2dbe44458ebb199c47ce1047f266db5349) Conflicts: vm/compiler/codegen/mips/CalloutHelper.h vm/compiler/codegen/mips/CodegenDriver.cpp Change-Id: Id4699fdd0b3d61abe9c92874832b8561df4fa797
|
2d0c1c2dbe44458ebb199c47ce1047f266db5349 |
|
18-Jul-2012 |
Elliott Hughes <enh@google.com> |
Avoid sign extension in packed-switch. This code (at least in the ARM version) is trying to assign to r0 and r1 from C by returning a 64-bit result. The mistaken use of signed integers for pointers can lead to sign extension if the JIT code cache is at a sufficiently high address. Bug: 6799823 Bug: 6703991 Change-Id: Ic3f587f453f0f3f520551383ef1ed29efa1ad551
|
ac3da004fe02e855e2444ce76abf13f12e2e0050 |
|
07-Jun-2012 |
Mattias Petersson <mattias.petersson@sonymobile.com> |
Missing zero-checks in JIT compiler Zero-checks were not generated by the JIT compiler for some instructions. This caused crashes instead of the expected ArithmeticException. Change-Id: Ic8041741a7cccc1bd6b8c3c0723ba55a55af856b
|
c1a4ab9c313d8a3d12007f2dbef7b5a6fa4ac2ef |
|
06-Jan-2012 |
Steve Block <steveblock@google.com> |
Rename (IF_)LOGE(_IF) to (IF_)ALOGE(_IF) DO NOT MERGE See https://android-git.corp.google.com/g/#/c/157220 Also fix an occurrence of LOGW missed in an earlier change. Bug: 5449033 Change-Id: I2e3b23839e6dcd09015d6402280e9300c75e3406
|
ab35b50311951feea3782151dd5422ee944685c2 |
|
05-Jan-2012 |
Elliott Hughes <enh@google.com> |
Remove unsupported experimental opcodes. External developers were starting to try to get themselves into trouble with this stuff... Change-Id: I2b03bfeaa8c98b6a994bc7924fc8dcf4e4d4f6cb
|
062bf509a77fce9dfcb7e7b2e401cf2a124d83d5 |
|
20-Dec-2011 |
Steve Block <steveblock@google.com> |
Rename (IF_)LOGD(_IF) to (IF_)ALOGD(_IF) DO NOT MERGE See https://android-git.corp.google.com/g/156016 Bug: 5449033 Change-Id: Ic663376d1ad6a6cb14bf81405ad9afd247cf2f60
|
4185972e211b0c84b9fe7d90c56b28cc15e474fa |
|
27-Sep-2011 |
buzbee <buzbee@google.com> |
Fix memory barriers (Issue 3338450) Add extra memory barrier on volatile stores. Change-Id: Id4a4750cdfc910eda2f0b44ead0af2a569b5735e
|
0fbb7030fff58e25718291811394487d95d95a3e |
|
07-Jun-2011 |
Elliott Hughes <enh@google.com> |
Use std::string rather than malloc/free for saneDirName. Also use std::vector instead of the cutils/array cruft. Change-Id: I273147335cafbac5d336955f53b0b29d015f0589
|
291c84f60853d30e1c0d79dd08c5e5164f588e26 |
|
26-May-2011 |
Dan Bornstein <danfuzz@android.com> |
Prefer printf format "%#x" over "0x%x". I exist to serve. Change-Id: I8e2880b20eefd466da8515d5b6b0c5cb75d56169
|
60fc806b679a3655c228b4093058c59941a49cfe |
|
26-May-2011 |
Dan Bornstein <danfuzz@android.com> |
Further conservation of newlines. Friends don't let friends end LOG() strings with newlines. Change-Id: I5a18c766c90c4ab5f03caa6acd601d34d91beb00
|
cf4a20cf0cbc53f03a5b16c7152bbb29907f7108 |
|
25-May-2011 |
buzbee <buzbee@google.com> |
Interpreter/Debugger fix #4479968 This one was tricky to track down. The underlying problem arose with the consolidation of InterpState with Thread. Rather than having a state structure for each instance of the interpreter, we moved to a model that had a single thread-local struct shared by all interpreter instances running on that thread. A portion of interpreter state can't be shared - and thus was saved and restored on nested invocations of the interpreter. The bug here was that the storage for method return values was not included in the state that needed save/retore. In normal operation, it doesn't need to be saved - that storage isn't live across an invoke that could trigger a nested interpreter activation. However, when debugging, the debugger itself may hijack threads and create new interpreter instances for its own purposed - and there is a small window in which live retval can be trashed. The fix is simply to move retval into the InterpSave struct. Change-Id: Ib621824b799c5caa16fdfa8f5689a181159059df
|
313d430d5b3b96b45370ccddee52a6d88a799f35 |
|
11-May-2011 |
Ben Cheng <bccheng@android.com> |
Another single-stepping fix in JIT self-verification mode. The counted single stepping check should be based on the kSubModeCountedStep submode instead. Also since the NPC value is cleared when exceptions are thrown, we can single-step instructions that can throw as well. Change-Id: Idbc1307ae0956016ef76186aebc6e3b89b119d9d
|
a7323974309c3b81cfe342db635d0bf30f36ff62 |
|
07-May-2011 |
Carl Shapiro <cshapiro@google.com> |
Establish a subclass relationships among the field types. Change-Id: Id349b359489bb6b1bbb4ab78d29d85c0e6b33799
|
a62c3a0ab3fcdde37f47d16e9699a935ae7a8e88 |
|
04-May-2011 |
Carl Shapiro <cshapiro@google.com> |
Establish a subclass relationship between ArrayObject and Object. Change-Id: I9f9fe52bd4ceebb6dde48251a89190ba6bb00ce4
|
243db252574a78ff7326e7446d9042e321314c4f |
|
23-Apr-2011 |
Ben Cheng <bccheng@android.com> |
Local optimization fixes for diverences found by self verification. 1) Only optimize each block once. Strictly speaking this is not a correctness issue however it triggers the subsequent problem. 2) Ignore dead instructions. 1: ldr r2, [r5, #8] 2: ldr r3, [r5, #8](nop) 3: str r3, [r5, #4] 4: movs r3, r2 When using instruction 1 to initiate redundant ld/st eliminations, if instruction 2 (which is already dead) is not ignored, it will be turned into a "mov r3, r2" and that will clobber r3 used by the str. Change-Id: I6b9a88d3688889d917b90f4b8f55278df1701c6a
|
5d5b94c8d14b166af580d5dd5906db4f9527d6ca |
|
20-Apr-2011 |
Carl Shapiro <cshapiro@google.com> |
Move the compiler into C++. Change-Id: Idffbdb02c29e2be03a75f5a0a664603f2299504a
|