summaryrefslogtreecommitdiff
path: root/Source/JavaScriptCore/assembler/MacroAssemblerSH4.h
diff options
context:
space:
mode:
authorFrederik Gladhorn <frederik.gladhorn@theqtcompany.com>2014-10-20 19:19:56 +0200
committerFrederik Gladhorn <frederik.gladhorn@theqtcompany.com>2014-10-20 20:29:12 +0200
commit7a7433bfa61e80b91d1e9e7cf4b44ee8fdc431a0 (patch)
tree2ca7eb63ddb38472305f41e8e5b81c89cd20b9f0 /Source/JavaScriptCore/assembler/MacroAssemblerSH4.h
parentee21e513f3ed68af68e529b43c8fda94dfcc49ff (diff)
parent7778f881ff7dc92fca44dd414b02e7345f8db930 (diff)
downloadqtwebkit-7a7433bfa61e80b91d1e9e7cf4b44ee8fdc431a0.tar.gz
Merge remote-tracking branch 'origin/5.4' into dev
Conflicts: Tools/qmake/mkspecs/features/configure.prf Change-Id: I3a704585aaa8bbf4ba4e249248195b9271890981
Diffstat (limited to 'Source/JavaScriptCore/assembler/MacroAssemblerSH4.h')
-rw-r--r--Source/JavaScriptCore/assembler/MacroAssemblerSH4.h23
1 files changed, 23 insertions, 0 deletions
diff --git a/Source/JavaScriptCore/assembler/MacroAssemblerSH4.h b/Source/JavaScriptCore/assembler/MacroAssemblerSH4.h
index 16e604b00..a65614b92 100644
--- a/Source/JavaScriptCore/assembler/MacroAssemblerSH4.h
+++ b/Source/JavaScriptCore/assembler/MacroAssemblerSH4.h
@@ -2080,6 +2080,29 @@ public:
return result ? branchTrue() : branchFalse();
}
+ Jump branchAdd32(ResultCondition cond, Address src, RegisterID dest)
+ {
+ ASSERT((cond == Overflow) || (cond == Signed) || (cond == PositiveOrZero) || (cond == Zero) || (cond == NonZero));
+
+ if (cond == Overflow) {
+ RegisterID srcVal = claimScratch();
+ load32(src, srcVal);
+ m_assembler.addvlRegReg(srcVal, dest);
+ releaseScratch(srcVal);
+ return branchTrue();
+ }
+
+ add32(src, dest);
+
+ if ((cond == Signed) || (cond == PositiveOrZero)) {
+ m_assembler.cmppz(dest);
+ return (cond == Signed) ? branchFalse() : branchTrue();
+ }
+
+ compare32(0, dest, Equal);
+ return (cond == NonZero) ? branchFalse() : branchTrue();
+ }
+
Jump branchMul32(ResultCondition cond, RegisterID src, RegisterID dest)
{
ASSERT((cond == Overflow) || (cond == Signed) || (cond == Zero) || (cond == NonZero));