[all-commits] [llvm/llvm-project] 891490: [lld-macho] Add support for arm64_32
Jez Ng via All-commits
all-commits at lists.llvm.org
Tue Apr 13 07:44:31 PDT 2021
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 8914902b01a3f8bdea9c71a0d9d23e4ee0ae80e4
https://github.com/llvm/llvm-project/commit/8914902b01a3f8bdea9c71a0d9d23e4ee0ae80e4
Author: Jez Ng <jezng at fb.com>
Date: 2021-04-13 (Tue, 13 Apr 2021)
Changed paths:
M lld/MachO/Arch/ARM64.cpp
A lld/MachO/Arch/ARM64Common.cpp
A lld/MachO/Arch/ARM64Common.h
A lld/MachO/Arch/ARM64_32.cpp
M lld/MachO/CMakeLists.txt
M lld/MachO/Driver.cpp
M lld/MachO/MachOStructs.h
M lld/MachO/Target.h
M lld/MachO/Writer.cpp
A lld/test/MachO/Inputs/WatchOS.sdk/usr/lib/libSystem.tbd
A lld/test/MachO/Inputs/WatchOS.sdk/usr/lib/libc++.tbd
A lld/test/MachO/Inputs/WatchOS.sdk/usr/lib/libc++abi.tbd
A lld/test/MachO/arm64-32-stubs.s
M lld/test/MachO/header.s
M lld/test/MachO/lit.local.cfg
M lld/test/MachO/segments.s
Log Message:
-----------
[lld-macho] Add support for arm64_32
>From what I can tell, it's pretty similar to arm64. The two main differences
are:
1. No 64-bit relocations
2. Stub code writes to 32-bit registers instead of 64-bit
Plus of course the various on-disk structures like `segment_command` are using
the 32-bit instead of the 64-bit variants.
Reviewed By: #lld-macho, gkm
Differential Revision: https://reviews.llvm.org/D99822
Commit: 35a745d814e1cde3de25d0d959fddc31e1061a41
https://github.com/llvm/llvm-project/commit/35a745d814e1cde3de25d0d959fddc31e1061a41
Author: Jez Ng <jezng at fb.com>
Date: 2021-04-13 (Tue, 13 Apr 2021)
Changed paths:
M lld/MachO/Relocations.h
M lld/MachO/SyntheticSections.h
M lld/MachO/UnwindInfoSection.cpp
M lld/MachO/UnwindInfoSection.h
M lld/MachO/Writer.cpp
M lld/test/MachO/compact-unwind.s
Log Message:
-----------
[lld-macho] Add 32-bit compact unwind support
This could probably have been part of D99633, but I split it up to make
things a bit more reviewable. I also fixed some bugs in the implementation that
were masked through integer underflows when operating in 64-bit mode.
Reviewed By: #lld-macho, gkm
Differential Revision: https://reviews.llvm.org/D99823
Commit: 3142fc3b5bba78663b7579a401683b0cda90243f
https://github.com/llvm/llvm-project/commit/3142fc3b5bba78663b7579a401683b0cda90243f
Author: Jez Ng <jezng at fb.com>
Date: 2021-04-13 (Tue, 13 Apr 2021)
Changed paths:
M lld/MachO/InputFiles.cpp
M lld/test/MachO/invalid/undefined-symbol.s
M lld/test/MachO/u.s
M lld/test/MachO/why-load.s
Log Message:
-----------
[lld-macho] Have toString() emit full path to archive files
It doesn't make sense to take just the base filename for archives when we emit
the full path for object files. (LLD-ELF emits the full path too.)
This will also make it easier to write a proper test for {D100147}.
Reviewed By: #lld-macho, oontvoo
Differential Revision: https://reviews.llvm.org/D100357
Commit: 682d1dfe09436857aa3b64365b5cc6fcbf1f043b
https://github.com/llvm/llvm-project/commit/682d1dfe09436857aa3b64365b5cc6fcbf1f043b
Author: Jez Ng <jezng at fb.com>
Date: 2021-04-13 (Tue, 13 Apr 2021)
Changed paths:
M lld/MachO/Arch/ARM64Common.cpp
A lld/test/MachO/arm64-32-reloc-got-load.s
Log Message:
-----------
[lld-macho] Make load relaxation work for arm64_32
arm64_32 uses 32-bit GOT loads, so we should accept those
instructions in `ARM64Common::relaxGotLoad()` too.
Reviewed By: #lld-macho, gkm
Differential Revision: https://reviews.llvm.org/D100229
Compare: https://github.com/llvm/llvm-project/compare/29a4d7813c75...682d1dfe0943
More information about the All-commits
mailing list