OSDN Git Service

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

13 years agoDon't require a dalvikvm to build.
Jesse Wilson [Fri, 15 Apr 2011 17:34:33 +0000 (10:34 -0700)]
Don't require a dalvikvm to build.

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

13 years agoMerge "Bare-bones dex code generator." into dalvik-dev
Jesse Wilson [Fri, 15 Apr 2011 17:27:24 +0000 (10:27 -0700)]
Merge "Bare-bones dex code generator." into dalvik-dev

13 years agoBare-bones dex code generator.
Jesse Wilson [Thu, 14 Apr 2011 21:02:45 +0000 (14:02 -0700)]
Bare-bones dex code generator.

This is functional but incomplete. In particular, the following
are still coming:
 - instructions for cast/instanceof/arrays/float comparison/try/catch
 - debug information
 - annotations

The API is also incomplete. When this is done I'm going to remove
the type parameters to see if that's a net win. I suspect it will
be because generics currently hurt the ability to do assignments
between unknown types - you can't currently assign from Label<?> to
Label<?>, for example.

I'm anticipating changes to the way Code instances are created.
In the current API these are created without an attached method and
later attached to a method with Method.declare(). This doesn't work
very well, particularly since the code blocks don't know how many
parameters they take, whether they're static, or what their return
type is. I'm tempted to make declare() return a writable Code instance,
or to simply combine the Code and Method classes.

This code can benefit from more error detection. It's currently quite
easy to do bad things with labels: use them on the wrong Code instance,
reuse them, don't use them, etc. Better error checking is due here.

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

13 years agoMore JNI implementation cleanup.
Elliott Hughes [Fri, 15 Apr 2011 01:12:15 +0000 (18:12 -0700)]
More JNI implementation cleanup.

Change-Id: I5218c42df18eb5b8647fce073abd8434b40adb80

13 years agoMerge "Switch the JNI code over to C++." into dalvik-dev
Elliott Hughes [Fri, 15 Apr 2011 00:36:08 +0000 (17:36 -0700)]
Merge "Switch the JNI code over to C++." into dalvik-dev

13 years agoSwitch the JNI code over to C++.
Elliott Hughes [Thu, 14 Apr 2011 23:59:31 +0000 (16:59 -0700)]
Switch the JNI code over to C++.

Change-Id: I82dbaf8931bda5a466fd5ad6b08f7f9b36d7ce37

13 years agoMerge "Cleanup." into dalvik-dev
Dan Bornstein [Thu, 14 Apr 2011 22:46:37 +0000 (15:46 -0700)]
Merge "Cleanup." into dalvik-dev

13 years agoFix out-of-date comments.
Elliott Hughes [Thu, 14 Apr 2011 22:01:53 +0000 (15:01 -0700)]
Fix out-of-date comments.

Mainly by deletion.

Change-Id: Ieb156192f1991937b26db9eb6cac45c4647430d6

13 years agoCleanup.
Dan Bornstein [Thu, 14 Apr 2011 21:25:56 +0000 (14:25 -0700)]
Cleanup.

I have it on enthusiastic authority that the foreach would never have
any value, so away it goes. I got rid of the pointless re-init of
Class too.

Change-Id: I794d5f1286d7c240f7d17b24e1e9e8e93b87316a

13 years agoMove JDWP into C++ and add extern "C" to remaining non-compiler includes.
Carl Shapiro [Thu, 14 Apr 2011 21:21:47 +0000 (14:21 -0700)]
Move JDWP into C++ and add extern "C" to remaining non-compiler includes.

Change-Id: I19cba56e8f75b76f902c87ff5c5b3e2c17cb5c00

13 years agoMerge "Compile libdex as C++." into dalvik-dev
Dan Bornstein [Thu, 14 Apr 2011 21:01:32 +0000 (14:01 -0700)]
Merge "Compile libdex as C++." into dalvik-dev

13 years agoam 780d3e25: make dvmOpenCachedDexFile resistant to umask changes.
Nick Kralevich [Thu, 14 Apr 2011 20:41:40 +0000 (13:41 -0700)]
am 780d3e25: make dvmOpenCachedDexFile resistant to umask changes.

* commit '780d3e25adde11603bb6bab1b42a1e8e985aec15':
  make dvmOpenCachedDexFile resistant to umask changes.

13 years agoCompile libdex as C++.
Dan Bornstein [Thu, 14 Apr 2011 20:08:06 +0000 (13:08 -0700)]
Compile libdex as C++.

The major-looking code changes were all just to unravel some gotos.

Change-Id: I86f98a48b160f357ce93c87446bad5d705d5f05b

13 years agomake dvmOpenCachedDexFile resistant to umask changes.
Nick Kralevich [Thu, 14 Apr 2011 18:37:24 +0000 (11:37 -0700)]
make dvmOpenCachedDexFile resistant to umask changes.

Change-Id: I61734941bd94a013a82c1dd0ebeac43fefa680e1

13 years agoam 80aedd4d: The jni-tips documentation has moved to frameworks/base.
Elliott Hughes [Thu, 14 Apr 2011 20:17:50 +0000 (13:17 -0700)]
am 80aedd4d: The jni-tips documentation has moved to frameworks/base.

