diff options
author | Johann <johannkoenig@google.com> | 2013-11-13 15:41:40 -0800 |
---|---|---|
committer | Johann <johannkoenig@google.com> | 2013-11-15 08:36:47 -0800 |
commit | 16344c4a5511669543ab91e5cdb567644210bfb7 (patch) | |
tree | d897d15fcec00a35dfb542551612695d537086fa | |
parent | 5d0c33b8e51de02dc10f764ee87f67a7dcd8a21b (diff) | |
download | libvpx-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-x | build/make/ads2gas_apple.pl | 23 |
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; } |