OSDN Git Service
Jean-Baptiste Queru [Tue, 12 Oct 2010 02:18:35 +0000 (19:18 -0700)]
am
ebf657c0: am
90ee39ea: am
ad3ff025: Merge "Update Call386ABI.S to support 16 byte alignment"
Merge commit '
ebf657c0ab53a6e0db5c3dd565eba591f98a7321' into dalvik-dev
* commit '
ebf657c0ab53a6e0db5c3dd565eba591f98a7321':
Update Call386ABI.S to support 16 byte alignment
Jean-Baptiste Queru [Tue, 12 Oct 2010 02:18:31 +0000 (19:18 -0700)]
am
baac134a: am
789fb059: am
bc02ca96: Merge "Fixed bug in OP_GOTO_32.S, added support for additional parameters to dvmHandleStackOverflow"
Merge commit '
baac134a4fab06f538a10d660585d33c587506e9' into dalvik-dev
* commit '
baac134a4fab06f538a10d660585d33c587506e9':
Fixed bug in OP_GOTO_32.S, added support for additional parameters to dvmHandleStackOverflow
Jean-Baptiste Queru [Tue, 12 Oct 2010 01:58:15 +0000 (18:58 -0700)]
am
90ee39ea: am
ad3ff025: Merge "Update Call386ABI.S to support 16 byte alignment"
Merge commit '
90ee39eabbee701b63e79ddaf4859481b7e0547a'
* commit '
90ee39eabbee701b63e79ddaf4859481b7e0547a':
Update Call386ABI.S to support 16 byte alignment
Jean-Baptiste Queru [Tue, 12 Oct 2010 01:58:09 +0000 (18:58 -0700)]
am
789fb059: am
bc02ca96: Merge "Fixed bug in OP_GOTO_32.S, added support for additional parameters to dvmHandleStackOverflow"
Merge commit '
789fb0592cb6ea7ac573bd81ea8fb0a8bb5e103f'
* commit '
789fb0592cb6ea7ac573bd81ea8fb0a8bb5e103f':
Fixed bug in OP_GOTO_32.S, added support for additional parameters to dvmHandleStackOverflow
Andy McFadden [Mon, 11 Oct 2010 19:45:24 +0000 (12:45 -0700)]
am
7e08546d: am
c7fb06ef: am
5276cccb: Verify method invocation type.
Merge commit '
7e08546def661fc0f629d8462aae2db88c1a9708' into dalvik-dev
* commit '
7e08546def661fc0f629d8462aae2db88c1a9708':
Verify method invocation type.
Andy McFadden [Mon, 11 Oct 2010 19:37:06 +0000 (12:37 -0700)]
am
c7fb06ef: am
5276cccb: Verify method invocation type.
Merge commit '
c7fb06efb576b7ff0295dd70c8beaeea11918645'
* commit '
c7fb06efb576b7ff0295dd70c8beaeea11918645':
Verify method invocation type.
Dan Bornstein [Mon, 11 Oct 2010 19:04:26 +0000 (12:04 -0700)]
am
451bed66: am
22156b4d: am
9be25d09: Clarify the invoke-* opcodes.
Merge commit '
451bed664ca2dcf0f32451445c224ffde7a0e9e8' into dalvik-dev
* commit '
451bed664ca2dcf0f32451445c224ffde7a0e9e8':
Clarify the invoke-* opcodes.
Dan Bornstein [Mon, 11 Oct 2010 18:36:14 +0000 (11:36 -0700)]
am
22156b4d: am
9be25d09: Clarify the invoke-* opcodes.
Merge commit '
22156b4d43d06446a0bb4d2c887c23bedabb3a96'
* commit '
22156b4d43d06446a0bb4d2c887c23bedabb3a96':
Clarify the invoke-* opcodes.
Jean-Baptiste Queru [Mon, 11 Oct 2010 01:49:37 +0000 (18:49 -0700)]
am
ad3ff025: Merge "Update Call386ABI.S to support 16 byte alignment"
Merge commit '
ad3ff0252ee5c59528828e0625490f0768d2081f' into gingerbread-plus-aosp
* commit '
ad3ff0252ee5c59528828e0625490f0768d2081f':
Update Call386ABI.S to support 16 byte alignment
Jean-Baptiste Queru [Mon, 11 Oct 2010 01:49:31 +0000 (18:49 -0700)]
am
bc02ca96: Merge "Fixed bug in OP_GOTO_32.S, added support for additional parameters to dvmHandleStackOverflow"
Merge commit '
bc02ca96c5cd3b45939809ed43ae2e7f2e4fb5b9' into gingerbread-plus-aosp
* commit '
bc02ca96c5cd3b45939809ed43ae2e7f2e4fb5b9':
Fixed bug in OP_GOTO_32.S, added support for additional parameters to dvmHandleStackOverflow
Jean-Baptiste Queru [Mon, 11 Oct 2010 01:35:44 +0000 (18:35 -0700)]
Merge "Update Call386ABI.S to support 16 byte alignment"
Jean-Baptiste Queru [Mon, 11 Oct 2010 01:34:16 +0000 (18:34 -0700)]
Merge "Fixed bug in OP_GOTO_32.S, added support for additional parameters to dvmHandleStackOverflow"
Andy McFadden [Sun, 10 Oct 2010 21:12:00 +0000 (14:12 -0700)]
am
5276cccb: Verify method invocation type.
Merge commit '
5276cccb15b6ce0133c8107ff9ff013b4a176ef7' into gingerbread-plus-aosp
* commit '
5276cccb15b6ce0133c8107ff9ff013b4a176ef7':
Verify method invocation type.
Andy McFadden [Sun, 10 Oct 2010 19:59:11 +0000 (12:59 -0700)]
Verify method invocation type.
Dalvik provides five different ways to invoke a method (virtual, super,
direct, static, interface). Using a virtual invoke instruction to call
a direct method will not produce the desired results.
This adds a test to the verifier that ensures the method targeted by
an invocation instruction is of an appropriate kind.
Bug
3082885.
(cherry-pick from dalvik-dev)
Change-Id: I3237cbefc7314f0b9d7557fc0bfd2b548ea30938
Dan Bornstein [Sun, 10 Oct 2010 20:20:02 +0000 (13:20 -0700)]
am
9be25d09: Clarify the invoke-* opcodes.
Merge commit '
9be25d09d24b3d6d0dd1a41c1c09471af4827687' into gingerbread-plus-aosp
* commit '
9be25d09d24b3d6d0dd1a41c1c09471af4827687':
Clarify the invoke-* opcodes.
Andy McFadden [Sun, 10 Oct 2010 19:59:11 +0000 (12:59 -0700)]
Verify method invocation type.
Dalvik provides five different ways to invoke a method (virtual, super,
direct, static, interface). Using a virtual invoke instruction to call
a direct method will not produce the desired results.
This adds a test to the verifier that ensures the method targeted by
an invocation instruction is of an appropriate kind.
Bug
3082885.
Change-Id: Iacf14b9b3959a0894d89d727286e10e3ecf72680
Dan Bornstein [Sun, 10 Oct 2010 19:29:07 +0000 (12:29 -0700)]
Clarify the invoke-* opcodes.
In particular, make it a little more explicit what kinds of methods
are acceptable for each variant.
Change-Id: Icd9dad876c2d10c23462b4d85ccaa9441d7f2c04
Andy McFadden [Thu, 7 Oct 2010 22:11:43 +0000 (15:11 -0700)]
Track result from dvmCallMethod
When dvmCallMethod returns an object reference, we need to ensure
that the GC doesn't release or relocate the storage. Unless we have
a clear view of how the object is used, we need to explicitly track
and release it.
This adds additional tracking, or comments indicating that explicit
tracking is not necessary.
On a similar note, clearing/restoring a pending exception requires
explicit tracking of that exception, since there's a fair chance
that it's no longer in the root set. That needed fixing in a couple
of places.
Bug
3009076.
Change-Id: I39def8c3a5a628f0ee86fc094e34d7c69248c28b
Andy McFadden [Fri, 8 Oct 2010 17:06:26 +0000 (10:06 -0700)]
Don't do ClassLoader prep in dexopt.
The code to cache the method info for ClassLoader.loadClass() was
happening in dexopt, which is a problem when you're optimizing core.jar.
This splits it out into a different function, which the dexopt startup
doesn't call.
Change-Id: I0bd5b9323b65e8f152b2ab4ea8e58fcf0039e53c
Andy McFadden [Thu, 7 Oct 2010 22:12:14 +0000 (15:12 -0700)]
Avoid lookup of loadClass().
Fix a TODO item: do the lookup of ClassLoader.loadClass() during init
instead of on every class load through a non-bootstrap loader.
Change-Id: Iebd145a721937bec7c09b0a7b7dbd78da8083cbe
Andy McFadden [Thu, 7 Oct 2010 00:03:27 +0000 (17:03 -0700)]
Fix clazz->initThreadId ordering
We want to make sure that, if the class we're interested in is in
CLASS_INITIALIZING, we're not loading a stale value for initThreadId.
This is an issue in dvmIsClassInitializing, which reads the value
without holding a lock.
Bug
3069119
Change-Id: I5b492249429cd7a8fbffd526b9a546fb5fb8e6bd
Andy McFadden [Thu, 7 Oct 2010 14:38:35 +0000 (07:38 -0700)]
Merge "Change handling of edge case." into dalvik-dev
Andy McFadden [Wed, 6 Oct 2010 00:02:54 +0000 (17:02 -0700)]
Change handling of edge case.
Generally speaking, you can't create an instance of a class before
the class is initialized. When you're talking about java.lang.Class
itself, this doesn't apply. We were trying to sneak in a just-in-time
initialization, but the recent addition of SMP-mandated opcode rewrites
screwed things up a bit.
Happily, the creation of the java.lang.Class class object now happens
at a known time, which means we can explicitly initialize the class
at the right time (when it's far enough along to be able to execute
the class initializer, but before anything tries to use a virtual
method or instance field in java.lang.Class).
Also, changed a LOGE+abort to a simple assert. The test in question is
performed earlier during linking, so this doesn't merit more than an
assertion.
Bug
3045762.
Change-Id: Ifffb5083a3de108e1d91b3de7b75fd5e97705912
buzbee [Wed, 6 Oct 2010 19:29:41 +0000 (12:29 -0700)]
Merge "Re-organize target-independent JIT code." into dalvik-dev
Andy McFadden [Fri, 1 Oct 2010 23:20:55 +0000 (16:20 -0700)]
am
3d40f20c: Merge "Use DMB ST for store fence."
Merge commit '
3d40f20caf1d7778be664cc33ecd395281dfb2e5' into dalvik-dev
* commit '
3d40f20caf1d7778be664cc33ecd395281dfb2e5':
Use DMB ST for store fence.
Andy McFadden [Fri, 1 Oct 2010 22:22:35 +0000 (15:22 -0700)]
Merge "Use DMB ST for store fence."
Carl Shapiro [Fri, 1 Oct 2010 20:08:29 +0000 (13:08 -0700)]
am
6f3a90d9: am
5163f62f: am
7d3f633d: Merge "Include static fields when dumping class objects." into gingerbread
Merge commit '
6f3a90d94a46d5d42a885c07b8d06ff75f7b270b' into dalvik-dev
* commit '
6f3a90d94a46d5d42a885c07b8d06ff75f7b270b':
Include static fields when dumping class objects.
Carl Shapiro [Fri, 1 Oct 2010 19:59:39 +0000 (12:59 -0700)]
am
5163f62f: am
7d3f633d: Merge "Include static fields when dumping class objects." into gingerbread
Merge commit '
5163f62f7048c4b651a425b4b7a3a1b0fb227eb6'
* commit '
5163f62f7048c4b651a425b4b7a3a1b0fb227eb6':
Include static fields when dumping class objects.
Carl Shapiro [Fri, 1 Oct 2010 19:57:44 +0000 (12:57 -0700)]
am
7d3f633d: Merge "Include static fields when dumping class objects." into gingerbread
Merge commit '
7d3f633d2c0061e579c57186276c05ddcc275641' into gingerbread-plus-aosp
* commit '
7d3f633d2c0061e579c57186276c05ddcc275641':
Include static fields when dumping class objects.
Carl Shapiro [Fri, 1 Oct 2010 19:54:52 +0000 (12:54 -0700)]
Merge "Include static fields when dumping class objects." into gingerbread
Andy McFadden [Fri, 1 Oct 2010 19:31:42 +0000 (12:31 -0700)]
Use DMB ST for store fence.
Change-Id: I4bde544a7c66e30a1756425ec088e53baa2f11a1
Carl Shapiro [Fri, 1 Oct 2010 00:20:11 +0000 (17:20 -0700)]
Include static fields when dumping class objects.
Change-Id: I8e7b1d1ef7ca205b489744dcbf0f210c1f2443c4
Elliott Hughes [Fri, 1 Oct 2010 18:05:07 +0000 (11:05 -0700)]
am
d0f17433: am
b11c54c9: am
307aa79a: Merge "Change Runtime.nativeLoad to return the dlerror(3) string." into gingerbread
Merge commit '
d0f1743310437921525b630de102e5d2aefb4c2b' into dalvik-dev
* commit '
d0f1743310437921525b630de102e5d2aefb4c2b':
Change Runtime.nativeLoad to return the dlerror(3) string.
Elliott Hughes [Fri, 1 Oct 2010 17:52:29 +0000 (10:52 -0700)]
am
b11c54c9: am
307aa79a: Merge "Change Runtime.nativeLoad to return the dlerror(3) string." into gingerbread
Merge commit '
b11c54c9b7849eaa95423dbbf8433e9f1b20ec32'
* commit '
b11c54c9b7849eaa95423dbbf8433e9f1b20ec32':
Change Runtime.nativeLoad to return the dlerror(3) string.
Elliott Hughes [Fri, 1 Oct 2010 17:49:02 +0000 (10:49 -0700)]
am
307aa79a: Merge "Change Runtime.nativeLoad to return the dlerror(3) string." into gingerbread
Merge commit '
307aa79afc08c50e9ea69aac7bf5128bc75ac7ff' into gingerbread-plus-aosp
* commit '
307aa79afc08c50e9ea69aac7bf5128bc75ac7ff':
Change Runtime.nativeLoad to return the dlerror(3) string.
Elliott Hughes [Fri, 1 Oct 2010 17:35:13 +0000 (10:35 -0700)]
Merge "Change Runtime.nativeLoad to return the dlerror(3) string." into gingerbread
buzbee [Fri, 1 Oct 2010 06:30:55 +0000 (23:30 -0700)]
am
7c1f9b34: resolved conflicts for merge of
6d55b332 to master
Merge commit '
7c1f9b34d49aa7cea9b830226e33e95d7608cf76' into dalvik-dev
* commit '
7c1f9b34d49aa7cea9b830226e33e95d7608cf76':
GC Card marking fix for SPUT_OBJECT - use correct object head
buzbee [Fri, 1 Oct 2010 06:19:49 +0000 (23:19 -0700)]
resolved conflicts for merge of
6d55b332 to master
Change-Id: I21e35d4cdf2636ae3cd7facd45ad4f5c4ab82e7b
buzbee [Fri, 1 Oct 2010 03:24:45 +0000 (20:24 -0700)]
am
b78c76f8: GC Card marking fix for SPUT_OBJECT - use correct object head
Merge commit '
b78c76f88ea42e7a3b295c210ca9ee86e7290043' into gingerbread-plus-aosp
* commit '
b78c76f88ea42e7a3b295c210ca9ee86e7290043':
GC Card marking fix for SPUT_OBJECT - use correct object head
Andy McFadden [Fri, 1 Oct 2010 02:22:44 +0000 (19:22 -0700)]
am
2f92dcdc: am
33ff9f32: am
d8b5f50d: Correct dexopt for uniprocessors.
Merge commit '
2f92dcdc05f3c4c1bd7d67786f56393308813f1e' into dalvik-dev
* commit '
2f92dcdc05f3c4c1bd7d67786f56393308813f1e':
Correct dexopt for uniprocessors.
Dan Bornstein [Fri, 1 Oct 2010 02:22:39 +0000 (19:22 -0700)]
am
6b2897b6: am
2428d518: am
f45b6cbe: Be explicit about both uniprocessor and SMP when calling dexopt.
Merge commit '
6b2897b60410c540ee5686a2e85eb46386f9f745' into dalvik-dev
* commit '
6b2897b60410c540ee5686a2e85eb46386f9f745':
Be explicit about both uniprocessor and SMP when calling dexopt.
buzbee [Fri, 1 Oct 2010 02:08:20 +0000 (19:08 -0700)]
GC Card marking fix for SPUT_OBJECT - use correct object head
Change-Id: I8b84a4f1e1690f5b62de7404ea6ede00317848bb
Andy McFadden [Fri, 1 Oct 2010 01:11:46 +0000 (18:11 -0700)]
am
33ff9f32: am
d8b5f50d: Correct dexopt for uniprocessors.
Merge commit '
33ff9f32d460a232729a123617ca81b3f67195c6'
* commit '
33ff9f32d460a232729a123617ca81b3f67195c6':
Correct dexopt for uniprocessors.
Dan Bornstein [Fri, 1 Oct 2010 01:11:15 +0000 (18:11 -0700)]
am
2428d518: am
f45b6cbe: Be explicit about both uniprocessor and SMP when calling dexopt.
Merge commit '
2428d518efb9b5a62d74f44a267f3a6c18982549'
* commit '
2428d518efb9b5a62d74f44a267f3a6c18982549':
Be explicit about both uniprocessor and SMP when calling dexopt.
Elliott Hughes [Thu, 30 Sep 2010 22:51:31 +0000 (15:51 -0700)]
Change Runtime.nativeLoad to return the dlerror(3) string.
This has a companion change in libcore:
https://android-git.corp.google.com/g/71342
Bug:
3044042
Change-Id: I070a80a41ec2f306f5092a641807017f70179451
Andy McFadden [Thu, 30 Sep 2010 22:40:43 +0000 (15:40 -0700)]
am
d8b5f50d: Correct dexopt for uniprocessors.
Merge commit '
d8b5f50d0c6c9a0ce157e89df4ee1e8eb8b334c3' into gingerbread-plus-aosp
* commit '
d8b5f50d0c6c9a0ce157e89df4ee1e8eb8b334c3':
Correct dexopt for uniprocessors.
Andy McFadden [Thu, 30 Sep 2010 21:02:54 +0000 (14:02 -0700)]
Correct dexopt for uniprocessors.
The SMP flag was defaulting to "true" for dexopt, even on uniprocessors.
With this change the VM now has three choices: dexopt for SMP, dexopt
for uniprocessor, or dexopt for current system. The last is used for
just-in-time dexopt (used by -eng and -userdebug builds on bootstrap DEX
files) and installd dexopt (used for apps on all builds).
The dexopt used by the build system during -user builds will either be
explicitly SMP or explicitly uniprocessor, since "current system" has
no meaning when you're cross-dexopting.
Also, unified the dexopt control flags into a single enum.
(cherry-pick from dalvik-dev)
Change-Id: Id1d9c548ca8567585a28ef9ee911cc2ac6b116dd
Dan Bornstein [Thu, 30 Sep 2010 22:11:27 +0000 (15:11 -0700)]
am
f45b6cbe: Be explicit about both uniprocessor and SMP when calling dexopt.
Merge commit '
f45b6cbed6ce7cb6a38746b5abe0213263106a71' into gingerbread-plus-aosp
* commit '
f45b6cbed6ce7cb6a38746b5abe0213263106a71':
Be explicit about both uniprocessor and SMP when calling dexopt.
Andy McFadden [Thu, 30 Sep 2010 22:08:29 +0000 (15:08 -0700)]
Merge "Correct dexopt for uniprocessors." into dalvik-dev
Andy McFadden [Thu, 30 Sep 2010 21:02:54 +0000 (14:02 -0700)]
Correct dexopt for uniprocessors.
The SMP flag was defaulting to "true" for dexopt, even on uniprocessors.
With this change the VM now has three choices: dexopt for SMP, dexopt
for uniprocessor, or dexopt for current system. The last is used for
just-in-time dexopt (used by -eng and -userdebug builds on bootstrap DEX
files) and installd dexopt (used for apps on all builds).
The dexopt used by the build system during -user builds will either be
explicitly SMP or explicitly uniprocessor, since "current system" has
no meaning when you're cross-dexopting.
Also, unified the dexopt control flags into a single enum.
Change-Id: I02e22d53ccde2e8603cac8090ca3aae59f792f70
Dan Bornstein [Thu, 30 Sep 2010 22:04:34 +0000 (15:04 -0700)]
Be explicit about both uniprocessor and SMP when calling dexopt.
Change-Id: Ic1b68dddf6822773041de6023c594a062e141325
Carl Shapiro [Thu, 30 Sep 2010 18:48:49 +0000 (11:48 -0700)]
am
19e8f008: am
f37569d1: am
1e053438: Merge "After trimming, set the footprint to the number of pages in use." into gingerbread
Merge commit '
19e8f008c99464bb3ebbe06c269ca9945a3dfc7b' into dalvik-dev
* commit '
19e8f008c99464bb3ebbe06c269ca9945a3dfc7b':
After trimming, set the footprint to the number of pages in use.
Carl Shapiro [Thu, 30 Sep 2010 18:48:42 +0000 (11:48 -0700)]
am
5f556005: am
0cb51973: am
d4cdb357: Merge "Update the card table scanning for header-only card marks." into gingerbread
Merge commit '
5f556005ec84881a00350018027f1d82aec7f79e' into dalvik-dev
* commit '
5f556005ec84881a00350018027f1d82aec7f79e':
Update the card table scanning for header-only card marks.
Carl Shapiro [Thu, 30 Sep 2010 18:26:04 +0000 (11:26 -0700)]
am
f37569d1: am
1e053438: Merge "After trimming, set the footprint to the number of pages in use." into gingerbread
Merge commit '
f37569d1cf3ed24fa37488ceb9bac2a52f45260c'
* commit '
f37569d1cf3ed24fa37488ceb9bac2a52f45260c':
After trimming, set the footprint to the number of pages in use.
Carl Shapiro [Thu, 30 Sep 2010 18:24:50 +0000 (11:24 -0700)]
am
0cb51973: am
d4cdb357: Merge "Update the card table scanning for header-only card marks." into gingerbread
Merge commit '
0cb519734afc574b2ca60d72ced1e9fc46a8f4c9'
* commit '
0cb519734afc574b2ca60d72ced1e9fc46a8f4c9':
Update the card table scanning for header-only card marks.
Dan Bornstein [Thu, 30 Sep 2010 03:49:36 +0000 (20:49 -0700)]
am
bf7001a9: am
c315cbf1: am
87f66617: Add --uniprocessor option to dex-preopt.
Merge commit '
bf7001a9900b737603301bcbbd16daae644d7965' into dalvik-dev
* commit '
bf7001a9900b737603301bcbbd16daae644d7965':
Add --uniprocessor option to dex-preopt.
Dan Bornstein [Thu, 30 Sep 2010 03:35:10 +0000 (20:35 -0700)]
am
c315cbf1: am
87f66617: Add --uniprocessor option to dex-preopt.
Merge commit '
c315cbf15411e9b4b1f7a9732f16117eaea7afcb'
* commit '
c315cbf15411e9b4b1f7a9732f16117eaea7afcb':
Add --uniprocessor option to dex-preopt.
Carl Shapiro [Wed, 29 Sep 2010 21:30:25 +0000 (14:30 -0700)]
am
1e053438: Merge "After trimming, set the footprint to the number of pages in use." into gingerbread
Merge commit '
1e053438810dbd8406ec8339b94801195261e849' into gingerbread-plus-aosp
* commit '
1e053438810dbd8406ec8339b94801195261e849':
After trimming, set the footprint to the number of pages in use.
Carl Shapiro [Wed, 29 Sep 2010 21:27:50 +0000 (14:27 -0700)]
Merge "After trimming, set the footprint to the number of pages in use." into gingerbread
Carl Shapiro [Wed, 29 Sep 2010 19:40:05 +0000 (12:40 -0700)]
am
d4cdb357: Merge "Update the card table scanning for header-only card marks." into gingerbread
Merge commit '
d4cdb3572b489e770d20a6afba0f86563f380825' into gingerbread-plus-aosp
* commit '
d4cdb3572b489e770d20a6afba0f86563f380825':
Update the card table scanning for header-only card marks.
Carl Shapiro [Wed, 29 Sep 2010 19:38:19 +0000 (12:38 -0700)]
Merge "Update the card table scanning for header-only card marks." into gingerbread
Dan Bornstein [Wed, 29 Sep 2010 17:04:22 +0000 (10:04 -0700)]
am
87f66617: Add --uniprocessor option to dex-preopt.
Merge commit '
87f666172f55863d6a50762a1a07a31b67eb48f6' into gingerbread-plus-aosp
* commit '
87f666172f55863d6a50762a1a07a31b67eb48f6':
Add --uniprocessor option to dex-preopt.
Carl Shapiro [Wed, 29 Sep 2010 08:09:11 +0000 (01:09 -0700)]
Update the card table scanning for header-only card marks.
Previously, the card table accessors assumed that objects had either
their header marked or would be marked exactly. As such, after
reckoning a marked card the scan would back up until it found an
object header and then move forward blackening each object within the
address range of the marked card.
Following a recent change we exclusively mark headers. The scan only
has to move forward until the end of a card. This saves scanning time
as dlmalloc's binning may leave large segments of the heap unused. It
is not uncommon for hundreds of cards to be spanned when backing up to
the first live object below a marked card.
In addition, this change fixes the card table verifier to search the
mark stack for gray objects. It is permissible for roots to point to
white objects on unmarked cards. This was incorrectly treated as an
error.
Change-Id: Ia6b6ee2012e381d644b8b3f38b39d746749ea47a
Dan Bornstein [Wed, 29 Sep 2010 06:43:34 +0000 (23:43 -0700)]
am
d53caae3: am
b3a94965: am
148283d7: Plumb SMP optimization control through to dexopt.
Merge commit '
d53caae351e40f877a7bcf592a31594ac2be9691' into dalvik-dev
* commit '
d53caae351e40f877a7bcf592a31594ac2be9691':
Plumb SMP optimization control through to dexopt.
Andy McFadden [Wed, 29 Sep 2010 06:43:28 +0000 (23:43 -0700)]
am
481c2539: am
63114829: am
de9cdfa9: Fix verification of switch offsets in large methods.
Merge commit '
481c25391ef818539b2fbbe682dc873965af5306' into dalvik-dev
* commit '
481c25391ef818539b2fbbe682dc873965af5306':
Fix verification of switch offsets in large methods.
Carl Shapiro [Wed, 29 Sep 2010 03:30:42 +0000 (20:30 -0700)]
After trimming, set the footprint to the number of pages in use.
A trim can decrease the an mspace footprint but it will not decrease
its max footprint. We need to decrease the max footprint to make any
pages recovered by a trim available to external allocations.
By setting the ideal footprint after a trim we lift any soft limit in
effect and make the mspace footprint and max footprints equal.
Change-Id: Ia6eb99634ce1d732b417a90291b110d1fc46c2e3
Dan Bornstein [Wed, 29 Sep 2010 01:53:28 +0000 (18:53 -0700)]
Add --uniprocessor option to dex-preopt.
This tells the preoptimizer to target a uniprocessor (unsurprisingly).
By default, it targets SMP, which makes it do more changes than it has
to for a uniprocessor (e.g. editing how non-wide volatile fields are
accessed within bytecode). To be clear, when SMP-optimized code is run
on a uniprocessor, it should still work. We're just aiming to only
make truly necessary changes during optimization.
While I was in the territory, I went ahead and cleaned up some single
vs. double quote hygiene in the file.
Change-Id: Ia45992939a436d0be6db8363c43d430de4acb80b
Dan Bornstein [Wed, 29 Sep 2010 01:40:01 +0000 (18:40 -0700)]
am
b3a94965: am
148283d7: Plumb SMP optimization control through to dexopt.
Merge commit '
b3a949656a773953a44b148a6cdcba19f1c48e87'
* commit '
b3a949656a773953a44b148a6cdcba19f1c48e87':
Plumb SMP optimization control through to dexopt.
Dan Bornstein [Wed, 29 Sep 2010 01:37:39 +0000 (18:37 -0700)]
am
148283d7: Plumb SMP optimization control through to dexopt.
Merge commit '
148283d71a7e35b9b506cbb49294b6822719c25e' into gingerbread-plus-aosp
* commit '
148283d71a7e35b9b506cbb49294b6822719c25e':
Plumb SMP optimization control through to dexopt.
Andy McFadden [Wed, 29 Sep 2010 00:38:21 +0000 (17:38 -0700)]
am
63114829: am
de9cdfa9: Fix verification of switch offsets in large methods.
Merge commit '
63114829802ecdade4c95fe08a02acec67bd17bd'
* commit '
63114829802ecdade4c95fe08a02acec67bd17bd':
Fix verification of switch offsets in large methods.
buzbee [Tue, 28 Sep 2010 23:48:26 +0000 (16:48 -0700)]
resolved conflicts for merge of
453d1aed to dalvik-dev
Change-Id: Ief387b280581cf1f271c96eb5a2e67154b18db8d
Dan Bornstein [Tue, 28 Sep 2010 22:46:54 +0000 (15:46 -0700)]
Plumb SMP optimization control through to dexopt.
Change-Id: I3bfaf6723e7b14d001f9de60cc1c1fd4f8e1ed99
buzbee [Tue, 28 Sep 2010 22:22:48 +0000 (15:22 -0700)]
resolved conflicts for merge of
2e75e47d to master
Change-Id: I644b3cd50e3c63b209741c8b818b4c1435ee8218
Andy McFadden [Tue, 28 Sep 2010 22:15:04 +0000 (15:15 -0700)]
am
de9cdfa9: Fix verification of switch offsets in large methods.
Merge commit '
de9cdfa9d6d5fa5c46a0ec0f3f1e8de08a688841' into gingerbread-plus-aosp
* commit '
de9cdfa9d6d5fa5c46a0ec0f3f1e8de08a688841':
Fix verification of switch offsets in large methods.
Johnnie Birch [Tue, 28 Sep 2010 21:58:37 +0000 (14:58 -0700)]
Fixed bug in OP_GOTO_32.S, added support for additional parameters to dvmHandleStackOverflow
Change-Id: I4d8d75418395661ffc8e7055eeb4600bb5b8b0bc
Andy McFadden [Tue, 28 Sep 2010 21:43:28 +0000 (14:43 -0700)]
Fix verification of switch offsets in large methods.
The verifier was only using the low 16 bits when checking the offset
to a switch table. This was failing on really large methods.
We also blew up the arbitrary size cap again, so I made it a warning
rather than a failure (it really wasn't doing anybody any good).
Changed to width-specific types for the various offsets and sizes.
Bug
3044850.
(cherry-pick+squash from dalvik-dev)
Change-Id: Ic7ebb86728cb39151f617a3e69e1c1994e61b5d9
Johnnie Birch [Tue, 28 Sep 2010 21:39:15 +0000 (14:39 -0700)]
Update Call386ABI.S to support 16 byte alignment
Change-Id: I61125ffab37f728665a91907bb699a0568568418
Andy McFadden [Tue, 28 Sep 2010 21:37:31 +0000 (14:37 -0700)]
Blargh.
Somehow this didn't get written out. Goes with
https://android-git.corp.google.com/g/#change,70744
Change-Id: I6e5e0e189d6622c612d26a1b18899a7d9b006a4c
Andy McFadden [Tue, 28 Sep 2010 21:27:42 +0000 (14:27 -0700)]
Merge "Fix verification of switch offsets in large methods." into dalvik-dev
Carl Shapiro [Tue, 28 Sep 2010 21:19:44 +0000 (14:19 -0700)]
am
432e74e6: am
252dfcbb: am
b755f9a3: Do not grow if we are invoked for an external allocation.
Merge commit '
432e74e6edf67b9775d26e4811e700c4860a33a3' into dalvik-dev
* commit '
432e74e6edf67b9775d26e4811e700c4860a33a3':
Do not grow if we are invoked for an external allocation.
Andy McFadden [Tue, 28 Sep 2010 20:58:16 +0000 (13:58 -0700)]
Fix verification of switch offsets in large methods.
The verifier was only using the low 16 bits when checking the offset
to a switch table. This was failing on really large methods.
We also blew up the arbitrary size cap again, so I made it a warning
rather than a failure (it really wasn't doing anybody any good).
Changed to width-specific types for the various offsets and sizes.
Bug
3044850.
Change-Id: I42902218775a9f3c970d8a0db78c10b73153d100
Carl Shapiro [Tue, 28 Sep 2010 21:00:06 +0000 (14:00 -0700)]
am
252dfcbb: am
b755f9a3: Do not grow if we are invoked for an external allocation.
Merge commit '
252dfcbbc8ab27ba7f86908fbf8c13425d166a70'
* commit '
252dfcbbc8ab27ba7f86908fbf8c13425d166a70':
Do not grow if we are invoked for an external allocation.
buzbee [Tue, 28 Sep 2010 19:28:21 +0000 (12:28 -0700)]
am
b36ea791: Merge "Change GC card making to use object head, bug fix for volatile sput obj" into gingerbread
Merge commit '
b36ea7918612c81cb42ff2021443358a9f109a6d' into gingerbread-plus-aosp
* commit '
b36ea7918612c81cb42ff2021443358a9f109a6d':
Change GC card making to use object head, bug fix for volatile sput obj
buzbee [Tue, 28 Sep 2010 19:26:06 +0000 (12:26 -0700)]
Merge "Change GC card making to use object head, bug fix for volatile sput obj" into gingerbread
buzbee [Tue, 28 Sep 2010 19:25:28 +0000 (12:25 -0700)]
Merge "Change GC card making to use object head, bug fix for volatile sput obj" into dalvik-dev
Carl Shapiro [Tue, 28 Sep 2010 18:35:26 +0000 (11:35 -0700)]
am
b755f9a3: Do not grow if we are invoked for an external allocation.
Merge commit '
b755f9a3caeaf65e95480ac66c2c95553bf79389' into gingerbread-plus-aosp
* commit '
b755f9a3caeaf65e95480ac66c2c95553bf79389':
Do not grow if we are invoked for an external allocation.
Carl Shapiro [Tue, 28 Sep 2010 18:16:32 +0000 (11:16 -0700)]
am
acd34ff7: am
ee0a6abe: am
e8edf08f: Perform only one garbage collection before attempting a trim.
Merge commit '
acd34ff7aaca460279a00f88f930173d9962c656' into dalvik-dev
* commit '
acd34ff7aaca460279a00f88f930173d9962c656':
Perform only one garbage collection before attempting a trim.
Carl Shapiro [Tue, 28 Sep 2010 17:56:55 +0000 (10:56 -0700)]
am
ee0a6abe: am
e8edf08f: Perform only one garbage collection before attempting a trim.
Merge commit '
ee0a6abec5a36d52cf9ddc09278cf3af7fe17ea1'
* commit '
ee0a6abec5a36d52cf9ddc09278cf3af7fe17ea1':
Perform only one garbage collection before attempting a trim.
buzbee [Mon, 27 Sep 2010 18:30:22 +0000 (11:30 -0700)]
Change GC card making to use object head, bug fix for volatile sput obj
This CL changes the way we mark GC card to consistently use the object
head (previously, we marked somewhere in the object - often the head, but
not always). Also, previously a coding error caused us to skip the card
mark for OP_APUT_OBJECT_VOLATILES. Fixed here.
Change-Id: I133ef6395c51a0466c9708209b08e79c3083aff2
buzbee [Mon, 27 Sep 2010 18:30:22 +0000 (11:30 -0700)]
Change GC card making to use object head, bug fix for volatile sput obj
This CL changes the way we mark GC card to consistently use the object
head (previously, we marked somewhere in the object - often the head, but
not always). Also, previously a coding error caused us to skip the card
mark for OP_APUT_OBJECT_VOLATILES. Fixed here.
Change-Id: I53eb333b9bd0b770201af0dc617d9a8f38afa699
Carl Shapiro [Tue, 28 Sep 2010 04:27:18 +0000 (21:27 -0700)]
am
d3bf6c8d: am
ab7d3a27: am
812c1bed: Provide the required out parameter to the trim routine.
Merge commit '
d3bf6c8d0b53f830b852cd37f3b3bda22e18d3aa' into dalvik-dev
* commit '
d3bf6c8d0b53f830b852cd37f3b3bda22e18d3aa':
Provide the required out parameter to the trim routine.
Carl Shapiro [Tue, 28 Sep 2010 04:02:35 +0000 (21:02 -0700)]
am
ab7d3a27: am
812c1bed: Provide the required out parameter to the trim routine.
Merge commit '
ab7d3a27de4d9b1302640df5e1a42bd180259711'
* commit '
ab7d3a27de4d9b1302640df5e1a42bd180259711':
Provide the required out parameter to the trim routine.
Carl Shapiro [Tue, 28 Sep 2010 00:25:49 +0000 (17:25 -0700)]
Do not grow if we are invoked for an external allocation.
The garbage collection can elect to grow the size of an mspace if the
heap utilization is sufficiently large. This can remove pages from use
by the external allocation mechanism.
Change-Id: Ie2e9e3da9251068707a60a5835b50e485031578b
Carl Shapiro [Tue, 28 Sep 2010 02:47:16 +0000 (19:47 -0700)]
am
e8edf08f: Perform only one garbage collection before attempting a trim.
Merge commit '
e8edf08f04ecbe37f3e18a650a7c9002ceee4275' into gingerbread-plus-aosp
* commit '
e8edf08f04ecbe37f3e18a650a7c9002ceee4275':
Perform only one garbage collection before attempting a trim.
Carl Shapiro [Mon, 27 Sep 2010 23:55:21 +0000 (16:55 -0700)]
Perform only one garbage collection before attempting a trim.
Change-Id: Id7ea77fd8e6055a76a5f52bb96dd0544f88ce06b
Carl Shapiro [Mon, 27 Sep 2010 21:29:18 +0000 (14:29 -0700)]
am
812c1bed: Provide the required out parameter to the trim routine.
Merge commit '
812c1bed55e0ed9b092d320cb29d8adc17e5a10b' into gingerbread-plus-aosp
* commit '
812c1bed55e0ed9b092d320cb29d8adc17e5a10b':
Provide the required out parameter to the trim routine.
Carl Shapiro [Mon, 27 Sep 2010 21:10:10 +0000 (14:10 -0700)]
Provide the required out parameter to the trim routine.
Resolves http://b/issue?id=
3040192.
Change-Id: I886a2dc99956b06e953f03ac390865b118b634a3
Dan Bornstein [Sun, 26 Sep 2010 23:15:16 +0000 (16:15 -0700)]
am
5b37696b: am
41ad1bc3: am
85dc40d2: Take another tilt at the "--core-library" messaging windmill.
Merge commit '
5b37696b422dc64d4b391168f69226f0f8b7c88b' into dalvik-dev
* commit '
5b37696b422dc64d4b391168f69226f0f8b7c88b':
Take another tilt at the "--core-library" messaging windmill.
Dan Bornstein [Sun, 26 Sep 2010 23:04:51 +0000 (16:04 -0700)]
am
41ad1bc3: am
85dc40d2: Take another tilt at the "--core-library" messaging windmill.
Merge commit '
41ad1bc3aa0ca63d8d66a36f45b6f7b2261b40a7'
* commit '
41ad1bc3aa0ca63d8d66a36f45b6f7b2261b40a7':
Take another tilt at the "--core-library" messaging windmill.
Dan Bornstein [Sun, 26 Sep 2010 23:02:23 +0000 (16:02 -0700)]
am
85dc40d2: Take another tilt at the "--core-library" messaging windmill.
Merge commit '
85dc40d2a0cb19792bf3ee6f6c57fed08eb91ea4' into gingerbread-plus-aosp
* commit '
85dc40d2a0cb19792bf3ee6f6c57fed08eb91ea4':
Take another tilt at the "--core-library" messaging windmill.