* commit '80aedd4dfc1252cb214fdff5baeb55166e3bf021':
  The jni-tips documentation has moved to frameworks/base.

13 years agoThe jni-tips documentation has moved to frameworks/base.
Elliott Hughes [Thu, 14 Apr 2011 18:52:03 +0000 (11:52 -0700)]
The jni-tips documentation has moved to frameworks/base.

Change-Id: I77fbc3ed593c51f61de9590beaadaa52f08387f8

13 years agoMerge "Move fundamental object definitions and operations to C++" into dalvik-dev
Carl Shapiro [Thu, 14 Apr 2011 18:30:39 +0000 (11:30 -0700)]
Merge "Move fundamental object definitions and operations to C++" into dalvik-dev

13 years agoMerge "Fix self-verification with backward branches or invokes." into dalvik-dev
Ben Cheng [Thu, 14 Apr 2011 03:30:42 +0000 (20:30 -0700)]
Merge "Fix self-verification with backward branches or invokes." into dalvik-dev

13 years agoMove fundamental object definitions and operations to C++
Carl Shapiro [Thu, 14 Apr 2011 03:14:49 +0000 (20:14 -0700)]
Move fundamental object definitions and operations to C++

Change-Id: Ibc3766edfbf7fdbde2d762d6e88a0bb02df2be31

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

13 years agoAdd a class flag CLASS_ISCLASS.
Dan Bornstein [Tue, 12 Apr 2011 00:08:20 +0000 (17:08 -0700)]
Add a class flag CLASS_ISCLASS.

This flag is only turned on for the unique class Class, and it is
meant to make it possible to quickly test objects for "classiness" as
well as trivially figure out if one is looking at the class Class
itself.

Bonus: Made a few places that directly set class->accessFlags use
the prescribed macro for doing same.

Change-Id: I89fce708c407b597f28ce610b778123f5dcaecf6

13 years agoMerge "Move the reflection code into C++." into dalvik-dev
Carl Shapiro [Wed, 13 Apr 2011 22:40:58 +0000 (15:40 -0700)]
Merge "Move the reflection code into C++." into dalvik-dev

13 years agoam e7147462: Fix debugger performance regression
buzbee [Wed, 13 Apr 2011 22:39:45 +0000 (15:39 -0700)]
am e7147462: Fix debugger performance regression

* commit 'e71474621b968a9bc649d067155d31213f5764a9':
  Fix debugger performance regression

13 years agoMove the reflection code into C++.
Carl Shapiro [Wed, 13 Apr 2011 22:15:55 +0000 (15:15 -0700)]
Move the reflection code into C++.

Smart pointers would make dvmGenerateProxyClass cleaner.  This code should
be revisited once those interfaces come into existence.

Change-Id: If25abb87e22d658ad88f997324c35703b23f623c

13 years agoFix debugger performance regression
buzbee [Wed, 13 Apr 2011 21:10:04 +0000 (14:10 -0700)]
Fix debugger performance regression

http://b/issue?id=4282910

The interpreter was reporting every instruction as a method entry point,
causing significant performance degradation in the debugger.

Change-Id: If6fb092d6ade7fc3d74be3c7f806bf2d6923a063

13 years agoConvert the internal and in-line natives to C++.
Carl Shapiro [Wed, 13 Apr 2011 02:14:06 +0000 (19:14 -0700)]
Convert the internal and in-line natives to C++.

Change-Id: I2ece682bc3b4d3b55ab27c60fd84a0b3243d7ca6

13 years agoMerge "Add additional asserts and combine declarations with definitions." into dalvik-dev
Carl Shapiro [Mon, 11 Apr 2011 22:29:57 +0000 (15:29 -0700)]
Merge "Add additional asserts and combine declarations with definitions." into dalvik-dev

13 years agoAdd additional asserts and combine declarations with definitions.
Carl Shapiro [Mon, 11 Apr 2011 22:09:05 +0000 (15:09 -0700)]
Add additional asserts and combine declarations with definitions.

Change-Id: Ibdc37f3d7eb6385da1059d5525727b090626ec4c

13 years agoam 0161e158: Merge "Add missing JUMBO opcodes to volatile rewriting"
buzbee [Mon, 11 Apr 2011 21:24:19 +0000 (14:24 -0700)]
am 0161e158: Merge "Add missing JUMBO opcodes to volatile rewriting"

* commit '0161e1582b13173cc5a125cf504fd7714c9c82b2':
  Add missing JUMBO opcodes to volatile rewriting

13 years agoMerge "Add missing JUMBO opcodes to volatile rewriting"
buzbee [Mon, 11 Apr 2011 21:20:45 +0000 (14:20 -0700)]
Merge "Add missing JUMBO opcodes to volatile rewriting"

13 years agoam 5867bea1: [JIT] Close code cache race window
buzbee [Mon, 11 Apr 2011 21:19:06 +0000 (14:19 -0700)]
am 5867bea1: [JIT] Close code cache race window

* commit '5867bea193779ff3009738513bae9bc84f4a34aa':
  [JIT] Close code cache race window

