[llvm] [JITLink][AArch32] Unittest for error paths of readAddend and applyFixup functionality (PR #69636)

Stefan Gränitz via llvm-commits llvm-commits at lists.llvm.org
Wed Nov 8 08:28:10 PST 2023


================
@@ -192,14 +192,14 @@ template <> struct FixupInfo<Arm_MovwAbsNC> : public FixupInfo<Arm_MovtAbs> {
 };
 
 template <> struct FixupInfo<Thumb_Jump24> {
-  static constexpr HalfWords Opcode{0xf000, 0x8000};
-  static constexpr HalfWords OpcodeMask{0xf800, 0x8000};
+  static constexpr HalfWords Opcode{0xf000, 0x9000};
+  static constexpr HalfWords OpcodeMask{0xf800, 0xd000};
----------------
weliveindetail wrote:

The [docs here](https://github.com/ARM-software/abi-aa/blob/main/aaelf32/aaelf32.rst#5616static-thumb32-relocations) state that Jump24 requires a `B.W` instruction. The old opcode and mask match both of its encodings: `B-T3` and `B-T4`. We only support `B-T4` right now (and I don't think Jump24 can even be applied to the other one). So indeed, we should fix both, opcode and mask, to be `0x9000`.

https://github.com/llvm/llvm-project/pull/69636


More information about the llvm-commits mailing list