From a83db43632ba99c4232a059d2b1c9266c99886d2 Mon Sep 17 00:00:00 2001 From: Martin Storsjo <martin@martin.st> Date: Tue, 20 Nov 2012 16:05:40 +0200 Subject: [PATCH] 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 --- build/make/Makefile | 1 + build/make/ads2armasm_ms.pl | 38 +++++++++++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+) create mode 100755 build/make/ads2armasm_ms.pl diff --git a/build/make/Makefile b/build/make/Makefile index e52ecd8c80..6c93c78d23 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 0000000000..2d3e6328fa --- /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 (<STDIN>) +{ + 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; +} + -- GitLab