This patch is a partial implementation of mips .set assembler directive. Directive...
authorJack Carter <jcarter@mips.com>
Thu, 4 Oct 2012 02:29:46 +0000 (02:29 +0000)
committerJack Carter <jcarter@mips.com>
Thu, 4 Oct 2012 02:29:46 +0000 (02:29 +0000)
commit30116cd2e24a4a2b6c2771ef2665d655de93b984
treeffe3150f7b79530449a9376ee7824bbf52cc4747
parent047d3617cb9cfba07b6c982e9597b937c7d7115a
This patch is a partial implementation of mips .set assembler directive. Directive is defined as follows:
.set option
The patch implements following options

    at - lets the assembler use the $at register for macros,
         but generates warnings if the source program uses $at

    noat - let source programs use $at without issuingwarnings.

    noreorder - prevents the assembler from reordering machine
                language instructions.
    nomacro - causes the assembler to print a warning whenever
              an assembler operation generates more than one
              machine language instruction.
    macro - lets the assembler generate multiple machine instructions
            from a single assembler instruction
    reorder - lets the assembler reorder machine language
               instructions to improve performance

The above variants are parsed and their boolean values set or unset.
The code to actually use them will come later.

Following options are not implemented yet:

nomips16
nomicromips
move
nomove

Contributer: Vladimir Medic

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165194 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/Mips/AsmParser/MipsAsmParser.cpp
test/MC/Mips/mips_directives.s