Bug 930993: In out of line truncate, restore registers in the correct order; r=jandem

This commit is contained in:
Benjamin Bouvier 2013-10-28 19:46:22 +01:00
parent fcf90538ed
commit 815e367091
2 changed files with 8 additions and 2 deletions

View File

@ -0,0 +1,6 @@
x = {};
y = x;
x.toString = function() {
Int8Array(ArrayBuffer)[0] = Float32Array(ArrayBuffer)[0];
}
print(x << y);

View File

@ -752,11 +752,11 @@ CodeGeneratorShared::visitOutOfLineTruncateSlow(OutOfLineTruncateSlow *ool)
masm.callWithABI(JS_FUNC_TO_DATA_PTR(void *, js::ToInt32));
masm.storeCallResult(dest);
restoreVolatile(dest);
if (ool->needFloat32Conversion())
masm.pop(src);
restoreVolatile(dest);
masm.jump(ool->rejoin());
return true;
}