SuccessChanges

Summary

  1. MC: AArch64: Add support for prel_g* relocation specifiers. Differential Revision: https://reviews.llvm.org/D64683
  2. AArch64: Unify relocation restrictions between MOVK/MOVN/MOVZ. There doesn't seem to be a practical reason for these instructions to have different restrictions on the types of relocations that they may be used with, notwithstanding the language in the ELF AArch64 spec that implies that specific relocations are meant to be used with specific instructions. For example, we currently forbid the first instruction in the following sequence, despite it currently being used by clang to generate a global reference under -mcmodel=large: movz x0, #:abs_g0_nc:foo movk x0, #:abs_g1_nc:foo movk x0, #:abs_g2_nc:foo movk x0, #:abs_g3:foo Therefore, allow MOVK/MOVN/MOVZ to accept the union of the set of relocations that they currently accept individually. Differential Revision: https://reviews.llvm.org/D64466
Revision 366462 by pcc:
MC: AArch64: Add support for prel_g* relocation specifiers.

Differential Revision: https://reviews.llvm.org/D64683
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp (diff)llvm.src/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
The file was modified/llvm/trunk/lib/Target/AArch64/MCTargetDesc/AArch64ELFObjectWriter.cpp (diff)llvm.src/lib/Target/AArch64/MCTargetDesc/AArch64ELFObjectWriter.cpp
The file was modified/llvm/trunk/lib/Target/AArch64/MCTargetDesc/AArch64MCExpr.cpp (diff)llvm.src/lib/Target/AArch64/MCTargetDesc/AArch64MCExpr.cpp
The file was modified/llvm/trunk/lib/Target/AArch64/MCTargetDesc/AArch64MCExpr.h (diff)llvm.src/lib/Target/AArch64/MCTargetDesc/AArch64MCExpr.h
The file was modified/llvm/trunk/test/MC/AArch64/arm64-large-relocs.s (diff)llvm.src/test/MC/AArch64/arm64-large-relocs.s
Revision 366461 by pcc:
AArch64: Unify relocation restrictions between MOVK/MOVN/MOVZ.

There doesn't seem to be a practical reason for these instructions to have
different restrictions on the types of relocations that they may be used
with, notwithstanding the language in the ELF AArch64 spec that implies that
specific relocations are meant to be used with specific instructions.

For example, we currently forbid the first instruction in the following
sequence, despite it currently being used by clang to generate a global
reference under -mcmodel=large:

movz x0, #:abs_g0_nc:foo
movk x0, #:abs_g1_nc:foo
movk x0, #:abs_g2_nc:foo
movk x0, #:abs_g3:foo

Therefore, allow MOVK/MOVN/MOVZ to accept the union of the set of relocations
that they currently accept individually.

Differential Revision: https://reviews.llvm.org/D64466
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/AArch64/AArch64InstrFormats.td (diff)llvm.src/lib/Target/AArch64/AArch64InstrFormats.td
The file was modified/llvm/trunk/lib/Target/AArch64/AArch64InstrInfo.td (diff)llvm.src/lib/Target/AArch64/AArch64InstrInfo.td
The file was modified/llvm/trunk/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp (diff)llvm.src/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
The file was modified/llvm/trunk/test/MC/AArch64/basic-a64-diagnostics.s (diff)llvm.src/test/MC/AArch64/basic-a64-diagnostics.s