Commit 03836095 authored by Yury Delendik's avatar Yury Delendik
Browse files

Bug 1694191 - Improve codegen for extractLaneIntXXX. r=lth

Use movq for extractLaneInt64x2 and lane=0.

Differential Revision: https://phabricator.services.mozilla.com/D123992
parent 5449000e
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
@@ -899,8 +899,12 @@ void MacroAssembler::anyTrueSimd128(FloatRegister src, Register dest) {

void MacroAssembler::extractLaneInt64x2(uint32_t lane, FloatRegister src,
                                        Register64 dest) {
  if (lane == 0) {
    vmovq(src, dest.reg);
  } else {
    vpextrq(lane, src, dest.reg);
  }
}

// Replace lane value

+5 −1
Original line number Diff line number Diff line
@@ -1137,7 +1137,11 @@ void MacroAssembler::anyTrueSimd128(FloatRegister src, Register dest) {

void MacroAssembler::extractLaneInt64x2(uint32_t lane, FloatRegister src,
                                        Register64 dest) {
  if (lane == 0) {
    vmovd(src, dest.low);
  } else {
    vpextrd(2 * lane, src, dest.low);
  }
  vpextrd(2 * lane + 1, src, dest.high);
}