From: Martin Storsjo Date: Tue, 20 Nov 2012 14:05:40 +0000 (+0200) Subject: Add a script for converting ads arm assembly to microsoft armasm format X-Git-Tag: v1.3.0~1122^2 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=a83db43632ba99c4232a059d2b1c9266c99886d2;p=libvpx Add a script for converting ads arm assembly to microsoft armasm format The formats are basically the same, but a few minor details need to be adjusted. Addiitonally, when building for the WinRT/Windows Phone 8 platforms, one has to build for thumb, so convert instructions accordingly. Change-Id: I3c3902aa20fd3bfc29168d3a1bf17111e5481dcb --- diff --git a/build/make/Makefile b/build/make/Makefile index e52ecd8c8..6c93c78d2 100644 --- a/build/make/Makefile +++ b/build/make/Makefile @@ -381,6 +381,7 @@ ifneq ($(call enabled,DIST-SRCS),) DIST-SRCS-$(ARCH_ARM)$(ARCH_X86)$(ARCH_X86_64) += build/make/obj_int_extract.c DIST-SRCS-$(ARCH_ARM) += build/make/ads2gas.pl DIST-SRCS-$(ARCH_ARM) += build/make/ads2gas_apple.pl + DIST-SRCS-$(ARCH_ARM) += build/make/ads2armasm_ms.pl DIST-SRCS-$(ARCH_ARM) += build/make/thumb.pm DIST-SRCS-yes += $(target:-$(TOOLCHAIN)=).mk endif diff --git a/build/make/ads2armasm_ms.pl b/build/make/ads2armasm_ms.pl new file mode 100755 index 000000000..2d3e6328f --- /dev/null +++ b/build/make/ads2armasm_ms.pl @@ -0,0 +1,38 @@ +#!/usr/bin/perl +## +## Copyright (c) 2013 The WebM project authors. All Rights Reserved. +## +## Use of this source code is governed by a BSD-style license +## that can be found in the LICENSE file in the root of the source +## tree. An additional intellectual property rights grant can be found +## in the file PATENTS. All contributing project authors may +## be found in the AUTHORS file in the root of the source tree. +## + +use FindBin; +use lib $FindBin::Bin; +use thumb; + +print "; This file was created from a .asm file\n"; +print "; using the ads2armasm_ms.pl script.\n"; + +while () +{ + undef $comment; + undef $line; + + s/REQUIRE8//; + s/PRESERVE8//; + s/^\s*ARM\s*$//; + s/AREA\s+\|\|(.*)\|\|/AREA |$1|/; + s/qsubaddx/qsax/i; + s/qaddsubx/qasx/i; + + thumb::FixThumbInstructions($_); + + s/ldrneb/ldrbne/i; + s/ldrneh/ldrhne/i; + + print; +} +