Commit Graph

4486 Commits

Author SHA1 Message Date
zra@google.com af23dfc5b2 Increases the number of ARM floating-point registers.
This is to be consistent with VFPv3_D32. Later, we'll detect
VFPv3_D16 at runtime.

R=regis@google.com

Review URL: https://codereview.chromium.org//19806005

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25352 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-23 18:25:44 +00:00
floitsch@google.com 279849d941 Fix sublist check, add missing methods and add tests for typed data lists.
Somehow these lists were still missing functions (in the VM) and the sublist check was broken (in dart2js).

R=ngeoffray@google.com

Review URL: https://codereview.chromium.org//19965003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25333 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-23 09:20:05 +00:00
ajohnsen@google.com 2d43c9b0b8 Report correct socket error and use HttpServer:close future in pub.
BUG=
R=sgjesse@google.com

Review URL: https://codereview.chromium.org//19494012

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25332 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-23 08:59:23 +00:00
mlippautz@google.com 9d367d788d Local change to make the type getter lazy.
This change adds the last piece missing to inline functionality of CreateMethodMirror and its parameters. (Separate CL.)

BUG=
R=asiva@google.com

Review URL: https://codereview.chromium.org//19983003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25325 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-23 00:39:28 +00:00
regis@google.com 9581071936 Refactor resolution code in the vm to properly handle ambiguity errors.
Add test.

R=asiva@google.com

Review URL: https://codereview.chromium.org//19662003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25324 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-23 00:19:39 +00:00
rmacnak@google.com 6c2d006377 Fix a regression in ObjectMirror.setFieldAsync (issue 11898).
R=asiva@google.com

Review URL: https://codereview.chromium.org//20006003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25323 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-23 00:02:28 +00:00
zra@google.com dd9adc1a86 Adds more SIMD instructions for ARM.
Adds the vnegqs, vabsqs, and vandq instructions.

Also reverts the increase in the number of floating point registers since it is causing crashes on hardware.

R=regis@google.com

Review URL: https://codereview.chromium.org//19493004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25320 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-22 23:26:12 +00:00
rmacnak@google.com 9c4fef756b Implement VariableMirror creation with non-API code. To break circular initialization, have them find their type lazily.
R=asiva@google.com

Review URL: https://codereview.chromium.org//19512003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25317 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-22 23:05:54 +00:00
mlippautz@google.com b58e38269b This change introduces nothing new. It only fixes the native entrypoints to use the right macros.
BUG=
R=asiva@google.com

Review URL: https://codereview.chromium.org//19500016

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25315 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-22 22:49:08 +00:00
srdjan@google.com aba435de6a FIx a typo in SIMMIPS min/max and enable min_max_test for SIMMIPS by splitting the main functions into two parts.
R=regis@google.com

Review URL: https://codereview.chromium.org//19653008

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25314 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-22 22:43:51 +00:00
srdjan@google.com 17bc0e19c4 Fix math min/max for -0.0 case. Enable min_max_test to run in optimizing compiler as well.
R=regis@google.com, zra@google.com

Review URL: https://codereview.chromium.org//19482023

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25306 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-22 21:37:43 +00:00
johnmccutchan@google.com 1b09112ce0 Add two argument SSE shuffle instructions
R=srdjan@google.com

Review URL: https://codereview.chromium.org//19940005

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25301 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-22 20:20:50 +00:00
asiva@google.com 9e7f76623a Reuse the top ApiLocalScope so that we do not allocate and free an ApiLocalScope
for each Dart_EnterScope/Dart_ExitScope sequence.

The runtime of UseDartApi benchmark on linux ia32 improves from
187316 to 121083.

R=srdjan@google.com

Review URL: https://codereview.chromium.org//19974002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25292 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-22 18:46:14 +00:00
zra@google.com 4b97f8c18c Adds reciprocal squre root SIMD instructions for ARM.
R=regis@google.com

Review URL: https://codereview.chromium.org//19875002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25291 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-22 18:19:44 +00:00
srdjan@google.com 0c5b24c778 Fix simmips build, remove unnecessary temp register.
Review URL: https://codereview.chromium.org//19849004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25288 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-22 17:51:03 +00:00
srdjan@google.com 7e313fa96a Recognize Math's min and max function for doubles and inline the operation.
R=regis@google.com, zra@google.com

Review URL: https://codereview.chromium.org//19792007

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25287 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-22 17:27:45 +00:00
johnmccutchan@google.com ea3a5cfb93 VM Service isolate listing
R=asiva@google.com

Review URL: https://codereview.chromium.org//19622003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25279 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-22 15:39:03 +00:00
floitsch@google.com f601233af9 Remove dart:codec and move classes into dart:convert.
R=sgjesse@google.com

