Exemplo n.º 1
0
void Vgen::emit(const copy2& i) {
    MovePlan moves;
    Reg64 d0 = i.d0, d1 = i.d1, s0 = i.s0, s1 = i.s1;
    moves[d0] = s0;
    moves[d1] = s1;
    auto howTo = doRegMoves(moves, rAsm); // rAsm isn't used.
    for (auto& how : howTo) {
        if (how.m_kind == MoveInfo::Kind::Move) {
            a->Mov(X(how.m_dst), X(how.m_src));
        } else {
            auto const d = X(how.m_dst);
            auto const s = X(how.m_src);
            a->Eor(d, d, s);
            a->Eor(s, d, s);
            a->Eor(d, d, s);
        }
    }
}