OSDN Git Service

android-x86/dalvik.git
13 years agoFurther conservation of newlines.
Dan Bornstein [Thu, 26 May 2011 17:11:58 +0000 (10:11 -0700)]
Further conservation of newlines.

Friends don't let friends end LOG() strings with newlines.

Change-Id: I5a18c766c90c4ab5f03caa6acd601d34d91beb00

13 years agoOne more dex magic update.
Dan Bornstein [Thu, 26 May 2011 05:23:29 +0000 (22:23 -0700)]
One more dex magic update.

I missed the dexdeps tool in my earlier change. This fixes it
to recognize both supported dex version numbers.

Change-Id: Ia6a26539f2ab6369ecbf3697b01b7d62a1e836b8

13 years agoMerge "Conservation of newlines in libdex." into dalvik-dev
Dan Bornstein [Thu, 26 May 2011 05:10:37 +0000 (22:10 -0700)]
Merge "Conservation of newlines in libdex." into dalvik-dev

13 years agoam 90f276bc: Pack interpSave struct to fix x86 & Arm diffs
buzbee [Thu, 26 May 2011 01:16:51 +0000 (18:16 -0700)]
am 90f276bc: Pack interpSave struct to fix x86 & Arm diffs

* commit '90f276bc5b8e4eeda1c4a35b2a116cbf6593d95d':
  Pack interpSave struct to fix x86 & Arm diffs

13 years agoPack interpSave struct to fix x86 & Arm diffs
buzbee [Thu, 26 May 2011 00:53:00 +0000 (17:53 -0700)]
Pack interpSave struct to fix x86 & Arm diffs

On x86, the double in JValue forces 8-byte alignment, which causes
a problem for our asm-constants.  Pack it.

Change-Id: Ia53c3928a47a127fdfbb12a958111c475f83fbde

13 years agoMerge "Pack interpSave struct to fix x86 & arm align diff" into dalvik-dev
buzbee [Thu, 26 May 2011 00:40:37 +0000 (17:40 -0700)]
Merge "Pack interpSave struct to fix x86 & arm align diff" into dalvik-dev

13 years agoPack interpSave struct to fix x86 & arm align diff
buzbee [Thu, 26 May 2011 00:37:09 +0000 (17:37 -0700)]
Pack interpSave struct to fix x86 & arm align diff

On x86, the double in JValue forces 8-byte alignment, which causes
a problem for our asm-constants.  Pack it.

Change-Id: Ie9e8bef7bb1b0ae3a502bd6fe12e831092a38812

13 years agoMerge "Eliminate the dvmHeapSourceGetPtrFlag interface." into dalvik-dev
Carl Shapiro [Thu, 26 May 2011 00:17:54 +0000 (17:17 -0700)]
Merge "Eliminate the dvmHeapSourceGetPtrFlag interface." into dalvik-dev

13 years agoConservation of newlines in libdex.
Dan Bornstein [Wed, 25 May 2011 23:58:39 +0000 (16:58 -0700)]
Conservation of newlines in libdex.

The log facility adds newlines automatically, and the prevailing
convention is now to omit them.

Change-Id: I14762ea4a7c24eea333f778724a0e4b6b65bae2b

13 years agoMerge "Update dex file magic number." into dalvik-dev
Dan Bornstein [Wed, 25 May 2011 23:29:02 +0000 (16:29 -0700)]
Merge "Update dex file magic number." into dalvik-dev

13 years agoEliminate the dvmHeapSourceGetPtrFlag interface.
Carl Shapiro [Wed, 25 May 2011 23:26:25 +0000 (16:26 -0700)]
Eliminate the dvmHeapSourceGetPtrFlag interface.

This routine served answering questions about object addresses.  While
it was private to the garbage collector, its remaining use was inside
the heap profiler.  Within the heap profiler, a single path was
executed to tested a pointer for containment within the zygote.  In
its place, a new function, dvmIsZygoteObject, has been added to the GC
interface superseding the only use of dvmHeapSourceGetPtrFlag.

Change-Id: I347c9adb293bd6c196bbac3765015453133dc492

13 years agoUpdate dex file magic number.
Dan Bornstein [Wed, 25 May 2011 20:15:47 +0000 (13:15 -0700)]
Update dex file magic number.

Even though the dex format was technically resilient with respect to
the addition of new opcodes, consensus is that the errors one sees
when trying to use a new dex file on an old build were sufficiently
inscrutable that it was worth the effort to update the version number
embedded in the dex format magic.

This change updates dx to produce the new version number when extended
opcodes are enabled (which is the default, but may be overridden by
targeting an older API level).

This also updates the vm to recognize and accept both the new current
version number as well as the immediately previous one. Note: It won't
reject an old-version file if it happens to use the new opcodes; that
would just be a gratuitous and pointless failure.

