target/xtensa: Finalize config in xtensa_register_core()

Make XtensaConfigList::config not const. Only modify
XtensaConfig within xtensa_register_core(), when the
class is registered, not when it is initialized.

Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Acked-by: Max Filippov <jcmvbkbc@gmail.com>
Message-Id: <20250210133134.90879-4-philmd@linaro.org>
This commit is contained in:
Philippe Mathieu-Daudé 2025-02-09 22:11:46 +01:00
parent 1e6fbd637b
commit 05769aae62
2 changed files with 4 additions and 3 deletions

View File

@ -490,7 +490,7 @@ typedef struct XtensaConfig {
} XtensaConfig; } XtensaConfig;
typedef struct XtensaConfigList { typedef struct XtensaConfigList {
const XtensaConfig *config; XtensaConfig *config;
struct XtensaConfigList *next; struct XtensaConfigList *next;
} XtensaConfigList; } XtensaConfigList;

View File

@ -173,9 +173,8 @@ static void xtensa_core_class_init(ObjectClass *oc, void *data)
{ {
CPUClass *cc = CPU_CLASS(oc); CPUClass *cc = CPU_CLASS(oc);
XtensaCPUClass *xcc = XTENSA_CPU_CLASS(oc); XtensaCPUClass *xcc = XTENSA_CPU_CLASS(oc);
XtensaConfig *config = data; const XtensaConfig *config = data;
xtensa_finalize_config(config);
xcc->config = config; xcc->config = config;
/* /*
@ -195,6 +194,8 @@ void xtensa_register_core(XtensaConfigList *node)
.class_data = (void *)node->config, .class_data = (void *)node->config,
}; };
xtensa_finalize_config(node->config);
node->next = xtensa_cores; node->next = xtensa_cores;
xtensa_cores = node; xtensa_cores = node;
type.name = g_strdup_printf(XTENSA_CPU_TYPE_NAME("%s"), node->config->name); type.name = g_strdup_printf(XTENSA_CPU_TYPE_NAME("%s"), node->config->name);