1 //===- AsmCond.h - Assembly file conditional assembly ----------*- C++ -*-===// 2 // 3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4 // See https://llvm.org/LICENSE.txt for license information. 5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6 // 7 //===----------------------------------------------------------------------===// 8 9 #ifndef LLVM_MC_MCPARSER_ASMCOND_H 10 #define LLVM_MC_MCPARSER_ASMCOND_H 11 12 namespace llvm { 13 14 /// AsmCond - Class to support conditional assembly 15 /// 16 /// The conditional assembly feature (.if, .else, .elseif and .endif) is 17 /// implemented with AsmCond that tells us what we are in the middle of 18 /// processing. Ignore can be either true or false. When true we are ignoring 19 /// the block of code in the middle of a conditional. 20 21 class AsmCond { 22 public: 23 enum ConditionalAssemblyType { 24 NoCond, // no conditional is being processed 25 IfCond, // inside if conditional 26 ElseIfCond, // inside elseif conditional 27 ElseCond // inside else conditional 28 }; 29 30 ConditionalAssemblyType TheCond = NoCond; 31 bool CondMet = false; 32 bool Ignore = false; 33 }; 34 35 } // end namespace llvm 36 37 #endif // LLVM_MC_MCPARSER_ASMCOND_H 38