#!/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($_, 1);

    s/ldrneb/ldrbne/i;
    s/ldrneh/ldrhne/i;

    print;
}

