2018-04-30 Andrew Sadek <andrew.sadek.se@gmail.com> gcc/ChangeLog: * config/microblaze/microblaze.opt: add new option -mpic-data-text-rel. * config/microblaze/microblaze-protos.h (microblaze_constant_address_p): Add declaration. * gcc/config/microblaze/microblaze.h (microblaze_constant_address_p): CONSTANT_ADDRESS_P definition to microblaze_constant_address_p. * config/microblaze/microblaze.c (TARGET_PIC_DATA_TEXT_REL): New addressing mode for data-text relative position indepenedent code. (microblaze_classify_unspec): add 'UNSPEC_TEXT' case -> 'ADDRESS_SYMBOLIC_TXT_REL'. (microblaze_classify_address): Add handling for UNSPEC + CONST_INT. (microblaze_legitimate_pic_operand): Exclude function calls from pic operands in case of TARGET_PIC_DATA_TEXT_REL option. (microblaze_legitimize_address): Generate 'UNSPEC_TEXT' for all possible addresses cases. (microblaze_address_insns): Add 'ADDRESS_SYMBOLIC_TXT_REL' case. (print_operand): Add 'ADDRESS_SYMBOLIC_TXT_REL' case. (print_operand_address): Add 'ADDRESS_SYMBOLIC_TXT_REL' case + handling for 'address + offset'. (microblaze_expand_prologue): Add new function prologue call for 'r20' assignation. (microblaze_asm_generate_pic_addr_dif_vec): Override new target hook 'TARGET_ASM_GENERATE_PIC_ADDR_DIFF_VEC' to disable address diff vector table in case of TARGET_PIC_DATA_TEXT_REL. (expand_pic_symbol_ref): Add handling for 'UNSPEC_TEXT'. * gcc/config/microblaze/microblaze.md (TARGET_PIC_DATA_TEXT_REL): Add new macros 'UNSPEC_TEXT', 'UNSPEC_SET_TEXT' + add rule for setting r20 in function prologue + exclude function calls from 'UNSPEC_PLT' in case of data text relative mode. * doc/tm.texi.in (TARGET_ASM_GENERATE_PIC_ADDR_DIFF_VEC): Add new target hook for generating address diff vector tables in case of flag_pic. * doc/tm.texi : Regenerate. * stmt.c (TARGET_ASM_GENERATE_PIC_ADDR_DIFF_VEC): Append new condition 'targetm.asm_out.generate_pic_addr_diff_vec' to flag_pic in case of addr diff vector generation. * target.def (TARGET_ASM_GENERATE_PIC_ADDR_DIFF_VEC): Add target hook definition. * targhooks.h, gcc/targhooks.c (TARGET_ASM_GENERATE_PIC_ADDR_DIFF_VEC): Add default function for generate_pic_addr_diff_vec -> flag_pic. * doc/invoke.texi (Add new pic option): Add new microblaze pic option for data text relative. testsuite/ChangeLog: * gcc.target/microblaze/others/data_var1.c: Include PIC case of r20 base register. * gcc.target/microblaze/others/data_var2.c: Ditto. * gcc.target/microblaze/others/picdtr.c: Add new test case for -mpic-is-data-text-relative. * gcc.target/microblaze/others/sdata_var1.c: Add * gcc.target/microblaze/others/sdata_var2.c: Ditto. * gcc.target/microblaze/others/sdata_var3.c: Ditto. * gcc.target/microblaze/others/sdata_var4.c: Ditto. * gcc.target/microblaze/others/sdata_var5.c: Ditto. * gcc.target/microblaze/others/sdata_var6.c: Ditto. * gcc.target/microblaze/others/string_cst1_gpopt.c: Ditto. * gcc.target/microblaze/others/string_cst2_gpopt.c: Ditto. From-SVN: r259758
Name |
Last commit
|
Last update |
---|---|---|
INSTALL | Loading commit data... | |
config | Loading commit data... | |
contrib | Loading commit data... | |
fixincludes | Loading commit data... | |
gcc | Loading commit data... | |
gnattools | Loading commit data... | |
gotools | Loading commit data... | |
include | Loading commit data... | |
intl | Loading commit data... | |
libada | Loading commit data... | |
libatomic | Loading commit data... | |
libbacktrace | Loading commit data... | |
libcc1 | Loading commit data... | |
libcpp | Loading commit data... | |
libdecnumber | Loading commit data... | |
libffi | Loading commit data... | |
libgcc | Loading commit data... | |
libgfortran | Loading commit data... | |
libgo | Loading commit data... | |
libgomp | Loading commit data... | |
libhsail-rt | Loading commit data... | |
libiberty | Loading commit data... | |
libitm | Loading commit data... | |
libmpx | Loading commit data... | |
libobjc | Loading commit data... | |
liboffloadmic | Loading commit data... | |
libquadmath | Loading commit data... | |
libsanitizer | Loading commit data... | |
libssp | Loading commit data... | |
libstdc++-v3 | Loading commit data... | |
libvtv | Loading commit data... | |
lto-plugin | Loading commit data... | |
maintainer-scripts | Loading commit data... | |
zlib | Loading commit data... | |
.dir-locals.el | Loading commit data... | |
.gitattributes | Loading commit data... | |
.gitignore | Loading commit data... | |
ABOUT-NLS | Loading commit data... | |
COPYING | Loading commit data... | |
COPYING.LIB | Loading commit data... | |
COPYING.RUNTIME | Loading commit data... | |
COPYING3 | Loading commit data... | |
COPYING3.LIB | Loading commit data... | |
ChangeLog | Loading commit data... | |
ChangeLog.jit | Loading commit data... | |
ChangeLog.tree-ssa | Loading commit data... | |
MAINTAINERS | Loading commit data... | |
Makefile.def | Loading commit data... | |
Makefile.in | Loading commit data... | |
Makefile.tpl | Loading commit data... | |
README | Loading commit data... | |
compile | Loading commit data... | |
config-ml.in | Loading commit data... | |
config.guess | Loading commit data... | |
config.rpath | Loading commit data... | |
config.sub | Loading commit data... | |
configure | Loading commit data... | |
configure.ac | Loading commit data... | |
depcomp | Loading commit data... | |
install-sh | Loading commit data... | |
libtool-ldflags | Loading commit data... | |
libtool.m4 | Loading commit data... | |
ltgcc.m4 | Loading commit data... | |
ltmain.sh | Loading commit data... | |
ltoptions.m4 | Loading commit data... | |
ltsugar.m4 | Loading commit data... | |
ltversion.m4 | Loading commit data... | |
lt~obsolete.m4 | Loading commit data... | |
missing | Loading commit data... | |
mkdep | Loading commit data... | |
mkinstalldirs | Loading commit data... | |
move-if-change | Loading commit data... | |
symlink-tree | Loading commit data... | |
ylwrap | Loading commit data... |