Review URL: https://codereview.chromium.org//19941002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25267 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-22 12:25:16 +00:00
ajohnsen@google.com 723930c88e Close 'accepted' sockets when listening socket is closed. Fixes raw_server_socket_cancel_test.
BUG=https://code.google.com/p/dart/issues/detail?id=8675
R=sgjesse@google.com

Review URL: https://codereview.chromium.org//19675009

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25258 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-22 08:54:54 +00:00
mlippautz@google.com b3cb27a829 Since returnType is represented by a mirror, we make it lazy. We do not use a lazy mirror anymore, but instead create a type mirror upon first access.
CreateTypeMirror is already factored out of MethodMirror_return_type since it is needed by others mirrors (future CLs). Also introduces CreateMirror() which will be used in future CLs.

BUG=
R=asiva@google.com

Review URL: https://codereview.chromium.org//19780002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25252 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-19 23:17:47 +00:00
mlippautz@google.com 7021e5bbe1 Rename: DartLibraryCalls::ExceptionCreate -> InstanceCreate
BUG=
R=asiva@google.com

Review URL: https://codereview.chromium.org//19678024

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25246 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-19 21:49:45 +00:00
zra@google.com a15bac1044 Adds ARM SIMD instructions.
vminqs, maxqs, vrecpeqs (Reciprocal estimate), vrecpsqs (Reciprocal Newton-Raphson step).

R=regis@google.com

Review URL: https://codereview.chromium.org//19773017

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25245 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-19 21:32:03 +00:00
rmacnak@google.com f85d1df63e Fix regression in TypedefMirror.owner introduced when making ClassMirror.owner lazy.
R=asiva@google.com

Review URL: https://codereview.chromium.org//19749008

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25244 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-19 21:16:29 +00:00
srdjan@google.com b0598efc97 Minor cleanup: use deopt-id instead od static call instruction as argument for MathSqrtInstr.
R=regis@google.com

Review URL: https://codereview.chromium.org//19779011

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25234 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-19 18:20:21 +00:00
regis@google.com 30609cff91 Use library prefixes in scope of the mixin class when compiling a functions of
a mixin application (issue 11891).

Review URL: https://codereview.chromium.org//19763007

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25233 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-19 18:08:17 +00:00
ajohnsen@google.com 2d72d895d4 Also check for pending write for FileHandles in EventHandler.
BUG=
R=kustermann@google.com

Review URL: https://codereview.chromium.org//19724005

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25228 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-19 17:08:17 +00:00
johnmccutchan@google.com 522a7ef504 Add all 256 shuffle methods to Float32x4
R=srdjan@google.com

Review URL: https://codereview.chromium.org//19564014

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25227 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-19 17:03:09 +00:00
ajohnsen@google.com 17625ea5a4 Don't call accept the c socket, if we're currently closing.
Fixes a crash on Windows.

BUG=

Review URL: https://codereview.chromium.org//19693007

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25226 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-19 16:52:16 +00:00
srdjan@google.com 5781d7cc84 Collect both arguments for math's min/max static functions. Later that information will be used to inline the operation if possible.
R=regis@google.com

Review URL: https://codereview.chromium.org//19774007

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25225 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-19 16:49:29 +00:00
zra@google.com 31fa41a784 Enables more SIMD tests for ARM.
R=regis@google.com

Review URL: https://codereview.chromium.org//19779006

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25219 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-19 15:28:53 +00:00
ajohnsen@google.com 2bd55c23c7 Keep track of when a socket has been destroyed
This adds the event CLOSED to RawSocket and RawServerSocket. This
event indicate that the underlying socket is now destroyed.

This is used to make Socket.close and ServerSocket.close return a
future which is completed when the unserlying socket is
destroyed. This can be used to start listening on the same port after
closing a server socket.

R=ajohnsen@google.com, kustermann@google.com

BUG=https://code.google.com/p/dart/issues/detail?id=4155

Review URL: https://codereview.chromium.org//14864009

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25213 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-19 13:26:48 +00:00
fschneider@google.com e317ca8fe0 Replace ChainContextInstr with existing IL instructions.
v0 <- AllocateContext(...)

      ChainContext(v0)

is changed into 

v1 <- CurrentContext
      StoreField(v0.parent = v1)
      StoreContext(v0)

Since v0 is used twice, I used a TempLocalScope in
the graph builder to store the allocated context.
As a result ChainContextInstr can be completely removed
from the compiler.

R=srdjan@google.com

Review URL: https://codereview.chromium.org//19569002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25200 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-19 09:15:28 +00:00
rmacnak@google.com 448dbb1017 Make the ClassMirrors created through reflectClass() find their owners (libraries) lazily.
Remove an unused parameter that was threaded through a number of mirror creation functions.

R=asiva@google.com

Review URL: https://codereview.chromium.org//19188004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25193 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-19 00:44:36 +00:00
zra@google.com 18f6092d52 Implements ARM SIMD comparison instructions.
R=regis@google.com

