From d97829e614c866955df6574a2e254906bf5fd9c0 Mon Sep 17 00:00:00 2001 From: Branislav Rankov Date: Thu, 24 Apr 2014 16:59:47 +0200 Subject: [PATCH] Bug 972836 - IonMonkey MIPS: Odd float registers follow-up. r=jandem --- js/src/jit/mips/Trampoline-mips.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/js/src/jit/mips/Trampoline-mips.cpp b/js/src/jit/mips/Trampoline-mips.cpp index 0c57a514c9fe..845d41d33087 100644 --- a/js/src/jit/mips/Trampoline-mips.cpp +++ b/js/src/jit/mips/Trampoline-mips.cpp @@ -337,7 +337,10 @@ JitRuntime::generateInvalidator(JSContext *cx) // Save floating point registers // We can use as_sd because stack is alligned. - for (uint32_t i = 0; i < FloatRegisters::Total; i++) + // :TODO: (Bug 972836) // Fix this once odd regs can be used as float32 + // only. For now we skip saving odd regs for O32 ABI. + uint32_t increment = 2; + for (uint32_t i = 0; i < FloatRegisters::Total; i += increment) masm.as_sd(FloatRegister::FromCode(i), StackPointer, InvalidationBailoutStack::offsetOfFpRegs() + i * sizeof(double)); @@ -556,7 +559,10 @@ GenerateBailoutThunk(JSContext *cx, MacroAssembler &masm, uint32_t frameClass) // Save floating point registers // We can use as_sd because stack is alligned. - for (uintptr_t i = 0; i < FloatRegisters::Total; i++) + // :TODO: (Bug 972836) // Fix this once odd regs can be used as float32 + // only. For now we skip saving odd regs for O32 ABI. + uint32_t increment = 2; + for (uint32_t i = 0; i < FloatRegisters::Total; i += increment) masm.as_sd(FloatRegister::FromCode(i), StackPointer, BailoutStack::offsetOfFpRegs() + i * sizeof(double));