Commit ddbb7ea9 authored by Masahiro Yamada's avatar Masahiro Yamada Committed by Russell King (Oracle)

ARM: 9299/1: module: use sign_extend32() to extend the signedness

The function name clarifies the intention.
Signed-off-by: default avatarMasahiro Yamada <masahiroy@kernel.org>
Signed-off-by: default avatarRussell King (Oracle) <rmk+kernel@armlinux.org.uk>
parent 5bb578a0
...@@ -169,8 +169,7 @@ apply_relocate(Elf32_Shdr *sechdrs, const char *strtab, unsigned int symindex, ...@@ -169,8 +169,7 @@ apply_relocate(Elf32_Shdr *sechdrs, const char *strtab, unsigned int symindex,
offset = __mem_to_opcode_arm(*(u32 *)loc); offset = __mem_to_opcode_arm(*(u32 *)loc);
offset = (offset & 0x00ffffff) << 2; offset = (offset & 0x00ffffff) << 2;
if (offset & 0x02000000) offset = sign_extend32(offset, 25);
offset -= 0x04000000;
offset += sym->st_value - loc; offset += sym->st_value - loc;
...@@ -236,7 +235,7 @@ apply_relocate(Elf32_Shdr *sechdrs, const char *strtab, unsigned int symindex, ...@@ -236,7 +235,7 @@ apply_relocate(Elf32_Shdr *sechdrs, const char *strtab, unsigned int symindex,
case R_ARM_MOVT_PREL: case R_ARM_MOVT_PREL:
offset = tmp = __mem_to_opcode_arm(*(u32 *)loc); offset = tmp = __mem_to_opcode_arm(*(u32 *)loc);
offset = ((offset & 0xf0000) >> 4) | (offset & 0xfff); offset = ((offset & 0xf0000) >> 4) | (offset & 0xfff);
offset = (offset ^ 0x8000) - 0x8000; offset = sign_extend32(offset, 15);
offset += sym->st_value; offset += sym->st_value;
if (ELF32_R_TYPE(rel->r_info) == R_ARM_MOVT_PREL || if (ELF32_R_TYPE(rel->r_info) == R_ARM_MOVT_PREL ||
...@@ -344,8 +343,7 @@ apply_relocate(Elf32_Shdr *sechdrs, const char *strtab, unsigned int symindex, ...@@ -344,8 +343,7 @@ apply_relocate(Elf32_Shdr *sechdrs, const char *strtab, unsigned int symindex,
((~(j2 ^ sign) & 1) << 22) | ((~(j2 ^ sign) & 1) << 22) |
((upper & 0x03ff) << 12) | ((upper & 0x03ff) << 12) |
((lower & 0x07ff) << 1); ((lower & 0x07ff) << 1);
if (offset & 0x01000000) offset = sign_extend32(offset, 24);
offset -= 0x02000000;
offset += sym->st_value - loc; offset += sym->st_value - loc;
/* /*
...@@ -401,7 +399,7 @@ apply_relocate(Elf32_Shdr *sechdrs, const char *strtab, unsigned int symindex, ...@@ -401,7 +399,7 @@ apply_relocate(Elf32_Shdr *sechdrs, const char *strtab, unsigned int symindex,
offset = ((upper & 0x000f) << 12) | offset = ((upper & 0x000f) << 12) |
((upper & 0x0400) << 1) | ((upper & 0x0400) << 1) |
((lower & 0x7000) >> 4) | (lower & 0x00ff); ((lower & 0x7000) >> 4) | (lower & 0x00ff);
offset = (offset ^ 0x8000) - 0x8000; offset = sign_extend32(offset, 15);
offset += sym->st_value; offset += sym->st_value;
if (ELF32_R_TYPE(rel->r_info) == R_ARM_THM_MOVT_PREL || if (ELF32_R_TYPE(rel->r_info) == R_ARM_THM_MOVT_PREL ||
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment