1233d2500723e5594f3e7c70896ffeeef32b9c950ywan#!/usr/bin/env perl
2233d2500723e5594f3e7c70896ffeeef32b9c950ywan##
3233d2500723e5594f3e7c70896ffeeef32b9c950ywan##  Copyright (c) 2013 The WebM project authors. All Rights Reserved.
4233d2500723e5594f3e7c70896ffeeef32b9c950ywan##
5233d2500723e5594f3e7c70896ffeeef32b9c950ywan##  Use of this source code is governed by a BSD-style license
6233d2500723e5594f3e7c70896ffeeef32b9c950ywan##  that can be found in the LICENSE file in the root of the source
7233d2500723e5594f3e7c70896ffeeef32b9c950ywan##  tree. An additional intellectual property rights grant can be found
8233d2500723e5594f3e7c70896ffeeef32b9c950ywan##  in the file PATENTS.  All contributing project authors may
9233d2500723e5594f3e7c70896ffeeef32b9c950ywan##  be found in the AUTHORS file in the root of the source tree.
10233d2500723e5594f3e7c70896ffeeef32b9c950ywan##
11233d2500723e5594f3e7c70896ffeeef32b9c950ywan
12233d2500723e5594f3e7c70896ffeeef32b9c950ywanuse FindBin;
13233d2500723e5594f3e7c70896ffeeef32b9c950ywanuse lib $FindBin::Bin;
14233d2500723e5594f3e7c70896ffeeef32b9c950ywanuse thumb;
15233d2500723e5594f3e7c70896ffeeef32b9c950ywan
16233d2500723e5594f3e7c70896ffeeef32b9c950ywanprint "; This file was created from a .asm file\n";
17233d2500723e5594f3e7c70896ffeeef32b9c950ywanprint ";  using the ads2armasm_ms.pl script.\n";
18233d2500723e5594f3e7c70896ffeeef32b9c950ywan
19233d2500723e5594f3e7c70896ffeeef32b9c950ywanwhile (<STDIN>)
20233d2500723e5594f3e7c70896ffeeef32b9c950ywan{
21233d2500723e5594f3e7c70896ffeeef32b9c950ywan    undef $comment;
22233d2500723e5594f3e7c70896ffeeef32b9c950ywan    undef $line;
23233d2500723e5594f3e7c70896ffeeef32b9c950ywan
24233d2500723e5594f3e7c70896ffeeef32b9c950ywan    s/REQUIRE8//;
25233d2500723e5594f3e7c70896ffeeef32b9c950ywan    s/PRESERVE8//;
26233d2500723e5594f3e7c70896ffeeef32b9c950ywan    s/^\s*ARM\s*$//;
27233d2500723e5594f3e7c70896ffeeef32b9c950ywan    s/AREA\s+\|\|(.*)\|\|/AREA |$1|/;
28233d2500723e5594f3e7c70896ffeeef32b9c950ywan    s/qsubaddx/qsax/i;
29233d2500723e5594f3e7c70896ffeeef32b9c950ywan    s/qaddsubx/qasx/i;
30233d2500723e5594f3e7c70896ffeeef32b9c950ywan
31233d2500723e5594f3e7c70896ffeeef32b9c950ywan    thumb::FixThumbInstructions($_, 1);
32233d2500723e5594f3e7c70896ffeeef32b9c950ywan
33233d2500723e5594f3e7c70896ffeeef32b9c950ywan    s/ldrneb/ldrbne/i;
34233d2500723e5594f3e7c70896ffeeef32b9c950ywan    s/ldrneh/ldrhne/i;
35233d2500723e5594f3e7c70896ffeeef32b9c950ywan    s/^(\s*)ENDP.*/$&\n$1ALIGN 4/;
36233d2500723e5594f3e7c70896ffeeef32b9c950ywan
37233d2500723e5594f3e7c70896ffeeef32b9c950ywan    print;
38233d2500723e5594f3e7c70896ffeeef32b9c950ywan}
39233d2500723e5594f3e7c70896ffeeef32b9c950ywan
40