From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH v2 04/30] gst-ffmpeg: use the new BR2_ARM_CPU_ARM* options
Date: Thu, 23 Oct 2014 09:49:32 +0200 [thread overview]
Message-ID: <20141023094932.7e5559b7@free-electrons.com> (raw)
In-Reply-To: <5447D7DD.5090200@mind.be>
Dear Arnout Vandecappelle,
On Wed, 22 Oct 2014 18:14:21 +0200, Arnout Vandecappelle wrote:
> I wouldn't want to actually use it unless tested on real hardware, however.
Well, if you grep through the gst-ffmpeg tree, you will that the
ARMV6T2 condition is only used in two places in
gst-libs/ext/libav/libavcodec/arm/asm.S :
.macro mov32 rd, val
#if HAVE_ARMV6T2
movw \rd, #(\val) & 0xffff
.if (\val) >> 16
movt \rd, #(\val) >> 16
.endif
#else
ldr \rd, =\val
#endif
.endm
.macro movrel rd, val
#if HAVE_ARMV6T2 && !CONFIG_PIC && !defined(__APPLE__)
movw \rd, #:lower16:\val
movt \rd, #:upper16:\val
#else
ldr \rd, =\val
#endif
.endm
So when you have ARMV6T2, it uses movw/movt instead of ldr. That's the
only difference with the non-ARMV6T2 mode. Then you can read
http://community.arm.com/groups/processors/blog/2010/07/27/how-to-load-constants-in-assembly-for-arm-architecture,
which says:
"""
As mentioned earlier, there are other ways to load a constant. In the
latest version of the ARM architecture, ARMv7, two new instructions
were introduced to improve the situation:
- movw, or move wide, will move a 16-bit constant into a register,
implicitly zeroing the top 16 bits of the target register.
- movt, or move top, will move a 16-bit constant into the top half of a
given register without altering the bottom 16 bits. Now moving an
arbitrary 32-bit constant is as simple as this:
"""
So I think it's safe to say than --enable-armv6t2 can be used on ARMv7
as well.
Best regards,
Thomas
--
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
next prev parent reply other threads:[~2014-10-23 7:49 UTC|newest]
Thread overview: 46+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-10-21 20:26 [Buildroot] [PATCH v2 00/30] Removal of BR2_GCC_TARGET_TUNE and other arch/ updates Thomas Petazzoni
2014-10-21 20:26 ` [Buildroot] [PATCH v2 01/30] arch/arm: add blind options to know the ARM architecture Thomas Petazzoni
2014-10-21 21:06 ` Yann E. MORIN
2014-10-21 20:26 ` [Buildroot] [PATCH v2 02/30] ffmpeg: use the new BR2_ARM_CPU_ARM* options Thomas Petazzoni
2014-10-21 21:09 ` Yann E. MORIN
2014-10-21 20:26 ` [Buildroot] [PATCH v2 03/30] ffmpeg: fix ARM condition for --{enable, disable}-vfp Thomas Petazzoni
2014-10-21 21:15 ` Yann E. MORIN
2014-10-21 20:26 ` [Buildroot] [PATCH v2 04/30] gst-ffmpeg: use the new BR2_ARM_CPU_ARM* options Thomas Petazzoni
2014-10-21 21:18 ` Yann E. MORIN
2014-10-22 7:34 ` Thomas Petazzoni
2014-10-22 16:14 ` Arnout Vandecappelle
2014-10-23 7:49 ` Thomas Petazzoni [this message]
2014-10-23 8:27 ` Arnout Vandecappelle
2014-10-21 20:26 ` [Buildroot] [PATCH v2 05/30] gst-ffmpeg: allow usage of ARMv6 optimizations on ARMv7 platforms Thomas Petazzoni
2014-10-21 21:24 ` Yann E. MORIN
2014-10-21 20:26 ` [Buildroot] [PATCH v2 06/30] gst1-libav: use the new BR2_ARM_CPU_ARM* options Thomas Petazzoni
2014-10-21 20:26 ` [Buildroot] [PATCH v2 07/30] gst1-libav: allow usage of ARMv6 optimizations on ARMv7 platforms Thomas Petazzoni
2014-10-21 20:26 ` [Buildroot] [PATCH v2 08/30] mplayer: use BR2_ARM_CPU_ARM* options Thomas Petazzoni
2014-11-06 22:33 ` Peter Korsgaard
2014-10-21 20:26 ` [Buildroot] [PATCH v2 09/30] libplayer: use BR2_ARM_CPU_ARM* option Thomas Petazzoni
2014-10-21 20:26 ` [Buildroot] [PATCH v2 10/30] nettle: use the BR2_ARM_CPU_ARM* options Thomas Petazzoni
2014-10-21 20:26 ` [Buildroot] [PATCH v2 11/30] nodejs: use " Thomas Petazzoni
2014-10-21 20:26 ` [Buildroot] [PATCH v2 12/30] qt5: use the " Thomas Petazzoni
2014-10-21 20:27 ` [Buildroot] [PATCH v2 13/30] speex: use " Thomas Petazzoni
2014-10-21 20:27 ` [Buildroot] [PATCH v2 14/30] vo-aacenc: use the " Thomas Petazzoni
2014-10-21 20:27 ` [Buildroot] [PATCH v2 15/30] webkit: use " Thomas Petazzoni
2014-10-21 20:27 ` [Buildroot] [PATCH v2 16/30] valgrind: use the " Thomas Petazzoni
2014-10-21 20:27 ` [Buildroot] [PATCH v2 17/30] x264: use the BR2_ARM_CPU_ARMV7A option Thomas Petazzoni
2014-10-21 20:27 ` [Buildroot] [PATCH v2 18/30] libnspr: " Thomas Petazzoni
2014-11-06 22:57 ` Peter Korsgaard
2014-10-21 20:27 ` [Buildroot] [PATCH v2 19/30] toolchain-external: use BR2_ARM_CPU_ARM* options Thomas Petazzoni
2014-10-21 20:27 ` [Buildroot] [PATCH v2 20/30] dhcpcd: do not pass --target option Thomas Petazzoni
2014-10-21 20:27 ` [Buildroot] [PATCH v2 21/30] arch/arm: do not distinguish revisions of ARM1136JF-S Thomas Petazzoni
2014-10-21 20:27 ` [Buildroot] [PATCH v2 22/30] arch/arm: remove BR2_GCC_TARGET_ARCH definitions on ARM Thomas Petazzoni
2014-10-21 20:27 ` [Buildroot] [PATCH v2 23/30] ffmpeg: use arch and cpu instead of tune Thomas Petazzoni
2014-10-21 20:27 ` [Buildroot] [PATCH v2 24/30] arch/x86: get rid of BR2_GCC_TARGET_TUNE Thomas Petazzoni
2014-10-21 20:27 ` [Buildroot] [PATCH v2 25/30] arch/sparc: " Thomas Petazzoni
2014-10-21 20:27 ` [Buildroot] [PATCH v2 26/30] arch/powerpc: " Thomas Petazzoni
2014-10-21 20:27 ` [Buildroot] [PATCH v2 27/30] arch/m68k: " Thomas Petazzoni
2014-10-21 20:27 ` [Buildroot] [PATCH v2 28/30] gcc: do not use BR2_GCC_TARGET_TUNE anymore Thomas Petazzoni
2014-10-21 20:27 ` [Buildroot] [PATCH v2 29/30] toolchain-external: " Thomas Petazzoni
2014-10-21 20:27 ` [Buildroot] [PATCH v2 30/30] arch: remove the BR2_GCC_TARGET_TUNE option Thomas Petazzoni
2014-10-25 10:46 ` [Buildroot] [PATCH v2 00/30] Removal of BR2_GCC_TARGET_TUNE and other arch/ updates Thomas Petazzoni
2014-11-06 7:24 ` Thomas Petazzoni
2014-11-06 22:06 ` Peter Korsgaard
2014-11-06 23:20 ` Peter Korsgaard
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20141023094932.7e5559b7@free-electrons.com \
--to=thomas.petazzoni@free-electrons.com \
--cc=buildroot@busybox.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox