зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1523015 - Summary: Enable Ion on ARM64, but disable in-browser by pref. r=nbp
Differential Revision: https://phabricator.services.mozilla.com/D19448 --HG-- extra : moz-landing-system : lando
This commit is contained in:
Родитель
c4234efebc
Коммит
c82dda2439
|
@ -19,9 +19,15 @@ class JS_PUBLIC_API ContextOptions {
|
|||
public:
|
||||
ContextOptions()
|
||||
: baseline_(true),
|
||||
#ifdef JS_CODEGEN_ARM64
|
||||
ion_(false),
|
||||
asmJS_(false),
|
||||
wasm_(false),
|
||||
#else
|
||||
ion_(true),
|
||||
asmJS_(true),
|
||||
wasm_(true),
|
||||
#endif
|
||||
wasmVerbose_(false),
|
||||
wasmBaseline_(true),
|
||||
wasmIon_(true),
|
||||
|
|
|
@ -9,13 +9,6 @@ function jitTogglesMatch(opts) {
|
|||
if (k.indexOf(".enable") > 0 && opts[k] != currentOpts[k])
|
||||
return false;
|
||||
}
|
||||
|
||||
// ARM64 does not yet have an Ion code generator, so return false if
|
||||
// ion.enable is requested.
|
||||
var conf = getBuildConfiguration();
|
||||
if (conf['arm64'] && opts['ion.enable'])
|
||||
return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
// |jit-test| skip-if: !this.getJitCompilerOptions() || !this.getJitCompilerOptions()['ion.enable']
|
||||
load(libdir + "asserts.js");
|
||||
var oldOpts = getJitCompilerOptions();
|
||||
for (var k in oldOpts)
|
||||
|
|
|
@ -160,8 +160,7 @@ void LinkIonScript(JSContext* cx, HandleScript calleescript);
|
|||
uint8_t* LazyLinkTopActivation(JSContext* cx, LazyLinkExitFrameLayout* frame);
|
||||
|
||||
static inline bool IsIonEnabled(JSContext* cx) {
|
||||
// The ARM64 Ion engine is not yet implemented.
|
||||
#if defined(JS_CODEGEN_NONE) || defined(JS_CODEGEN_ARM64)
|
||||
#if defined(JS_CODEGEN_NONE)
|
||||
return false;
|
||||
#else
|
||||
return cx->options().ion() && cx->options().baseline() &&
|
||||
|
|
|
@ -9843,14 +9843,25 @@ static MOZ_MUST_USE bool ProcessArgs(JSContext* cx, OptionParser* op) {
|
|||
|
||||
static bool SetContextOptions(JSContext* cx, const OptionParser& op) {
|
||||
enableBaseline = !op.getBoolOption("no-baseline");
|
||||
#ifdef JS_CODEGEN_ARM64
|
||||
// TODO: Enable Ion by default.
|
||||
enableIon = false;
|
||||
enableAsmJS = false;
|
||||
#else
|
||||
enableIon = !op.getBoolOption("no-ion");
|
||||
enableAsmJS = !op.getBoolOption("no-asmjs");
|
||||
#endif
|
||||
enableNativeRegExp = !op.getBoolOption("no-native-regexp");
|
||||
|
||||
// Default values for wasm.
|
||||
enableWasm = true;
|
||||
enableWasmBaseline = true;
|
||||
#ifdef JS_CODEGEN_ARM64
|
||||
// TODO: Enable WasmIon by default.
|
||||
enableWasmIon = false;
|
||||
#else
|
||||
enableWasmIon = true;
|
||||
#endif
|
||||
if (const char* str = op.getStringOption("wasm-compiler")) {
|
||||
if (strcmp(str, "none") == 0) {
|
||||
enableWasm = false;
|
||||
|
|
|
@ -1462,7 +1462,11 @@ pref("javascript.options.unboxed_objects", false);
|
|||
pref("javascript.options.baselinejit", true);
|
||||
//Duplicated in JitOptions - ensure both match.
|
||||
pref("javascript.options.baselinejit.threshold", 10);
|
||||
#ifdef _ARM64_
|
||||
pref("javascript.options.ion", false);
|
||||
#else
|
||||
pref("javascript.options.ion", true);
|
||||
#endif
|
||||
//Duplicated in JitOptions - ensure both match.
|
||||
pref("javascript.options.ion.threshold", 1000);
|
||||
//Duplicated in JitOptions - ensure both match.
|
||||
|
|
Загрузка…
Ссылка в новой задаче