aboutsummaryrefslogtreecommitdiff
path: root/include/elf
diff options
context:
space:
mode:
authorMax Filippov <jcmvbkbc@gmail.com>2020-05-10 08:03:08 -0700
committerMax Filippov <jcmvbkbc@gmail.com>2020-06-15 13:01:30 -0700
commit7a77f1ac2c6f899faa39e8c0b42d4284d586c44e (patch)
treea62d6ddd84a685332322b873f7b2cd4facdc3601 /include/elf
parentcae64165f47b64898c4f1982d294862cfae89a47 (diff)
downloadgdb-7a77f1ac2c6f899faa39e8c0b42d4284d586c44e.zip
gdb-7a77f1ac2c6f899faa39e8c0b42d4284d586c44e.tar.gz
gdb-7a77f1ac2c6f899faa39e8c0b42d4284d586c44e.tar.bz2
xtensa: allow runtime ABI selection
2020-06-15 Max Filippov <jcmvbkbc@gmail.com> bfd/ * elf32-xtensa.c (XSHAL_ABI, XTHAL_ABI_UNDEFINED) (XTHAL_ABI_WINDOWED, XTHAL_ABI_CALL0): New macros. (elf32xtensa_abi): New global variable. (xtensa_abi_choice): New function. (elf_xtensa_create_plt_entry): Use xtensa_abi_choice instead of XSHAL_ABI to select PLT code. gas/ * config/tc-xtensa.c (XTHAL_ABI_WINDOWED, XTHAL_ABI_CALL0): New macros. (elf32xtensa_abi): New declaration. (option_abi_windowed, option_abi_call0): New enum constants. (md_longopts): Add entries for --abi-windowed and --abi-call0. (md_parse_option): Add handlers for --abi-windowed and --abi-call0. (xtensa_add_config_info): Use xtensa_abi_choice instead of XSHAL_ABI to format ABI tag. * doc/as.texi (Target Xtensa options): Add --abi-windowed and --abi-call0 to the list of options. * doc/c-xtensa.texi: Add description for options --abi-windowed and --abi-call0. * testsuite/gas/xtensa/abi-call0.d: New test definition. * testsuite/gas/xtensa/abi-windowed.d: New test definition. * testsuite/gas/xtensa/abi.s: New test source. include/ * elf/xtensa.h (xtensa_abi_choice): New declaration. ld/ * emultempl/xtensaelf.em (XSHAL_ABI): Remove macro definition. (XTHAL_ABI_UNDEFINED, XTHAL_ABI_WINDOWED, XTHAL_ABI_CALL0): New macros. (elf32xtensa_abi): New declaration. (xt_config_info_unpack_and_check): Set elf32xtensa_abi if it is undefined. Use xtensa_abi_choice instead of XSHAL_ABI to test ABI tag consistency. (xtensa_add_config_info): Use xtensa_abi_choice instead of XSHAL_ABI to format ABI tag. (PARSE_AND_LIST_PROLOGUE): Define OPTION_ABI_WINDOWED, OPTION_ABI_CALL0 and declare elf32xtensa_abi. (PARSE_AND_LIST_LONGOPTS): Add entries for --abi-windowed and --abi-call0. (PARSE_AND_LIST_OPTIONS): Add help text for --abi-windowed and --abi-call0. (PARSE_AND_LIST_ARGS_CASES): Add handlers for --abi-windowed and --abi-call0. * ld.texi: Add description for options --abi-windowed and --abi-call0.
Diffstat (limited to 'include/elf')
-rw-r--r--include/elf/xtensa.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/include/elf/xtensa.h b/include/elf/xtensa.h
index bd5c80d..eac1a15 100644
--- a/include/elf/xtensa.h
+++ b/include/elf/xtensa.h
@@ -225,6 +225,9 @@ xtensa_read_table_entries (bfd *abfd,
extern int
xtensa_compute_fill_extra_space (property_table_entry *entry);
+extern int
+xtensa_abi_choice (void);
+
#ifdef __cplusplus
}
#endif