blob: 8217c16fb87967275c78d67f12163a45fa337047 [file] [log] [blame]
Chris Lattner4ee451d2007-12-29 20:36:04 +00001//===-- SPUTargetAsmInfo.h - Cell SPU asm properties -----------*- C++ -*--===//
Scott Michel564427e2007-12-05 01:24:05 +00002//
3// The LLVM Compiler Infrastructure
4//
Chris Lattner4ee451d2007-12-29 20:36:04 +00005// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
Scott Michel564427e2007-12-05 01:24:05 +00007//
8//===----------------------------------------------------------------------===//
9//
10// This file contains the declaration of the SPUTargetAsmInfo class.
11//
12//===----------------------------------------------------------------------===//
13
Scott Micheld03eeaf2008-11-07 04:36:25 +000014#ifndef SPUTARGETASMINFO_H
15#define SPUTARGETASMINFO_H
Scott Michel564427e2007-12-05 01:24:05 +000016
17#include "llvm/Target/TargetAsmInfo.h"
Scott Micheld03eeaf2008-11-07 04:36:25 +000018#include "SPUTargetMachine.h"
19#include "SPUSubtarget.h"
Scott Michel564427e2007-12-05 01:24:05 +000020
21namespace llvm {
22
23 // Forward declaration.
24 class SPUTargetMachine;
Scott Micheld03eeaf2008-11-07 04:36:25 +000025
26 template <class BaseTAI>
27 struct SPUTargetAsmInfo : public BaseTAI {
Chris Lattner8d4a0a32009-08-02 04:27:24 +000028 explicit SPUTargetAsmInfo(const SPUTargetMachine &TM) {
Scott Micheld03eeaf2008-11-07 04:36:25 +000029 /* (unused today)
30 * const SPUSubtarget *Subtarget = &TM.getSubtarget<SPUSubtarget>(); */
Scott Michel564427e2007-12-05 01:24:05 +000031
Scott Micheld03eeaf2008-11-07 04:36:25 +000032 BaseTAI::ZeroDirective = "\t.space\t";
33 BaseTAI::SetDirective = "\t.set";
34 BaseTAI::Data64bitsDirective = "\t.quad\t";
35 BaseTAI::AlignmentIsInBytes = false;
36 BaseTAI::LCOMMDirective = "\t.lcomm\t";
37 BaseTAI::InlineAsmStart = "# InlineAsm Start";
38 BaseTAI::InlineAsmEnd = "# InlineAsm End";
39 }
Scott Michel564427e2007-12-05 01:24:05 +000040 };
Scott Micheld03eeaf2008-11-07 04:36:25 +000041
Chris Lattner8d4a0a32009-08-02 04:27:24 +000042 struct SPULinuxTargetAsmInfo : public SPUTargetAsmInfo<TargetAsmInfo> {
Scott Micheld03eeaf2008-11-07 04:36:25 +000043 explicit SPULinuxTargetAsmInfo(const SPUTargetMachine &TM);
Scott Micheld03eeaf2008-11-07 04:36:25 +000044 };
Scott Michel564427e2007-12-05 01:24:05 +000045} // namespace llvm
46
Scott Micheld03eeaf2008-11-07 04:36:25 +000047#endif /* SPUTARGETASMINFO_H */