Bug: 4364986
Change-Id: If8febbb0b91c1719df4247bf69c511251362d91f

13 years agoam cf4a20cf: Interpreter/Debugger fix #4479968
buzbee [Wed, 25 May 2011 23:00:22 +0000 (16:00 -0700)]
am cf4a20cf: Interpreter/Debugger fix #4479968

* commit 'cf4a20cf0cbc53f03a5b16c7152bbb29907f7108':
  Interpreter/Debugger fix #4479968

13 years agoInterpreter/Debugger fix #4479968
buzbee [Wed, 25 May 2011 21:21:14 +0000 (14:21 -0700)]
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

13 years agoam 9522632b: Merge "Support wrapping app processes to inject debug instrumentation...
Jeff Brown [Tue, 24 May 2011 22:08:58 +0000 (15:08 -0700)]
am 9522632b: Merge "Support wrapping app processes to inject debug instrumentation. Bug: 4437846"

* commit '9522632b57b4df3249e4ee5fee3c1cfec8440e57':
  Support wrapping app processes to inject debug instrumentation. Bug: 4437846

13 years agoMerge "Support wrapping app processes to inject debug instrumentation. Bug: 4437846"
Jeff Brown [Tue, 24 May 2011 21:26:29 +0000 (14:26 -0700)]
Merge "Support wrapping app processes to inject debug instrumentation. Bug: 4437846"

13 years agoMerge "Minor documentation changes." into dalvik-dev
Elliott Hughes [Mon, 23 May 2011 23:43:01 +0000 (16:43 -0700)]
Merge "Minor documentation changes." into dalvik-dev

13 years agoMinor documentation changes.
Elliott Hughes [Mon, 23 May 2011 23:37:23 +0000 (16:37 -0700)]
Minor documentation changes.

Change-Id: I487f915a55158e59533cd70cb030f127979864a8

13 years agoam 97b22b8d: Fix alt handling for Jumbo ops
buzbee [Mon, 23 May 2011 19:01:53 +0000 (12:01 -0700)]
am 97b22b8d: Fix alt handling for Jumbo ops

* commit '97b22b8d41742fa84812f46d1125e9735420782a':
  Fix alt handling for Jumbo ops

13 years agoFix alt handling for Jumbo ops
buzbee [Mon, 23 May 2011 17:59:33 +0000 (10:59 -0700)]
Fix alt handling for Jumbo ops

The mterp alt mechanism allows us to break out of the fast
interpreter loop to handle debugging, JIT trace selection and
other non-standard behavior.  It does this by replacing the
base pointer to the instruction handlers with an alternate
base that references a set of dummy handlers that first call
out the dvmCheckBefore() to handle special actions before
routing control to the real handlers.

This mechanism was slightly broken for the Jumbo ops - which
have a first opcode byte of 0xFF (Dispatch), followed by the
Jumbo opcode byte.  In short, when the altHandlerBase was active
dvmCheckBefore() was getting called for both the dispatch opcode
byte and the Jumbo byte.

This change adds special ALT_OP_DISPATCH_FF handlers which skip
the dvmCheckBefore() call.

Change-Id: If57c298a33404cdaca7456bc8fe1159c70240bea

13 years agoSupport wrapping app processes to inject debug instrumentation.
Jeff Brown [Tue, 17 May 2011 00:05:02 +0000 (17:05 -0700)]
Support wrapping app processes to inject debug instrumentation.
Bug: 4437846

Change-Id: I0de4dbf4d3a9239aedf6b52610bfe0f81f3b5b95

13 years agoMerge "Address CVE-2011-1090." into dalvik-dev
Dan Bornstein [Tue, 17 May 2011 18:10:10 +0000 (11:10 -0700)]
Merge "Address CVE-2011-1090." into dalvik-dev

13 years agoAddress CVE-2011-1090.
Dan Bornstein [Fri, 13 May 2011 20:55:32 +0000 (13:55 -0700)]
Address CVE-2011-1090.

This adds a credentials check after connecting to the (alleged)
ADB control socket, to make sure that the other side really is
the system and not a malicious non-system process.

Since I was in the territory, I also did some minor comment
cleanup / correction (at the top of the file).

This change relies on a related change in system/core.

Change-Id: Iecbc4383cf285444f9d5a0414986951593777fa3

13 years agoDump the pending exception before aborting in FindClass.
Elliott Hughes [Fri, 13 May 2011 23:01:25 +0000 (16:01 -0700)]
Dump the pending exception before aborting in FindClass.

CheckJNI already does this, but since we're about to abort, we should do this
even without CheckJNI.

Bug: http://code.google.com/p/android/issues/detail?id=16758
Change-Id: Ief5e8d836ad16d342eead8db9e44ae5af7983c3a

