mirror of
https://xff.cz/git/u-boot/
synced 2025-09-01 00:32:04 +02:00
trace: clang compatible handling of gd register
On ARM systems gd is stored in register r9 or x18. When compiling with clang gd is defined as a macro calling function gd_ptr(). So we can not make assignments to gd. Use function set_gd() for setting the register on ARM. Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de> Reviewed-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
committed by
Tom Rini
parent
a20f0c820f
commit
7f642cb287
@@ -57,12 +57,12 @@ static inline uintptr_t __attribute__((no_instrument_function))
|
|||||||
return offset / FUNC_SITE_SIZE;
|
return offset / FUNC_SITE_SIZE;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_EFI_LOADER
|
#if defined(CONFIG_EFI_LOADER) && defined(CONFIG_ARM)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* trace_gd - the value of the gd register
|
* trace_gd - the value of the gd register
|
||||||
*/
|
*/
|
||||||
static volatile void *trace_gd;
|
static volatile gd_t *trace_gd;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* trace_save_gd() - save the value of the gd register
|
* trace_save_gd() - save the value of the gd register
|
||||||
@@ -82,10 +82,10 @@ static void __attribute__((no_instrument_function)) trace_save_gd(void)
|
|||||||
*/
|
*/
|
||||||
static void __attribute__((no_instrument_function)) trace_swap_gd(void)
|
static void __attribute__((no_instrument_function)) trace_swap_gd(void)
|
||||||
{
|
{
|
||||||
volatile void *temp_gd = trace_gd;
|
volatile gd_t *temp_gd = trace_gd;
|
||||||
|
|
||||||
trace_gd = gd;
|
trace_gd = gd;
|
||||||
gd = temp_gd;
|
set_gd(temp_gd);
|
||||||
}
|
}
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
Reference in New Issue
Block a user