Bug 1279898: IonMonkey - Don't run TI alias analysis on typed objects/arrays, r=jandem

This commit is contained in:
Hannes Verschore 2016-06-21 13:52:11 +02:00
Родитель 05a65c74c5
Коммит 687ffc4da6
2 изменённых файлов: 24 добавлений и 3 удалений

Просмотреть файл

@ -0,0 +1,19 @@
function f() {
var i32 = new Int32Array(1);
var f32 = new Float32Array(i32.buffer);
for (var i = 0; i < 3; i++) {
var a0 = +1;
var a3 = +4;
i32[0] = a0;
var b0 = f32[0];
i32[0] = a3;
var b3 = f32[0];
assertEq(b0 != b3, true);
}
}
f();

Просмотреть файл

@ -47,13 +47,15 @@ static inline const MDefinition*
MaybeUnwrap(const MDefinition* object)
{
while (object->isSlots() || object->isElements() || object->isConvertElementsToDoubles() ||
object->isTypedArrayElements() || object->isTypedObjectElements())
{
while (object->isSlots() || object->isElements() || object->isConvertElementsToDoubles()) {
MOZ_ASSERT(object->numOperands() == 1);
object = object->getOperand(0);
}
if (object->isTypedArrayElements())
return nullptr;
if (object->isTypedObjectElements())
return nullptr;
if (object->isConstantElements())
return nullptr;