[llvm] r338493 - [AArch64] Disallow the MachO specific .loh directive for windows

Martin Storsjo via llvm-commits llvm-commits at lists.llvm.org
Tue Jul 31 23:50:18 PDT 2018


Author: mstorsjo
Date: Tue Jul 31 23:50:18 2018
New Revision: 338493

URL: http://llvm.org/viewvc/llvm-project?rev=338493&view=rev
Log:
[AArch64] Disallow the MachO specific .loh directive for windows

Also add a test for it being unsupported for linux.

Differential Revision: https://reviews.llvm.org/D49929

Modified:
    llvm/trunk/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
    llvm/trunk/test/MC/AArch64/arm64-directive_loh.s

Modified: llvm/trunk/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp?rev=338493&r1=338492&r2=338493&view=diff
==============================================================================
--- llvm/trunk/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp (original)
+++ llvm/trunk/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp Tue Jul 31 23:50:18 2018
@@ -4859,7 +4859,6 @@ bool AArch64AsmParser::ParseDirective(As
   const MCObjectFileInfo::Environment Format =
     getContext().getObjectFileInfo()->getObjectFileType();
   bool IsMachO = Format == MCObjectFileInfo::IsMachO;
-  bool IsCOFF = Format == MCObjectFileInfo::IsCOFF;
 
   StringRef IDVal = DirectiveID.getIdentifier();
   SMLoc Loc = DirectiveID.getLoc();
@@ -4875,11 +4874,12 @@ bool AArch64AsmParser::ParseDirective(As
     parseDirectiveUnreq(Loc);
   else if (IDVal == ".inst")
     parseDirectiveInst(Loc);
-  else if (!IsMachO && !IsCOFF)
-    return true;
-  else if (IDVal == MCLOHDirectiveName())
-    parseDirectiveLOH(IDVal, Loc);
-  else
+  else if (IsMachO) {
+    if (IDVal == MCLOHDirectiveName())
+      parseDirectiveLOH(IDVal, Loc);
+    else
+      return true;
+  } else
     return true;
   return false;
 }

Modified: llvm/trunk/test/MC/AArch64/arm64-directive_loh.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/AArch64/arm64-directive_loh.s?rev=338493&r1=338492&r2=338493&view=diff
==============================================================================
--- llvm/trunk/test/MC/AArch64/arm64-directive_loh.s (original)
+++ llvm/trunk/test/MC/AArch64/arm64-directive_loh.s Tue Jul 31 23:50:18 2018
@@ -1,5 +1,7 @@
 # RUN: not llvm-mc -triple arm64-apple-darwin < %s 2> %t | FileCheck %s
 # RUN: FileCheck --check-prefix=CHECK-ERRORS < %t %s
+# RUN: not llvm-mc -triple aarch64-linux-gnu < %s 2>&1 | FileCheck --check-prefix=UNKNOWN %s
+# RUN: not llvm-mc -triple aarch64-win32-gnu < %s 2>&1 | FileCheck --check-prefix=UNKNOWN %s
 
 .globl _fct1
 _fct1:
@@ -15,6 +17,8 @@ _fct1:
 
 # CHECK: .loh AdrpAdrp L1, L2
 # CHECK: .loh AdrpAdrp L1, L2
+# UNKNOWN: error: unknown directive
+# UNKNOWN-NEXT: .loh AdrpAdrp L1, L2
 .loh AdrpAdrp L1, L2
 .loh 1 L1, L2
 




More information about the llvm-commits mailing list