mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-18 15:55:36 +00:00
Bug 1229057
- Part 15: Move MacroAssembler::divDouble into generic macro assembler. r=djvj
--HG-- extra : rebase_source : a209b419f8ccca02b3cc4fe1f9a7fa8e033e7f16
This commit is contained in:
parent
c2dee6abd7
commit
4ad68c7371
@ -775,6 +775,8 @@ class MacroAssembler : public MacroAssemblerSpecific
|
||||
|
||||
inline void mulDoublePtr(ImmPtr imm, Register temp, FloatRegister dest) DEFINED_ON(mips_shared, arm, arm64, x86, x64);
|
||||
|
||||
inline void divDouble(FloatRegister src, FloatRegister dest) PER_SHARED_ARCH;
|
||||
|
||||
// ===============================================================
|
||||
// Shift functions
|
||||
|
||||
|
@ -318,6 +318,12 @@ MacroAssembler::mulDoublePtr(ImmPtr imm, Register temp, FloatRegister dest)
|
||||
mulDouble(ScratchDoubleReg, dest);
|
||||
}
|
||||
|
||||
void
|
||||
MacroAssembler::divDouble(FloatRegister src, FloatRegister dest)
|
||||
{
|
||||
ma_vdiv(dest, src, dest);
|
||||
}
|
||||
|
||||
// ===============================================================
|
||||
// Shift functions
|
||||
|
||||
|
@ -246,12 +246,6 @@ MacroAssemblerARM::convertInt32ToFloat32(const Address& src, FloatRegister dest)
|
||||
as_vcvt(dest, VFPRegister(scratch).sintOverlay());
|
||||
}
|
||||
|
||||
void
|
||||
MacroAssemblerARM::divDouble(FloatRegister src, FloatRegister dest)
|
||||
{
|
||||
ma_vdiv(dest, src, dest);
|
||||
}
|
||||
|
||||
void
|
||||
MacroAssemblerARM::negateDouble(FloatRegister reg)
|
||||
{
|
||||
|
@ -97,8 +97,6 @@ class MacroAssemblerARM : public Assembler
|
||||
void convertInt32ToFloat32(Register src, FloatRegister dest);
|
||||
void convertInt32ToFloat32(const Address& src, FloatRegister dest);
|
||||
|
||||
void divDouble(FloatRegister src, FloatRegister dest);
|
||||
|
||||
void negateDouble(FloatRegister reg);
|
||||
void inc64(AbsoluteAddress dest);
|
||||
|
||||
|
@ -359,6 +359,12 @@ MacroAssembler::mulDoublePtr(ImmPtr imm, Register temp, FloatRegister dest)
|
||||
fmul(ARMFPRegister(dest, 64), ARMFPRegister(dest, 64), scratchDouble);
|
||||
}
|
||||
|
||||
void
|
||||
MacroAssembler::divDouble(FloatRegister src, FloatRegister dest)
|
||||
{
|
||||
fdiv(ARMFPRegister(dest, 64), ARMFPRegister(dest, 64), ARMFPRegister(src, 64));
|
||||
}
|
||||
|
||||
// ===============================================================
|
||||
// Shift functions
|
||||
|
||||
|
@ -1236,9 +1236,6 @@ class MacroAssemblerCompat : public vixl::MacroAssembler
|
||||
void negateFloat(FloatRegister reg) {
|
||||
fneg(ARMFPRegister(reg, 32), ARMFPRegister(reg, 32));
|
||||
}
|
||||
void divDouble(FloatRegister src, FloatRegister dest) {
|
||||
fdiv(ARMFPRegister(dest, 64), ARMFPRegister(dest, 64), ARMFPRegister(src, 64));
|
||||
}
|
||||
|
||||
void moveFloat32(FloatRegister src, FloatRegister dest) {
|
||||
fmov(ARMFPRegister(dest, 32), ARMFPRegister(src, 32));
|
||||
|
@ -173,6 +173,12 @@ MacroAssembler::mulDoublePtr(ImmPtr imm, Register temp, FloatRegister dest)
|
||||
mulDouble(ScratchDoubleReg, dest);
|
||||
}
|
||||
|
||||
void
|
||||
MacroAssembler::divDouble(FloatRegister src, FloatRegister dest)
|
||||
{
|
||||
as_divd(dest, dest, src);
|
||||
}
|
||||
|
||||
//}}} check_macroassembler_style
|
||||
// ===============================================================
|
||||
|
||||
|
@ -218,12 +218,6 @@ MacroAssemblerMIPSCompat::convertInt32ToFloat32(const Address& src, FloatRegiste
|
||||
as_cvtsw(dest, dest);
|
||||
}
|
||||
|
||||
void
|
||||
MacroAssemblerMIPSCompat::divDouble(FloatRegister src, FloatRegister dest)
|
||||
{
|
||||
as_divd(dest, dest, src);
|
||||
}
|
||||
|
||||
void
|
||||
MacroAssemblerMIPSCompat::negateDouble(FloatRegister reg)
|
||||
{
|
||||
|
@ -175,8 +175,6 @@ class MacroAssemblerMIPSCompat : public MacroAssemblerMIPS
|
||||
void convertInt32ToFloat32(Register src, FloatRegister dest);
|
||||
void convertInt32ToFloat32(const Address& src, FloatRegister dest);
|
||||
|
||||
void divDouble(FloatRegister src, FloatRegister dest);
|
||||
|
||||
void negateDouble(FloatRegister reg);
|
||||
void inc64(AbsoluteAddress dest);
|
||||
|
||||
|
@ -227,12 +227,6 @@ MacroAssemblerMIPS64Compat::convertInt32ToFloat32(const Address& src, FloatRegis
|
||||
as_cvtsw(dest, dest);
|
||||
}
|
||||
|
||||
void
|
||||
MacroAssemblerMIPS64Compat::divDouble(FloatRegister src, FloatRegister dest)
|
||||
{
|
||||
as_divd(dest, dest, src);
|
||||
}
|
||||
|
||||
void
|
||||
MacroAssemblerMIPS64Compat::negateDouble(FloatRegister reg)
|
||||
{
|
||||
|
@ -185,8 +185,6 @@ class MacroAssemblerMIPS64Compat : public MacroAssemblerMIPS64
|
||||
void convertInt32ToFloat32(Register src, FloatRegister dest);
|
||||
void convertInt32ToFloat32(const Address& src, FloatRegister dest);
|
||||
|
||||
void divDouble(FloatRegister src, FloatRegister dest);
|
||||
|
||||
void negateDouble(FloatRegister reg);
|
||||
void inc64(AbsoluteAddress dest);
|
||||
|
||||
|
@ -237,7 +237,6 @@ class MacroAssemblerNone : public Assembler
|
||||
void neg32(Register) { MOZ_CRASH(); }
|
||||
|
||||
void negateDouble(FloatRegister) { MOZ_CRASH(); }
|
||||
void divDouble(FloatRegister, FloatRegister) { MOZ_CRASH(); }
|
||||
|
||||
template <typename T, typename S> void branch32(Condition, T, S, Label*) { MOZ_CRASH(); }
|
||||
template <typename T, typename S> void branchTest32(Condition, T, S, Label*) { MOZ_CRASH(); }
|
||||
|
@ -145,6 +145,12 @@ MacroAssembler::mulDouble(FloatRegister src, FloatRegister dest)
|
||||
vmulsd(src, dest, dest);
|
||||
}
|
||||
|
||||
void
|
||||
MacroAssembler::divDouble(FloatRegister src, FloatRegister dest)
|
||||
{
|
||||
vdivsd(src, dest, dest);
|
||||
}
|
||||
|
||||
//}}} check_macroassembler_style
|
||||
// ===============================================================
|
||||
|
||||
|
@ -922,9 +922,6 @@ class MacroAssemblerX86Shared : public Assembler
|
||||
// XOR the float in a float register with -0.0.
|
||||
vxorps(scratch, reg, reg); // s ^ 0x80000000
|
||||
}
|
||||
void divDouble(FloatRegister src, FloatRegister dest) {
|
||||
vdivsd(src, dest, dest);
|
||||
}
|
||||
void convertFloat32ToDouble(FloatRegister src, FloatRegister dest) {
|
||||
vcvtss2sd(src, dest, dest);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user