compiler/arm/arith: Fix up bidirectional inline ASH VOPs.
commitc84fbe09dbdaacd7d307a57756987b4d3c77dd9c
authorAlastair Bridgewater <nyef@kana.lisphacker.com>
Sat, 19 Apr 2014 21:34:20 +0000 (19 17:34 -0400)
committerAlastair Bridgewater <nyef@kana.lisphacker.com>
Sat, 10 May 2014 19:12:19 +0000 (10 15:12 -0400)
tree260410005289db0f67ea90fa36fb0ec3a5a75338
parent9f89ee2372c245f7ca1f24ca2dd83a9f02e85eb5
compiler/arm/arith: Fix up bidirectional inline ASH VOPs.

  * First off, use RSB from 0 instead of zeroing a register and
using SUB.

  * Second, use predicated code instead of branches.

  * Third, FAST-ASH/SIGNED=>SIGNED used the wrong register for the
shift count in one instance.
src/compiler/arm/arith.lisp