Bug 1046125 - IonMonkey: (ARM) Correct handling of 16 DP float registers for SetElementCache code generation. r=mjrosenb

This commit is contained in:
Douglas Crosher 2014-07-31 22:19:36 +10:00
parent 22bcb4ede2
commit 5c733f9379

View File

@ -3745,10 +3745,11 @@ GenerateSetTypedArrayElement(JSContext *cx, MacroAssembler &masm, IonCache::Stub
BaseIndex target(elements, index, ScaleFromElemWidth(width));
if (arrayType == Scalar::Float32) {
JS_ASSERT(tempFloat32 != InvalidFloatReg);
if (!masm.convertConstantOrRegisterToFloat(cx, value, tempFloat32, &failures))
JS_ASSERT_IF(hasUnaliasedDouble(), tempFloat32 != InvalidFloatReg);
FloatRegister tempFloat = hasUnaliasedDouble() ? tempFloat32 : tempDouble;
if (!masm.convertConstantOrRegisterToFloat(cx, value, tempFloat, &failures))
return false;
masm.storeToTypedFloatArray(arrayType, tempFloat32, target);
masm.storeToTypedFloatArray(arrayType, tempFloat, target);
} else if (arrayType == Scalar::Float64) {
if (!masm.convertConstantOrRegisterToDouble(cx, value, tempDouble, &failures))
return false;