mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 969375 - MIPS port: Added JS_CODEGEN_MIPS checks and includes. r=jandem
This commit is contained in:
parent
dba7d4c6ba
commit
e5cd79480b
@ -349,9 +349,9 @@ struct BaselineStackBuilder
|
||||
JS_ASSERT(BaselineFrameReg == FramePointer);
|
||||
priorOffset -= sizeof(void *);
|
||||
return virtualPointerAtStackOffset(priorOffset);
|
||||
#elif defined(JS_CODEGEN_X64) || defined(JS_CODEGEN_ARM)
|
||||
// On X64 and ARM, the frame pointer save location depends on the caller of the
|
||||
// the rectifier frame.
|
||||
#elif defined(JS_CODEGEN_X64) || defined(JS_CODEGEN_ARM) || defined(JS_CODEGEN_MIPS)
|
||||
// On X64, ARM and MIPS, the frame pointer save location depends on
|
||||
// the caller of the rectifier frame.
|
||||
BufferPointer<IonRectifierFrameLayout> priorFrame =
|
||||
pointerAtStackOffset<IonRectifierFrameLayout>(priorOffset);
|
||||
FrameType priorType = priorFrame->prevType();
|
||||
|
@ -442,6 +442,8 @@ BaselineCompiler::emitOutOfLinePostBarrierSlot()
|
||||
// On ARM, save the link register before calling. It contains the return
|
||||
// address. The |masm.ret()| later will pop this into |pc| to return.
|
||||
masm.push(lr);
|
||||
#elif defined(JS_CODEGEN_MIPS)
|
||||
masm.push(ra);
|
||||
#endif
|
||||
|
||||
masm.setupUnalignedABICall(2, scratch);
|
||||
|
@ -14,8 +14,12 @@
|
||||
# include "jit/x86/BaselineCompiler-x86.h"
|
||||
#elif defined(JS_CODEGEN_X64)
|
||||
# include "jit/x64/BaselineCompiler-x64.h"
|
||||
#else
|
||||
#elif defined(JS_CODEGEN_ARM)
|
||||
# include "jit/arm/BaselineCompiler-arm.h"
|
||||
#elif defined(JS_CODEGEN_MIPS)
|
||||
# include "jit/mips/BaselineCompiler-mips.h"
|
||||
#else
|
||||
# error "Unknown architecture!"
|
||||
#endif
|
||||
|
||||
namespace js {
|
||||
|
@ -15,6 +15,8 @@
|
||||
# include "jit/x64/BaselineHelpers-x64.h"
|
||||
#elif defined(JS_CODEGEN_ARM)
|
||||
# include "jit/arm/BaselineHelpers-arm.h"
|
||||
#elif defined(JS_CODEGEN_MIPS)
|
||||
# include "jit/mips/BaselineHelpers-mips.h"
|
||||
#else
|
||||
# error "Unknown architecture!"
|
||||
#endif
|
||||
|
@ -760,7 +760,7 @@ ICStubCompiler::emitPostWriteBarrierSlot(MacroAssembler &masm, Register obj, Val
|
||||
masm.branchPtr(Assembler::AboveOrEqual, valReg, ImmWord(nursery.heapEnd()), &skipBarrier);
|
||||
|
||||
// void PostWriteBarrier(JSRuntime *rt, JSObject *obj);
|
||||
#ifdef JS_CODEGEN_ARM
|
||||
#if defined(JS_CODEGEN_ARM) || defined(JS_CODEGEN_MIPS)
|
||||
saveRegs.add(BaselineTailCallReg);
|
||||
#endif
|
||||
saveRegs = GeneralRegisterSet::Intersect(saveRegs, GeneralRegisterSet::Volatile());
|
||||
|
@ -1108,9 +1108,12 @@ class ICStubCompiler
|
||||
inline GeneralRegisterSet availableGeneralRegs(size_t numInputs) const {
|
||||
GeneralRegisterSet regs(GeneralRegisterSet::All());
|
||||
JS_ASSERT(!regs.has(BaselineStackReg));
|
||||
#ifdef JS_CODEGEN_ARM
|
||||
#if defined(JS_CODEGEN_ARM)
|
||||
JS_ASSERT(!regs.has(BaselineTailCallReg));
|
||||
regs.take(BaselineSecondScratchReg);
|
||||
#elif defined(JS_CODEGEN_MIPS)
|
||||
JS_ASSERT(!regs.has(BaselineTailCallReg));
|
||||
JS_ASSERT(!regs.has(BaselineSecondScratchReg));
|
||||
#endif
|
||||
regs.take(BaselineFrameReg);
|
||||
regs.take(BaselineStubReg);
|
||||
|
@ -13,8 +13,12 @@
|
||||
# include "jit/x86/BaselineRegisters-x86.h"
|
||||
#elif defined(JS_CODEGEN_X64)
|
||||
# include "jit/x64/BaselineRegisters-x64.h"
|
||||
#else
|
||||
#elif defined(JS_CODEGEN_ARM)
|
||||
# include "jit/arm/BaselineRegisters-arm.h"
|
||||
#elif defined(JS_CODEGEN_MIPS)
|
||||
# include "jit/mips/BaselineRegisters-mips.h"
|
||||
#else
|
||||
# error "Unknown architecture!"
|
||||
#endif
|
||||
|
||||
namespace js {
|
||||
|
@ -18,8 +18,10 @@
|
||||
# include "jit/x64/CodeGenerator-x64.h"
|
||||
#elif defined(JS_CODEGEN_ARM)
|
||||
# include "jit/arm/CodeGenerator-arm.h"
|
||||
#elif defined(JS_CODEGEN_MIPS)
|
||||
# include "jit/mips/CodeGenerator-mips.h"
|
||||
#else
|
||||
#error "CPU Not Supported"
|
||||
#error "Unknown architecture!"
|
||||
#endif
|
||||
|
||||
namespace js {
|
||||
|
@ -7,8 +7,10 @@
|
||||
#ifndef jit_IonCaches_h
|
||||
#define jit_IonCaches_h
|
||||
|
||||
#ifdef JS_CODEGEN_ARM
|
||||
#if defined(JS_CODEGEN_ARM)
|
||||
# include "jit/arm/Assembler-arm.h"
|
||||
#elif defined(JS_CODEGEN_MIPS)
|
||||
# include "jit/mips/Assembler-mips.h"
|
||||
#endif
|
||||
#include "jit/Registers.h"
|
||||
#include "jit/shared/Assembler-shared.h"
|
||||
@ -349,13 +351,16 @@ class RepatchIonCache : public IonCache
|
||||
// Offset from the initial jump to the rejoin label.
|
||||
#ifdef JS_CODEGEN_ARM
|
||||
static const size_t REJOIN_LABEL_OFFSET = 4;
|
||||
#elif defined(JS_CODEGEN_MIPS)
|
||||
// The size of jump created by MacroAssemblerMIPSCompat::jumpWithPatch.
|
||||
static const size_t REJOIN_LABEL_OFFSET = 4 * sizeof(void *);
|
||||
#else
|
||||
static const size_t REJOIN_LABEL_OFFSET = 0;
|
||||
#endif
|
||||
|
||||
CodeLocationLabel rejoinLabel() const {
|
||||
uint8_t *ptr = initialJump_.raw();
|
||||
#ifdef JS_CODEGEN_ARM
|
||||
#if defined(JS_CODEGEN_ARM) || defined(JS_CODEGEN_MIPS)
|
||||
uint32_t i = 0;
|
||||
while (i < REJOIN_LABEL_OFFSET)
|
||||
ptr = Assembler::nextInstruction(ptr, &i);
|
||||
|
@ -17,6 +17,10 @@
|
||||
# include "jit/x64/MacroAssembler-x64.h"
|
||||
#elif defined(JS_CODEGEN_ARM)
|
||||
# include "jit/arm/MacroAssembler-arm.h"
|
||||
#elif defined(JS_CODEGEN_MIPS)
|
||||
# include "jit/mips/MacroAssembler-mips.h"
|
||||
#else
|
||||
# error "Unknown architecture!"
|
||||
#endif
|
||||
#include "jit/IonInstrumentation.h"
|
||||
#include "jit/JitCompartment.h"
|
||||
|
@ -1591,6 +1591,10 @@ LAllocation::toRegister() const
|
||||
# include "jit/shared/LIR-x86-shared.h"
|
||||
#elif defined(JS_CODEGEN_ARM)
|
||||
# include "jit/arm/LIR-arm.h"
|
||||
#elif defined(JS_CODEGEN_MIPS)
|
||||
# include "jit/mips/LIR-mips.h"
|
||||
#else
|
||||
# error "Unknown architecture!"
|
||||
#endif
|
||||
|
||||
#undef LIR_HEADER
|
||||
|
@ -306,6 +306,10 @@
|
||||
# include "jit/x64/LOpcodes-x64.h"
|
||||
#elif defined(JS_CODEGEN_ARM)
|
||||
# include "jit/arm/LOpcodes-arm.h"
|
||||
#elif defined(JS_CODEGEN_MIPS)
|
||||
# include "jit/mips/LOpcodes-mips.h"
|
||||
#else
|
||||
# error "Unknown architecture!"
|
||||
#endif
|
||||
|
||||
#define LIR_OPCODE_LIST(_) \
|
||||
|
@ -17,8 +17,10 @@
|
||||
# include "jit/x64/Lowering-x64.h"
|
||||
#elif defined(JS_CODEGEN_ARM)
|
||||
# include "jit/arm/Lowering-arm.h"
|
||||
#elif defined(JS_CODEGEN_MIPS)
|
||||
# include "jit/mips/Lowering-mips.h"
|
||||
#else
|
||||
# error "CPU!"
|
||||
# error "Unknown architecture!"
|
||||
#endif
|
||||
|
||||
namespace js {
|
||||
|
@ -11,8 +11,10 @@
|
||||
# include "jit/shared/MoveEmitter-x86-shared.h"
|
||||
#elif defined(JS_CODEGEN_ARM)
|
||||
# include "jit/arm/MoveEmitter-arm.h"
|
||||
#elif defined(JS_CODEGEN_MIPS)
|
||||
# include "jit/mips/MoveEmitter-mips.h"
|
||||
#else
|
||||
# error "CPU Not Supported"
|
||||
# error "Unknown architecture!"
|
||||
#endif
|
||||
|
||||
#endif /* jit_MoveEmitter_h */
|
||||
|
@ -311,7 +311,7 @@ class RegisterAllocator
|
||||
#if defined(JS_CODEGEN_X64)
|
||||
if (mir->compilingAsmJS())
|
||||
allRegisters_.take(AnyRegister(HeapReg));
|
||||
#elif defined(JS_CODEGEN_ARM)
|
||||
#elif defined(JS_CODEGEN_ARM) || defined(JS_CODEGEN_MIPS)
|
||||
if (mir->compilingAsmJS()) {
|
||||
allRegisters_.take(AnyRegister(HeapReg));
|
||||
allRegisters_.take(AnyRegister(GlobalReg));
|
||||
|
@ -844,7 +844,7 @@ class AsmJSHeapAccess
|
||||
isFloat32Load_(false),
|
||||
loadedReg_(UINT8_MAX)
|
||||
{}
|
||||
#elif defined(JS_CODEGEN_ARM)
|
||||
#elif defined(JS_CODEGEN_ARM) || defined(JS_CODEGEN_MIPS)
|
||||
explicit AsmJSHeapAccess(uint32_t offset)
|
||||
: offset_(offset)
|
||||
{}
|
||||
|
@ -16,6 +16,10 @@
|
||||
# include "jit/x64/Architecture-x64.h"
|
||||
#elif defined(JS_CODEGEN_ARM)
|
||||
# include "jit/arm/Architecture-arm.h"
|
||||
#elif defined(JS_CODEGEN_MIPS)
|
||||
# include "jit/mips/Architecture-mips.h"
|
||||
#else
|
||||
# error "Unknown architecture!"
|
||||
#endif
|
||||
|
||||
namespace js {
|
||||
|
@ -10,8 +10,8 @@
|
||||
# include "jit/x86/MacroAssembler-x86.h"
|
||||
#elif defined(JS_CODEGEN_X64)
|
||||
# include "jit/x64/MacroAssembler-x64.h"
|
||||
#elif defined(JS_CODEGEN_ARM)
|
||||
# include "jit/arm/MacroAssembler-arm.h"
|
||||
#else
|
||||
# error "Wrong architecture. Only x86 and x64 should build this file!"
|
||||
#endif
|
||||
|
||||
using namespace js;
|
||||
|
@ -67,7 +67,7 @@ CodeGeneratorShared::CodeGeneratorShared(MIRGenerator *gen, LIRGraph *graph, Mac
|
||||
// An MAsmJSCall does not align the stack pointer at calls sites but instead
|
||||
// relies on the a priori stack adjustment (in the prologue) on platforms
|
||||
// (like x64) which require the stack to be aligned.
|
||||
#ifdef JS_CODEGEN_ARM
|
||||
#if defined(JS_CODEGEN_ARM) || defined(JS_CODEGEN_MIPS)
|
||||
bool forceAlign = true;
|
||||
#else
|
||||
bool forceAlign = false;
|
||||
|
@ -11,8 +11,8 @@
|
||||
# include "jit/x86/MacroAssembler-x86.h"
|
||||
#elif defined(JS_CODEGEN_X64)
|
||||
# include "jit/x64/MacroAssembler-x64.h"
|
||||
#elif defined(JS_CODEGEN_ARM)
|
||||
# include "jit/arm/MacroAssembler-arm.h"
|
||||
#else
|
||||
# error "Wrong architecture. Only x86 and x64 should build this file!"
|
||||
#endif
|
||||
#include "jit/MoveResolver.h"
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user