OSDN Git Service

android-x86/dalvik.git
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

13 years agoKill stale assert, fix for 4310384
buzbee [Thu, 21 Apr 2011 18:19:27 +0000 (11:19 -0700)]
Kill stale assert, fix for 4310384

There was an old assert in dvmPopFrame that did a sanity check on
the JNI local reference table it was popping.  In the asserting case,
we had internal native method calls and no JNI - and thus no sane
local reference table.  Further, the localRefTable code has changed enough
that this particular sanity check is no longer useful.  Assert deleted,
along with another related (and previously-commented out) assert.

Change-Id: I3a806838fa2b5909c3e3b3ad27aeed29e3e467ab

13 years agoRemove DVM_LOCK_INIT and DVM_LOCK_INITIAL_THIN_VALUE.
Carl Shapiro [Thu, 21 Apr 2011 01:07:44 +0000 (18:07 -0700)]
Remove DVM_LOCK_INIT and DVM_LOCK_INITIAL_THIN_VALUE.

The original implementation for thin locks used a magic non-zero value
to encode the initial thin lock state.  This magic value was kept
around in DVM_LOCK_INITIAL_THIN_VALUE and stored into the lock word of
newly allocated objects.  A later revision to the thin locking code
made the initial thin lock value be 0.  That change eliminated the
requirement that lock words be explicitly initialized as the allocator
always returns zero-filled memory.

Change-Id: I34e0b43b4c4db0f45cf7cf524e15d4a6096c1365

13 years agoMerge "Remove unneeded void argument list declarations." into dalvik-dev
Carl Shapiro [Thu, 21 Apr 2011 00:30:50 +0000 (17:30 -0700)]
Merge "Remove unneeded void argument list declarations." into dalvik-dev

13 years agoRemove unneeded void argument list declarations.
Carl Shapiro [Wed, 20 Apr 2011 23:51:38 +0000 (16:51 -0700)]
Remove unneeded void argument list declarations.

Change-Id: Ica749f6defa890363ec531b29e25bc415dc2cbb9

13 years agoMove the interpreter into C++.
Carl Shapiro [Wed, 20 Apr 2011 23:12:46 +0000 (16:12 -0700)]
Move the interpreter into C++.

Change-Id: I4b7d6ed9c54dbf3244304a7ea0f13e6c37cca2aa

13 years agoMerge "Move the compiler into C++." into dalvik-dev
Carl Shapiro [Wed, 20 Apr 2011 20:23:36 +0000 (13:23 -0700)]
Merge "Move the compiler into C++." into dalvik-dev

13 years agoam 4dd60e2c: am 6892cab9: am e4195e1c: Fix a type error in the allocation of non...
Carl Shapiro [Wed, 20 Apr 2011 15:47:15 +0000 (08:47 -0700)]
am 4dd60e2c: am 6892cab9: am e4195e1c: Fix a type error in the allocation of non-moving arrays.

* commit '4dd60e2c7f9551a3d027fefd2cac5eb3dce9f844':
  Fix a type error in the allocation of non-moving arrays.

13 years agoam 6892cab9: am e4195e1c: Fix a type error in the allocation of non-moving arrays.
Carl Shapiro [Wed, 20 Apr 2011 15:24:59 +0000 (08:24 -0700)]
am 6892cab9: am e4195e1c: Fix a type error in the allocation of non-moving arrays.

* commit '6892cab90362639344373ce6d71c8fdd9903ae22':
  Fix a type error in the allocation of non-moving arrays.

13 years agoam e4195e1c: Fix a type error in the allocation of non-moving arrays.
Carl Shapiro [Wed, 20 Apr 2011 14:46:59 +0000 (07:46 -0700)]
am e4195e1c: Fix a type error in the allocation of non-moving arrays.

* commit 'e4195e1c91f4ea3c6192070fd3c9b9e4e6d429ae':
  Fix a type error in the allocation of non-moving arrays.

13 years agoFix a type error in the allocation of non-moving arrays.
Carl Shapiro [Mon, 18 Apr 2011 22:08:21 +0000 (15:08 -0700)]
Fix a type error in the allocation of non-moving arrays.

Originally, non-moving arrays were allocated with dvmAllocObjectArray.
However, dvmAllocObjectArray does not respect the width of the user
supplied element class and substitutes a hard coded value of 4 bytes.
This change replaces dvmAllocObjectArray with dvmAllocArrayByClass.
dvmAllocArrayByClass consults the element class for its width when
computing the storage size for the array being allocated.

Bug: 4309030

13 years agoRevert "am 024b7b9d: am a0739ea3: am af242824: Revert "Fix a type error in the alloca...
Carl Shapiro [Wed, 20 Apr 2011 01:20:31 +0000 (18:20 -0700)]
Revert "am 024b7b9d: am a0739ea3: am af242824: Revert "Fix a type error in the allocation of non-moving arrays." per Ryan\'s request"

