reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

References

lib/Target/Hexagon/HexagonBitTracker.cpp
  325       return rr0(eIMM(im(1), W0), Outputs);
  327       return rr0(RegisterCell(W0).fill(0, W0, BT::BitValue::Zero), Outputs);
  327       return rr0(RegisterCell(W0).fill(0, W0, BT::BitValue::Zero), Outputs);
  329       return rr0(RegisterCell(W0).fill(0, W0, BT::BitValue::One), Outputs);
  329       return rr0(RegisterCell(W0).fill(0, W0, BT::BitValue::One), Outputs);
  335       RegisterCell RC = RegisterCell::self(Reg[0].Reg, W0);
  347       uint16_t RW = W0;
  356       uint16_t RW = W0;
  372       assert(W0 == 64 && W1 == 32);
  373       RegisterCell CW = RegisterCell(W0).insert(rc(1), BT::BitMask(0, W1-1));
  381       return rr0(eADD(rc(1), eIMM(im(2), W0)), Outputs);
  383       RegisterCell RC = eADD(eIMM(im(1), W0), eASL(rc(2), im(3)));
  387       RegisterCell RC = eADD(eIMM(im(1), W0), eLSR(rc(2), im(3)));
  391       RegisterCell RC = eADD(rc(1), eADD(rc(2), eIMM(im(3), W0)));
  395       RegisterCell M = eMLS(rc(2), eIMM(im(3), W0));
  396       RegisterCell RC = eADD(eIMM(im(1), W0), lo(M, W0));
  396       RegisterCell RC = eADD(eIMM(im(1), W0), lo(M, W0));
  401       RegisterCell RC = eADD(eIMM(im(1), W0), lo(M, W0));
  401       RegisterCell RC = eADD(eIMM(im(1), W0), lo(M, W0));
  405       RegisterCell M = eMLS(eIMM(im(2), W0), rc(3));
  406       RegisterCell RC = eADD(rc(1), lo(M, W0));
  410       RegisterCell M = eMLS(rc(2), eIMM(im(3), W0));
  411       RegisterCell RC = eADD(rc(1), lo(M, W0));
  416       RegisterCell RC = eADD(rc(1), lo(M, W0));
  420       RegisterCell RC = eADD(rc(1), eSUB(eIMM(im(2), W0), rc(3)));
  424       RegisterCell RC = eADD(rc(1), eADD(rc(2), eIMM(im(3), W0)));
  440       RegisterCell RPC = RegisterCell::self(Reg[0].Reg, W0);
  442       return rr0(eADD(RPC, eIMM(im(2), W0)), Outputs);
  448       return rr0(eSUB(eIMM(im(1), W0), rc(2)), Outputs);
  450       RegisterCell RC = eSUB(eIMM(im(1), W0), eASL(rc(2), im(3)));
  454       RegisterCell RC = eSUB(eIMM(im(1), W0), eLSR(rc(2), im(3)));
  458       RegisterCell RC = eSUB(rc(1), eADD(rc(2), eIMM(im(3), W0)));
  467       return rr0(eSUB(eIMM(0, W0), rc(1)), Outputs);
  471       return rr0(hi(M, W0), Outputs);
  481       return rr0(lo(M, W0), Outputs);
  484       RegisterCell M = eMLS(rc(2), eIMM(im(3), W0));
  485       RegisterCell RC = eADD(rc(1), lo(M, W0));
  489       RegisterCell M = eMLS(rc(2), eIMM(im(3), W0));
  490       RegisterCell RC = eSUB(rc(1), lo(M, W0));
  495       RegisterCell RC = eADD(rc(1), lo(M, W0));
  499       RegisterCell M = eMLS(rc(1), eIMM(im(2), W0));
  503       RegisterCell M = eMLS(rc(1), eIMM(-im(2), W0));
  507       RegisterCell M = eMLS(rc(1), eIMM(im(2), W0));
  512       return rr0(hi(M, W0), Outputs);
  525       return rr0(eAND(rc(1), eIMM(im(2), W0)), Outputs);
  533       RegisterCell RC = eAND(eIMM(im(1), W0), eASL(rc(2), im(3)));
  537       RegisterCell RC = eAND(eIMM(im(1), W0), eLSR(rc(2), im(3)));
  549       return rr0(eORL(rc(1), eIMM(im(2), W0)), Outputs);
  557       RegisterCell RC = eORL(eIMM(im(1), W0), eASL(rc(2), im(3)));
  561       RegisterCell RC = eORL(eIMM(im(1), W0), eLSR(rc(2), im(3)));
  570       RegisterCell RC = eORL(rc(1), eAND(rc(2), eIMM(im(3), W0)));
  574       RegisterCell RC = eORL(rc(1), eORL(rc(2), eIMM(im(3), W0)));
  641       assert(W0 == 32);
  642       RegisterCell XC = eSXT(rc(1).cat(eIMM(0, W0)), W0);
  642       RegisterCell XC = eSXT(rc(1).cat(eIMM(0, W0)), W0);
  643       RegisterCell RC = eASR(eADD(eASR(XC, im(2)), eIMM(1, 2*W0)), 1);
  644       return rr0(eXTR(RC, 0, W0), Outputs);
  651       RegisterCell XC = eSXT(rc(1).cat(eIMM(0, W0)), W0);
  651       RegisterCell XC = eSXT(rc(1).cat(eIMM(0, W0)), W0);
  652       RegisterCell RC = eLSR(eADD(eASR(XC, S-1), eIMM(1, 2*W0)), 1);
  653       return rr0(eXTR(RC, 0, W0), Outputs);
  704       RegisterCell RZ = RegisterCell(W0).fill(BX, W1, Zero)
  705                                         .fill(W1+(W1-BX), W0, Zero);
  715       assert(Wd <= W0);
  717         return rr0(eIMM(0, W0), Outputs);
  720       RegisterCell Pad = (Wd+Of > W0) ? rc(1).cat(eIMM(0, Wd+Of-W0)) : rc(1);
  720       RegisterCell Pad = (Wd+Of > W0) ? rc(1).cat(eIMM(0, Wd+Of-W0)) : rc(1);
  723       RegisterCell RC = RegisterCell(W0).insert(Ext, BT::BitMask(0, Wd-1));
  731       assert(Wd < W0 && Of < W0);
  731       assert(Wd < W0 && Of < W0);
  733       if (Wd+Of > W0)
  734         Wd = W0-Of;
  748       assert(W0 % 2 == 0);
  749       return rr0(cop(2, W0/2).cat(cop(1, W0/2)), Outputs);
  749       return rr0(cop(2, W0/2).cat(cop(1, W0/2)), Outputs);
  754       assert(W0 == 32);
  766       assert(W0 == 64);
  791       uint16_t WR = W0;
  811       RegisterCell R2 = cop(2, W0);
  812       RegisterCell R3 = cop(3, W0);
  830       assert(W0 == 64 && W1 == 32);
  842       return rr0(eSXT(RegisterCell::self(0, W0).regify(Reg0), 8), Outputs);
  844       return rr0(eSXT(RegisterCell::self(0, W0).regify(Reg0), 16), Outputs);
  846       return rr0(eZXT(RegisterCell::self(0, W0).regify(Reg0), 8), Outputs);
  848       return rr0(eZXT(RegisterCell::self(0, W0).regify(Reg0), 16), Outputs);
  891       RegisterCell RC(W0);
  892       RC.fill(0, W0, (All1 ? BT::BitValue::One : BT::BitValue::Zero));
  908       RegisterCell RC(W0);
  909       RC.fill(0, W0, (Has1 ? BT::BitValue::One : BT::BitValue::Zero));
  955         return rr0(RegisterCell(W0).fill(0, W0, F), Outputs);
  955         return rr0(RegisterCell(W0).fill(0, W0, F), Outputs);