13 years agoImprove diagnostics when an invalid reference is given to Get/Set*Field functions.
Elliott Hughes [Thu, 12 May 2011 19:17:00 +0000 (12:17 -0700)]
Improve diagnostics when an invalid reference is given to Get/Set*Field functions.

It may be worth treating NULL as a special case of "invalid" for an even
clearer diagnostic, but this is a huge leap forward from just crashing inside
CheckJNI:

    W( 4443) JNI ERROR: field operation on invalid reference ((nil))  (dalvikvm)
    E( 4443) VM aborting  (dalvikvm)

Change-Id: Ied7090a57becb10ca7c8cb4be56cd7c1f109add5

13 years agoam fe108f77: Fix a Thumb vs Thumb2 codegen bug.
Ben Cheng [Thu, 12 May 2011 06:25:53 +0000 (23:25 -0700)]
am fe108f77: Fix a Thumb vs Thumb2 codegen bug.

* commit 'fe108f779db4fb3bc720a92e69e58177983088c1':
  Fix a Thumb vs Thumb2 codegen bug.

13 years agoFix a comment and remove some horizontal white space.
Carl Shapiro [Thu, 12 May 2011 01:08:21 +0000 (18:08 -0700)]
Fix a comment and remove some horizontal white space.

Change-Id: Id0a9c4f8ee073e8260571a0f48605ae1f9b04219

13 years agoVarious code clean-ups.
Carl Shapiro [Thu, 12 May 2011 01:28:01 +0000 (18:28 -0700)]
Various code clean-ups.

* Combine definitions with initialization.  This had to be foregone in
  two instances where that would have otherwise caused an unused variable
  warning.

* Move the HS_BOILERPLATE macro to the top of the calling function.  This
  macro checks that certain globals are initialized.  It should be removed
  after the callers become members functions of a class.

* A few cases of inconsistent function declaration styles have been brought
  in line with the rest of the file.  These were overlooked in a previous
  clean-up.

* The unused heap source debugging macros and tracing code have been
  removed.

* One stale comments has been removed and another has been updated.

Change-Id: I20bf4b78161096310b79d7dd294d7636e6bb6f48

13 years agoFix a Thumb vs Thumb2 codegen bug.
Ben Cheng [Wed, 11 May 2011 23:55:48 +0000 (16:55 -0700)]
Fix a Thumb vs Thumb2 codegen bug.

A Thumb2 pc-relative load is slipped into the codegen stream even though
the selected platform is armv5te (eg the emulator).

Bug: 4399358
Change-Id: I61dd6853cad6c82de43f384814c903dd9f3ae302

13 years agoMerge "Normalize declaration style." into dalvik-dev
Carl Shapiro [Wed, 11 May 2011 20:38:44 +0000 (13:38 -0700)]
Merge "Normalize declaration style." into dalvik-dev

13 years agoNormalize declaration style.
Carl Shapiro [Wed, 11 May 2011 20:15:32 +0000 (13:15 -0700)]
Normalize declaration style.

Change-Id: Iae4e3d22bc185060b3a0b4c080eafaa2ec824ac2

13 years agoRemove dead code.
Carl Shapiro [Wed, 11 May 2011 20:00:41 +0000 (13:00 -0700)]
Remove dead code.

Change-Id: I3093925668eef9a839fc9fc490fc8260c001b777

13 years agoam 313d430d: Another single-stepping fix in JIT self-verification mode.
Ben Cheng [Wed, 11 May 2011 19:03:31 +0000 (12:03 -0700)]
am 313d430d: Another single-stepping fix in JIT self-verification mode.

* commit '313d430d5b3b96b45370ccddee52a6d88a799f35':
  Another single-stepping fix in JIT self-verification mode.

13 years agoAnother single-stepping fix in JIT self-verification mode.
Ben Cheng [Wed, 11 May 2011 17:58:52 +0000 (10:58 -0700)]
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

13 years agoExplicitly initialize a condition variable in the VM globals.
Carl Shapiro [Tue, 10 May 2011 23:42:41 +0000 (16:42 -0700)]
Explicitly initialize a condition variable in the VM globals.

Change-Id: I3192d957ebace59a3b8f8330591f05d403280d1f

13 years agoMerge "Remove an invalid assertion." into dalvik-dev
Carl Shapiro [Tue, 10 May 2011 19:22:32 +0000 (12:22 -0700)]
Merge "Remove an invalid assertion." into dalvik-dev

13 years agoMerge "Fixes to allow the debug VM configuration to build." into dalvik-dev
Carl Shapiro [Tue, 10 May 2011 19:21:54 +0000 (12:21 -0700)]
Merge "Fixes to allow the debug VM configuration to build." into dalvik-dev

