From 4e5ba6f6efa4ee11ca3b571708d58c06f1c42ae5 Mon Sep 17 00:00:00 2001 From: Huang Qi Date: Sat, 19 Nov 2022 19:36:02 +0800 Subject: [PATCH] Fix issue of thumb relocation R_ARM_THM_MOVT_ABS (#1723) --- core/iwasm/aot/arch/aot_reloc_thumb.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/core/iwasm/aot/arch/aot_reloc_thumb.c b/core/iwasm/aot/arch/aot_reloc_thumb.c index 8915f895..26614863 100644 --- a/core/iwasm/aot/arch/aot_reloc_thumb.c +++ b/core/iwasm/aot/arch/aot_reloc_thumb.c @@ -409,6 +409,11 @@ apply_relocation(AOTModule *module, uint8 *target_section_addr, || reloc_type == R_ARM_THM_MOVT_PREL) offset >>= 16; + upper = (uint16)((upper & 0xfbf0) | ((offset & 0xf000) >> 12) + | ((offset & 0x0800) >> 1)); + lower = (uint16)((lower & 0x8f00) | ((offset & 0x0700) << 4) + | (offset & 0x00ff)); + *(uint16 *)(target_section_addr + reloc_offset) = upper; *(uint16 *)(target_section_addr + reloc_offset + 2) = lower; break;