diff --git a/llvm/lib/MC/MCAsmInfoCOFF.cpp b/llvm/lib/MC/MCAsmInfoCOFF.cpp index 97fc76a9adb1..5b9dd2009f8b 100644 --- a/llvm/lib/MC/MCAsmInfoCOFF.cpp +++ b/llvm/lib/MC/MCAsmInfoCOFF.cpp @@ -37,8 +37,7 @@ MCAsmInfoCOFF::MCAsmInfoCOFF() { UseIntegratedAssembler = true; - // FIXME: For now keep the previous behavior, AShr. Need to double-check - // other COFF-targeting assemblers and change this if necessary. + // At least MSVC inline-asm does AShr. UseLogicalShr = false; } diff --git a/llvm/lib/MC/MCAsmInfoDarwin.cpp b/llvm/lib/MC/MCAsmInfoDarwin.cpp index bb90ff2c350a..ae9486d3db4d 100644 --- a/llvm/lib/MC/MCAsmInfoDarwin.cpp +++ b/llvm/lib/MC/MCAsmInfoDarwin.cpp @@ -93,9 +93,4 @@ MCAsmInfoDarwin::MCAsmInfoDarwin() { UseIntegratedAssembler = true; SetDirectiveSuppressesReloc = true; - - // FIXME: For now keep the previous behavior, AShr, matching the previous - // behavior of as(1) (both -q and -Q: resp. LLVM and gas v1.38). - // If/when this changes, the AArch64 Darwin special case can go away. - UseLogicalShr = false; } diff --git a/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCAsmInfo.cpp b/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCAsmInfo.cpp index 921c4b94a729..fbce26e1d9a1 100644 --- a/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCAsmInfo.cpp +++ b/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCAsmInfo.cpp @@ -48,10 +48,6 @@ AArch64MCAsmInfoDarwin::AArch64MCAsmInfoDarwin() { UseDataRegionDirectives = true; ExceptionsType = ExceptionHandling::DwarfCFI; - - // AArch64 Darwin doesn't have the baggage of X86/ARM, so it's fine to use - // LShr instead of AShr. - UseLogicalShr = true; } const MCExpr *AArch64MCAsmInfoDarwin::getExprForPersonalitySymbol( diff --git a/llvm/test/MC/AsmParser/expr-shr.s b/llvm/test/MC/AsmParser/expr-shr.s index fc117b64e95a..792bef050d31 100644 --- a/llvm/test/MC/AsmParser/expr-shr.s +++ b/llvm/test/MC/AsmParser/expr-shr.s @@ -1,13 +1,12 @@ // RUN: llvm-mc -triple x86_64-unknown-unknown-elf %s | FileCheck %s --check-prefix=CHECK +// RUN: llvm-mc -triple x86_64-unknown-darwin %s | FileCheck %s --check-prefix=CHECK // RUN: llvm-mc -triple x86_64-pc-windows-msvc %s | FileCheck %s --check-prefix=MSVC -// RUN: llvm-mc -triple x86_64-unknown-darwin %s | FileCheck %s --check-prefix=DARWIN .data // CHECK: .quad 3 -// Both COFF and Darwin still use AShr. +// MSVC does AShr. // MSVC: .quad -1 -// DARWIN: .quad -1 .quad (~0 >> 62) diff --git a/llvm/test/MC/AsmParser/exprs.s b/llvm/test/MC/AsmParser/exprs.s index c5fc9b594a0c..1c3e284bcf7e 100644 --- a/llvm/test/MC/AsmParser/exprs.s +++ b/llvm/test/MC/AsmParser/exprs.s @@ -34,7 +34,7 @@ k: check_expr 1 | 2, 3 check_expr 1 << 1, 2 check_expr 2 >> 1, 1 - check_expr (~0 >> 1), -1 + check_expr (~0 >> 62), 3 check_expr 3 - 2, 1 check_expr 1 ^ 3, 2 check_expr 1 && 2, 1