13 years agoam e346f7d8: Fix a couple debugging issues involving JIT single-stepping mode.
Ben Cheng [Tue, 10 May 2011 17:42:44 +0000 (10:42 -0700)]
am e346f7d8: Fix a couple debugging issues involving JIT single-stepping mode.

* commit 'e346f7d8f0a79f5fc53fd02c288cb7c12e23b40a':
  Fix a couple debugging issues involving JIT single-stepping mode.

13 years agoFix a couple debugging issues involving JIT single-stepping mode.
Ben Cheng [Mon, 9 May 2011 23:34:45 +0000 (16:34 -0700)]
Fix a couple debugging issues involving JIT single-stepping mode.

1) Declare the jitop mask array using a defined length.
2) Fix a spurious divergence when the first instruction in the trace is
single-stepped.

Change-Id: Ic7925acbda70ddd5591a4bb51d42a74d027674e5

13 years agoRemove an invalid assertion.
Carl Shapiro [Tue, 10 May 2011 07:50:35 +0000 (00:50 -0700)]
Remove an invalid assertion.

There are three situtations where insertions are performed into one of
the intern tables.  Two cases perform an insertion when an key value
pair is known to be absent.  One case performs an insert when a key
value pair might be present.  An assertion was added that errantly
checked that an insertion occured in the might be present case.  This
change leaves an assert in place for the absent cases and removes the
assert in the might be present case.

In addition, a comment has been improved to reinforce the condition of
the might be present insertion.

Change-Id: I84a9090a9ca338e164898e1d6893b2a23d74f5bc

13 years agoFixes to allow the debug VM configuration to build.
Carl Shapiro [Tue, 10 May 2011 07:07:23 +0000 (00:07 -0700)]
Fixes to allow the debug VM configuration to build.

Change-Id: Ifbe6acf84beb75014303152d20153072e7e50c55

13 years agoRemove dead code and a stale comment.
Carl Shapiro [Sat, 7 May 2011 01:27:32 +0000 (18:27 -0700)]
Remove dead code and a stale comment.

Change-Id: I0e6f01def84d8d1b03e8c67c5dc5cebb8f7c7f31

13 years agoEstablish a subclass relationships among the field types.
Carl Shapiro [Sat, 7 May 2011 00:02:43 +0000 (17:02 -0700)]
Establish a subclass relationships among the field types.

Change-Id: Id349b359489bb6b1bbb4ab78d29d85c0e6b33799

13 years agoEstablish a subclass relationship between ClassObject and Object.
Carl Shapiro [Fri, 6 May 2011 21:57:43 +0000 (14:57 -0700)]
Establish a subclass relationship between ClassObject and Object.

Change-Id: I9fb5d33f23ec7aeb2b9a3908d4125b34be0599ae

13 years agoMake interned strings non-movable.
Carl Shapiro [Thu, 5 May 2011 23:01:26 +0000 (16:01 -0700)]
Make interned strings non-movable.

At present objects referenced from dex files must have stable reference
values.  With this change, only non-moving strings are interned.  If a
user interns a movable string a non-moving copy is made and the copy is
added to the intern table.

As part of this change, the internal string hash code access routine will
update the hash code slot of a string object.  In addition, StringObject
has been made a subclass of Object eliminating various down-casts that
would otherwise be explicitly required.

Change-Id: I6b015b972aac44948470c0034ad17e5eef456aeb

13 years agoFix Mac build by restoring old conditional endian handling removed in ae188c676c681e4...
Brian Carlstrom [Thu, 5 May 2011 22:26:41 +0000 (15:26 -0700)]
Fix Mac build by restoring old conditional endian handling removed in ae188c676c681e47a93ade7fdf0144099b470e03

Change-Id: I64d024cc36a1530ba34579a45688969d18a4a9e5

13 years agoMerge remote branch 'goog/dalvik-dev' into dalvik-dev-to-master
Brian Carlstrom [Thu, 5 May 2011 07:01:58 +0000 (00:01 -0700)]
Merge remote branch 'goog/dalvik-dev' into dalvik-dev-to-master

Change-Id: I99c4289bd34f63b0b970b6ed0fa992b44e805393

13 years agoMerge "Use 'dalvikvm' only to test dx." into dalvik-dev
Jesse Wilson [Wed, 4 May 2011 22:34:36 +0000 (15:34 -0700)]
Merge "Use 'dalvikvm' only to test dx." into dalvik-dev

13 years agoEstablish a subclass relationship between ArrayObject and Object.
Carl Shapiro [Wed, 4 May 2011 00:59:35 +0000 (17:59 -0700)]
Establish a subclass relationship between ArrayObject and Object.

Change-Id: I9f9fe52bd4ceebb6dde48251a89190ba6bb00ce4