13 years agoAdd missing JUMBO opcodes to volatile rewriting
buzbee [Mon, 11 Apr 2011 21:07:34 +0000 (14:07 -0700)]
Add missing JUMBO opcodes to volatile rewriting

The boolean/byte/char/short variants of iget/iput/sget/sput were not
being correctly converted to _VOLATILE opcodes for SMP builds.

Change-Id: Ic81d75f9c927325d54a98465c146b6d43ea204f4

13 years ago[JIT] Close code cache race window
buzbee [Sat, 9 Apr 2011 21:47:32 +0000 (14:47 -0700)]
[JIT] Close code cache race window

See http://b/issue?id=4271784 for details.

Three fixes:
   1.  Verify the code cache version hasn't changed between completion
       of the translation and registering it in JitTable
   2.  When code cache full detected during translating a trace, mark
       the "discard" flag on the work order.
   3.  [The actual cause of the bug] When doing a code cache flush,
       traverse the thread least and cancel any trace selections in
       progress.

Change-Id: Ifea70416d7d91637fb742fc8de11044a89358caa

13 years agoDx block dumper no longer fails on abstract and native methods.
jeffhao [Mon, 11 Apr 2011 19:52:55 +0000 (12:52 -0700)]
Dx block dumper no longer fails on abstract and native methods.

Change-Id: I3bad07a1621c0ef4bc495816b2438cab9401a828

13 years agoam 8d6291cc: Merge "[JIT] Fix volatile test"
buzbee [Sat, 9 Apr 2011 01:03:48 +0000 (18:03 -0700)]
am 8d6291cc: Merge "[JIT] Fix volatile test"

* commit '8d6291cce6ff3c9a3010f3725563983847370df7':
  [JIT] Fix volatile test

13 years agoMerge "[JIT] Fix volatile test"
buzbee [Sat, 9 Apr 2011 01:01:17 +0000 (18:01 -0700)]
Merge "[JIT] Fix volatile test"

13 years ago[JIT] Fix volatile test
buzbee [Thu, 7 Apr 2011 22:22:06 +0000 (15:22 -0700)]
[JIT] Fix volatile test

On SMP systems, Dalvik opcodes referencing volatile fields will be
rewritten to their _VOLATILE variant.  On non-SMP systems, though,
this rewriting is not done.  The JIT, however, needs to know about
volatility for all systems in order to avoid performing unsafe
optimizations.  This change fixes the JIT's volatility test to be
either _VOLATILE opcode or the volatile flag in the field access bits
depending on SMP type.

Change-Id: I2edde58dc25f22cba88f62c5f1a2d125473309e6

13 years agoam 2336a395: Merge "Add jniThrowExceptionFmt."
Elliott Hughes [Sat, 9 Apr 2011 00:29:11 +0000 (17:29 -0700)]
am 2336a395: Merge "Add jniThrowExceptionFmt."

* commit '2336a3953305b2fe3e59b850d2e5804c86e818dd':
  Add jniThrowExceptionFmt.

13 years agoMerge "Add jniThrowExceptionFmt."
Elliott Hughes [Sat, 9 Apr 2011 00:20:54 +0000 (17:20 -0700)]
Merge "Add jniThrowExceptionFmt."

13 years agoAdd jniThrowExceptionFmt.
Elliott Hughes [Sat, 9 Apr 2011 00:15:16 +0000 (17:15 -0700)]
Add jniThrowExceptionFmt.

I still think you should be doing checks and throwing exceptions in Java,
and your native code should just crash if you lie to it, but this will
ease the translation of frameworks/base code over to using JNI more correctly.

Change-Id: I9f2512e2349452b82360b375911c814ab00db23b

13 years agoMerge "Fix for loops and eliminate some other undesirable idioms." into dalvik-dev
Carl Shapiro [Fri, 8 Apr 2011 23:44:40 +0000 (16:44 -0700)]
Merge "Fix for loops and eliminate some other undesirable idioms." into dalvik-dev

13 years agoFix for loops and eliminate some other undesirable idioms.
Carl Shapiro [Fri, 8 Apr 2011 23:40:54 +0000 (16:40 -0700)]
Fix for loops and eliminate some other undesirable idioms.

Previously, we were using a non-standard C dialect which did not permit
the nicer variable scoping in loops.  Now that we are using C++ in the
collector we can guarantee that feature is available.  This change also
rearranges some of the surrounding code to take advantage of the more
flexible scoping rules.

Change-Id: I9be35794cc12bcbc0d5299fe387d4bc406481075

13 years agoam f1b53179: Merge "Fix method profiling [issue 4260697]"
buzbee [Fri, 8 Apr 2011 22:48:46 +0000 (15:48 -0700)]
am f1b53179: Merge "Fix method profiling [issue 4260697]"

* commit 'f1b531793e65fda22818d8dca8b17f94f618ad64':
  Fix method profiling [issue 4260697]

13 years agoMerge "Fix method profiling [issue 4260697]"
buzbee [Fri, 8 Apr 2011 22:45:13 +0000 (15:45 -0700)]
Merge "Fix method profiling [issue 4260697]"