Hi all, I'm trying to fix up libvpx for Xcode 7. libvpx uses assembly routines for some performance hotspots, and has suitable functions for media, neon, etc extensions. Some of the armv6 'media' code gets used even on armv7, but it doesn't build with the clang in Xcode 7:
[AS] vpx_dsp/arm/bilinear_filter_media.asm.s.o
vpx_dsp/arm/bilinear_filter_media.asm.s:100:5: error: invalid instruction
ldrneb r6, [r0]
@ load source data
^
vpx_dsp/arm/bilinear_filter_media.asm.s:103:5: error: invalid instruction
ldrneb r7, [r0, #1]
^
vpx_dsp/arm/bilinear_filter_media.asm.s:104:5: error: invalid instruction
ldrneb r8, [r0, #2]
^
vpx_dsp/arm/bilinear_filter_media.asm.s:215:5: error: invalid instruction
ldrneh r10, [r0, #8]
^I can get the build to finish by naively disabling the media extensions, but this causes breakage elsewhere in the library where bits expect those functions to be present, etc. It would be nice to figure out why they won't compile and fix that.
I'm not very familiar with ARM assembly myself, so am a bit lost as to what could be going wrong here. Did the compiler simply drop support for some older instructions, or is it more tightly enforcing rules that the code should be paying attention to?
Thanks!