13 years agoam 00ceb87d: Fix for double breakpoint (issue 4378296)
buzbee [Tue, 3 May 2011 21:59:21 +0000 (14:59 -0700)]
am 00ceb87d: Fix for double breakpoint (issue 4378296)

* commit '00ceb87d1c57ccee59966be4deef1292a049285c':
  Fix for double breakpoint (issue 4378296)

13 years agoFix for double breakpoint (issue 4378296)
buzbee [Tue, 3 May 2011 19:55:14 +0000 (12:55 -0700)]
Fix for double breakpoint (issue 4378296)

Breakpoints are given special handling in the interpreter.  They
are first interpreted as a breakpoint (with notification to the
debugger), and then the actual instruction associated with the
breakpoint location is interpreted.

The bug here was that the "dvmCheckBefore()" handler was invoked
prior to both "interpretations" - rather than just the first.
Note that this defect appears only in the Arm mterp, the portable
interpreter and x86 mterp did the right thing.

Change-Id: Ied957edc0c248b5d4d94910beb7af6c03ffe885d

13 years agoEstablish a subclass relationship between DataObject and Object.
Carl Shapiro [Tue, 3 May 2011 03:01:42 +0000 (20:01 -0700)]
Establish a subclass relationship between DataObject and Object.

Change-Id: Ifd0e364f7789d9e13f769f8d6a65c3c573915fd3

13 years agoMerge "Add a cast required for assigning a ClassObject* to and Object*." into dalvik-dev
Carl Shapiro [Mon, 2 May 2011 23:49:18 +0000 (16:49 -0700)]
Merge "Add a cast required for assigning a ClassObject* to and Object*." into dalvik-dev

13 years agoAdd a cast required for assigning a ClassObject* to and Object*.
Carl Shapiro [Mon, 2 May 2011 23:38:40 +0000 (16:38 -0700)]
Add a cast required for assigning a ClassObject* to and Object*.

Change-Id: Iab995725ad5a97e0dc0a76de571cfe34bbd057c8

13 years agoMerge "x86 interpreter fix" into dalvik-dev
buzbee [Mon, 2 May 2011 23:13:44 +0000 (16:13 -0700)]
Merge "x86 interpreter fix" into dalvik-dev

13 years agox86 interpreter fix
buzbee [Mon, 2 May 2011 23:06:04 +0000 (16:06 -0700)]
x86 interpreter fix

Correct the ordering of FP save prior to special subMode handling.
Also added a stress test mode to help catch this sort of problem in
the future.

Change-Id: I5bcd325858fa63023498bfd47e910aaf1530d6bb

13 years agoMerge "Type the reference member of JValue as an Object pointer." into dalvik-dev
Carl Shapiro [Mon, 2 May 2011 22:59:04 +0000 (15:59 -0700)]
Merge "Type the reference member of JValue as an Object pointer." into dalvik-dev

13 years agoam 7b609f05: Remove javax.net.ssl.trustStore from dalvik script
Brian Carlstrom [Mon, 2 May 2011 19:19:57 +0000 (12:19 -0700)]
am 7b609f05: Remove javax.net.ssl.trustStore from dalvik script

* commit '7b609f056c6ac8727c4c91f3f6a4c03bd3c3ecd9':
  Remove javax.net.ssl.trustStore from dalvik script

13 years agoRemove javax.net.ssl.trustStore from dalvik script
Brian Carlstrom [Mon, 2 May 2011 04:03:33 +0000 (21:03 -0700)]
Remove javax.net.ssl.trustStore from dalvik script

Change-Id: Ia1cfc2f066a965f659b3a46d655b78232e5bba2b

13 years agoType the reference member of JValue as an Object pointer.
Carl Shapiro [Sat, 30 Apr 2011 02:19:46 +0000 (19:19 -0700)]
Type the reference member of JValue as an Object pointer.

Previously this had been a void pointer.  To avoid adding lots of
casts from the logical Object subtypes to Object the RETURN_PTR macro
silently casts its argument to an Object* before performing an
assignment to the JValue return value.  After an inheritance
relationship is established between Object and its subtypes this cast
can be removed.

Change-Id: Id05e5c11e57e2a9afd12bad0be095f1dfe9e1f51

13 years agoam 933b86e6: Bugfix for constant propagation of float/double division/modulo.
jeffhao [Fri, 29 Apr 2011 23:23:34 +0000 (16:23 -0700)]
am 933b86e6: Bugfix for constant propagation of float/double division/modulo.

* commit '933b86e6be8ca494426abf2bacf14cd15aa3a873':
  Bugfix for constant propagation of float/double division/modulo.

13 years agoBugfix for constant propagation of float/double division/modulo.
jeffhao [Fri, 29 Apr 2011 01:14:40 +0000 (18:14 -0700)]
Bugfix for constant propagation of float/double division/modulo.

