Message ID | 7871702a-b5ca-4430-b282-148b46fccc71@suse.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | annotate entry points with type and size | expand |
On 15.01.2024 15:36, 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. As this was meanwhile committed, I'd like to understand you preference for further conversion steps: I can certainly see to find time to make some actual progress here, but it might also be that you prefer to do so yourself. Please let me know. Jan
Hi Jan, On 22/01/2024 13:22, Jan Beulich wrote: > On 15.01.2024 15:36, 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. > > As this was meanwhile committed, I'd like to understand you preference > for further conversion steps: I can certainly see to find time to make > some actual progress here, but it might also be that you prefer to do > so yourself. Please let me know. Sorry for the late reply. I will have a look. Cheers,
--- 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 */ @@ -30,10 +31,7 @@ label: .asciz msg; #define RODATA_STR(label, msg) RODATA_SECT(.rodata.str, label, msg) #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)