Comment 42 for bug 789198

Revision history for this message
In , derf (tterribe) wrote :

Comment on attachment 542230
Enforce alignment for ARM code in Thumb mode in libvpx

># HG changeset patch
># User Timothy B. Terriberry <email address hidden>
># Date 1309201530 25200
># Node ID 1e745d4b39c8f8d7ffb3d4b8cdd7fafce68c5349
># Parent e338daa71bc2fdb9c05a276ef1a477e1730f0aca
>Bug 666931 - Enforce alignment for ARM code in Thumb mode in libvpx
>
>diff --git a/media/libvpx/build/make/ads2gas.pl b/media/libvpx/build/make/ads2gas.pl
>--- a/media/libvpx/build/make/ads2gas.pl
>+++ b/media/libvpx/build/make/ads2gas.pl
>@@ -74,17 +74,20 @@ while (<STDIN>)
>
> # Convert INCLUDE to .INCLUDE "file"
> s/INCLUDE(\s*)(.*)$/.include $1\"$2\"/;
>
> # Code directive (ARM vs Thumb)
> s/CODE([0-9][0-9])/.code $1/;
>
> # No AREA required
>- s/^\s*AREA.*$/.text/;
>+ # But ALIGNs in AREA must be obeyed
>+ s/^\s*AREA.*ALIGN=([0-9])$/.text\n.p2align $1/;
>+ # If no ALIGN, strip the AREA and align to 4 bytes
>+ s/^\s*AREA.*$/.text\n.p2align 2/;
>
> # DCD to .word
> # This one is for incoming symbols
> s/DCD\s+\|(\w*)\|/.long $1/;
>
> # DCW to .short
> s/DCW\s+\|(\w*)\|/.short $1/;
> s/DCW(.*)/.short $1/;
>diff --git a/media/libvpx/update.sh b/media/libvpx/update.sh
>--- a/media/libvpx/update.sh
>+++ b/media/libvpx/update.sh
>@@ -321,8 +321,11 @@ patch -p3 < solaris.patch
> # Patch to fix link with xcode4
> patch -p1 < xcode4.patch
>
> # Patch to fix data race on global function pointers
> patch -p3 < bug640935.patch
>
> # Patch to avoid text relocations on ARM
> patch -p3 < bug646815.patch
>+
>+# Patch to fix alignment problems with using ARM asm in Thumb mode.
>+patch -p3 < bug666931.patch