[all-commits] [llvm/llvm-project] dc49fb: [ARM] add Thumb-1 8-bit movs/adds relocations to LLVM

Ties Stuij via All-commits all-commits at lists.llvm.org
Thu Jun 22 08:36:01 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: dc49fbd2df7dd7236dda0d94c1f091aeba532886
      https://github.com/llvm/llvm-project/commit/dc49fbd2df7dd7236dda0d94c1f091aeba532886
  Author: Ties Stuij <ties.stuij at arm.com>
  Date:   2023-06-22 (Thu, 22 Jun 2023)

  Changed paths:
    M llvm/include/llvm/BinaryFormat/ELFRelocs/ARM.def
    M llvm/lib/Target/ARM/ARMInstrInfo.td
    M llvm/lib/Target/ARM/ARMInstrThumb.td
    M llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp
    M llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.cpp
    M llvm/lib/Target/ARM/MCTargetDesc/ARMELFObjectWriter.cpp
    M llvm/lib/Target/ARM/MCTargetDesc/ARMFixupKinds.h
    M llvm/lib/Target/ARM/MCTargetDesc/ARMMCCodeEmitter.cpp
    M llvm/lib/Target/ARM/MCTargetDesc/ARMMCExpr.cpp
    M llvm/lib/Target/ARM/MCTargetDesc/ARMMCExpr.h
    M llvm/test/MC/ARM/negative-immediates-thumb1-fail.s
    A llvm/test/MC/ARM/thumb-8-bit-relocs.s
    M llvm/test/MC/ARM/thumb-diagnostics.s
    A llvm/test/MC/ARM/thumb-fixups.s

  Log Message:
  -----------
  [ARM] add Thumb-1 8-bit movs/adds relocations to LLVM

This patch adds the LLVM-side plumbing for the following relocations:
- R_ARM_THM_ALU_ABS_G0_NC
- R_ARM_THM_ALU_ABS_G1_NC
- R_ARM_THM_ALU_ABS_G2_NC
- R_ARM_THM_ALU_ABS_G3

(see section 5.6.1.5, Static Thumb16 relocations, of the AArch32 ELF Arm ABI:
https://github.com/ARM-software/abi-aa/blob/844a79fd4c77252a11342709e3b27b2c9f590cf1/aaelf32/aaelf32.rst#5615static-thumb16-relocations)

Which can respectivly be generated by prefixing assembly symbols with:
- :lower0_7:
- :lower8_15:
- :upper0_7:
- :upper8_15:

LLD support for these relocations will be added in a follow-up patch

Reviewed By: john.brawn, MaskRay

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




More information about the All-commits mailing list