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
Comment on attachment 542230
Enforce alignment for ARM code in Thumb mode in libvpx
># HG changeset patch 7ffb3d4b8cdd7fa fce68c5349 9c05a276ef1a477 e1730f0aca libvpx/ build/make/ ads2gas. pl b/media/ libvpx/ build/make/ ads2gas. pl libvpx/ build/make/ ads2gas. pl libvpx/ build/make/ ads2gas. pl \s*)(.* )$/.include $1\"$2\"/; [0-9][0- 9])/.code $1/; *$/.text/ ; *ALIGN= ([0-9]) $/.text\ n.p2align $1/; *$/.text\ n.p2align 2/; \|(\w*) \|/.long $1/; \|(\w*) \|/.short $1/; libvpx/ update. sh b/media/ libvpx/ update. sh libvpx/ update. sh libvpx/ update. sh
># User Timothy B. Terriberry <email address hidden>
># Date 1309201530 25200
># Node ID 1e745d4b39c8f8d
># Parent e338daa71bc2fdb
>Bug 666931 - Enforce alignment for ARM code in Thumb mode in libvpx
>
>diff --git a/media/
>--- a/media/
>+++ b/media/
>@@ -74,17 +74,20 @@ while (<STDIN>)
>
> # Convert INCLUDE to .INCLUDE "file"
> s/INCLUDE(
>
> # Code directive (ARM vs Thumb)
> s/CODE(
>
> # No AREA required
>- s/^\s*AREA.
>+ # But ALIGNs in AREA must be obeyed
>+ s/^\s*AREA.
>+ # If no ALIGN, strip the AREA and align to 4 bytes
>+ s/^\s*AREA.
>
> # DCD to .word
> # This one is for incoming symbols
> s/DCD\s+
>
> # DCW to .short
> s/DCW\s+
> s/DCW(.*)/.short $1/;
>diff --git a/media/
>--- a/media/
>+++ b/media/
>@@ -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