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
Kevin Moore
bc03bd3805
Cleanup unused vars in VM patch files
...
Change-Id: Ibc548921113d979df5b0ed8eb7f6ad48a553fc86
Reviewed-on: https://dart-review.googlesource.com/c/84121
Commit-Queue: Kevin Moore <kevmoo@google.com >
Reviewed-by: Lasse R.H. Nielsen <lrn@google.com >
2018-11-13 22:56:54 +00:00
G?nter Z?chbauer
2da0b9f4f1
fix some typos
...
Closes #34738
https://github.com/dart-lang/sdk/pull/34738
GitOrigin-RevId: d211bbacfe65355cf7304c990ffb6c79d7a229cf
Change-Id: If690e6d378e543b300e1f6a353ceae73e39c29db
Reviewed-on: https://dart-review.googlesource.com/c/78900
Reviewed-by: Alexander Thomas <athom@google.com >
2018-10-10 19:15:30 +00:00
Samir Jindel
cbd17b535f
Re-land "[vm/precomp] Use @pragma("vm:exact-result-type") to specify method behavior."
...
We need to block interrupts while evaluating pragmas to prevert reentrant class finalization.
Original revision is in patchset 0.
Change-Id: I872cec4eaf4ca85567c9657c458ed39c8b2e30de
Cq-Include-Trybots: luci.dart.try:vm-kernel-win-release-x64-try, vm-kernel-optcounter-threshold-linux-release-x64-try, vm-kernel-precomp-linux-debug-x64-try, vm-kernel-precomp-linux-release-simarm-try, vm-kernel-precomp-linux-release-simarm64-try, vm-kernel-precomp-linux-release-x64-try, vm-kernel-precomp-win-release-x64-try
Reviewed-on: https://dart-review.googlesource.com/73160
Commit-Queue: Samir Jindel <sjindel@google.com >
Reviewed-by: Vyacheslav Egorov <vegorov@google.com >
2018-09-11 18:14:51 +00:00
Samir Jindel
f8575698af
Revert "[vm/precomp] Use @pragma("vm:exact-result-type") to specify method behavior."
...
This reverts commit ade6742ee9 .
Reason for revert: Some service tests are broken.
Original change's description:
> [vm/precomp] Use @pragma("vm:exact-result-type") to specify method behavior.
>
> Cq-Include-Trybots: luci.dart.try:vm-kernel-win-release-x64-try,vm-kernel-optcounter-threshold-linux-release-x64-try,vm-kernel-precomp-linux-debug-x64-try,vm-kernel-precomp-linux-release-simarm-try,vm-kernel-precomp-linux-release-simarm64-try,vm-kernel-precomp-linux-release-x64-try,vm-kernel-precomp-win-release-x64-try
> Change-Id: I6eeafeea734efb2e876c5e03f12092b5229ad2bc
> Reviewed-on: https://dart-review.googlesource.com/70284
> Commit-Queue: Samir Jindel <sjindel@google.com >
> Reviewed-by: Alexander Markov <alexmarkov@google.com >
TBR=vegorov@google.com ,alexmarkov@google.com ,sjindel@google.com
Change-Id: If95f68704737b1da7553c68eb4e22a4c554d3a4b
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Cq-Include-Trybots: luci.dart.try:vm-kernel-win-release-x64-try, vm-kernel-optcounter-threshold-linux-release-x64-try, vm-kernel-precomp-linux-debug-x64-try, vm-kernel-precomp-linux-release-simarm-try, vm-kernel-precomp-linux-release-simarm64-try, vm-kernel-precomp-linux-release-x64-try, vm-kernel-precomp-win-release-x64-try
Reviewed-on: https://dart-review.googlesource.com/72200
Reviewed-by: Samir Jindel <sjindel@google.com >
Commit-Queue: Samir Jindel <sjindel@google.com >
2018-08-30 19:02:45 +00:00
Samir Jindel
ade6742ee9
[vm/precomp] Use @pragma("vm:exact-result-type") to specify method behavior.
...
Cq-Include-Trybots: luci.dart.try:vm-kernel-win-release-x64-try,vm-kernel-optcounter-threshold-linux-release-x64-try,vm-kernel-precomp-linux-debug-x64-try,vm-kernel-precomp-linux-release-simarm-try,vm-kernel-precomp-linux-release-simarm64-try,vm-kernel-precomp-linux-release-x64-try,vm-kernel-precomp-win-release-x64-try
Change-Id: I6eeafeea734efb2e876c5e03f12092b5229ad2bc
Reviewed-on: https://dart-review.googlesource.com/70284
Commit-Queue: Samir Jindel <sjindel@google.com >
Reviewed-by: Alexander Markov <alexmarkov@google.com >
2018-08-30 15:30:40 +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
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
Lasse R.H. Nielsen
973a1a0219
Remove uses of upper-case constants in remaining SDK code.
...
This includes Fasta, tools and observatory, so the checked-in SDK must
have the lower-case constants.
Change-Id: I8380ad041ad058f7d02ae19caccfecd434d13d75
Reviewed-on: https://dart-review.googlesource.com/50201
Commit-Queue: Lasse R.H. Nielsen <lrn@google.com >
Reviewed-by: Leaf Petersen <leafp@google.com >
2018-04-16 16:11:57 +00:00
Lasse R.H. Nielsen
7cc4d76a30
Add tryParse alternatives to parseFunctions.
...
Deprecate `onError` arguments to parse methods.
Change-Id: Iac1d87416abc8a73ce1853edffab49df8a8cb5fe
Reviewed-on: https://dart-review.googlesource.com/50723
Commit-Queue: Lasse R.H. Nielsen <lrn@google.com >
Reviewed-by: Samuel Rawlins <srawlins@google.com >
Reviewed-by: Leaf Petersen <leafp@google.com >
2018-04-12 13:16:49 +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
Lasse Reichstein Holst Nielsen
a81bc639b5
Fix bug in BigInt.from with certain double values.
...
Add test.
Change-Id: I385f7237e1b3d004b4401e18a82919b15d097181
Reviewed-on: https://dart-review.googlesource.com/46460
Commit-Queue: Lasse R.H. Nielsen <lrn@google.com >
Reviewed-by: Florian Loitsch <floitsch@google.com >
2018-03-19 17:46:35 +00:00
Régis Crelier
b766ec170c
[VM runtime] Optimize new Bigint implementation for digit pair processing on 64-bit platforms.
...
Added Montgomery reduction in new Bigint implementation to support faster crypto (modPow).
Change-Id: Ic6872c9809485db27d0175c1d1f348232250b682
Reviewed-on: https://dart-review.googlesource.com/43300
Reviewed-by: Alexander Markov <alexmarkov@google.com >
Commit-Queue: Régis Crelier <regis@google.com >
2018-02-28 00:52:57 +00:00
Régis Crelier
ba75b6939d
[VM] Increase BigInt digit size from 16 to 32 bits.
...
Change-Id: I60e7e34559d11d80fde7955dec98b21b7029e199
Reviewed-on: https://dart-review.googlesource.com/40962
Commit-Queue: Régis Crelier <regis@google.com >
Reviewed-by: Alexander Markov <alexmarkov@google.com >
2018-02-14 00:41:01 +00:00
Dmitry Stefantsov
47fbe76d03
Avoid patching with redirecting factories in vm-related patches
...
Change-Id: Id45696a38b281b1b75a9a0e26d89216388a4ec19
Reviewed-on: https://dart-review.googlesource.com/39942
Commit-Queue: Dmitry Stefantsov <dmitryas@google.com >
Reviewed-by: Vyacheslav Egorov <vegorov@google.com >
2018-02-08 14:11:50 +00:00
Régis Crelier
25d7d355db
Provide distinct BigInt implementation classes in VM, dart2js, and dartdevc.
...
The classes are still identical, but will diverge as the VM will provide an
optimized version.
Change-Id: I8397fd927b89fa745ac7aa4b8d98e562140f731b
Reviewed-on: https://dart-review.googlesource.com/35521
Commit-Queue: Régis Crelier <regis@google.com >
Reviewed-by: Jenny Messerly <jmesserly@google.com >
2018-01-29 18:12:34 +00:00