| //===-- PIC16MCAsmInfo.cpp - PIC16 asm properties -------------------------===// |
| // |
| // 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 declarations of the PIC16MCAsmInfo properties. |
| // |
| //===----------------------------------------------------------------------===// |
| |
| #include "PIC16MCAsmInfo.h" |
| |
| // FIXME: Layering violation to get enums and static function, should be moved |
| // to separate headers. |
| #include "PIC16.h" |
| #include "PIC16ABINames.h" |
| #include "PIC16ISelLowering.h" |
| using namespace llvm; |
| |
| PIC16MCAsmInfo::PIC16MCAsmInfo(const Target &T, const StringRef &TT) { |
| CommentString = ";"; |
| GlobalPrefix = PAN::getTagName(PAN::PREFIX_SYMBOL); |
| GlobalDirective = "\tglobal\t"; |
| ExternDirective = "\textern\t"; |
| |
| Data8bitsDirective = " db "; |
| Data16bitsDirective = " dw "; |
| Data32bitsDirective = " dl "; |
| Data64bitsDirective = NULL; |
| ZeroDirective = NULL; |
| AsciiDirective = " dt "; |
| AscizDirective = NULL; |
| |
| RomData8bitsDirective = " dw "; |
| RomData16bitsDirective = " rom_di "; |
| RomData32bitsDirective = " rom_dl "; |
| HasSetDirective = false; |
| |
| // Set it to false because we weed to generate c file name and not bc file |
| // name. |
| HasSingleParameterDotFile = false; |
| } |
| |
| const char *PIC16MCAsmInfo::getDataASDirective(unsigned Size, |
| unsigned AS) const { |
| if (AS != PIC16ISD::ROM_SPACE) |
| return 0; |
| |
| switch (Size) { |
| case 8: return RomData8bitsDirective; |
| case 16: return RomData16bitsDirective; |
| case 32: return RomData32bitsDirective; |
| default: return NULL; |
| } |
| } |
| |