Bug 986981 - SpiderMonkey: Rename movsxd to movslq and prepare it for use r=bbouvier

This commit is contained in:
Dan Gohman 2015-02-12 08:37:00 -08:00
parent fba32c62fa
commit 1544f02097
2 changed files with 28 additions and 2 deletions

View File

@ -1892,11 +1892,21 @@ public:
m_formatter.immediate64(imm);
}
void movsxd_rr(RegisterID src, RegisterID dst)
void movslq_rr(RegisterID src, RegisterID dst)
{
spew("movsxd %s, %s", GPReg32Name(src), GPReg64Name(dst));
spew("movslq %s, %s", GPReg32Name(src), GPReg64Name(dst));
m_formatter.oneByteOp64(OP_MOVSXD_GvEv, src, dst);
}
void movslq_mr(int32_t offset, RegisterID base, RegisterID dst)
{
spew("movslq " MEM_ob ", %s", ADDR_ob(offset, base), GPReg64Name(dst));
m_formatter.oneByteOp64(OP_MOVSXD_GvEv, offset, base, dst);
}
void movslq_mr(int32_t offset, RegisterID base, RegisterID index, int scale, RegisterID dst)
{
spew("movslq " MEM_obs ", %s", ADDR_obs(offset, base, index, scale), GPReg64Name(dst));
m_formatter.oneByteOp64(OP_MOVSXD_GvEv, offset, base, index, scale, dst);
}
MOZ_WARN_UNUSED_RESULT JmpSrc
movl_ripr(RegisterID dst)

View File

@ -412,6 +412,22 @@ class Assembler : public AssemblerX86Shared
masm.xchgq_rr(src.code(), dest.code());
}
void movslq(Register src, Register dest) {
masm.movslq_rr(src.code(), dest.code());
}
void movslq(const Operand &src, Register dest) {
switch (src.kind()) {
case Operand::MEM_REG_DISP:
masm.movslq_mr(src.disp(), src.base(), dest.code());
break;
case Operand::MEM_SCALE:
masm.movslq_mr(src.disp(), src.base(), src.index(), src.scale(), dest.code());
break;
default:
MOZ_CRASH("unexpected operand kind");
}
}
void andq(Register src, Register dest) {
masm.andq_rr(src.code(), dest.code());
}