Files
sdk/runtime/tests
Alexander Markov 97369d0903 [vm/compiler] Correct representation of shift rhs and speculative mode of BinaryUint32OpInstr
Speculative and non-speculative shift instructions have different
representations of RHS input, so canonicalization of multiplication
into a shift should account for that.

Also, mark BinaryUint32Op instruction as always non-speculative -
it never needs to speculate  as it is inserted by range analysis
after it can prove that it is valid to perform Uint32 op.
This prevents insertion of a speculative shift instruction in AOT
when BinaryUint32Op multiplication is canonicalized.

Fixes https://github.com/dart-lang/sdk/issues/55003
TEST=vm/dart/regress_55003_test

Change-Id: Ib1805ce2dc0e6f514e6f3b4a09be08808e75048b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/355820
Reviewed-by: Slava Egorov <vegorov@google.com>
Commit-Queue: Alexander Markov <alexmarkov@google.com>
2024-03-08 15:35:20 +00:00
..