Mailing List Archive

[xen master] PPC: switch entry point annotations to common model
commit 2cfdbd58638255b08b4f9b319402bdf09fc832e2
Author: Jan Beulich <jbeulich@suse.com>
AuthorDate: Tue Jan 23 12:02:05 2024 +0100
Commit: Jan Beulich <jbeulich@suse.com>
CommitDate: Tue Jan 23 12:02:05 2024 +0100

PPC: switch entry point annotations to common model

Use the generic framework in xen/linkage.h. No change in generated code
except of course the converted symbols change to be hidden ones.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
Acked-by: Shawn Anastasio <sanastasio@raptorengineering.com>
---
xen/arch/ppc/include/asm/asm-defns.h | 1 +
xen/arch/ppc/include/asm/config.h | 7 +------
xen/arch/ppc/ppc64/exceptions-asm.S | 15 ++++++---------
xen/arch/ppc/ppc64/head.S | 12 ++++--------
xen/arch/ppc/xen.lds.S | 3 ---
5 files changed, 12 insertions(+), 26 deletions(-)

diff --git a/xen/arch/ppc/include/asm/asm-defns.h b/xen/arch/ppc/include/asm/asm-defns.h
index f1c49808bd..e46f0785ad 100644
--- a/xen/arch/ppc/include/asm/asm-defns.h
+++ b/xen/arch/ppc/include/asm/asm-defns.h
@@ -3,6 +3,7 @@
#define _ASM_PPC_ASM_DEFNS_H

#include <asm/asm-offsets.h>
+#include <xen/linkage.h>

/*
* Load a 64-bit immediate value into the specified GPR.
diff --git a/xen/arch/ppc/include/asm/config.h b/xen/arch/ppc/include/asm/config.h
index e012b75beb..e5d201e16c 100644
--- a/xen/arch/ppc/include/asm/config.h
+++ b/xen/arch/ppc/include/asm/config.h
@@ -32,12 +32,7 @@

/* Linkage for PPC */
#ifdef __ASSEMBLY__
-#define ALIGN .p2align 2
-
-#define ENTRY(name) \
- .globl name; \
- ALIGN; \
- name:
+#define CODE_ALIGN 4
#endif

#define XEN_VIRT_START _AC(0xc000000000000000, UL)
diff --git a/xen/arch/ppc/ppc64/exceptions-asm.S b/xen/arch/ppc/ppc64/exceptions-asm.S
index fa5f45add8..5c3d39b439 100644
--- a/xen/arch/ppc/ppc64/exceptions-asm.S
+++ b/xen/arch/ppc/ppc64/exceptions-asm.S
@@ -6,7 +6,7 @@
.section .text.exceptions, "ax", %progbits

/* Helper to dump CPU state to struct cpu_user_regs pointed to by r1. */
-ENTRY(exception_common)
+FUNC(exception_common)
/*
* Save GPRs 1-31. TODO: The value of %r1 has already been modified by the
* ISR, so the value we save isn't the exact value we had on entry.
@@ -45,11 +45,10 @@ ENTRY(exception_common)
stdu %r0, -STACK_FRAME_OVERHEAD(%r1)
bl exception_handler

- .size exception_common, . - exception_common
- .type exception_common, %function
+ END(exception_common)

/* Same as exception_common, but for exceptions that set HSRR{0,1} */
-ENTRY(h_exception_common)
+FUNC(h_exception_common)
/*
* Save GPRs 1-31. TODO: The value of %r1 has already been modified by the
* ISR, so the value we save isn't the exact value we had on entry.
@@ -89,15 +88,14 @@ ENTRY(h_exception_common)
stdu %r0, -STACK_FRAME_OVERHEAD(%r1)
bl exception_handler

- .size h_exception_common, . - h_exception_common
- .type h_exception_common, %function
+ END(h_exception_common)

/*
* Declare an ISR for the provided exception that jumps to the specified handler
*/
.macro ISR name, exc, handler
. = (AIL_VECTOR_BASE - EXCEPTION_VECTORS_START) + \exc
- ENTRY(\name)
+ FUNC(\name)
/* TODO: switch stack */

/* Reserve space for struct cpu_user_regs */
@@ -113,8 +111,7 @@ ENTRY(h_exception_common)
/* Branch to common code */
b \handler

- .size \name, . - \name
- .type \name, %function
+ END(\name)
.endm

/*
diff --git a/xen/arch/ppc/ppc64/head.S b/xen/arch/ppc/ppc64/head.S
index 6ce313aff8..89553154a5 100644
--- a/xen/arch/ppc/ppc64/head.S
+++ b/xen/arch/ppc/ppc64/head.S
@@ -6,7 +6,7 @@

.section .text.header, "ax", %progbits

-ENTRY(start)
+FUNC(start)
/*
* NOTE: argument registers (r3-r9) must be preserved until the C entrypoint
*/
@@ -64,11 +64,9 @@ ENTRY(start)

/* should never return */
trap
+END(start)

- .size start, . - start
- .type start, %function
-
-ENTRY(enable_mmu)
+FUNC(enable_mmu)
mflr %r3
mfmsr %r4

@@ -78,6 +76,4 @@ ENTRY(enable_mmu)
mtsrr0 %r3 /* return to caller after MMU enable */
mtsrr1 %r4
rfid
-
- .size enable_mmu, . - enable_mmu
- .type enable_mmu, %function
+END(enable_mmu)
diff --git a/xen/arch/ppc/xen.lds.S b/xen/arch/ppc/xen.lds.S
index 3697d656f4..030e1ee37b 100644
--- a/xen/arch/ppc/xen.lds.S
+++ b/xen/arch/ppc/xen.lds.S
@@ -1,9 +1,6 @@
#include <xen/lib.h>
#include <xen/xen.lds.h>

-#undef ENTRY
-#undef ALIGN
-
OUTPUT_ARCH(powerpc:common64)
ENTRY(start)

--
generated by git-patchbot for /home/xen/git/xen.git#master