[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH v8 2/7] xen/arm: Stringify the register name in sysreg read write macros



Hi Vijay,

On 07/23/2014 02:41 PM, vijay.kilari@xxxxxxxxx wrote:
> From: Vijaya Kumar K <Vijaya.Kumar@xxxxxxxxxxxxxxxxxx>
> 
> The register name parameter in {READ,WRITE}_SYSREG{32,64}
> macros is replaced as register name in mrs and msr assembly
> instruction.
> 
> If this register name is macro indirection, the register
> name is not replaced with designated macro. So replace the register
> name with __stringify macro, which replaces register name
> if it is macro
> 
> Signed-off-by: Vijaya Kumar K <Vijaya.Kumar@xxxxxxxxxxxxxxxxxx>
Acked-by: Julien Grall <julien.grall@xxxxxxxxxx>

Regards,

> ---
>  xen/include/asm-arm/arm64/processor.h |   10 ++++++----
>  1 file changed, 6 insertions(+), 4 deletions(-)
> 
> diff --git a/xen/include/asm-arm/arm64/processor.h 
> b/xen/include/asm-arm/arm64/processor.h
> index 5bf0867..3a9c0cd 100644
> --- a/xen/include/asm-arm/arm64/processor.h
> +++ b/xen/include/asm-arm/arm64/processor.h
> @@ -1,6 +1,8 @@
>  #ifndef __ASM_ARM_ARM64_PROCESSOR_H
>  #define __ASM_ARM_ARM64_PROCESSOR_H
>  
> +#include <xen/stringify.h>
> +
>  #ifndef __ASSEMBLY__
>  
>  /* Anonymous union includes both 32- and 64-bit names (e.g., r0/x0). */
> @@ -85,20 +87,20 @@ struct cpu_user_regs
>  
>  #define READ_SYSREG32(name) ({                          \
>      uint32_t _r;                                        \
> -    asm volatile("mrs  %0, "#name : "=r" (_r));         \
> +    asm volatile("mrs  %0, "__stringify(name) : "=r" (_r));         \
>      _r; })
>  #define WRITE_SYSREG32(v, name) do {                    \
>      uint32_t _r = v;                                    \
> -    asm volatile("msr "#name", %0" : : "r" (_r));       \
> +    asm volatile("msr "__stringify(name)", %0" : : "r" (_r));       \
>  } while (0)
>  
>  #define WRITE_SYSREG64(v, name) do {                    \
>      uint64_t _r = v;                                    \
> -    asm volatile("msr "#name", %0" : : "r" (_r));       \
> +    asm volatile("msr "__stringify(name)", %0" : : "r" (_r));       \
>  } while (0)
>  #define READ_SYSREG64(name) ({                          \
>      uint64_t _r;                                        \
> -    asm volatile("mrs  %0, "#name : "=r" (_r));         \
> +    asm volatile("mrs  %0, "__stringify(name) : "=r" (_r));         \
>      _r; })
>  
>  #define READ_SYSREG(name)     READ_SYSREG64(name)
> 


-- 
Julien Grall

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.