Bug 666931 - Enforce alignment for ARM code in Thumb mode in libvpx. r=cpearce

This commit is contained in:
Timothy B. Terriberry 2011-06-27 12:05:30 -07:00
Родитель 7be4d8b280
Коммит 6c5e24387c
3 изменённых файлов: 32 добавлений и 1 удалений

Просмотреть файл

@ -0,0 +1,25 @@
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/;

Просмотреть файл

@ -79,7 +79,10 @@ while (<STDIN>)
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

Просмотреть файл

@ -326,3 +326,6 @@ 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