Message ID | e7685fa0-62e0-98b9-f9ba-7e698fb7373e@suse.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | annotate entry points with type and size | expand |
Hi, On 04/08/2023 07:28, Jan Beulich wrote: > Use the generic framework in xen/linkage.h. No change in generated code > except for the changed padding value (noticable when config.gz isn't a > multiple of 4 in size). Plus of course the converted symbols change to > be hidden ones. > > Note that ASM_INT() is switched to DATA(), not DATA_LOCAL(), as the only > use site wants the symbol global anyway. > > Signed-off-by: Jan Beulich <jbeulich@suse.com> Reviewed-by: Julien Grall <jgrall@amazon.com> > --- > Only one each of the assembly files is being converted for now. More > could be done right here or as follow-on in separate patches. I don't have a strong preference. Are you planning to do follow-up? (I am ok if it is no). Cheers,
On 14.09.2023 23:25, Julien Grall wrote: > On 04/08/2023 07:28, Jan Beulich wrote: >> Use the generic framework in xen/linkage.h. No change in generated code >> except for the changed padding value (noticable when config.gz isn't a >> multiple of 4 in size). Plus of course the converted symbols change to >> be hidden ones. >> >> Note that ASM_INT() is switched to DATA(), not DATA_LOCAL(), as the only >> use site wants the symbol global anyway. >> >> Signed-off-by: Jan Beulich <jbeulich@suse.com> > > Reviewed-by: Julien Grall <jgrall@amazon.com> Thanks. >> --- >> Only one each of the assembly files is being converted for now. More >> could be done right here or as follow-on in separate patches. > > I don't have a strong preference. Are you planning to do follow-up? (I > am ok if it is no). Well, I certainly can, but I wasn't expecting this series to remain pending for this long, so time's running out for 4.18. Jan
--- a/xen/arch/arm/arm32/lib/div64.S +++ b/xen/arch/arm/arm32/lib/div64.S @@ -42,7 +42,7 @@ * Clobbered regs: xl, ip */ -ENTRY(__do_div64) +FUNC(__do_div64) UNWIND(.fnstart) @ Test for easy paths first. @@ -206,4 +206,4 @@ Ldiv0_64: ldr pc, [sp], #8 UNWIND(.fnend) -ENDPROC(__do_div64) +END(__do_div64) --- a/xen/arch/arm/arm64/lib/clear_page.S +++ b/xen/arch/arm/arm64/lib/clear_page.S @@ -22,7 +22,7 @@ * Parameters: * x0 - dest */ -ENTRY(clear_page) +FUNC(clear_page) mrs x1, dczid_el0 and w1, w1, #0xf mov x2, #4 @@ -33,4 +33,4 @@ ENTRY(clear_page) tst x0, #(PAGE_SIZE - 1) b.ne 1b ret -ENDPROC(clear_page) +END(clear_page) --- a/xen/arch/arm/include/asm/asm_defns.h +++ b/xen/arch/arm/include/asm/asm_defns.h @@ -5,6 +5,7 @@ /* NB. Auto-generated from arch/.../asm-offsets.c */ #include <asm/asm-offsets.h> #endif +#include <xen/linkage.h> #include <asm/processor.h> /* Macros for generic assembly code */ @@ -28,10 +29,7 @@ label: .asciz msg; .popsection #define ASM_INT(label, val) \ - .p2align 2; \ -label: .long (val); \ - .size label, . - label; \ - .type label, %object + DATA(label, 4) .long (val); END(label) #endif /* __ARM_ASM_DEFNS_H__ */ /* --- a/xen/arch/arm/include/asm/config.h +++ b/xen/arch/arm/include/asm/config.h @@ -53,7 +53,8 @@ /* Linkage for ARM */ #ifdef __ASSEMBLY__ -#define ALIGN .align 2 +#define CODE_ALIGN 4 +#define ALIGN .balign CODE_ALIGN #define ENTRY(name) \ .globl name; \ ALIGN; \ @@ -61,8 +62,6 @@ #define GLOBAL(name) \ .globl name; \ name: -#define END(name) \ - .size name, .-name #define ENDPROC(name) \ .type name, %function; \ END(name)
Use the generic framework in xen/linkage.h. No change in generated code except for the changed padding value (noticable when config.gz isn't a multiple of 4 in size). Plus of course the converted symbols change to be hidden ones. Note that ASM_INT() is switched to DATA(), not DATA_LOCAL(), as the only use site wants the symbol global anyway. Signed-off-by: Jan Beulich <jbeulich@suse.com> --- Only one each of the assembly files is being converted for now. More could be done right here or as follow-on in separate patches. The ASM_INT() redundancy of .global will be eliminated by a subsequent patch. --- v3: New.