imul2 function

int imul2(
  1. int a,
  2. int b
)

An alternate implementation of imul

Appears to perform considerably better in AOT binaries.

Implementation

@pragma('vm:prefer-inline')
int imul2(int a, int b) {
  var result = (a & 0x003fffff) * b;
  if (a & 0xffc00000 != 0) result += (a & 0xffc00000) * b | 0;
  return result.toSigned(32);
}