Review URL: https://codereview.chromium.org//19678020

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25189 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-18 22:56:45 +00:00
rmacnak@google.com 08e322a197 Introduce an abstract DeclarationMirror in the implementation hierarchy; add a MirrorReference reflectee to TypedefMirror and TypeVariableMirror.
R=asiva@google.com

Review URL: https://codereview.chromium.org//19604004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25187 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-18 22:13:55 +00:00
mlippautz@google.com 61bae883ed If we have the owner mirror at creation time (which right now is a lazy mirror), we will use it. Eventually lazy mirrors will go away and we will not have to resolve() in dart code anymore.
If we don't have it, for example for a nested closure, we set it null and construct it lazily at access time.

Example:

outer() {
  inner() {}
  var closureMirror = reflect(inner);
  print(closureMirror.function.owner);  // Should be a MethodMirror on outer, that is constructed lazily.
}

Since we need to be able to construct the chain of owners (back up to library), we need to handle all cases in the lazy creation.

The CL also adds wrappers that can be called with native objects. At some point these wrapper will create the mirrors without referring to the ones using embedded API.

BUG=
R=asiva@google.com

Review URL: https://codereview.chromium.org//19579006

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25186 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-18 22:04:57 +00:00
rmacnak@google.com 3421cfe092 Interpose an Expando cache on reflectClass().
R=iposva@google.com

Review URL: https://codereview.chromium.org//19462008

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25181 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-18 20:54:45 +00:00
zra@google.com d886c10f6e Enables a SIMD test for ARM.
Required adding the veorq, vmovq, and vdup instructions.

R=regis@google.com

Review URL: https://codereview.chromium.org//19776007

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25165 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-18 18:40:27 +00:00
srdjan@google.com 624fb4cf59 Cleanup: remove argument descriptor parameter when calling inline cache miss handler.
R=zra@google.com

Review URL: https://codereview.chromium.org//19547003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25162 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-18 18:15:29 +00:00
fschneider@google.com e6b8a47f6d Disable allocation sinking in the presence of try-catch.
Allocation sinking does not handle the case of optimized try-catch yet.

I added a TODO to support it at a later point.

BUG=https://code.google.com/p/dart/issues/detail?id=11873
TEST=tests/language/try_catch_optimized2_test.dart
R=srdjan@google.com

Review URL: https://codereview.chromium.org//19462004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25146 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-18 14:13:38 +00:00
floitsch@google.com 06493c3460 Revert "Introduce StackTraceOnThrowMixin."
This reverts commit r24951.

R=lrn@google.com

Review URL: https://codereview.chromium.org//19579002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25142 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-18 10:39:56 +00:00
asiva@google.com 417a55d314 Allow type objects to be passed in to Dart_GetStaticFields
(This is in sync with the change to have the entire Dart API surface
accept type objects instead of exposing the class objects).

R=jacobr@google.com

Review URL: https://codereview.chromium.org//19713002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25137 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-18 00:28:03 +00:00
regis@google.com 4891c126bb Fix generic mixins (issue 11803).
R=hausner@google.com

Review URL: https://codereview.chromium.org//19669010

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25136 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-18 00:23:04 +00:00
rmacnak@google.com 31145d5478 Implement metadata as an internal native. Be honest about which mirrors don't yet support metadata introspection.
R=asiva@google.com

Review URL: https://codereview.chromium.org//19235015

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25126 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-17 21:50:54 +00:00
zra@google.com 351aaec2c3 Replaces Location::ToStackSlotAddress() with Location::ToStackSlotOffset()
This way, Location no longer mentions the architecture specific Address class.

R=regis@google.com

Review URL: https://codereview.chromium.org//19464002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25122 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-17 20:54:34 +00:00
srdjan@google.com cce3fcffae Cleanups.
R=fschneider@google.com

Review URL: https://codereview.chromium.org//19395003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25103 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-17 16:03:07 +00:00
fschneider@google.com a053d73a67 Fix bug in compile-type propagation of the optimizing compiler.
R=vegorov@google.com

Review URL: https://codereview.chromium.org//19506007

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25090 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-17 11:35:20 +00:00
ajohnsen@google.com c3e026d577 Clear EventHandler on Stop, to avoid future usages.
BUG=
R=fschneider@google.com, kustermann@google.com

Review URL: https://codereview.chromium.org//19546002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25087 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-17 09:06:03 +00:00
ajohnsen@google.com 1e2289e275 One event ahndler for all isolates
BUG=
R=whesse@google.com

Review URL: https://codereview.chromium.org//17851004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25082 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-17 07:26:05 +00:00
mlippautz@google.com 8b65384ede Moved some MethodMirror getters from embedded API to lazy native calls.
The more complex ones (creating LazyXXXMirror) are still left and will be handled in a separate CL.

Tests are (still) excluded from dart2js, because of one regression test in the same file.

BUG=
R=asiva@google.com

Review URL: https://codereview.chromium.org//19299003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25081 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-17 00:42:30 +00:00