summaryrefslogtreecommitdiffstats
path: root/js/src/jit/MoveResolver.h
diff options
context:
space:
mode:
authorwolfbeast <mcwerewolf@gmail.com>2018-02-05 16:36:15 +0100
committerwolfbeast <mcwerewolf@gmail.com>2018-02-05 16:36:15 +0100
commit6f0f1f85ebf218aef8839e17442dbaf15460be4f (patch)
tree92ef251a0b090d2d1ede09c6cf47b3e4a43ce3c8 /js/src/jit/MoveResolver.h
parenta54e46aeb5497ec0c54ec453e6e0b22b2b54792b (diff)
downloadUXP-6f0f1f85ebf218aef8839e17442dbaf15460be4f.tar
UXP-6f0f1f85ebf218aef8839e17442dbaf15460be4f.tar.gz
UXP-6f0f1f85ebf218aef8839e17442dbaf15460be4f.tar.lz
UXP-6f0f1f85ebf218aef8839e17442dbaf15460be4f.tar.xz
UXP-6f0f1f85ebf218aef8839e17442dbaf15460be4f.zip
Split double MoveOperands that conflict with floats.
Diffstat (limited to 'js/src/jit/MoveResolver.h')
-rw-r--r--js/src/jit/MoveResolver.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/js/src/jit/MoveResolver.h b/js/src/jit/MoveResolver.h
index fad2ba9e3..db045cfcf 100644
--- a/js/src/jit/MoveResolver.h
+++ b/js/src/jit/MoveResolver.h
@@ -252,6 +252,13 @@ class MoveOp
bool aliases(const MoveOp& other) const {
return aliases(other.from()) || aliases(other.to());
}
+#ifdef JS_CODEGEN_ARM
+ void overwrite(MoveOperand& from, MoveOperand& to, Type type) {
+ from_ = from;
+ to_ = to;
+ type_ = type;
+ }
+#endif
};
class MoveResolver
@@ -299,6 +306,10 @@ class MoveResolver
// Internal reset function. Does not clear lists.
void resetState();
+#ifdef JS_CODEGEN_ARM
+ bool isDoubleAliasedAsSingle(const MoveOperand& move);
+#endif
+
public:
MoveResolver();