summaryrefslogtreecommitdiff
path: root/Source/JavaScriptCore/assembler/MacroAssemblerSH4.h
diff options
context:
space:
mode:
authorFrederik Gladhorn <frederik.gladhorn@theqtcompany.com>2014-10-14 14:08:44 +0200
committerFrederik Gladhorn <frederik.gladhorn@theqtcompany.com>2014-10-14 14:08:44 +0200
commit5a45e3b78724563f05d62569d8ed31adc4ffd342 (patch)
treee4da5c78062384641b6d23e6b74c038664d82417 /Source/JavaScriptCore/assembler/MacroAssemblerSH4.h
parent0b6f959022700ecf9374bdbb13772242d3f7e617 (diff)
parent946088cf515ec30de586392ec72e4658b86650a4 (diff)
downloadqtwebkit-5a45e3b78724563f05d62569d8ed31adc4ffd342.tar.gz
Merge remote-tracking branch 'origin/5.3' into 5.4
Change-Id: I509f0440296df39aece8133382aacc43a4e05f99
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));