OSDN Git Service
Carl Shapiro [Fri, 27 Aug 2010 20:55:30 +0000 (13:55 -0700)]
Merge "Simplify the bitmap walker subroutines." into dalvik-dev
Carl Shapiro [Fri, 27 Aug 2010 20:06:48 +0000 (13:06 -0700)]
Simplify the bitmap walker subroutines.
This change...
* Separates walking from sweeping. Walking had been implemented by a
sweeping with an empty mark bitmap argument.
* Localizes the finger machinations to scanBitmapCallback. There is
one use of the finger but all callbacks received the argument.
* Inlines a simplified bitmap walking routine operating a pointer at a
time. Only sweeping benefits from batching decoded addresses.
Change-Id: I87485ac58d3ecf07916f142534fe96f77e7ff227
Ben Cheng [Thu, 26 Aug 2010 21:56:31 +0000 (14:56 -0700)]
Make JIT inliner work under single-stepping mode.
Bug:
2936661
Change-Id: Id85530db5281e0ea28ffb31e8769f3bfec8be54a
Ben Cheng [Thu, 26 Aug 2010 20:24:00 +0000 (13:24 -0700)]
Merge "Fix self-verification to handle loop traces with single-step instructions." into dalvik-dev
Ben Cheng [Thu, 26 Aug 2010 19:28:56 +0000 (12:28 -0700)]
Fix self-verification to handle loop traces with single-step instructions.
Change-Id: I8b7acef5693db923e4c30fc523ca1a312f8cca9a
buzbee [Thu, 26 Aug 2010 18:28:49 +0000 (11:28 -0700)]
am
6ba7529b: JIT: Add memory barriers on monitor enter/exit [issue
2951403]
Merge commit '
6ba7529b233837a243cbdb4a6fd62520ab60a22f' into dalvik-dev
* commit '
6ba7529b233837a243cbdb4a6fd62520ab60a22f':
JIT: Add memory barriers on monitor enter/exit [issue
2951403]
buzbee [Thu, 26 Aug 2010 17:46:51 +0000 (10:46 -0700)]
JIT: Add memory barriers on monitor enter/exit [issue
2951403]
Possibly the cause of [
2950977 error in onDraw() method for stingray]
Change-Id: I84da4dcb04735ccbedc21fa84c11c3ee8c4aa4e9
Andy McFadden [Wed, 25 Aug 2010 22:30:09 +0000 (15:30 -0700)]
am
8ff39e40: am
19cbe64f: am
fe1d6d58: Add option for specifying wall-clock in method profiling.
Merge commit '
8ff39e40289655e7798c33d21e200dc51e071e51' into dalvik-dev
* commit '
8ff39e40289655e7798c33d21e200dc51e071e51':
Add option for specifying wall-clock in method profiling.
Andy McFadden [Wed, 25 Aug 2010 22:12:36 +0000 (15:12 -0700)]
am
19cbe64f: am
fe1d6d58: Add option for specifying wall-clock in method profiling.
Merge commit '
19cbe64f168aa783e6a9290c71c5715fc73e69fa'
* commit '
19cbe64f168aa783e6a9290c71c5715fc73e69fa':
Add option for specifying wall-clock in method profiling.
Andy McFadden [Wed, 25 Aug 2010 22:02:05 +0000 (15:02 -0700)]
am
fe1d6d58: Add option for specifying wall-clock in method profiling.
Merge commit '
fe1d6d586614fa51d82857e09128d6671be21d56' into gingerbread-plus-aosp
* commit '
fe1d6d586614fa51d82857e09128d6671be21d56':
Add option for specifying wall-clock in method profiling.
Andy McFadden [Wed, 25 Aug 2010 19:05:44 +0000 (12:05 -0700)]
Add option for specifying wall-clock in method profiling.
Normally you want to use the per-thread CPU clock rather than the wall
clock, because (a) it's more useful and (b) traceview goes a little nuts
if you don't. However, it's useful for some performance testing.
The command-line option allows you to switch modes like this:
% adb shell stop
% adb shell setprop dalvik.vm.extra-opts -Xprofile:wallclock
% adb shell start
This also changes the somewhat nebulous "clock=global" trace header line
to "clock=wall". Nothing looks at this anyway so I'm not worried
about breaking compatibility.
While I was in here, I fixed a couple of problems caused by failure to
initialize data structures that made dmtracedump crash (yay valgrind).
Bug
2943229.
(cherry-pick from dalvik-dev)
Change-Id: I2f6657f7abe02f2a17784588d922b88397639a47
Andy McFadden [Wed, 25 Aug 2010 21:54:04 +0000 (14:54 -0700)]
Merge "Add option for specifying wall-clock in method profiling." into dalvik-dev
Andy McFadden [Wed, 25 Aug 2010 19:05:44 +0000 (12:05 -0700)]
Add option for specifying wall-clock in method profiling.
Normally you want to use the per-thread CPU clock rather than the wall
clock, because (a) it's more useful and (b) traceview goes a little nuts
if you don't. However, it's useful for some performance testing.
The command-line option allows you to switch modes like this:
% adb shell stop
% adb shell setprop dalvik.vm.extra-opts -Xprofile:wallclock
% adb shell start
This also changes the somewhat nebulous "clock=global" trace header line
to "clock=wall". Nothing looks at this anyway so I'm not worried
about breaking compatibility.
While I was in here, I fixed a couple of problems caused by failure to
initialize data structures that made dmtracedump crash (yay valgrind).
Bug
2943229.
Change-Id: Ib8884027c0a7e93044a3284802b176ea991387b5
Ben Cheng [Wed, 25 Aug 2010 21:26:37 +0000 (14:26 -0700)]
am
e73e9bc2: am
aef5e78d: am
9e02e4b1: Revert "JIT: Disable inlining to work around sholes boot crash"
Merge commit '
e73e9bc2dbd89ae67a0b90d6e02c6e8dc24c4c50' into dalvik-dev
* commit '
e73e9bc2dbd89ae67a0b90d6e02c6e8dc24c4c50':
Revert "JIT: Disable inlining to work around sholes boot crash"
Ben Cheng [Wed, 25 Aug 2010 21:17:39 +0000 (14:17 -0700)]
am
aef5e78d: am
9e02e4b1: Revert "JIT: Disable inlining to work around sholes boot crash"
Merge commit '
aef5e78d045f12726a464fa3603ad70d15879b22'
* commit '
aef5e78d045f12726a464fa3603ad70d15879b22':
Revert "JIT: Disable inlining to work around sholes boot crash"
Ben Cheng [Wed, 25 Aug 2010 21:14:31 +0000 (14:14 -0700)]
am
9e02e4b1: Revert "JIT: Disable inlining to work around sholes boot crash"
Merge commit '
9e02e4b1fa08cebefa0f79cd407f4a88611cf473' into gingerbread-plus-aosp
* commit '
9e02e4b1fa08cebefa0f79cd407f4a88611cf473':
Revert "JIT: Disable inlining to work around sholes boot crash"
Ben Cheng [Wed, 25 Aug 2010 20:01:54 +0000 (13:01 -0700)]
Revert "JIT: Disable inlining to work around sholes boot crash"
This reverts commit
07ecdc0b5d92099364eebdaee9aec297c4bbad72.
Random crash is confirmed to be caused by a Cortex-A8 bug. Toolchain fix is
pending and the current ToT is not triggering the crash.
(cherry-picked from dalvik-dev)
Change-Id: I12732a1fc2aa894a678bbb71e871e97f655c6814
Ben Cheng [Wed, 25 Aug 2010 20:34:56 +0000 (13:34 -0700)]
Merge "Revert "JIT: Disable inlining to work around sholes boot crash"" into dalvik-dev
Ben Cheng [Wed, 25 Aug 2010 20:01:54 +0000 (13:01 -0700)]
Revert "JIT: Disable inlining to work around sholes boot crash"
This reverts commit
07ecdc0b5d92099364eebdaee9aec297c4bbad72.
Random crash is confirmed to be caused by a Cortex-A8 bug. Toolchain fix is
pending and the current ToT is not triggering the crash.
Andy McFadden [Wed, 25 Aug 2010 19:31:59 +0000 (12:31 -0700)]
am
b8ee7ac2: am
557763e8: am
3ef3f182: Merge "Change the way thread suspension works." into gingerbread
Merge commit '
b8ee7ac2b7ebf439a988586d20c8288f95692f7e' into dalvik-dev
* commit '
b8ee7ac2b7ebf439a988586d20c8288f95692f7e':
Change the way thread suspension works.
Andy McFadden [Wed, 25 Aug 2010 19:31:56 +0000 (12:31 -0700)]
am
a6dcf00e: am
61e646fa: am
3b6ee1a4: Fix a DDMS thread monitoring crash.
Merge commit '
a6dcf00e1a4a3b043559965f0d4fd0fbded72102' into dalvik-dev
* commit '
a6dcf00e1a4a3b043559965f0d4fd0fbded72102':
Fix a DDMS thread monitoring crash.
Andy McFadden [Wed, 25 Aug 2010 19:24:15 +0000 (12:24 -0700)]
am
557763e8: am
3ef3f182: Merge "Change the way thread suspension works." into gingerbread
Merge commit '
557763e8845b9a81105c8b7380ac24f4869ec5bc'
* commit '
557763e8845b9a81105c8b7380ac24f4869ec5bc':
Change the way thread suspension works.
Andy McFadden [Wed, 25 Aug 2010 19:24:12 +0000 (12:24 -0700)]
am
61e646fa: am
3b6ee1a4: Fix a DDMS thread monitoring crash.
Merge commit '
61e646fae271c8cff7c36dfa897a78430956ba53'
* commit '
61e646fae271c8cff7c36dfa897a78430956ba53':
Fix a DDMS thread monitoring crash.
Andy McFadden [Wed, 25 Aug 2010 19:21:49 +0000 (12:21 -0700)]
am
3ef3f182: Merge "Change the way thread suspension works." into gingerbread
Merge commit '
3ef3f182b126be36acc5e1132bfff4857b442213' into gingerbread-plus-aosp
* commit '
3ef3f182b126be36acc5e1132bfff4857b442213':
Change the way thread suspension works.
Andy McFadden [Wed, 25 Aug 2010 19:21:45 +0000 (12:21 -0700)]
am
3b6ee1a4: Fix a DDMS thread monitoring crash.
Merge commit '
3b6ee1a417a717c44e2a59ed73c930f4be8ea54b' into gingerbread-plus-aosp
* commit '
3b6ee1a417a717c44e2a59ed73c930f4be8ea54b':
Fix a DDMS thread monitoring crash.
Andy McFadden [Wed, 25 Aug 2010 19:20:21 +0000 (12:20 -0700)]
Merge "Change the way thread suspension works." into gingerbread
Andy McFadden [Mon, 23 Aug 2010 23:45:24 +0000 (16:45 -0700)]
Change the way thread suspension works.
There are at least three ways to handle detection of thread suspension
correctly: (1) hold a mutex, (2) pile all state into a single 32-bit
location and use atomic ops, and (3) order the operations carefully.
Of these, #3 has the least overhead on uniprocessors, so we're going
with that.
It does introduce one quirk, because we're now changing to "running"
mode before checking to see if we're allowed to run. This creates
a tiny window of opportunity for assertions and thread dumps to see
what appears to be a thread that's running when it shouldn't be.
This is correctable with additional work (e.g. transitioning through
a pre-running state) but probably not worth worrying about.
This eliminates the separate self->isSuspended flag in favor of the
new THREAD_SUSPENDED thread state.
Bug
2667016.
(cherry-pick from dalvik-dev)
Change-Id: Ibc77ebbb03a7993bc4057c1c375498172ca8ff1c
Andy McFadden [Tue, 24 Aug 2010 21:23:11 +0000 (14:23 -0700)]
Fix a DDMS thread monitoring crash.
We changed the order of events during thread attaches, which means
it's now possible to have Thread structs with null threadObj fields.
This bit of code didn't change with the times, which made it possible
for a process being watched by DDMS to crash if we grabbed the thread
state at just the wrong time.
(cherry-pick from dalvik-dev)
Change-Id: Icd7f523ee8327f00693e601c1c82d3a8defb247f
Andy McFadden [Wed, 25 Aug 2010 19:04:15 +0000 (12:04 -0700)]
Merge "Change the way thread suspension works." into dalvik-dev
Andy McFadden [Mon, 23 Aug 2010 23:45:24 +0000 (16:45 -0700)]
Change the way thread suspension works.
There are at least three ways to handle detection of thread suspension
correctly: (1) hold a mutex, (2) pile all state into a single 32-bit
location and use atomic ops, and (3) order the operations carefully.
Of these, #3 has the least overhead on uniprocessors, so we're going
with that.
It does introduce one quirk, because we're now changing to "running"
mode before checking to see if we're allowed to run. This creates
a tiny window of opportunity for assertions and thread dumps to see
what appears to be a thread that's running when it shouldn't be.
This is correctable with additional work (e.g. transitioning through
a pre-running state) but probably not worth worrying about.
This eliminates the separate self->isSuspended flag in favor of the
new THREAD_SUSPENDED thread state.
Bug
2667016.
Change-Id: I05c22ac5307fa3056fab854dfeed7aa1d76542f4
Andy McFadden [Tue, 24 Aug 2010 22:07:01 +0000 (15:07 -0700)]
Merge "Fix a DDMS thread monitoring crash." into dalvik-dev
Andy McFadden [Tue, 24 Aug 2010 21:23:11 +0000 (14:23 -0700)]
Fix a DDMS thread monitoring crash.
We changed the order of events during thread attaches, which means
it's now possible to have Thread structs with null threadObj fields.
This bit of code didn't change with the times, which made it possible
for a process being watched by DDMS to crash if we grabbed the thread
state at just the wrong time.
Change-Id: I3cd5501e99278d68897f8e50f316f8a37620ca0b
Andy McFadden [Tue, 24 Aug 2010 18:28:22 +0000 (11:28 -0700)]
am
6f95c275: am
ded830f7: resolved conflicts for merge of
aa63a6a6 to gingerbread-plus-aosp
Merge commit '
6f95c2751db9d029ea76491e4223919513cec370' into dalvik-dev
* commit '
6f95c2751db9d029ea76491e4223919513cec370':
Added new bytecodes for the x86-atom fast interpreter build.
Andy McFadden [Tue, 24 Aug 2010 18:28:19 +0000 (11:28 -0700)]
am
a8684380: am
0fb72477: am
f16cfefc: Properly handle volatile field accesses from JNI.
Merge commit '
a8684380356fd9a6c01b28675c5c6d37e640c688' into dalvik-dev
* commit '
a8684380356fd9a6c01b28675c5c6d37e640c688':
Properly handle volatile field accesses from JNI.
Andy McFadden [Tue, 24 Aug 2010 18:21:47 +0000 (11:21 -0700)]
am
ded830f7: resolved conflicts for merge of
aa63a6a6 to gingerbread-plus-aosp
Merge commit '
ded830f7d936821a4136fc8c08064b43beff9341'
* commit '
ded830f7d936821a4136fc8c08064b43beff9341':
Added new bytecodes for the x86-atom fast interpreter build.
Andy McFadden [Tue, 24 Aug 2010 18:19:58 +0000 (11:19 -0700)]
am
0fb72477: am
f16cfefc: Properly handle volatile field accesses from JNI.
Merge commit '
0fb72477bb2454a2ae5416f35376d3714abefc1f'
* commit '
0fb72477bb2454a2ae5416f35376d3714abefc1f':
Properly handle volatile field accesses from JNI.
Elliott Hughes [Tue, 24 Aug 2010 17:40:01 +0000 (10:40 -0700)]
Merge "Intrinsics for float/int and double/long conversions." into dalvik-dev
Brian Carlstrom [Tue, 24 Aug 2010 16:14:53 +0000 (09:14 -0700)]
am
042876de: am
39796a6a: am
30febfdf: Merge remote branch \'goog/dalvik-dev\' into dalvik-dev-to-gingerbread
Merge commit '
042876deaa858c1087285366db0a4971917a431e' into dalvik-dev
* commit '
042876deaa858c1087285366db0a4971917a431e':
Brian Carlstrom [Tue, 24 Aug 2010 16:03:08 +0000 (09:03 -0700)]
am
39796a6a: am
30febfdf: Merge remote branch \'goog/dalvik-dev\' into dalvik-dev-to-gingerbread
Merge commit '
39796a6aa79f687ac0b1254f6a8be048ad1243d8'
* commit '
39796a6aa79f687ac0b1254f6a8be048ad1243d8': (26 commits)
Remove an assertion that cannot be guaranteed.
Always support debugging and profiling.
Fix a critical space leak introduced by concurrent sweeping.
Add a little bit of paranoia to the odex data reader.
Nudge a couple of log messages.
Fix build breakage caused by the countInstancesOfClass change.
Add a method for counting the extant instances of a class.
Added fsync call to dexopt.
JIT: Fix for armv5te-VFP bug [Issue
2916682]
Cast to a byte pointer before performing arithmetic.
Limit scanning to cards within the committed region of the heap.
Remove a malfunctioning predicate used only in assertions.
Remove debugging code and stale comments from the sweep callback.
Fix build breakage caused by a bad merge from master.
JIT: Correct conversion of cb[n]z to cmp/cond_br pair
Print callee information in the JIT profile outout
JIT: Fix for lightweight assembler retry mechanism.
JIT: Fix for
2898397 assert in JIT (chain cell offset)
More SMP fixes.
Fix some potential SMP issues.
...
Elliott Hughes [Sat, 21 Aug 2010 01:47:36 +0000 (18:47 -0700)]
Intrinsics for float/int and double/long conversions.
Bug:
2935622
Change-Id: I0f9e564f1f94ccf6596a37a6f1c10253481d5062
Andy McFadden [Mon, 23 Aug 2010 21:06:47 +0000 (14:06 -0700)]
resolved conflicts for merge of
aa63a6a6 to gingerbread-plus-aosp
Change-Id: Ib2f8c4c71a74987d284eba4be96ff4d329c40a50
Jean-Baptiste Queru [Mon, 23 Aug 2010 20:31:40 +0000 (13:31 -0700)]
Merge "Added new bytecodes for the x86-atom fast interpreter build."
Brian Carlstrom [Mon, 23 Aug 2010 15:28:49 +0000 (08:28 -0700)]
am
a18a7965: libdl should not be included in the simulator build
Merge commit '
a18a79655d6742a7a21764c8d84013c84e012ced' into dalvik-dev
* commit '
a18a79655d6742a7a21764c8d84013c84e012ced':
libdl should not be included in the simulator build
Andy McFadden [Mon, 23 Aug 2010 14:54:41 +0000 (07:54 -0700)]
am
f16cfefc: Properly handle volatile field accesses from JNI.
Merge commit '
f16cfefc199d1416c5f83446c1d299786accc737' into gingerbread-plus-aosp
* commit '
f16cfefc199d1416c5f83446c1d299786accc737':
Properly handle volatile field accesses from JNI.
Jesse Wilson [Mon, 23 Aug 2010 07:02:56 +0000 (00:02 -0700)]
am
3c4760fe: am
1310319f: am
3e9bfe0b: Support dalvikvm on a Linux x86 host
Merge commit '
3c4760fe40ea292c0cadd4aad6b33f6d0eafeeb3' into dalvik-dev
* commit '
3c4760fe40ea292c0cadd4aad6b33f6d0eafeeb3':
Support dalvikvm on a Linux x86 host
Brian Carlstrom [Sun, 22 Aug 2010 18:13:56 +0000 (11:13 -0700)]
libdl should not be included in the simulator build
Change-Id: Ib286e74d4baf035f6427bb00468171c8c86b6879
Jesse Wilson [Sat, 21 Aug 2010 16:36:30 +0000 (09:36 -0700)]
am
1310319f: am
3e9bfe0b: Support dalvikvm on a Linux x86 host
Merge commit '
1310319f0f89c1fc2890657aaa1f0b0ac30e099f'
* commit '
1310319f0f89c1fc2890657aaa1f0b0ac30e099f':
Support dalvikvm on a Linux x86 host
Jean-Baptiste Queru [Sat, 21 Aug 2010 02:08:26 +0000 (19:08 -0700)]
am
95a48a0b: manual merge
Merge commit '
95a48a0bdcdcd63d4323fa7a970ec5aafbc81bda' into dalvik-dev
* commit '
95a48a0bdcdcd63d4323fa7a970ec5aafbc81bda':
Fix dx launching script to use the new platform-tools location.
Jean-Baptiste Queru [Sat, 21 Aug 2010 01:53:43 +0000 (18:53 -0700)]
manual merge
Change-Id: I8f680ec1b2e29bd0acde675a2ab4ffd65c7ce84e
Andy McFadden [Wed, 18 Aug 2010 22:51:37 +0000 (15:51 -0700)]
Properly handle volatile field accesses from JNI.
For uniprocessors, we need to use the 64-bit quasiatomic functions. For
SMP, we need to do that and also issue barriers on all operations.
This was mostly a matter of adding a bunch of inline getter/setter
functions and then calling the right one based on whether or not the
field is declared volatile.
Also, corrected the output for a failing CHECK_CLASS test in CheckJNI.
Bug
2890631.
(cherry-pick from dalvik-dev)
Change-Id: I3da3b70c906eddd5934347caea83ab041d22cd68
Brian Carlstrom [Fri, 20 Aug 2010 20:52:14 +0000 (13:52 -0700)]
am
30febfdf: Merge remote branch \'goog/dalvik-dev\' into dalvik-dev-to-gingerbread
Merge commit '
30febfdf4abe39f99dec100de968cb831b555b27' into gingerbread-plus-aosp
* commit '
30febfdf4abe39f99dec100de968cb831b555b27': (34 commits)
Remove an assertion that cannot be guaranteed.
Always support debugging and profiling.
Fix a critical space leak introduced by concurrent sweeping.
Add a little bit of paranoia to the odex data reader.
Nudge a couple of log messages.
Fix build breakage caused by the countInstancesOfClass change.
Add a method for counting the extant instances of a class.
Added fsync call to dexopt.
JIT: Fix for armv5te-VFP bug [Issue
2916682]
Cast to a byte pointer before performing arithmetic.
Limit scanning to cards within the committed region of the heap.
Remove a malfunctioning predicate used only in assertions.
Remove debugging code and stale comments from the sweep callback.
Fix build breakage caused by a bad merge from master.
JIT: Correct conversion of cb[n]z to cmp/cond_br pair
Sweep concurrently.
Implement card table verification.
Fix the ordering of lock acquisition in the heap worker.
Print callee information in the JIT profile outout
JIT: Fix for lightweight assembler retry mechanism.
...
Brian Carlstrom [Thu, 19 Aug 2010 18:21:12 +0000 (11:21 -0700)]
Merge remote branch 'goog/dalvik-dev' into dalvik-dev-to-gingerbread
Also includes cherry-pick of
07ecdc0b5d92099364eebdaee9aec297c4bbad72
Change-Id: Ie1744d78683f2f66dd1586f453f8bdd56ad2e9a5
Johnnie Birch [Mon, 2 Aug 2010 18:03:14 +0000 (11:03 -0700)]
Added new bytecodes for the x86-atom fast interpreter build.
Change-Id: Ided25c83d874eb02c78e01a0ea97dbb15ed30497
buzbee [Fri, 20 Aug 2010 19:05:28 +0000 (12:05 -0700)]
Merge "JIT: Disable inlining to work around sholes boot crash" into dalvik-dev
Carl Shapiro [Fri, 20 Aug 2010 18:35:54 +0000 (11:35 -0700)]
Merge "Consistently refer to the mark context as ctx." into dalvik-dev
Carl Shapiro [Fri, 20 Aug 2010 18:34:18 +0000 (11:34 -0700)]
Consistently refer to the mark context as ctx.
Change-Id: Id34e414ea33c97526c20a68104e0dfe75104f85f
buzbee [Fri, 20 Aug 2010 18:08:12 +0000 (11:08 -0700)]
JIT: Disable inlining to work around sholes boot crash
There's no clear smoking gun, but I suspect the dalvik-dev
system-server boot crash on sholes devices is related to inlining.
Disabling inlining makes the problem go away (but so does a lot
of other small changes - so the jury is still out).
Change-Id: I5d0734f15c677cea55c5ddf5eef389101fb76a74
Carl Shapiro [Fri, 20 Aug 2010 18:04:25 +0000 (11:04 -0700)]
Collapse a variable declaration and initialization.
Change-Id: Ie254422097d75f11a6baedb91a4fd94eeabc184e
Carl Shapiro [Fri, 20 Aug 2010 17:12:03 +0000 (10:12 -0700)]
Merge "Combine a typedef with a struct declaration." into dalvik-dev
Jesse Wilson [Fri, 20 Aug 2010 00:39:44 +0000 (17:39 -0700)]
Merge "Fix the exception thrown by getDeclaredFields if the class is unavailable." into dalvik-dev
Jesse Wilson [Fri, 20 Aug 2010 00:11:14 +0000 (17:11 -0700)]
Fix the exception thrown by getDeclaredFields if the class is unavailable.
http://b/issue?id=
2634005
Carl Shapiro [Thu, 19 Aug 2010 23:54:01 +0000 (16:54 -0700)]
Combine a typedef with a struct declaration.
Change-Id: I5bc2415bc6a5da542435c4e96c4eaf2d375e2503
Elliott Hughes [Thu, 19 Aug 2010 22:13:14 +0000 (15:13 -0700)]
Minor nio cleanup.
Remove an unused cached jmethodID from "Jni.c", and change "CheckJni.c" to
use the same direct field access that "Jni.c" was already using. (I noticed
this when removing the otherwise unused PlatformAddress.toLong method from
libcore.)
Also remove the now-meaningless double check that the direct field access
works.
Change-Id: I9ef3d5a0e2fd4feafc3925004cacb46fa9f28c17
Andy McFadden [Thu, 19 Aug 2010 22:35:06 +0000 (15:35 -0700)]
Merge "Properly handle volatile field accesses from JNI." into dalvik-dev
Andy McFadden [Wed, 18 Aug 2010 22:51:37 +0000 (15:51 -0700)]
Properly handle volatile field accesses from JNI.
For uniprocessors, we need to use the 64-bit quasiatomic functions. For
SMP, we need to do that and also issue barriers on all operations.
This was mostly a matter of adding a bunch of inline getter/setter
functions and then calling the right one based on whether or not the
field is declared volatile.
Also, corrected the output for a failing CHECK_CLASS test in CheckJNI.
Bug
2890631.
Change-Id: Ib18ed1ce136eef03120ae70cacc39aa33df1490a
Carl Shapiro [Thu, 19 Aug 2010 21:29:41 +0000 (14:29 -0700)]
Use symbolic constants when computing bits-per-word.
Change-Id: Ia8e4f1681222f5f0982c4aa19a245c1fc87e6df4
Carl Shapiro [Thu, 19 Aug 2010 04:04:31 +0000 (21:04 -0700)]
Bitmap naming clean-up.
Disambiguate bitmaps based on their use by adding a "curr" or "prev"
prefix. Also, fix names in a prototype to match the definition.
Change-Id: Ic2a7151fa7a9575d892f659f325f5947a7afde7b
Carl Shapiro [Thu, 19 Aug 2010 01:10:05 +0000 (18:10 -0700)]
Remove an assertion that cannot be guaranteed.
The intention of this assert was to check that the address range
spanned by the mark bitmap was a proper superset of the live bitmap.
Because allocations can occur before these bitmaps are prepared, the
live bitmap may legitimately expand beyond the range of the mark
bitmap. As such, this check is not reliable.
Change-Id: I2f23e9e7f3716a61ecf155ba81fd8baa5a82100d
Jesse Wilson [Thu, 19 Aug 2010 06:00:52 +0000 (23:00 -0700)]
am
3e9bfe0b: Support dalvikvm on a Linux x86 host
Merge commit '
3e9bfe0bed2f27d01efdb03a71025c421d321956' into gingerbread-plus-aosp
* commit '
3e9bfe0bed2f27d01efdb03a71025c421d321956':
Support dalvikvm on a Linux x86 host
Jesse Wilson [Wed, 18 Aug 2010 18:35:23 +0000 (11:35 -0700)]
Support dalvikvm on a Linux x86 host
Change-Id: Id166ab03a01833e06ec1a9aa0059e4eb28ec04ce
Xavier Ducrohet [Thu, 19 Aug 2010 00:31:34 +0000 (17:31 -0700)]
am
ac830fea: Fix dx launching script to use the new platform-tools location.
Merge commit '
ac830feace28957c9e84ce2cb0ed2a565bc24c99' into gingerbread-plus-aosp
* commit '
ac830feace28957c9e84ce2cb0ed2a565bc24c99':
Fix dx launching script to use the new platform-tools location.
Xavier Ducrohet [Wed, 18 Aug 2010 22:42:19 +0000 (15:42 -0700)]
Fix dx launching script to use the new platform-tools location.
Change-Id: Ia4d316b0fb5193dc412aa5374fc270c5b10f70e5
Andy McFadden [Wed, 18 Aug 2010 19:19:51 +0000 (12:19 -0700)]
Always support debugging and profiling.
This eliminates the use of the WITH_DEBUGGER and WITH_PROFILER
conditional compilation flags. We've never shipped a device without
these features, and it's unlikely we ever will. They're not worth
the code clutter they cause.
As usual, since I can't test the x86-atom code I left that alone and
added an item to the TODO list.
Bug
2923442.
Change-Id: I335ebd5193bc86f7641513b1b41c0378839be1fe
Andy McFadden [Wed, 18 Aug 2010 14:45:17 +0000 (07:45 -0700)]
Merge "Nudge a couple of log messages." into dalvik-dev
Carl Shapiro [Wed, 18 Aug 2010 05:47:23 +0000 (22:47 -0700)]
Merge "Fix a critical space leak introduced by concurrent sweeping." into dalvik-dev
Carl Shapiro [Wed, 18 Aug 2010 01:33:56 +0000 (18:33 -0700)]
Fix a critical space leak introduced by concurrent sweeping.
When computing the bitmaps for each heap, the live bitmap was assumed
to have greater extent than the mark bitmap. With the concurrent
sweep the mark and live bitmaps are swapped before the sweep bitmaps
are computed. As such, the live bitmap extent is always less than or
equal to the mark bitmap. A benchmark which loops creating objects
just to drop them on the floor will exclude most objects in the heap
as candidates for sweeping and will exhaust the heap.
The change fixes the extent computation and reintroduces an assert to
check that the bitmap we assume to be the largest is the largest.
Change-Id: I78694d2a0550de70c85e2087d482050a147a207a
Dan Bornstein [Tue, 17 Aug 2010 22:06:15 +0000 (15:06 -0700)]
Merge "Add a little bit of paranoia to the odex data reader." into dalvik-dev
Dan Bornstein [Tue, 17 Aug 2010 00:11:06 +0000 (17:11 -0700)]
Add a little bit of paranoia to the odex data reader.
This prevents some potential segfaults when working with (e.g., trying
to run) corrupted dex files, turning them into more informative error
messages.
Change-Id: Ie6845087bb17a5f65fafbd6f9ff335b6af489996
Andy McFadden [Tue, 17 Aug 2010 00:04:01 +0000 (17:04 -0700)]
Nudge a couple of log messages.
Also, don't show errno on a short read.
Related to bug
2916809.
Change-Id: I163906d47b698ac5e77202c323db5823196169bb
Carl Shapiro [Tue, 17 Aug 2010 20:30:48 +0000 (13:30 -0700)]
Fix build breakage caused by the countInstancesOfClass change.
There is an apparent visibility skew between passion-eng and sim-eng
builds. On sim-eng, the contents of Heap.h are globally visible but
on passion-eng this is not the case. To resolve this issue, I have
moved the offending declarations to alloc/Alloc.h which is directly
exported from Dalvik.h.
Change-Id: Iaf6f167964f81f24fa0817aa4a84b9fb4ff9a9a0
Carl Shapiro [Tue, 17 Aug 2010 19:24:44 +0000 (12:24 -0700)]
Merge "Add a method for counting the extant instances of a class." into dalvik-dev
Carl Shapiro [Tue, 17 Aug 2010 19:22:49 +0000 (12:22 -0700)]
Add a method for counting the extant instances of a class.
This facility should supersede the use of finalizers in computing
instance counts for the "adb shell dumpsys meminfo" reports.
Change-Id: I026e7083e39aa296bbbcf665231ec20d6b37cdf6
Andy McFadden [Tue, 17 Aug 2010 17:06:58 +0000 (10:06 -0700)]
Merge "Added fsync call to dexopt." into dalvik-dev
Andy McFadden [Mon, 16 Aug 2010 23:14:06 +0000 (16:14 -0700)]
Added fsync call to dexopt.
If various system-level things go wrong you might end up with a
correctly-written .odex header but an incomplete file, which ideally
would never happen. This adds an fsync() call before we write the
header to make this less likely.
Change-Id: Ie5ac67dc7185ca9a4995710688e1219e46477c12
Ben Cheng [Mon, 16 Aug 2010 22:31:48 +0000 (15:31 -0700)]
am
bce36059: am
52d4cd28: Rename registers on inlined instructions that use wide operands.
Merge commit '
bce36059dd1021b0cd06c02c3a9849ae6da4741b' into dalvik-dev
* commit '
bce36059dd1021b0cd06c02c3a9849ae6da4741b':
Rename registers on inlined instructions that use wide operands.
Ben Cheng [Mon, 16 Aug 2010 22:19:46 +0000 (15:19 -0700)]
am
52d4cd28: Rename registers on inlined instructions that use wide operands.
Merge commit '
52d4cd28a5d6d946934704e11e1d41450c10aa05'
* commit '
52d4cd28a5d6d946934704e11e1d41450c10aa05':
Rename registers on inlined instructions that use wide operands.
Ben Cheng [Mon, 16 Aug 2010 21:08:49 +0000 (14:08 -0700)]
Rename registers on inlined instructions that use wide operands.
For example, v1 in the callee should be v7 in the caller.
Before:
div-double v7, v8, v10
iput-wide-quick (C) v1, v6, (#136) <- v1 should be renamed
invoke-virtual-quick (PI) v6, v7, v8
After:
div-double v7, v8, v10
iput-wide-quick (C) v7, v6, (#136)
invoke-virtual-quick (PI) v6, v7, v8
Bug:
2907602
Change-Id: I21b9a45f8e422148d45de98c1ec9acbfd9783cc6
buzbee [Sat, 14 Aug 2010 00:52:46 +0000 (17:52 -0700)]
JIT: Fix for armv5te-VFP bug [Issue
2916682]
Temp register was clobbered after explicit use rather than before.
Affects only armv5te-vfp builds.
Change-Id: I0a1c3f69a299f31bd50f3ec95ae83681b89ae6f1
Carl Shapiro [Thu, 12 Aug 2010 20:55:06 +0000 (13:55 -0700)]
Cast to a byte pointer before performing arithmetic.
Change-Id: I1efd3b327b8c0a052c975ed07ee0db648ba84581
Carl Shapiro [Thu, 12 Aug 2010 18:24:44 +0000 (11:24 -0700)]
Limit scanning to cards within the committed region of the heap.
The initial implementation of the card scanning routine scanned all
cards in the card table. For heaps that are less than the maximum
allowed size time was wasted scanning cards that are never dirtied.
Change-Id: I599c53a1777bf38b4d7b19438eb7584f9ba578ec
Carl Shapiro [Wed, 11 Aug 2010 02:23:22 +0000 (19:23 -0700)]
Merge "Remove a malfunctioning predicate used only in assertions." into dalvik-dev
Carl Shapiro [Wed, 11 Aug 2010 01:07:44 +0000 (18:07 -0700)]
Remove a malfunctioning predicate used only in assertions.
This check thought it filtered pointers aligned on 4-byte boundaries
and inclusion in the heap but actually checked for pointers on 8-byte
boundaries. Both checks surround storing method call return values
which are gauranteed to be stack allocated.
Change-Id: I9cfd9eb06c5bd1d5cf55b372771da20425c56406
Carl Shapiro [Wed, 11 Aug 2010 00:28:12 +0000 (17:28 -0700)]
Remove debugging code and stale comments from the sweep callback.
Change-Id: Idf5e26354179a0d8c519c85880ad218603878722
Carl Shapiro [Wed, 11 Aug 2010 00:20:15 +0000 (17:20 -0700)]
Fix build breakage caused by a bad merge from
Change-Id: I2da195733b3c78fea2865b0bdc0b5a5bf9ec60fe
buzbee [Tue, 10 Aug 2010 23:26:24 +0000 (16:26 -0700)]
Merge "JIT: Correct conversion of cb[n]z to cmp/cond_br pair" into dalvik-dev
Carl Shapiro [Tue, 10 Aug 2010 23:16:57 +0000 (16:16 -0700)]
am
8881a809: Sweep concurrently.
Merge commit '
8881a8098e259a1faf392d20c1fefc1ee4a63b20' into dalvik-dev
* commit '
8881a8098e259a1faf392d20c1fefc1ee4a63b20':
Sweep concurrently.
buzbee [Tue, 10 Aug 2010 22:50:34 +0000 (15:50 -0700)]
JIT: Correct conversion of cb[n]z to cmp/cond_br pair
This fixes the regression introduced in the fast assembly retry
that was causing excessive bailouts. The good news is that with
this fix, we're seeing a ~5% boost in Linpack because of the
cb[n]z usage.
Change-Id: Ib4a48dcba809af4343456eae49a90b4a1e3aee9d
Carl Shapiro [Tue, 10 Aug 2010 22:55:45 +0000 (15:55 -0700)]
Sweep concurrently.
After marking, exchange the mark and live bitmaps and resume all
threads. The sweep proceeds concurrently viewing the new live bitmap
as the old mark bitmap thereby permitting allocations performed while
sweeping to update the live bitmap.
Change-Id: I9c307190a14ce417413175db016be41c38aeeaf3
Carl Shapiro [Tue, 10 Aug 2010 03:10:35 +0000 (20:10 -0700)]
am
cb7c47d0: am
d012d06b: Fix the ordering of lock acquisition in the heap worker.
Merge commit '
cb7c47d047f80952a69f1d2a7200c589754b4870' into dalvik-dev
* commit '
cb7c47d047f80952a69f1d2a7200c589754b4870':
Fix the ordering of lock acquisition in the heap worker.
Dan Bornstein [Tue, 10 Aug 2010 03:10:30 +0000 (20:10 -0700)]
am
577a8269: am
34bfe020: Fix a couple copyright headers that aren\'t in the prescribed format.
Merge commit '
577a826937acddadafd9b901dbafdec27d4613fc' into dalvik-dev
* commit '
577a826937acddadafd9b901dbafdec27d4613fc':
Fix a couple copyright headers that aren't in the prescribed format.