This reverts commit d336a946ee81fd26cffcca63bccc18a4a7536303, reversing
changes made to f4b9e2752312c0c513f6ec416e900e5392e9a96c.

Change-Id: I72a877f57b64618345bebfbe22e57bbe334c7726

13 years agoMove the compiler into C++.
Carl Shapiro [Wed, 20 Apr 2011 00:34:24 +0000 (17:34 -0700)]
Move the compiler into C++.

Change-Id: Idffbdb02c29e2be03a75f5a0a664603f2299504a

13 years agoMerge "Change Type, Method and Field to be IDs rather than values." into dalvik-dev
Jesse Wilson [Tue, 19 Apr 2011 23:59:02 +0000 (16:59 -0700)]
Merge "Change Type, Method and Field to be IDs rather than values." into dalvik-dev

13 years agoMerge "Replace public uses of dvmAllocArray with dvmAllocArrayByClass." into dalvik-dev
Carl Shapiro [Tue, 19 Apr 2011 21:48:03 +0000 (14:48 -0700)]
Merge "Replace public uses of dvmAllocArray with dvmAllocArrayByClass." into dalvik-dev

13 years agoam d336a946: am 024b7b9d: am a0739ea3: am af242824: Revert "Fix a type error in the...
Sriram Raman [Tue, 19 Apr 2011 21:42:32 +0000 (14:42 -0700)]
am d336a946: am 024b7b9d: am a0739ea3: am af242824: Revert "Fix a type error in the allocation of non-moving arrays." per Ryan\'s request

* commit 'd336a946ee81fd26cffcca63bccc18a4a7536303':
  Revert "Fix a type error in the allocation of non-moving arrays." per Ryan's request

13 years agoam 024b7b9d: am a0739ea3: am af242824: Revert "Fix a type error in the allocation...
Sriram Raman [Tue, 19 Apr 2011 21:36:54 +0000 (14:36 -0700)]
am 024b7b9d: am a0739ea3: am af242824: Revert "Fix a type error in the allocation of non-moving arrays." per Ryan\'s request

* commit '024b7b9d9bed86522bfdec95973008e0e3c2f19b':
  Revert "Fix a type error in the allocation of non-moving arrays." per Ryan's request

13 years agoam a0739ea3: am af242824: Revert "Fix a type error in the allocation of non-moving...
Sriram Raman [Tue, 19 Apr 2011 21:34:29 +0000 (14:34 -0700)]
am a0739ea3: am af242824: Revert "Fix a type error in the allocation of non-moving arrays." per Ryan\'s request

* commit 'a0739ea3040b578a53de817688ab5e9f17c0ce72':
  Revert "Fix a type error in the allocation of non-moving arrays." per Ryan's request

13 years agoam af242824: Revert "Fix a type error in the allocation of non-moving arrays." per...
Sriram Raman [Tue, 19 Apr 2011 21:29:47 +0000 (14:29 -0700)]
am af242824: Revert "Fix a type error in the allocation of non-moving arrays." per Ryan\'s request

* commit 'af242824dcedbbe39c92b49d148e7ff50267e47f':
  Revert "Fix a type error in the allocation of non-moving arrays." per Ryan's request

13 years agoRevert "Fix a type error in the allocation of non-moving arrays." per Ryan's request
Sriram Raman [Tue, 19 Apr 2011 21:17:27 +0000 (17:17 -0400)]
Revert "Fix a type error in the allocation of non-moving arrays." per Ryan's request

This reverts commit bdd06aadab6214d2378b7d5078f92bfb14e7e3dc.

Change-Id: Ifbb4bd7941fe4f2e9d02ca2b7d77186edae4dd55

13 years agoReplace public uses of dvmAllocArray with dvmAllocArrayByClass.
Carl Shapiro [Tue, 19 Apr 2011 21:11:51 +0000 (14:11 -0700)]
Replace public uses of dvmAllocArray with dvmAllocArrayByClass.

Change-Id: Ica5d457566ebf1196af5c0ef260ddeb95f569b81

13 years agoChange Type, Method and Field to be IDs rather than values.
Jesse Wilson [Tue, 19 Apr 2011 20:43:18 +0000 (13:43 -0700)]
Change Type, Method and Field to be IDs rather than values.

This makes it possible to declare constants for types like
void and int.

http://code.google.com/p/android/issues/detail?id=6322

Change-Id: Ic0b6e7d9b89aba40457c3015b75ab24c413a6f33

13 years agoam f4b9e275: am 8bfb6dec: am bb8c2f35: am bdd06aad: Fix a type error in the allocatio...
Carl Shapiro [Tue, 19 Apr 2011 19:35:25 +0000 (12:35 -0700)]
am f4b9e275: am 8bfb6dec: am bb8c2f35: am bdd06aad: Fix a type error in the allocation of non-moving arrays.

