Commit Graph

18 Commits

Author SHA1 Message Date
Stephen Adams 1924d64351 [corelib] Fix for BigInt.toDouble() crash
Bug: 41819
Change-Id: Ied24b42728e1da0d713fe971386d4ef6a023333e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/147349
Reviewed-by: Bob Nystrom <rnystrom@google.com>
Commit-Queue: Stephen Adams <sra@google.com>
2020-05-09 00:22:16 +00:00
Stephen Adams 4babccd988 Fix non-web integer literals in corelib_2/bigint_test
Change-Id: I9cb66de2db293a033073ced7e6b9e3d19a1f3fb4
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/108204
Commit-Queue: Stephen Adams <sra@google.com>
Reviewed-by: Leaf Petersen <leafp@google.com>
2019-07-04 02:49:29 +00:00
Robert Nystrom 1734133f2c Migrate tests off the ancient multitest marker syntax.
Change-Id: Iae025d9c544831e24debf0a670202ced8f252a97
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/106201
Commit-Queue: Bob Nystrom <rnystrom@google.com>
Reviewed-by: Leaf Petersen <leafp@google.com>
2019-06-19 21:15:30 +00:00
Régis Crelier 735669190e [corelib BigInt] Fix implementation of BigInt.modInverse (fixes issue #37008).
A negative result was wrongly returned as a positive value.
Since positive values are preferred, the implementation now adds the modulus
enough times to make the result positive.

Change-Id: I87a2ceb359345846740a749ab6b46b1d45e7ba21
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/103664
Reviewed-by: Lasse R.H. Nielsen <lrn@google.com>
2019-05-25 22:05:51 +00:00
Lasse R.H. Nielsen 2e9ff26527 Fix overflow bug in BigInt implementations.
Fixes #36105

Bug: http://dartbug.com/36105
Change-Id: I9adf70d11474f844d2a4fbf5fcc3754562b1cf65
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/95644
Commit-Queue: Lasse R.H. Nielsen <lrn@google.com>
Reviewed-by: Erik Ernst <eernst@google.com>
2019-03-08 16:11:08 +00:00
Régis Crelier c2a48ee065 [VM] Fix bigint left shift that could cause heap corruption when intrinsified.
The size of the result digit array was not computed correctly.
When 64-bit intrinsics are used, one extra digit pair must be allocated.

Change-Id: Id3ca3a16ef24b598e44bf25221d400b9be71248a
Reviewed-on: https://dart-review.googlesource.com/c/94683
Reviewed-by: Alexander Markov <alexmarkov@google.com>
Reviewed-by: Martin Kustermann <kustermann@google.com>
Commit-Queue: Régis Crelier <regis@google.com>
2019-03-01 18:59:10 +00:00
Daco Harkes a867487dc1 [gardening] bigint__test make multi test and skip slow subtests on dartkb
Change-Id: I0684d4ab5e6c477a0f956c6dc5c290509d53a430
Reviewed-on: https://dart-review.googlesource.com/c/81366
Reviewed-by: Martin Kustermann <kustermann@google.com>
Commit-Queue: Daco Harkes <dacoharkes@google.com>
2018-10-25 10:12:12 +00:00
Régis Crelier ea96922935 [Tests] Adjust iteration number and optimization threshold for slow bigint test.
Change-Id: Ibf3cf39f252e251de9998269c2101389446f1d8c
Reviewed-on: https://dart-review.googlesource.com/59901
Reviewed-by: Régis Crelier <regis@google.com>
Commit-Queue: Régis Crelier <regis@google.com>
2018-06-12 16:25:37 +00:00
Régis Crelier 87a46b8bee [VM Bigint] Fix _convert() of classic reduction for negative Bigint (fixes #33405).
Add regression test in existing bigint test.


Change-Id: I3dd0cc24ef19531dd16c89b4565f687a7b2b46bd
Reviewed-on: https://dart-review.googlesource.com/59820
Reviewed-by: Alexander Markov <alexmarkov@google.com>
Commit-Queue: Régis Crelier <regis@google.com>
2018-06-12 15:12:00 +00:00
Régis Crelier 4d271519a1 [VM Bigint] Fix arm64 intrinsic for _estimateQuotientDigit (loop missing jump back).
Add regression test.
Fix arm64 disassembler (was printing "unknow" instructions).
Make decoding stricter in arm64 simulator.
This fix addresses https://github.com/a14n/dart-rational/issues/19

Change-Id: I1b2ccb4bd560b588d0c4860c904cc398fba9014f
Reviewed-on: https://dart-review.googlesource.com/56740
Reviewed-by: Siva Annamalai <asiva@google.com>
Commit-Queue: Régis Crelier <regis@google.com>
2018-05-26 01:19:03 +00:00
Régis Crelier e62dd0157e [VM bigint] Fix padding length in Montgomery Reduction (fixes #32626).
Add regression test to existing bigint test.

Change-Id: I9e470c4002c25493285ce6bb908375ff913a4e17
Reviewed-on: https://dart-review.googlesource.com/54070
Reviewed-by: Alexander Markov <alexmarkov@google.com>
2018-05-07 21:38:30 +00:00
Régis Crelier d52a0419f6 [VM bigint] Fix digit array size calculation for _divRem result (fixes #32739).
Add regression test to existing bigint test.

Change-Id: I35bc1d4e3c58b078f689b1fc63f97fa0b39f483d
Reviewed-on: https://dart-review.googlesource.com/50801
Reviewed-by: Alexander Markov <alexmarkov@google.com>
2018-04-11 23:27:51 +00:00
Régis Crelier f2806ab624 [Corelib, VM runtime] Fix handling of zero operand in Bigint operations (fixes #32465).
Fix VM, dart2js, and dcc Bigint implementations.
Add shift tests.
Re-enable Bigint intrinsics on VM.

Change-Id: Iec19eac8069cf17783a5346289ea2745ffcc7c26
Reviewed-on: https://dart-review.googlesource.com/46570
Reviewed-by: Florian Loitsch <floitsch@google.com>
Reviewed-by: Alexander Markov <alexmarkov@google.com>
2018-03-21 21:44:10 +00:00
Régis Crelier 4c9a842d61 [corelib] Cleanup isValidInt and toInt() in new BigInt implementation.
Change-Id: I1f107d4f6e26ea3644bc6c9f7cff5ee6fac43958
Reviewed-on: https://dart-review.googlesource.com/40512
Reviewed-by: Stephen Adams <sra@google.com>
Commit-Queue: Régis Crelier <regis@google.com>
2018-02-14 03:43:52 +00:00
Florian Loitsch 11eda99413 Allow different kind of errors when the bigint would be too large.
Fixes #31661.

Bug: http://dartbug.com/31661
Change-Id: I3ea4ac51f84e50f63e8fdee1364637b91a6ef610
Reviewed-on: https://dart-review.googlesource.com/29800
Reviewed-by: Florian Loitsch <floitsch@google.com>
2017-12-15 10:38:39 +00:00
Florian Loitsch 1a61b425d1 Reland BigInt class.
Moved `parseRadix` into a separate test where it doesn't do 10 iterations.
This reverts commit ab4061471b.

Change-Id: Ie48216c2f4f077dc86f915a54021c39706c432e8
Reviewed-on: https://dart-review.googlesource.com/29593
Reviewed-by: Florian Loitsch <floitsch@google.com>
Commit-Queue: Florian Loitsch <floitsch@google.com>
2017-12-14 15:44:15 +00:00
pq ab4061471b Revert "Add BigInt class." [TBR].
This reverts commit f189bb57a4.

Bug:
Change-Id: I7b1cc4ab69adb5142ff7b5abd563d3bf7371ebb9
Reviewed-on: https://dart-review.googlesource.com/29442
Reviewed-by: Phil Quitslund <pquitslund@google.com>
2017-12-13 21:12:02 +00:00
Florian Loitsch f189bb57a4 Add BigInt class.
Change-Id: I6e7fed3913cdb8e69ea15f0c69e060cccd91a356
Reviewed-on: https://dart-review.googlesource.com/9820
Commit-Queue: Florian Loitsch <floitsch@google.com>
Reviewed-by: Régis Crelier <regis@google.com>
2017-12-13 18:23:51 +00:00