FTL JIT wasn't tested on AArch64 Linux long time ago. I ran stress tests on r192942 and got many failures: ** The following JSC stress test failures have been introduced: cdjs-tests.yaml/main.js.ftl-eager-no-cjit cdjs-tests.yaml/main.js.ftl-no-cjit executableAllocationFuzz.yaml/executableAllocationFuzz/v8-raytrace.js.executable-allocation-fuzz-default jsc-layout-tests.yaml/js/script-tests/caller-property.js.layout-ftl-eager-no-cjit jsc-layout-tests.yaml/js/script-tests/dfg-cfa-prove-put-by-id-simple-when-storing-to-specialized-function.js.layout-no-llint jsc-layout-tests.yaml/js/script-tests/dfg-compare-final-object-to-final-object-or-other-when-both-proven-final-object.js.layout-ftl jsc-layout-tests.yaml/js/script-tests/dfg-compare-final-object-to-final-object-or-other-when-both-proven-final-object.js.layout-ftl-eager-no-cjit jsc-layout-tests.yaml/js/script-tests/dfg-compare-final-object-to-final-object-or-other-when-both-proven-final-object.js.layout-ftl-no-cjit jsc-layout-tests.yaml/js/script-tests/dfg-compare-final-object-to-final-object-or-other-when-proven-final-object.js.layout-ftl jsc-layout-tests.yaml/js/script-tests/dfg-compare-final-object-to-final-object-or-other-when-proven-final-object.js.layout-ftl-eager-no-cjit jsc-layout-tests.yaml/js/script-tests/dfg-compare-final-object-to-final-object-or-other-when-proven-final-object.js.layout-ftl-no-cjit jsc-layout-tests.yaml/js/script-tests/dfg-convert-this-polymorphic-object-then-exit-on-other.js.layout-dfg-eager-no-cjit jsc-layout-tests.yaml/js/script-tests/dfg-exception.js.layout-ftl jsc-layout-tests.yaml/js/script-tests/dfg-exception.js.layout-ftl-eager-no-cjit jsc-layout-tests.yaml/js/script-tests/dfg-exception.js.layout-ftl-no-cjit jsc-layout-tests.yaml/js/script-tests/dfg-inline-arguments-use-from-all-the-places-broken.js.layout-ftl-eager-no-cjit jsc-layout-tests.yaml/js/script-tests/exception-propagate-from-dfg-to-llint.js.layout-ftl-eager-no-cjit jsc-layout-tests.yaml/js/script-tests/for-in-modify-in-loop.js.layout-no-llint jsc-layout-tests.yaml/js/script-tests/regress-139548.js.layout-ftl jsc-layout-tests.yaml/js/script-tests/regress-139548.js.layout-ftl-eager-no-cjit jsc-layout-tests.yaml/js/script-tests/regress-139548.js.layout-ftl-no-cjit jsc-layout-tests.yaml/js/script-tests/stack-trace.js.layout-ftl-eager-no-cjit modules.yaml/modules/execution-order-dag.js.dfg-eager-no-cjit-validate-modules modules.yaml/modules/execution-order-depth.js.no-llint-modules mozilla-tests.yaml/ecma/Date/15.9.5.23-11.js.mozilla-baseline mozilla-tests.yaml/ecma/String/15.5.4.6-1.js.mozilla-baseline mozilla-tests.yaml/ecma/Types/8.4.js.mozilla-baseline mozilla-tests.yaml/ecma_2/String/split-001.js.mozilla-baseline mozilla-tests.yaml/js1_3/inherit/proto_2.js.mozilla-baseline regress/script-tests/Float32Array-matrix-mult.js.dfg-maximal-flush-validate-no-cjit regress/script-tests/Int16Array-bubble-sort-with-byteLength.js.ftl-no-cjit-no-put-stack-validate regress/script-tests/deltablue-varargs.js.ftl-eager regress/script-tests/fold-get-by-id-to-multi-get-by-offset-rare-int.js.ftl-eager regress/script-tests/getter-richards-try-catch.js.default-ftl regress/script-tests/getter-richards-try-catch.js.ftl-no-cjit-validate regress/script-tests/hoist-poly-check-structure.js.ftl-no-cjit-no-inline-validate regress/script-tests/inlined-put-by-id-transition.js.no-llint regress/script-tests/polymorphic-put-by-id.js.default regress/script-tests/polymorphic-put-by-id.js.ftl-no-cjit-no-inline-validate regress/script-tests/polymorphic-put-by-id.js.ftl-no-cjit-small-pool regress/script-tests/polymorphic-put-by-id.js.ftl-no-cjit-validate regress/script-tests/sorting-benchmark.js.dfg-maximal-flush-validate-no-cjit regress/script-tests/v8-raytrace-with-empty-try-catch.js.ftl-eager-no-cjit regress/script-tests/v8-raytrace-with-empty-try-catch.js.ftl-no-cjit-no-put-stack-validate regress/script-tests/v8-raytrace-with-try-catch.js.dfg-maximal-flush-validate-no-cjit stress/array-copywithin.js.ftl-eager-no-cjit stress/capture-escape-and-throw.js.ftl-eager-no-cjit stress/capture-escape-and-throw.js.ftl-no-cjit-no-inline-validate stress/capture-escape-and-throw.js.ftl-no-cjit-no-put-stack-validate stress/capture-escape-and-throw.js.ftl-no-cjit-validate stress/const-loop-semantics.js.dfg-eager stress/exception-effect-strcat.js.ftl-eager stress/exception-effect-strcat.js.ftl-eager-no-cjit stress/exception-effect-strcat.js.ftl-no-cjit-no-inline-validate stress/exception-effect-strcat.js.ftl-no-cjit-no-put-stack-validate stress/exception-effect-strcat.js.ftl-no-cjit-validate stress/exception-in-strcat-string-overflow.js.ftl-eager-no-cjit stress/exception-in-strcat-string-overflow.js.ftl-no-cjit-no-inline-validate stress/exception-in-strcat-string-overflow.js.ftl-no-cjit-no-put-stack-validate stress/exception-in-strcat-string-overflow.js.ftl-no-cjit-validate stress/exception-in-strcat.js.ftl-eager stress/exception-in-strcat.js.ftl-eager-no-cjit stress/exception-in-strcat.js.ftl-no-cjit-no-inline-validate stress/exception-in-strcat.js.ftl-no-cjit-no-put-stack-validate stress/exception-in-strcat.js.ftl-no-cjit-validate stress/exception-in-to-property-key-should-be-handled-early.js.ftl-eager-no-cjit stress/exception-in-to-property-key-should-be-handled-early.js.ftl-no-cjit-no-inline-validate stress/exception-in-to-property-key-should-be-handled-early.js.ftl-no-cjit-no-put-stack-validate stress/exception-in-to-property-key-should-be-handled-early.js.ftl-no-cjit-validate stress/exit-after-int52-to-value.js.ftl-no-cjit-small-pool stress/for-in-delete-during-iteration.js.ftl-no-cjit-validate stress/ftl-library-exception.js.default-ftl stress/ftl-library-exception.js.ftl-eager stress/ftl-library-exception.js.ftl-eager-no-cjit stress/ftl-library-exception.js.ftl-no-cjit-no-inline-validate stress/ftl-library-exception.js.ftl-no-cjit-no-put-stack-validate stress/ftl-library-exception.js.ftl-no-cjit-small-pool stress/ftl-library-exception.js.ftl-no-cjit-validate stress/ftl-library-inlining-exceptions-dataview.js.ftl-eager stress/ftl-library-inlining-exceptions-dataview.js.ftl-eager-no-cjit stress/ftl-library-inlining-exceptions-dataview.js.ftl-no-cjit-no-inline-validate stress/ftl-library-inlining-exceptions-dataview.js.ftl-no-cjit-no-put-stack-validate stress/ftl-library-inlining-exceptions-dataview.js.ftl-no-cjit-small-pool stress/ftl-library-inlining-exceptions-dataview.js.ftl-no-cjit-validate stress/ftl-library-inlining-exceptions.js.default-ftl stress/ftl-library-inlining-exceptions.js.ftl-eager stress/ftl-library-inlining-exceptions.js.ftl-eager-no-cjit stress/ftl-library-inlining-exceptions.js.ftl-no-cjit-no-inline-validate stress/ftl-library-inlining-exceptions.js.ftl-no-cjit-no-put-stack-validate stress/ftl-library-inlining-exceptions.js.ftl-no-cjit-small-pool stress/ftl-library-inlining-exceptions.js.ftl-no-cjit-validate stress/ftl-try-catch-tail-call-inilned-caller.js.ftl-no-cjit-no-inline-validate stress/get-by-id-throw-from-getter-through-optimized-code.js.default-ftl stress/get-by-id-throw-from-getter-through-optimized-code.js.ftl-eager stress/get-by-id-throw-from-getter-through-optimized-code.js.ftl-eager-no-cjit stress/get-by-id-throw-from-getter-through-optimized-code.js.ftl-no-cjit-no-inline-validate stress/get-by-id-throw-from-getter-through-optimized-code.js.ftl-no-cjit-no-put-stack-validate stress/get-by-id-throw-from-getter-through-optimized-code.js.ftl-no-cjit-small-pool stress/get-by-id-throw-from-getter-through-optimized-code.js.ftl-no-cjit-validate stress/get-by-id-throw-from-unexpected-getter-through-optimized-code-that-does-not-exit.js.ftl-eager-no-cjit stress/get-by-id-throw-from-unexpected-getter-through-optimized-code.js.ftl-eager-no-cjit stress/ic-throw-through-optimized-code.js.default-ftl stress/ic-throw-through-optimized-code.js.ftl-eager stress/ic-throw-through-optimized-code.js.ftl-eager-no-cjit stress/ic-throw-through-optimized-code.js.ftl-no-cjit-no-inline-validate stress/ic-throw-through-optimized-code.js.ftl-no-cjit-no-put-stack-validate stress/ic-throw-through-optimized-code.js.ftl-no-cjit-small-pool stress/ic-throw-through-optimized-code.js.ftl-no-cjit-validate stress/infinite-loop-that-uses-captured-variables-before-throwing.js.ftl-eager stress/infinite-loop-that-uses-captured-variables-before-throwing.js.ftl-eager-no-cjit stress/infinite-loop-that-uses-captured-variables-but-they-do-not-escape.js.ftl-eager stress/infinite-loop-that-uses-captured-variables-but-they-do-not-escape.js.ftl-eager-no-cjit stress/infinite-loop-that-uses-captured-variables-with-osr-entry.js.ftl-eager-no-cjit stress/math-pow-nan-behaviors.js.ftl-no-cjit-validate stress/new-array-with-size-throw-exception-and-tear-off-arguments.js.ftl-eager-no-cjit stress/new-array-with-size-throw-exception-and-tear-off-arguments.js.ftl-no-cjit-no-inline-validate stress/new-array-with-size-throw-exception-and-tear-off-arguments.js.ftl-no-cjit-no-put-stack-validate stress/new-array-with-size-throw-exception-and-tear-off-arguments.js.ftl-no-cjit-validate stress/put-by-id-on-new-object-after-prototype-transition-strict.js.always-trigger-copy-phase stress/put-by-id-throw-through-optimized-code.js.ftl-eager-no-cjit stress/reflect-has.js.ftl-eager-no-cjit stress/runtime-throw-through-optimized-code.js.ftl-eager stress/runtime-throw-through-optimized-code.js.ftl-eager-no-cjit stress/runtime-throw-through-optimized-code.js.ftl-no-cjit-no-inline-validate stress/runtime-throw-through-optimized-code.js.ftl-no-cjit-no-put-stack-validate stress/runtime-throw-through-optimized-code.js.ftl-no-cjit-small-pool stress/runtime-throw-through-optimized-code.js.ftl-no-cjit-validate stress/sink-multigetbyoffset.js.ftl-eager stress/sink-multigetbyoffset.js.ftl-no-cjit-small-pool stress/throw-from-ftl-call-ic-slow-path-cells.js.default-ftl stress/throw-from-ftl-call-ic-slow-path-cells.js.ftl-eager stress/throw-from-ftl-call-ic-slow-path-cells.js.ftl-eager-no-cjit stress/throw-from-ftl-call-ic-slow-path-cells.js.ftl-no-cjit-no-inline-validate stress/throw-from-ftl-call-ic-slow-path-cells.js.ftl-no-cjit-no-put-stack-validate stress/throw-from-ftl-call-ic-slow-path-cells.js.ftl-no-cjit-validate stress/throw-from-ftl-call-ic-slow-path-undefined.js.ftl-eager stress/throw-from-ftl-call-ic-slow-path-undefined.js.ftl-eager-no-cjit stress/throw-from-ftl-call-ic-slow-path-undefined.js.ftl-no-cjit-no-inline-validate stress/throw-from-ftl-call-ic-slow-path-undefined.js.ftl-no-cjit-no-put-stack-validate stress/throw-from-ftl-call-ic-slow-path-undefined.js.ftl-no-cjit-validate stress/throw-from-ftl-call-ic-slow-path.js.ftl-eager stress/throw-from-ftl-call-ic-slow-path.js.ftl-eager-no-cjit stress/throw-from-ftl-call-ic-slow-path.js.ftl-no-cjit-no-inline-validate stress/throw-from-ftl-call-ic-slow-path.js.ftl-no-cjit-no-put-stack-validate stress/throw-from-ftl-call-ic-slow-path.js.ftl-no-cjit-validate stress/throw-through-optimized-code.js.ftl-eager stress/throw-through-optimized-code.js.ftl-eager-no-cjit stress/throw-through-optimized-code.js.ftl-no-cjit-no-inline-validate stress/throw-through-optimized-code.js.ftl-no-cjit-no-put-stack-validate stress/throw-through-optimized-code.js.ftl-no-cjit-small-pool stress/throw-through-optimized-code.js.ftl-no-cjit-validate stress/tricky-indirectly-inferred-infinite-loop-that-uses-captured-variables-and-creates-the-activation-outside-the-loop.js.ftl-eager stress/tricky-indirectly-inferred-infinite-loop-that-uses-captured-variables-and-creates-the-activation-outside-the-loop.js.ftl-eager-no-cjit stress/tricky-inferred-infinite-loop-that-uses-captured-variables-and-creates-the-activation-outside-the-loop.js.ftl-eager stress/tricky-inferred-infinite-loop-that-uses-captured-variables-and-creates-the-activation-outside-the-loop.js.ftl-eager-no-cjit stress/tricky-infinite-loop-that-uses-captured-variables-and-creates-the-activation-outside-the-loop.js.ftl-eager stress/tricky-infinite-loop-that-uses-captured-variables-and-creates-the-activation-outside-the-loop.js.ftl-eager-no-cjit stress/tricky-infinite-loop-that-uses-captured-variables.js.ftl-eager stress/tricky-infinite-loop-that-uses-captured-variables.js.ftl-eager-no-cjit stress/typedarray-every.js.ftl-eager-no-cjit stress/typedarray-filter.js.ftl-eager-no-cjit stress/typedarray-find.js.ftl-eager-no-cjit stress/typedarray-map.js.ftl-eager-no-cjit stress/typedarray-reduce.js.ftl-eager stress/typedarray-reduce.js.ftl-eager-no-cjit stress/typedarray-reduceRight.js.ftl-eager-no-cjit stress/typedarray-some.js.ftl-eager-no-cjit stress/typedarray-sort.js.ftl-eager-no-cjit stress/v8-deltablue-strict.js.ftl-eager-no-cjit stress/v8-deltablue-strict.js.ftl-no-cjit-validate stress/v8-earley-boyer-strict.js.ftl-eager-no-cjit stress/v8-earley-boyer-strict.js.no-llint stress/v8-raytrace-strict.js.ftl-eager-no-cjit stress/v8-regexp-strict.js.default stress/v8-regexp-strict.js.ftl-no-cjit-validate stress/v8-splay-strict.js.default stress/v8-splay-strict.js.ftl-no-cjit-validate v8-v6/v8-deltablue.js.default v8-v6/v8-earley-boyer.js.ftl-eager-no-cjit v8-v6/v8-raytrace.js.dfg-eager v8-v6/v8-raytrace.js.dfg-maximal-flush-validate-no-cjit v8-v6/v8-raytrace.js.ftl-eager-no-cjit v8-v6/v8-raytrace.js.ftl-no-cjit-no-put-stack-validate v8-v6/v8-raytrace.js.ftl-no-cjit-validate v8-v6/v8-splay.js.dfg-eager v8-v6/v8-splay.js.ftl-eager-no-cjit Results for JSC stress tests: 186 failures found.
failures without FTL JIT on the same revision: ** The following JSC stress test failures have been introduced: executableAllocationFuzz.yaml/executableAllocationFuzz/v8-raytrace.js.executable-allocation-fuzz-default executableAllocationFuzz.yaml/executableAllocationFuzz/v8-raytrace.js.executable-allocation-fuzz-no-cjit jsc-layout-tests.yaml/js/script-tests/dfg-cfa-prove-put-by-id-simple-when-storing-to-specialized-function.js.layout-no-llint jsc-layout-tests.yaml/js/script-tests/dfg-convert-this-polymorphic-object-then-exit-on-other.js.layout-dfg-eager-no-cjit jsc-layout-tests.yaml/js/script-tests/sort-large-array.js.layout-dfg-eager-no-cjit mozilla-tests.yaml/ecma/Date/15.9.5.10-3.js.mozilla-baseline mozilla-tests.yaml/ecma/Date/15.9.5.13-4.js.mozilla-baseline mozilla-tests.yaml/ecma/Date/15.9.5.23-11.js.mozilla-baseline mozilla-tests.yaml/ecma/Date/15.9.5.36-5.js.mozilla-baseline mozilla-tests.yaml/ecma/Expressions/11.7.1.js.mozilla-dfg-eager-no-cjit-validate-phases mozilla-tests.yaml/js1_2/regexp/RegExp_rightContext_as_array.js.mozilla-baseline regress/script-tests/deltablue-varargs.js.no-llint regress/script-tests/polymorphic-put-by-id.js.dfg-eager regress/script-tests/raytrace-with-empty-try-catch.js.dfg-eager-no-cjit-validate regress/script-tests/sorting-benchmark.js.default regress/script-tests/v8-raytrace-with-try-catch.js.dfg-eager regress/script-tests/v8-raytrace-with-try-catch.js.dfg-eager-no-cjit-validate stress/array-message-passing.js.dfg-eager-no-cjit-validate stress/load-varargs-then-inlined-call-exit-in-foo.js.no-llint stress/redundant-array-bounds-checks-addition-skip-first.js.default stress/v8-crypto-strict.js.dfg-eager-no-cjit-validate stress/v8-regexp-strict.js.dfg-eager-no-cjit-validate stress/v8-regexp-strict.js.dfg-maximal-flush-validate-no-cjit sunspider-1.0/3d-raytrace.js.no-llint v8-v6/v8-crypto.js.dfg-eager-no-cjit-validate v8-v6/v8-raytrace.js.default v8-v6/v8-raytrace.js.dfg-eager-no-cjit-validate v8-v6/v8-splay.js.default Results for JSC stress tests: 28 failures found.
This isn't representative of the FTL JIT support on Linux ARM64 almost two years later.