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