* commit 'f4b9e2752312c0c513f6ec416e900e5392e9a96c':
  Fix a type error in the allocation of non-moving arrays.

13 years agoam 8bfb6dec: am bb8c2f35: am bdd06aad: Fix a type error in the allocation of non...
Carl Shapiro [Tue, 19 Apr 2011 19:11:33 +0000 (12:11 -0700)]
am 8bfb6dec: am bb8c2f35: am bdd06aad: Fix a type error in the allocation of non-moving arrays.

* commit '8bfb6dec87783ee5d80a043d6a30abbf200a553b':
  Fix a type error in the allocation of non-moving arrays.

13 years agoam bb8c2f35: am bdd06aad: Fix a type error in the allocation of non-moving arrays.
Carl Shapiro [Tue, 19 Apr 2011 19:07:46 +0000 (12:07 -0700)]
am bb8c2f35: am bdd06aad: Fix a type error in the allocation of non-moving arrays.

* commit 'bb8c2f35e2155b6eec92e692666df8c67810ded6':
  Fix a type error in the allocation of non-moving arrays.

13 years agoam bdd06aad: Fix a type error in the allocation of non-moving arrays.
Carl Shapiro [Tue, 19 Apr 2011 18:43:46 +0000 (11:43 -0700)]
am bdd06aad: Fix a type error in the allocation of non-moving arrays.

* commit 'bdd06aadab6214d2378b7d5078f92bfb14e7e3dc':
  Fix a type error in the allocation of non-moving arrays.

13 years agoMerge "Remove dvmAllocObjectArray and all of its uses." into dalvik-dev
Carl Shapiro [Tue, 19 Apr 2011 18:34:34 +0000 (11:34 -0700)]
Merge "Remove dvmAllocObjectArray and all of its uses." into dalvik-dev

13 years agoTweaks for C++ compilation.
Dan Bornstein [Tue, 19 Apr 2011 17:32:23 +0000 (10:32 -0700)]
Tweaks for C++ compilation.

Change-Id: I6ac0ffe4941c6d655025a0738413b60b636400a9

13 years agoRemove dvmAllocObjectArray and all of its uses.
Carl Shapiro [Tue, 19 Apr 2011 01:34:17 +0000 (18:34 -0700)]
Remove dvmAllocObjectArray and all of its uses.

This replaces uses of dvmAllocObjectArray with equivalent but safer
calls to dvmAllocArrayByClass.  dvmAllocObjectArray performed no type
checking of its arguments and was easy to use incorrectly.

Change-Id: Ia82fe73cb9d73bbb27f5961242ad5961f9f9924c

13 years agoMerge "Improve the impossible allocation log message." into dalvik-dev
Carl Shapiro [Tue, 19 Apr 2011 01:03:26 +0000 (18:03 -0700)]
Merge "Improve the impossible allocation log message." into dalvik-dev

13 years agoMerge "Adjust basis against which enum performance is compared." into dalvik-dev
Jesse Wilson [Tue, 19 Apr 2011 00:27:58 +0000 (17:27 -0700)]
Merge "Adjust basis against which enum performance is compared." into dalvik-dev

13 years agoImprove the impossible allocation log message.
Carl Shapiro [Tue, 19 Apr 2011 00:24:30 +0000 (17:24 -0700)]
Improve the impossible allocation log message.

Change-Id: Icf4c9b22c0f11159efb7cb43ab1158cc4f10c82f

13 years agoFix a type error in the allocation of non-moving arrays.
Carl Shapiro [Mon, 18 Apr 2011 22:08:21 +0000 (15:08 -0700)]
Fix a type error in the allocation of non-moving arrays.

Originally, non-moving arrays were allocated with dvmAllocObjectArray.
However, dvmAllocObjectArray does not respect the width of the user
supplied element class and substitutes a hard coded value of 4 bytes.
This change replaces dvmAllocObjectArray with dvmAllocArrayByClass.
dvmAllocArrayByClass consults the element class for its width when
computing the storage size for the array being allocated.

Bug: 4309030
Change-Id: I9cfe1b62ea61f03e46f44ad2be0d1cce1bef7cdd

13 years agoAdjust basis against which enum performance is compared.
Jesse Wilson [Mon, 18 Apr 2011 23:04:26 +0000 (16:04 -0700)]
Adjust basis against which enum performance is compared.

The new basis assumes how much work Enum.valueOf() needs
to do and checks that it does just that and little else.
It makes no attempt to compute a general speed of the VM
or to compare ratios of unrelated operations.

Change-Id: I0014fb37cfcf36016e72e97ca182e3836044782e

