aboutsummaryrefslogtreecommitdiff
path: root/src/parseTools.js
diff options
context:
space:
mode:
authorBrian Anderson <banderson@mozilla.com>2012-04-08 20:30:43 -0700
committerBrian Anderson <banderson@mozilla.com>2012-04-09 14:40:45 -0700
commita288f14b9cf26224ad3a1bc51f61ad02a76edeb4 (patch)
tree2bdc5fd87d7d80fe4e4b66fc4a02b5183f77446a /src/parseTools.js
parent1e5ce6cb081d93efc761b1f70b0d0a43e1f27ca0 (diff)
Support frem instruction
Diffstat (limited to 'src/parseTools.js')
-rw-r--r--src/parseTools.js3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/parseTools.js b/src/parseTools.js
index 22f38207..805be4b1 100644
--- a/src/parseTools.js
+++ b/src/parseTools.js
@@ -412,7 +412,7 @@ function cleanSegment(segment) {
return segment;
}
-var MATHOPS = set(['add', 'sub', 'sdiv', 'udiv', 'mul', 'icmp', 'zext', 'urem', 'srem', 'fadd', 'fsub', 'fmul', 'fdiv', 'fcmp', 'uitofp', 'sitofp', 'fpext', 'fptrunc', 'fptoui', 'fptosi', 'trunc', 'sext', 'select', 'shl', 'shr', 'ashl', 'ashr', 'lshr', 'lshl', 'xor', 'or', 'and', 'ptrtoint', 'inttoptr']);
+var MATHOPS = set(['add', 'sub', 'sdiv', 'udiv', 'mul', 'icmp', 'zext', 'urem', 'srem', 'fadd', 'fsub', 'fmul', 'fdiv', 'fcmp', 'frem', 'uitofp', 'sitofp', 'fpext', 'fptrunc', 'fptoui', 'fptosi', 'trunc', 'sext', 'select', 'shl', 'shr', 'ashl', 'ashr', 'lshr', 'lshl', 'xor', 'or', 'and', 'ptrtoint', 'inttoptr']);
var PARSABLE_LLVM_FUNCTIONS = set('getelementptr', 'bitcast');
mergeInto(PARSABLE_LLVM_FUNCTIONS, MATHOPS);
@@ -1823,6 +1823,7 @@ function processMathop(item) {
case 'fsub': return getFastValue(idents[0], '-', idents[1], item.type);
case 'fdiv': return getFastValue(idents[0], '/', idents[1], item.type);
case 'fmul': return getFastValue(idents[0], '*', idents[1], item.type);
+ case 'frem': return getFastValue(idents[0], '%', idents[1], item.type);
case 'uitofp': case 'sitofp': return idents[0];
case 'fptoui': case 'fptosi': return makeRounding(idents[0], bitsLeft, op === 'fptosi', true);