Support NEON (support_neon) on aarch64

RESOLVED FIXED in Firefox 55

Status

()

Core
mozglue
RESOLVED FIXED
10 months ago
9 months ago

People

(Reporter: m_kato, Assigned: m_kato)

Tracking

55 Branch
mozilla55
ARM
Linux
Points:
---

Firefox Tracking Flags

(firefox55 fixed)

Details

MozReview Requests

()

Submitter Diff Changes Open Issues Last Updated
Loading...
Error loading review requests:

Attachments

(2 attachments)

(Assignee)

Description

10 months ago
aarch64 supports NEON, but supports_neon doesn't return true .
Comment hidden (mozreview-request)
Comment hidden (mozreview-request)

Comment 3

10 months ago
mozreview-review
Comment on attachment 8862722 [details]
Bug 1360429 - Part 2. Detect __ARM_NEON macro for aarch64.

https://reviewboard.mozilla.org/r/134588/#review137666
Attachment #8862722 - Flags: review+

Comment 4

10 months ago
mozreview-review
Comment on attachment 8862721 [details]
Bug 1360429 - Part 1. inline arm assember for YCBCR should be on arm only.

https://reviewboard.mozilla.org/r/134586/#review137668
Attachment #8862721 - Flags: review?(sotaro.ikeda.g) → review+

Comment 5

10 months ago
mozreview-review
Comment on attachment 8862722 [details]
Bug 1360429 - Part 2. Detect __ARM_NEON macro for aarch64.

https://reviewboard.mozilla.org/r/134588/#review137670
Attachment #8862722 - Flags: review+

Comment 6

10 months ago
mozreview-review
Comment on attachment 8862722 [details]
Bug 1360429 - Part 2. Detect __ARM_NEON macro for aarch64.

https://reviewboard.mozilla.org/r/134588/#review140434

::: mozglue/build/arm.h:81
(Diff revision 1)
>  
>  #endif
>  
> +// When using -mfpu=neon on arm, or using default on aarch64,
> +// gcc generates neon instructions.
> +#if defined(__GNUC__) && (defined(__ARM_NEON__) || defined(__ARM_NEON))

No real need for __GNUC__, and all compilers that define __ARM_NEON__ also define __ARM_NEON, so you can limit to the latter.
Attachment #8862722 - Flags: review?(mh+mozilla)
(Assignee)

Comment 7

9 months ago
"__ARM_NEON__" isn't defined on aarch64 compiler.

(4.9 for android)
aarch64-linux-android-cpp -dM < /dev/null | grep NEON
#define __ARM_NEON 1

arm-linux-androideabi-cpp -dM -mfpu=neon -mfloat-abi=softfp -march=armv7-a < /dev/null | grep NEON
#define __ARM_NEON_FP 4
#define __ARM_NEON__ 1
#define __ARM_NEON 1

(5.4 on Ubuntu 16.04TLS)
aarch64-linux-gnu-cpp -dM </dev/null | grep NEON
#define __ARM_NEON 1

arm-linux-gnueabihf-cpp -march=armv7-a -mfloat-abi=softfp -mfpu=neon -dM < /dev/null | grep NEON
#define __ARM_NEON_FP 4
#define __ARM_NEON__ 1
#define __ARM_NEON 1
Comment hidden (mozreview-request)
You're only confirming what I wrote ;)

Comment 10

9 months ago
mozreview-review
Comment on attachment 8862722 [details]
Bug 1360429 - Part 2. Detect __ARM_NEON macro for aarch64.

https://reviewboard.mozilla.org/r/134588/#review141964
Attachment #8862722 - Flags: review?(mh+mozilla) → review+

Comment 11

9 months ago
Pushed by m_kato@ga2.so-net.ne.jp:
https://hg.mozilla.org/integration/autoland/rev/44e7fc73aeb5
Part 1. inline arm assember for YCBCR should be on arm only. r=sotaro
https://hg.mozilla.org/integration/autoland/rev/edea8382d3f4
Part 2. Detect __ARM_NEON macro for aarch64. r=glandium
https://hg.mozilla.org/mozilla-central/rev/44e7fc73aeb5
https://hg.mozilla.org/mozilla-central/rev/edea8382d3f4
Status: NEW → RESOLVED
Last Resolved: 9 months ago
status-firefox55: --- → fixed
Resolution: --- → FIXED
Target Milestone: --- → mozilla55
You need to log in before you can comment on or make changes to this bug.