Commit 7f20a7a7 authored by Iain Ireland's avatar Iain Ireland
Browse files

Bug 1757476: Align spills of ARM64 double registers r=jseward

parent 990afe24
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -1023,13 +1023,15 @@ static void TraceIonICCallFrame(JSTracer* trc, const JSJitFrameIter& frame) {
  TraceRoot(trc, layout->stubCode(), "ion-ic-call-code");
}

#ifdef JS_CODEGEN_MIPS32
#if defined(JS_CODEGEN_ARM64) || defined(JS_CODEGEN_MIPS32)
uint8_t* alignDoubleSpill(uint8_t* pointer) {
  uintptr_t address = reinterpret_cast<uintptr_t>(pointer);
  address &= ~(ABIStackAlignment - 1);
  address &= ~(uintptr_t(ABIStackAlignment) - 1);
  return reinterpret_cast<uint8_t*>(address);
}
#endif

#ifdef JS_CODEGEN_MIPS32
static void TraceJitExitFrameCopiedArguments(JSTracer* trc,
                                             const VMFunctionData* f,
                                             ExitFooterFrame* footer) {
+2 −2
Original line number Diff line number Diff line
@@ -211,11 +211,11 @@ static inline uint32_t MakeFrameDescriptor(uint32_t frameSize, FrameType type,
// Returns the JSScript associated with the topmost JIT frame.
JSScript* GetTopJitJSScript(JSContext* cx);

#ifdef JS_CODEGEN_MIPS32
#if defined(JS_CODEGEN_MIPS32) || defined(JS_CODEGEN_ARM64)
uint8_t* alignDoubleSpill(uint8_t* pointer);
#else
inline uint8_t* alignDoubleSpill(uint8_t* pointer) {
  // This is NO-OP on non-MIPS platforms.
  // This is a no-op on most platforms.
  return pointer;
}
#endif