MCAsmInfoCOFF.cpp 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. //===-- MCAsmInfoCOFF.cpp - COFF asm properties -----------------*- C++ -*-===//
  2. //
  3. // The LLVM Compiler Infrastructure
  4. //
  5. // This file is distributed under the University of Illinois Open Source
  6. // License. See LICENSE.TXT for details.
  7. //
  8. //===----------------------------------------------------------------------===//
  9. //
  10. // This file defines target asm properties related what form asm statements
  11. // should take in general on COFF-based targets
  12. //
  13. //===----------------------------------------------------------------------===//
  14. #include "llvm/MC/MCAsmInfoCOFF.h"
  15. using namespace llvm;
  16. void MCAsmInfoCOFF::anchor() { }
  17. MCAsmInfoCOFF::MCAsmInfoCOFF() {
  18. // MingW 4.5 and later support .comm with log2 alignment, but .lcomm uses byte
  19. // alignment.
  20. COMMDirectiveAlignmentIsInBytes = false;
  21. LCOMMDirectiveAlignmentType = LCOMM::ByteAlignment;
  22. HasDotTypeDotSizeDirective = false;
  23. HasSingleParameterDotFile = false;
  24. WeakRefDirective = "\t.weak\t";
  25. HasLinkOnceDirective = true;
  26. // Doesn't support visibility:
  27. HiddenVisibilityAttr = HiddenDeclarationVisibilityAttr = MCSA_Invalid;
  28. ProtectedVisibilityAttr = MCSA_Invalid;
  29. // Set up DWARF directives
  30. SupportsDebugInformation = true;
  31. NeedsDwarfSectionOffsetDirective = true;
  32. UseIntegratedAssembler = true;
  33. // FIXME: For now keep the previous behavior, AShr. Need to double-check
  34. // other COFF-targeting assemblers and change this if necessary.
  35. UseLogicalShr = false;
  36. }
  37. void MCAsmInfoMicrosoft::anchor() { }
  38. MCAsmInfoMicrosoft::MCAsmInfoMicrosoft() {
  39. }
  40. void MCAsmInfoGNUCOFF::anchor() { }
  41. MCAsmInfoGNUCOFF::MCAsmInfoGNUCOFF() {
  42. }