From fa1c0170176a5e4820f43824cffe80ffc4e7a717 Mon Sep 17 00:00:00 2001 From: Claudiu Zissulescu Date: Fri, 8 Jul 2016 11:55:49 +0200 Subject: [ARC] Fix/improve small data support. The R_ARC_SDA32 is wrongly described as a ME relocation, fix it. Offset the __SDATA_BEGIN__ to take advantage of the signed 9-bit field of the load/store instructions. include/ 2016-07-08 Claudiu Zissulescu * elf/arc-reloc.def (ARC_SDA32): Don't use ME transformation. ld/ 2016-07-08 Claudiu Zissulescu * emulparams/arcelf.sh (SDATA_START_SYMBOLS): Add offset. * testsuite/ld-arc/sda-relocs.dd: New file. * testsuite/ld-arc/sda-relocs.ld: Likewise. * testsuite/ld-arc/sda-relocs.rd: Likewise. * testsuite/ld-arc/sda-relocs.s: Likewise. * testsuite/ld-arc/arc.exp: Add SDA tests. --- include/elf/arc-reloc.def | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'include/elf') diff --git a/include/elf/arc-reloc.def b/include/elf/arc-reloc.def index a995056..17c2429 100644 --- a/include/elf/arc-reloc.def +++ b/include/elf/arc-reloc.def @@ -139,7 +139,7 @@ ARC_RELOC_HOWTO(ARC_SDA32, 18, \ 32, \ replace_word32, \ signed, \ - ( ME ( ( ( S + A ) - _SDA_BASE_ ) ) )) + ( ( ( S + A ) - _SDA_BASE_ ) )) ARC_RELOC_HOWTO(ARC_SDA_LDST, 19, \ 2, \ -- cgit v1.1