summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJulien Brianceau <jbriance@cisco.com>2014-06-10 09:42:31 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2014-06-10 10:12:53 +0200
commitb6ddb5fe5d3f2223d524e45bf5cdbdde0e5b241f (patch)
tree8420703b518c3101d9979224d996d583d5469ad0
parent37b5139f0dda69158875307bb9f806c3809b80ff (diff)
[mips] Add floating point absolute support in JavaScriptCore.
Change-Id: I8b03fb0380fa444a6da239d8ddb19bdbe6b3d061 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com>
-rw-r--r--Source/JavaScriptCore/assembler/MIPSAssembler.h5
-rw-r--r--Source/JavaScriptCore/assembler/MacroAssemblerMIPS.h14
2 files changed, 16 insertions, 3 deletions
diff --git a/Source/JavaScriptCore/assembler/MIPSAssembler.h b/Source/JavaScriptCore/assembler/MIPSAssembler.h
index 5f7b9b21a..03ef23ba7 100644
--- a/Source/JavaScriptCore/assembler/MIPSAssembler.h
+++ b/Source/JavaScriptCore/assembler/MIPSAssembler.h
@@ -529,6 +529,11 @@ public:
emitInst(0x46200004 | (fd << OP_SH_FD) | (fs << OP_SH_FS));
}
+ void absd(FPRegisterID fd, FPRegisterID fs)
+ {
+ emitInst(0x46200005 | (fd << OP_SH_FD) | (fs << OP_SH_FS));
+ }
+
void movd(FPRegisterID fd, FPRegisterID fs)
{
emitInst(0x46200006 | (fd << OP_SH_FD) | (fs << OP_SH_FS));
diff --git a/Source/JavaScriptCore/assembler/MacroAssemblerMIPS.h b/Source/JavaScriptCore/assembler/MacroAssemblerMIPS.h
index 8f96517ca..669021965 100644
--- a/Source/JavaScriptCore/assembler/MacroAssemblerMIPS.h
+++ b/Source/JavaScriptCore/assembler/MacroAssemblerMIPS.h
@@ -621,9 +621,9 @@ public:
m_assembler.sqrtd(dst, src);
}
- void absDouble(FPRegisterID, FPRegisterID)
+ void absDouble(FPRegisterID src, FPRegisterID dst)
{
- RELEASE_ASSERT_NOT_REACHED();
+ m_assembler.absd(dst, src);
}
ConvertibleLoadLabel convertibleLoadPtr(Address address, RegisterID dest)
@@ -1188,7 +1188,15 @@ public:
return false;
#endif
}
- static bool supportsFloatingPointAbs() { return false; }
+
+ static bool supportsFloatingPointAbs()
+ {
+#if WTF_MIPS_DOUBLE_FLOAT
+ return true;
+#else
+ return false;
+#endif
+ }
// Stack manipulation operations:
//