diff options
author | Max Filippov <jcmvbkbc@gmail.com> | 2017-05-03 13:13:52 -0700 |
---|---|---|
committer | Max Filippov <jcmvbkbc@gmail.com> | 2022-11-28 18:16:12 -0800 |
commit | d0a2cfbd3141dae38498fa077b01ae6bb394462b (patch) | |
tree | 8cb6fc2a729622c8b9dd3cbbce771a418e3a088f /gas | |
parent | cb44f89ce977b1ab2d4063f2487950bddfb75bc7 (diff) | |
download | gdb-d0a2cfbd3141dae38498fa077b01ae6bb394462b.zip gdb-d0a2cfbd3141dae38498fa077b01ae6bb394462b.tar.gz gdb-d0a2cfbd3141dae38498fa077b01ae6bb394462b.tar.bz2 |
xtensa: allow dynamic configuration
Import include/xtensa-dynconfig.h that defines XCHAL_* macros as fields
of a structure returned from the xtensa_get_config_v<x> function call.
Define that structure and fill it with default parameter values
specified in the include/xtensa-config.h.
Define reusable function xtensa_load_config that tries to load
configuration and return an address of an exported object from it.
Define functions xtensa_get_config_v{1,2} that use xtensa_load_config
to get structures xtensa_config_v{1,2}, either dynamically configured
or the default.
bfd/
* Makefile.am (BFD32_BACKENDS, BFD32_BACKENDS_CFILES): Append
xtensa-dynconfig.c.
* Makefile.in: Regenerate.
* configure: Regenerate.
* configure.ac (xtensa_elf32_be_vec, xtensa_elf32_le_vec): Add
xtensa-dynconfig.lo to the tb.
* elf32-xtensa.c (xtensa-config.h): Replace #include with
xtensa-dynconfig.h.
(XSHAL_ABI, XTHAL_ABI_WINDOWED, XTHAL_ABI_CALL0): Remove
definitions.
* xtensa-dynconfig.c: New file.
* xtensa-isa.c (xtensa-dynconfig.h): New #include.
(xtensa_get_modules): New function.
(xtensa_isa_init): Call xtensa_get_modules instead of taking
address of global xtensa_modules.
gas/
* config/tc-xtensa.c (xtensa-config.h): Replace #include with
xtensa-dynconfig.h.
(XTHAL_ABI_WINDOWED, XTHAL_ABI_CALL0, XTENSA_MARCH_EARLIEST):
Remove definitions.
* config/tc-xtensa.h (xtensa-config.h): Replace #include with
xtensa-dynconfig.h.
* config/xtensa-relax.c (xtensa-config.h): Replace #include with
xtensa-dynconfig.h.
(XCHAL_HAVE_WIDE_BRANCHES): Remove definition.
include/
* xtensa-dynconfig.h: New file.
ld/
* emultempl/xtensaelf.em (xtensa-config.h): Replace #include
with xtensa-dynconfig.h.
(XTHAL_ABI_WINDOWED, XTHAL_ABI_CALL0): Remove definitions.
Diffstat (limited to 'gas')
-rw-r--r-- | gas/config/tc-xtensa.c | 15 | ||||
-rw-r--r-- | gas/config/tc-xtensa.h | 2 | ||||
-rw-r--r-- | gas/config/xtensa-relax.c | 6 |
3 files changed, 3 insertions, 20 deletions
diff --git a/gas/config/tc-xtensa.c b/gas/config/tc-xtensa.c index f7a28d3..30152bb 100644 --- a/gas/config/tc-xtensa.c +++ b/gas/config/tc-xtensa.c @@ -27,22 +27,9 @@ #include "xtensa-relax.h" #include "dwarf2dbg.h" #include "xtensa-istack.h" -#include "xtensa-config.h" +#include "xtensa-dynconfig.h" #include "elf/xtensa.h" -/* Provide default values for new configuration settings. */ -#ifndef XTHAL_ABI_WINDOWED -#define XTHAL_ABI_WINDOWED 0 -#endif - -#ifndef XTHAL_ABI_CALL0 -#define XTHAL_ABI_CALL0 1 -#endif - -#ifndef XTENSA_MARCH_EARLIEST -#define XTENSA_MARCH_EARLIEST 0 -#endif - #ifndef uint32 #define uint32 unsigned int #endif diff --git a/gas/config/tc-xtensa.h b/gas/config/tc-xtensa.h index e67abbc..b3a49ac 100644 --- a/gas/config/tc-xtensa.h +++ b/gas/config/tc-xtensa.h @@ -28,7 +28,7 @@ struct fix; #endif #include "xtensa-isa.h" -#include "xtensa-config.h" +#include "xtensa-dynconfig.h" #define TARGET_BYTES_BIG_ENDIAN 0 diff --git a/gas/config/xtensa-relax.c b/gas/config/xtensa-relax.c index 0682b29..5df2201 100644 --- a/gas/config/xtensa-relax.c +++ b/gas/config/xtensa-relax.c @@ -93,11 +93,7 @@ #include "xtensa-isa.h" #include "xtensa-relax.h" #include <stddef.h> -#include "xtensa-config.h" - -#ifndef XCHAL_HAVE_WIDE_BRANCHES -#define XCHAL_HAVE_WIDE_BRANCHES 0 -#endif +#include "xtensa-dynconfig.h" /* Imported from bfd. */ extern xtensa_isa xtensa_default_isa; |