//===-- SPUTargetAsmInfo.h - Cell SPU asm properties -----------*- C++ -*--===// // // The LLVM Compiler Infrastructure // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// // // This file contains the declaration of the SPUTargetAsmInfo class. // //===----------------------------------------------------------------------===// #ifndef SPUTARGETASMINFO_H #define SPUTARGETASMINFO_H #include "llvm/Target/TargetAsmInfo.h" #include "llvm/Target/ELFTargetAsmInfo.h" #include "SPUTargetMachine.h" #include "SPUSubtarget.h" namespace llvm { // Forward declaration. class SPUTargetMachine; template struct SPUTargetAsmInfo : public BaseTAI { explicit SPUTargetAsmInfo(const SPUTargetMachine &TM): BaseTAI(TM) { /* (unused today) * const SPUSubtarget *Subtarget = &TM.getSubtarget(); */ BaseTAI::ZeroDirective = "\t.space\t"; BaseTAI::SetDirective = "\t.set"; BaseTAI::Data64bitsDirective = "\t.quad\t"; BaseTAI::AlignmentIsInBytes = false; BaseTAI::LCOMMDirective = "\t.lcomm\t"; BaseTAI::InlineAsmStart = "# InlineAsm Start"; BaseTAI::InlineAsmEnd = "# InlineAsm End"; } }; struct SPULinuxTargetAsmInfo : public SPUTargetAsmInfo { explicit SPULinuxTargetAsmInfo(const SPUTargetMachine &TM); virtual unsigned PreferredEHDataFormat(DwarfEncoding::Target Reason, bool Global) const; }; } // namespace llvm #endif /* SPUTARGETASMINFO_H */