13 years agoFix a type error in the allocation of non-moving arrays.
Carl Shapiro [Mon, 18 Apr 2011 22:08:21 +0000 (15:08 -0700)]
Fix a type error in the allocation of non-moving arrays.

Originally, non-moving arrays were allocated with dvmAllocObjectArray.
However, dvmAllocObjectArray does not respect the width of the user
supplied element class and substitutes a hard coded value of 4 bytes.
This change replaces dvmAllocObjectArray with dvmAllocArrayByClass.
dvmAllocArrayByClass consults the element class for its width when
computing the storage size for the array being allocated.

Bug: 4309030

Change-Id: I4f3802b38261f5ad7052d577049732f59a667ea6

13 years agoMerge "[JIT] Clear inJitCodeCache flag on return" into dalvik-dev
buzbee [Mon, 18 Apr 2011 19:51:07 +0000 (12:51 -0700)]
Merge "[JIT] Clear inJitCodeCache flag on return" into dalvik-dev

13 years agoMerge "Move the remaining non-compiler VM code into C++." into dalvik-dev
Carl Shapiro [Mon, 18 Apr 2011 19:46:33 +0000 (12:46 -0700)]
Merge "Move the remaining non-compiler VM code into C++." into dalvik-dev

13 years ago[JIT] Clear inJitCodeCache flag on return
buzbee [Mon, 18 Apr 2011 19:40:16 +0000 (12:40 -0700)]
[JIT] Clear inJitCodeCache flag on return

This CL plugs a hole in which control could return to the interpreter
from JIT'd code without resetting the inJitCodeCache flag.

Change-Id: Id0241bf3490f5bef9b274483af694c81f33334cf

13 years agoSupport catch blocks.
Jesse Wilson [Sat, 16 Apr 2011 16:45:04 +0000 (09:45 -0700)]
Support catch blocks.

Add support for throw calls. This is awkwardly named throwValue
because 'throw' is a keyword. Better names very welcome.

Add support for unused parameters.

Add support for float, double and long comparisons.

Add support for array operations.

Change-Id: I48380fca06c13175cd13b4e3613a4ba63902ed33
http://code.google.com/p/android/issues/detail?id=6322

13 years agoMerge "Return Code instances from Method.declare." into dalvik-dev
Jesse Wilson [Sat, 16 Apr 2011 14:28:11 +0000 (07:28 -0700)]
Merge "Return Code instances from Method.declare." into dalvik-dev

13 years agoReturn Code instances from Method.declare.
Jesse Wilson [Fri, 15 Apr 2011 21:28:02 +0000 (14:28 -0700)]
Return Code instances from Method.declare.

Add type cast, and instanceof.
Add a unit test for recursive method calls.
Add return type checking.
Improve documentation on BinaryOp.

Change-Id: Ib85ed81be90756793067913efe86e1e442483f76
http://code.google.com/p/android/issues/detail?id=6322

13 years agoMove the remaining non-compiler VM code into C++.
Carl Shapiro [Sat, 16 Apr 2011 01:38:06 +0000 (18:38 -0700)]
Move the remaining non-compiler VM code into C++.

Change-Id: Id8693208d2741c55a7b0474d1264f2112019d11f

13 years agoFix build by reverting NELEM change.
Elliott Hughes [Sat, 16 Apr 2011 01:41:26 +0000 (18:41 -0700)]
Fix build by reverting NELEM change.

Change-Id: Ie68f42213e7a915fb1be45ae87790117f8356c4e

13 years agoIn C++, we can offer a better NELEM.
Elliott Hughes [Sat, 16 Apr 2011 01:00:11 +0000 (18:00 -0700)]
In C++, we can offer a better NELEM.

Change-Id: Iaedc727becb4af1c779299d4da7c91bd522fe9cc

13 years agoMerge "Move the verifier and parts of the interpreter into C++." into dalvik-dev
Carl Shapiro [Sat, 16 Apr 2011 00:31:38 +0000 (17:31 -0700)]
Merge "Move the verifier and parts of the interpreter into C++." into dalvik-dev

13 years agoMerge "Start actually using C++ in the JNI implementation." into dalvik-dev
Elliott Hughes [Sat, 16 Apr 2011 00:23:39 +0000 (17:23 -0700)]
Merge "Start actually using C++ in the JNI implementation." into dalvik-dev

13 years agoMove the verifier and parts of the interpreter into C++.
Carl Shapiro [Fri, 15 Apr 2011 22:48:54 +0000 (15:48 -0700)]
Move the verifier and parts of the interpreter into C++.

Change-Id: I8ce5fb558871d9709b251512dd01206be5ca8497

13 years agoStart actually using C++ in the JNI implementation.
Elliott Hughes [Fri, 15 Apr 2011 22:27:38 +0000 (15:27 -0700)]
Start actually using C++ in the JNI implementation.

Change-Id: I9ed07e71d00de4caf314845c4e11201112bd65be