Change-Id: Ifde0d0b07b35e1357ba403b3fad9ace567fff01e

13 years agoMerge "Bugfix for constant propagation of float/double division/modulo." into dalvik-dev
jeffhao [Fri, 29 Apr 2011 21:07:34 +0000 (14:07 -0700)]
Merge "Bugfix for constant propagation of float/double division/modulo." into dalvik-dev

13 years agoBugfix for constant propagation of float/double division/modulo.
jeffhao [Fri, 29 Apr 2011 01:14:40 +0000 (18:14 -0700)]
Bugfix for constant propagation of float/double division/modulo.

Change-Id: I2887749d9aa7739e79e4aac976957f5a422d2217

13 years agoMerge "Enhance FindUsages to treat its strings as regular expressions." into dalvik-dev
Elliott Hughes [Fri, 29 Apr 2011 01:51:14 +0000 (18:51 -0700)]
Merge "Enhance FindUsages to treat its strings as regular expressions." into dalvik-dev

13 years agoEnhance FindUsages to treat its strings as regular expressions.
Elliott Hughes [Fri, 29 Apr 2011 01:44:36 +0000 (18:44 -0700)]
Enhance FindUsages to treat its strings as regular expressions.

So we can look for, say, 'Ljava/nio/(Char|Short)Buffer;' 'allocate(Direct)?'.

Change-Id: Ia17daa67c3d6ca5e7831bd8448a21251861a834e

13 years agoMerge "Refactor the garbage collection class initialization." into dalvik-dev
Carl Shapiro [Thu, 28 Apr 2011 20:01:54 +0000 (13:01 -0700)]
Merge "Refactor the garbage collection class initialization." into dalvik-dev

13 years agoMerge "Add a non-moving option to dvmMalloc and make use of it." into dalvik-dev
Carl Shapiro [Thu, 28 Apr 2011 20:01:41 +0000 (13:01 -0700)]
Merge "Add a non-moving option to dvmMalloc and make use of it." into dalvik-dev

13 years agoGet rid of uneeded extern, enum, typedef and struct qualifiers.
Carl Shapiro [Thu, 28 Apr 2011 06:00:01 +0000 (23:00 -0700)]
Get rid of uneeded extern, enum, typedef and struct qualifiers.

Change-Id: I236c5a1553a51f82c9bc3eaaab042046c854d3b4

13 years agoAdd a non-moving option to dvmMalloc and make use of it.
Carl Shapiro [Thu, 28 Apr 2011 02:14:33 +0000 (19:14 -0700)]
Add a non-moving option to dvmMalloc and make use of it.

At present, class objects, non-moving arrays, and interned strings have
location dependencies in native code.  Allocating non-moving is a no-op
for the present heap, but this option will have an effect after the
copying collector is integrated.

Change-Id: I674f83a086ac65db303baab0599831f80f52a4a5

13 years agoRefactor the garbage collection class initialization.
Carl Shapiro [Thu, 28 Apr 2011 01:41:16 +0000 (18:41 -0700)]
Refactor the garbage collection class initialization.

Change-Id: I977ee5045010a846098944d3e8048893ac550533

13 years agoNormalize some enumerations.
Carl Shapiro [Thu, 28 Apr 2011 01:21:04 +0000 (18:21 -0700)]
Normalize some enumerations.

This change pulls a few enumeration types to the top of their header
file alongside other types.  It also eliminates the use of the now
redundant enum qualifier.

Change-Id: I6f853bed09176cde9a83faccea7a76f595f60f2b

13 years agoEliminate the PROFILE_FIELD_ACCESS feature.
Carl Shapiro [Wed, 27 Apr 2011 22:43:11 +0000 (15:43 -0700)]
Eliminate the PROFILE_FIELD_ACCESS feature.

Change-Id: I27bf2d18c4c0735913ea8698825b05e393b046b2

13 years agoUse C++ linkage in GC headers and remove unneeded typedefs.
Carl Shapiro [Wed, 27 Apr 2011 21:44:47 +0000 (14:44 -0700)]
Use C++ linkage in GC headers and remove unneeded typedefs.

Some interfaces in Alloc.h had to be left with C linkage as they are
referenced by the interpreter assembler code.  That dependency will be
addressed in a future commit.

Change-Id: I6b2097a2139ddf6b4b13e592710e241442e08488

13 years agoMerge "Make libdex structures tool friendly." into dalvik-dev
Carl Shapiro [Wed, 27 Apr 2011 21:17:11 +0000 (14:17 -0700)]
Merge "Make libdex structures tool friendly." into dalvik-dev

13 years agoMake libdex structures tool friendly.
Carl Shapiro [Wed, 27 Apr 2011 21:16:08 +0000 (14:16 -0700)]
Make libdex structures tool friendly.

