summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohann <johannkoenig@google.com>2013-11-13 15:41:40 -0800
committerJohann <johannkoenig@google.com>2013-11-15 08:36:47 -0800
commit16344c4a5511669543ab91e5cdb567644210bfb7 (patch)
treed897d15fcec00a35dfb542551612695d537086fa
parent5d0c33b8e51de02dc10f764ee87f67a7dcd8a21b (diff)
downloadlibvpx-16344c4a5511669543ab91e5cdb567644210bfb7.tar.gz
libvpx-16344c4a5511669543ab91e5cdb567644210bfb7.tar.bz2
libvpx-16344c4a5511669543ab91e5cdb567644210bfb7.zip
Generate GAS output for Chromium
Upstream changes to account for differences in clang syntax for Chromium iOS builds. Since most of these are incompatible with XCode clang, hide them behind a flag. Change-Id: Idafcbcd4eb01b1ada6277da2d2edfd6c04b579fd
-rwxr-xr-xbuild/make/ads2gas_apple.pl23
1 files changed, 22 insertions, 1 deletions
diff --git a/build/make/ads2gas_apple.pl b/build/make/ads2gas_apple.pl
index fdafa982b..befb3dbe7 100755
--- a/build/make/ads2gas_apple.pl
+++ b/build/make/ads2gas_apple.pl
@@ -17,6 +17,13 @@
#
# Usage: cat inputfile | perl ads2gas_apple.pl > outputfile
#
+
+my $chromium = 0;
+
+foreach my $arg (@ARGV) {
+ $chromium = 1 if ($arg eq "-chromium");
+}
+
print "@ This file was created from a .asm file\n";
print "@ using the ads2gas_apple.pl script.\n\n";
print "\t.set WIDE_REFERENCE, 0\n";
@@ -47,7 +54,7 @@ while (<STDIN>)
s/@/,:/g;
# Comment character
- s/;/@/g;
+ s/;/ @/g;
# Hexadecimal constants prefaced by 0x
s/#&/#0x/g;
@@ -210,5 +217,19 @@ while (<STDIN>)
# s/\$/\\/g; # End macro definition
s/MEND/.endm/; # No need to tell it where to stop assembling
next if /^\s*END\s*$/;
+
+ # Clang used by Chromium differs slightly from clang in XCode in what it
+ # will accept in the assembly.
+ if ($chromium) {
+ s/qsubaddx/qsax/i;
+ s/qaddsubx/qasx/i;
+ s/ldrneb/ldrbne/i;
+ s/ldrneh/ldrhne/i;
+ s/(vqshrun\.s16 .*, \#)0$/${1}8/i;
+
+ # http://llvm.org/bugs/show_bug.cgi?id=16022
+ s/\.include/#include/;
+ }
+
print;
}