| //===- AsmCond.h - Assembly file conditional assembly ----------*- C++ -*-===// | |
| // | |
| // The LLVM Compiler Infrastructure | |
| // | |
| // This file is distributed under the University of Illinois Open Source | |
| // License. See LICENSE.TXT for details. | |
| // | |
| //===----------------------------------------------------------------------===// | |
| #ifndef ASMCOND_H | |
| #define ASMCOND_H | |
| namespace llvm { | |
| /// AsmCond - Class to support conditional assembly | |
| /// | |
| /// The conditional assembly feature (.if, .else, .elseif and .endif) is | |
| /// implemented with AsmCond that tells us what we are in the middle of | |
| /// processing. Ignore can be either true or false. When true we are ignoring | |
| /// the block of code in the middle of a conditional. | |
| class AsmCond { | |
| public: | |
| enum ConditionalAssemblyType { | |
| NoCond, // no conditional is being processed | |
| IfCond, // inside if conditional | |
| ElseIfCond, // inside elseif conditional | |
| ElseCond // inside else conditional | |
| }; | |
| ConditionalAssemblyType TheCond; | |
| bool CondMet; | |
| bool Ignore; | |
| AsmCond() : TheCond(NoCond), CondMet(false), Ignore(false) {} | |
| }; | |
| } // end namespace llvm | |
| #endif |