Previously, the struct name and its typedef name were identical.  This
confuses emacs and etags.  This change eliminates the typedef names and
removes the extern "C" wrapping the libdex header files.  To support
this change the transitive C dependencies have been made to compile as
C++ instead.

Change-Id: I7065f32d61d776f9b09c7b461adf2502268d852f

13 years agoRemove the old forcecopy in favor of the new.
Elliott Hughes [Wed, 27 Apr 2011 19:23:43 +0000 (12:23 -0700)]
Remove the old forcecopy in favor of the new.

Also remove some more half-baked multi-VM cruft, fix command-line
parsing (so -Xforcecopy-fuck-yeah won't work any more), and remove
an unused #define.

Bug: 3412449
Change-Id: If914e23dd3bbcf0ac113a445777e0f550ca05703

13 years agoMerge "Add -Xjniopts:forcecopy-unmap to catch more errors than forcecopy." into dalvi...
Elliott Hughes [Wed, 27 Apr 2011 18:39:58 +0000 (11:39 -0700)]
Merge "Add -Xjniopts:forcecopy-unmap to catch more errors than forcecopy." into dalvik-dev

13 years agoAdd -Xjniopts:forcecopy-unmap to catch more errors than forcecopy.
Elliott Hughes [Wed, 27 Apr 2011 01:32:17 +0000 (18:32 -0700)]
Add -Xjniopts:forcecopy-unmap to catch more errors than forcecopy.

In particular, this spots the BreakIterator bug that forcecopy didn't.
It's about 2x slower than regular forcecopy mode, so I've added a new
option rather than just replace the fast-but-less-effective forcecopy.

Bug: 3412449
Change-Id: I1f226ceeab2508dff607ba25b0afee51cf9c3f83

13 years agoam de9e2b90: Bug fixes for ld/st elimination.
Ben Cheng [Tue, 26 Apr 2011 17:42:39 +0000 (10:42 -0700)]
am de9e2b90: Bug fixes for ld/st elimination.

* commit 'de9e2b90c156664a1bdc2b5c9911e4dfa527c148':
  Bug fixes for ld/st elimination.

13 years agoBug fixes for ld/st elimination.
Ben Cheng [Tue, 26 Apr 2011 17:00:22 +0000 (10:00 -0700)]
Bug fixes for ld/st elimination.

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: I8eecd13eeb30e4a67ecf1f8fbad925b1e6e91fc8

13 years agoam 98bfc3b7: Bug fix for SCCP improperly handling phis with some constant sources.
jeffhao [Tue, 26 Apr 2011 07:42:10 +0000 (00:42 -0700)]
am 98bfc3b7: Bug fix for SCCP improperly handling phis with some constant sources.

* commit '98bfc3b7162417dc1816a75dc566de3572a7e5da':
  Bug fix for SCCP improperly handling phis with some constant sources.

13 years agoBug fix for SCCP improperly handling phis with some constant sources.
jeffhao [Mon, 25 Apr 2011 22:15:08 +0000 (15:15 -0700)]
Bug fix for SCCP improperly handling phis with some constant sources.

Change-Id: Ib6e2ab17b50c90d7d83658c69dfba1d065a42155

13 years agoBug fix for SCCP improperly handling phis with some constant sources.
jeffhao [Mon, 25 Apr 2011 22:15:08 +0000 (15:15 -0700)]
Bug fix for SCCP improperly handling phis with some constant sources.

Change-Id: Ifa9424f822aac1e88267e02696b7ff0c18227dd0

13 years agoRefine & simplify the interBreak mechanism
buzbee [Mon, 25 Apr 2011 18:23:46 +0000 (11:23 -0700)]
Refine & simplify the interBreak mechanism

Replace dvmUpdateInterpBreak() and friends with more direct
enable/disable subMode calls.  Hide breakFlags manipulation from
higher-level callers and infer what is needed from the active
subMode.

Add documentation to the interpreter control section of
mterp/README.txt

Change-Id: If7ebee5d8e4db8154c4caed72cf89ec088045998

13 years agoMerge "Move JNIHelp's implementation to C++." into dalvik-dev
Elliott Hughes [Mon, 25 Apr 2011 17:37:13 +0000 (10:37 -0700)]
Merge "Move JNIHelp's implementation to C++." into dalvik-dev

13 years agoMove JNIHelp's implementation to C++.
Elliott Hughes [Sat, 23 Apr 2011 02:22:54 +0000 (19:22 -0700)]
Move JNIHelp's implementation to C++.

Ouch.

Change-Id: I81c0457a95549f1bef7cc8d9ab23d6ca4475cdb5

13 years agoLocal optimization fixes for diverences found by self verification.
Ben Cheng [Sat, 23 Apr 2011 00:16:42 +0000 (17:16 -0700)]
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

13 years agoFix a buffer overrun in jniLogException.
Elliott Hughes [Sat, 23 Apr 2011 00:42:05 +0000 (17:42 -0700)]
Fix a buffer overrun in jniLogException.

...by not having a fixed-length buffer at all. What are we, C programmmers?

Bug: 4330470
Change-Id: I1b514ffc08abb1a5b1681e7d655800b3a5539093

13 years agoInterpBreak cleanup (part 1)
buzbee [Fri, 22 Apr 2011 22:12:40 +0000 (15:12 -0700)]
InterpBreak cleanup (part 1)

Moved the suspend count variables from the interpBreak structure.  These
are already protected by a mutex, and we need the space in interpBreak
for additional subMode flags.  This CL just does the move and expands
the width of subMode to 16-bits.

Change-Id: I4a6070b1ba4fb08a0f6e0aba6f150b30f9159eed

13 years agoConsolidate curFrame fields in thread storage
buzbee [Fri, 22 Apr 2011 17:27:14 +0000 (10:27 -0700)]
Consolidate curFrame fields in thread storage

We ended up with two locations in the Thread structure for saved
Dalvik frame pointer.  This change consolidates them.

Change-Id: I78f288e4e57e232f29663be930101e775bfe370f

13 years agoam 381333db: Fix self-verification with backward branches or invokes.
Ben Cheng [Fri, 22 Apr 2011 17:24:18 +0000 (10:24 -0700)]
am 381333db: Fix self-verification with backward branches or invokes.

* commit '381333db555c2fcc12d63116b87ae39d2c0ed910':
  Fix self-verification with backward branches or invokes.

13 years agoam 9f54185b: Set "needFallThroughBranch" flag during block split.
Ben Cheng [Fri, 22 Apr 2011 17:22:20 +0000 (10:22 -0700)]
am 9f54185b: Set "needFallThroughBranch" flag during block split.

* commit '9f54185b4186def90351903bb2e97090e06ab559':
  Set "needFallThroughBranch" flag during block split.

13 years agoFix self-verification with backward branches or invokes.
Ben Cheng [Thu, 14 Apr 2011 00:08:29 +0000 (17:08 -0700)]
Fix self-verification with backward branches or invokes.

Bug: 4282508
Change-Id: Iae9d33fd3dc97e88a465fa3128f5108c877470e9

13 years agoSet "needFallThroughBranch" flag during block split.
Ben Cheng [Fri, 22 Apr 2011 06:09:39 +0000 (23:09 -0700)]
Set "needFallThroughBranch" flag during block split.

Bonus changes:
* Add a undefined Thumb instruction between the last code block and the
  beginning of PC reconstruction cell to capture such codegen problem on
  the spot.
* Fix a loop formation problem to exclude nested loops.

Bug: 4320840
Change-Id: I49d3fbba0073d8c2d4a0b241258239cb952c6bdd

13 years agoMerge "Combine CstUtf8 and CstString." into dalvik-dev
Jesse Wilson [Fri, 22 Apr 2011 00:53:48 +0000 (17:53 -0700)]
Merge "Combine CstUtf8 and CstString." into dalvik-dev

13 years agoCombine CstUtf8 and CstString.
Jesse Wilson [Wed, 13 Apr 2011 16:27:11 +0000 (09:27 -0700)]
Combine CstUtf8 and CstString.

The only benefit we were seeing is that one wrapped its toHuman
in quotes, the other didn't.

It was far too easy to use the wrong one. We had code defending
against that in NameValuePair and CstArray.

Change-Id: Ib2e6a1596b97decced37952d46e1831b7bcd0d5d

13 years agoMerge "Fix -Xjniopts:forcecopy, which I broke." into dalvik-dev
Elliott Hughes [Thu, 21 Apr 2011 23:39:38 +0000 (16:39 -0700)]
Merge "Fix -Xjniopts:forcecopy, which I broke." into dalvik-dev

13 years agoFix -Xjniopts:forcecopy, which I broke.
Elliott Hughes [Thu, 21 Apr 2011 23:37:16 +0000 (16:37 -0700)]
Fix -Xjniopts:forcecopy, which I broke.

"create"/"destroy" is the natural pair, and prevents us accidentally
recursing when we actually meant to call ::free instead.

Change-Id: Ice65034f3a48b6d6f96c3b0adb0c0ffbd2f41463

13 years agoam 90232632: Kill stale assert, fix for 4310384
buzbee [Thu, 21 Apr 2011 20:45:56 +0000 (13:45 -0700)]
am 90232632: Kill stale assert, fix for 4310384

* commit '902326326616642ae5ad0dd3c493a9e3abcd55da':
  Kill stale assert, fix for 4310384