Bug 1046452 - Fix --disable-ion build breakage, r=jandem.

This commit is contained in:
Brian Hackett 2014-07-31 07:19:08 -08:00
parent cc643f47c6
commit b0cda48c8a
6 changed files with 46 additions and 6 deletions

View File

@ -34,7 +34,12 @@
#if ENABLE_ASSEMBLER
#if WTF_CPU_ARM_THUMB2
#if JS_CODEGEN_NONE
#include "jit/none/BaseMacroAssembler-none.h"
namespace JSC { typedef MacroAssemblerNone MacroAssembler; }
#elif WTF_CPU_ARM_THUMB2
#include "assembler/assembler/MacroAssemblerARMv7.h"
namespace JSC { typedef MacroAssemblerARMv7 MacroAssembler; }

View File

@ -211,7 +211,7 @@ GenerateProfilingEpilogue(MacroAssembler &masm, unsigned framePushed, AsmJSExit:
masm.pop(scratch2);
masm.storePtr(scratch2, Address(scratch, AsmJSActivation::offsetOfFP()));
#else
masm.pop(Operand(scratch, AsmJSActivation::offsetOfFP()));
masm.pop(Address(scratch, AsmJSActivation::offsetOfFP()));
#endif
masm.bind(profilingReturn);
masm.ret();

View File

@ -0,0 +1,25 @@
/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
* vim: set ts=8 sts=4 et sw=4 tw=99:
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
#ifndef jit_none_BaseMacroAssembler_none_h
#define jit_none_BaseMacroAssembler_none_h
// Shim to act like a JSC MacroAssembler for platforms where no MacroAssembler exists.
// IonSpewer.h is included through MacroAssembler implementations for other
// platforms, so include it here to avoid inadvertent build bustage.
#include "jit/IonSpewer.h"
namespace JSC {
class MacroAssemblerNone
{
static bool supportsFloatingPoint() { return false; }
};
} // namespace JSC
#endif /* jit_none_BaseMacroAssembler_none_h */

View File

@ -271,6 +271,7 @@ class MacroAssemblerNone : public Assembler
template <typename T, typename S> void storePtr(T, S) { MOZ_CRASH(); }
template <typename T, typename S> void store32(T, S) { MOZ_CRASH(); }
template <typename T, typename S> void store32_NoSecondScratch(T, S) { MOZ_CRASH(); }
template <typename T, typename S> void storeFloat32(T, S) { MOZ_CRASH(); }
template <typename T, typename S> void storeDouble(T, S) { MOZ_CRASH(); }
template <typename T, typename S> void store8(T, S) { MOZ_CRASH(); }
@ -389,8 +390,11 @@ class ABIArgGenerator
ABIArg &current() { MOZ_CRASH(); }
uint32_t stackBytesConsumedSoFar() const { MOZ_CRASH(); }
static const Register NonArgReturnVolatileReg0;
static const Register NonArgReturnVolatileReg1;
static const Register NonArgReturnReg0;
static const Register NonArgReturnReg1;
static const Register NonArg_VolatileReg;
static const Register NonReturn_VolatileReg0;
static const Register NonReturn_VolatileReg1;
};
static inline void PatchJump(CodeLocationJump &, CodeLocationLabel) { MOZ_CRASH(); }

View File

@ -41,8 +41,11 @@ void MacroAssembler::PopRegsInMaskIgnore(RegisterSet, RegisterSet) { MOZ_CRASH()
void MacroAssembler::alignFrameForICArguments(AfterICSaveLive &) { MOZ_CRASH(); }
void MacroAssembler::restoreFrameAlignmentForICArguments(AfterICSaveLive &) { MOZ_CRASH(); }
const Register ABIArgGenerator::NonArgReturnVolatileReg0 = { 0 };
const Register ABIArgGenerator::NonArgReturnVolatileReg1 = { 0 };
const Register ABIArgGenerator::NonArgReturnReg0 = { 0 };
const Register ABIArgGenerator::NonArgReturnReg1 = { 0 };
const Register ABIArgGenerator::NonArg_VolatileReg = { 0 };
const Register ABIArgGenerator::NonReturn_VolatileReg0 = { 0 };
const Register ABIArgGenerator::NonReturn_VolatileReg1 = { 0 };
IonBailoutIterator::IonBailoutIterator(const JitActivationIterator &iter, BailoutStack *bailout)
: JitFrameIterator(iter)

View File

@ -1231,6 +1231,9 @@ class AssemblerX86Shared : public AssemblerShared
void pop(Register src) {
masm.pop_r(src.code());
}
void pop(const Address &src) {
masm.pop_m(src.offset, src.base.code());
}
void pushFlags() {
masm.push_flags();