From 9019153ff91cddfe0189b81d698b619486c3ceba Mon Sep 17 00:00:00 2001 From: Riccardo Mottola Date: Tue, 8 May 2018 15:46:15 +0200 Subject: [PATCH] disable certain code for PPC only, re-enable for x86 --- js/src/asmjs/AsmJSFrameIterator.cpp | 6 +++--- js/src/asmjs/AsmJSLink.cpp | 6 +++--- js/src/asmjs/AsmJSModule.cpp | 4 ++-- js/src/asmjs/AsmJSSignalHandlers.cpp | 6 +++--- js/src/asmjs/AsmJSValidate.cpp | 10 ++++++---- 5 files changed, 17 insertions(+), 15 deletions(-) diff --git a/js/src/asmjs/AsmJSFrameIterator.cpp b/js/src/asmjs/AsmJSFrameIterator.cpp index d98e22e92..be692b150 100644 --- a/js/src/asmjs/AsmJSFrameIterator.cpp +++ b/js/src/asmjs/AsmJSFrameIterator.cpp @@ -170,7 +170,7 @@ static void GenerateProfilingPrologue(MacroAssembler& masm, unsigned framePushed, ExitReason reason, AsmJSProfilingOffsets* offsets, Label* maybeEntry = nullptr) { -#if(0) +#if !defined(JS_CODEGEN_PPC_OSX) #if !defined (JS_CODEGEN_ARM) Register scratch = ABIArgGenerator::NonArg_VolatileReg; #else @@ -225,7 +225,7 @@ static void GenerateProfilingEpilogue(MacroAssembler& masm, unsigned framePushed, ExitReason reason, AsmJSProfilingOffsets* offsets) { -#if(0) +#if !defined(JS_CODEGEN_PPC_OSX) Register scratch = ABIArgGenerator::NonReturn_VolatileReg0; #if defined(JS_CODEGEN_ARM) || defined(JS_CODEGEN_ARM64) || \ defined(JS_CODEGEN_MIPS32) || defined(JS_CODEGEN_MIPS64) @@ -500,7 +500,7 @@ AsmJSProfilingFrameIterator::AsmJSProfilingFrameIterator(const AsmJSActivation& exitReason_(ExitReason::None), codeRange_(nullptr) { -#if(0) +#if !defined(JS_CODEGEN_PPC_OSX) // If profiling hasn't been enabled for this module, then CallerFPFromFP // will be trash, so ignore the entire activation. In practice, this only // happens if profiling is enabled while module->active() (in this case, diff --git a/js/src/asmjs/AsmJSLink.cpp b/js/src/asmjs/AsmJSLink.cpp index f5ba91db8..cbd7285a2 100644 --- a/js/src/asmjs/AsmJSLink.cpp +++ b/js/src/asmjs/AsmJSLink.cpp @@ -54,7 +54,7 @@ using namespace js::wasm; using mozilla::IsNaN; using mozilla::PodZero; -#if(0) // bug 881882 +#if !defined(JS_CODEGEN_PPC_OSX) // bug 881882 static bool CloneModule(JSContext* cx, MutableHandle moduleObj) @@ -1273,7 +1273,7 @@ js::IsAsmJSFunction(JSContext *cx, unsigned argc, Value *vp) bool js::IsAsmJSFunction(HandleFunction fun) { -#if(0) +#if !defined(JS_CODEGEN_PPC_OSX) return fun->isNative() && fun->maybeNative() == CallAsmJS; #else return false; @@ -1283,7 +1283,7 @@ js::IsAsmJSFunction(HandleFunction fun) JSString* js::AsmJSFunctionToString(JSContext* cx, HandleFunction fun) { -#if(0) +#if !defined(JS_CODEGEN_PPC_OSX) AsmJSModule& module = FunctionToEnclosingModule(fun); const AsmJSModule::ExportedFunction& f = FunctionToExportedFunction(fun, module); uint32_t begin = module.srcStart() + f.startOffsetInModule(); diff --git a/js/src/asmjs/AsmJSModule.cpp b/js/src/asmjs/AsmJSModule.cpp index 84da85836..fdec8a833 100644 --- a/js/src/asmjs/AsmJSModule.cpp +++ b/js/src/asmjs/AsmJSModule.cpp @@ -270,7 +270,7 @@ AsmJSModule::lookupHeapAccess(void* pc) const bool AsmJSModule::finish(ExclusiveContext* cx, TokenStream& tokenStream, MacroAssembler& masm) { -#if(0) +#if !defined(JS_CODEGEN_PPC_OSX) MOZ_ASSERT(!isFinished()); uint32_t endBeforeCurly = tokenStream.currentToken().pos.end; @@ -1755,7 +1755,7 @@ AsmJSModule::heapLength() const void AsmJSModule::setProfilingEnabled(bool enabled, JSContext* cx) { -#if(0) +#if !defined(JS_CODEGEN_PPC_OSX) MOZ_ASSERT(isDynamicallyLinked()); if (profilingEnabled_ == enabled) diff --git a/js/src/asmjs/AsmJSSignalHandlers.cpp b/js/src/asmjs/AsmJSSignalHandlers.cpp index 2fe22d354..4b14cc4c8 100644 --- a/js/src/asmjs/AsmJSSignalHandlers.cpp +++ b/js/src/asmjs/AsmJSSignalHandlers.cpp @@ -77,7 +77,7 @@ class AutoSetHandlingSignal } }; -#if(0) // bug 881882 +#if !defined(JS_CODEGEN_PPC_OSX) // bug 881882 #if defined(XP_WIN) # define XMM_sig(p,i) ((p)->Xmm##i) @@ -1226,7 +1226,7 @@ JitInterruptHandler(int signum, siginfo_t* info, void* context) bool js::EnsureSignalHandlersInstalled(JSRuntime* rt) { -#if(0) +#if !defined(JS_CODEGEN_PPC_OSX) #if defined(XP_DARWIN) && defined(ASMJS_MAY_USE_SIGNAL_HANDLERS_FOR_OOB) // On OSX, each JSRuntime gets its own handler thread. if (!rt->asmJSMachExceptionHandler.installed() && !rt->asmJSMachExceptionHandler.install(rt)) @@ -1324,7 +1324,7 @@ js::EnsureSignalHandlersInstalled(JSRuntime* rt) void js::InterruptRunningJitCode(JSRuntime* rt) { -#if(0) +#if !defined(JS_CODEGEN_PPC_OSX) // If signal handlers weren't installed, then Ion and asm.js emit normal // interrupt checks and don't need asynchronous interruption. if (!rt->canUseSignalHandlers()) diff --git a/js/src/asmjs/AsmJSValidate.cpp b/js/src/asmjs/AsmJSValidate.cpp index 6d1d304d5..02371b012 100644 --- a/js/src/asmjs/AsmJSValidate.cpp +++ b/js/src/asmjs/AsmJSValidate.cpp @@ -53,7 +53,7 @@ using mozilla::UniquePtr; using JS::AsmJSOption; using JS::GenericNaN; -#if(0) // bug 881882 +#if !defined(JS_CODEGEN_PPC_OSX) // bug 881882 /*****************************************************************************/ // ParseNode utilities @@ -6871,7 +6871,7 @@ Warn(AsmJSParser& parser, int errorNumber, const char* str) return false; } -#if(0) +#if !defined(JS_CODEGEN_PPC_OSX) static bool EstablishPreconditions(ExclusiveContext* cx, AsmJSParser& parser) { @@ -6918,9 +6918,11 @@ bool js::ValidateAsmJS(ExclusiveContext* cx, AsmJSParser& parser, ParseNode* stmtList, bool* validated) { *validated = false; + +#if defined(JS_CODEGEN_PPC_OSX) // bug 881882 Warn(parser, JSMSG_USE_ASM_TYPE_FAIL, "AsmJS not currently supported on PowerPC; downgrading to IonPower"); return NoExceptionPending(cx); -#if(0) // bug 881882 +#else // Various conditions disable asm.js optimizations. if (!EstablishPreconditions(cx, parser)) @@ -6989,7 +6991,7 @@ js::IsAsmJSCompilationAvailable(JSContext* cx, unsigned argc, Value* vp) { CallArgs args = CallArgsFromVp(argc, vp); -#if(0) +#if !defined(JS_CODEGEN_PPC_OSX) // See EstablishPreconditions. #ifdef JS_CODEGEN_NONE bool available = false;