Fix imul overflow detection logic.
commitfc727f6da257471087633096f31a5c66c3cdeb4d
authorDave Estes <cestes@qti.qualcomm.com>
Mon, 26 Sep 2016 18:19:05 +0000 (26 11:19 -0700)
committerHhvm Bot <hhvm-bot-bot@fb.com>
Mon, 26 Sep 2016 18:39:07 +0000 (26 11:39 -0700)
tree14e069e7b517233e2fc29f374c6d06b68342fcb3
parent9ba5f2283045d864d1bbe62d2df6dd5ec892bf5f
Fix imul overflow detection logic.

Summary:
When checking the results of the upper 64-bit multiply, the
previous solution only tested for all 0's, accidently missing the
all 1's case. This changes addresses that and arranges the branches
to favor fall throughs for the most likely paths.

Fixes:
  test/zend/good/tests/lang/operators/multiply_basiclong_64bit.php
Closes https://github.com/facebook/hhvm/pull/7380

Differential Revision: D3915270

Pulled By: aorenste

fbshipit-source-id: 2ce73f54845e67c4eed8f81319caddad8796a4f5
hphp/runtime/vm/jit/vasm-arm.cpp