|
|
|
|
|
|
|
|
|
|
xen-ia64-devel
Re: [Xen-ia64-devel] [PATCH 7/8] ia64/xen: paravirtualize minstate.h, DO
Hi, Isaku
>Signed-off-by: Isaku Yamahata <yamahata@xxxxxxxxxxxxx>
>---
> arch/ia64/xen/xenminstate.h | 148 ++++++++++++++++++++++++++++++++++++++++
>+++
> 1 files changed, 148 insertions(+), 0 deletions(-)
> create mode 100644 arch/ia64/xen/xenminstate.h
>
>diff --git a/arch/ia64/xen/xenminstate.h b/arch/ia64/xen/xenminstate.h
>new file mode 100644
>index 0000000..cdaf910
>--- /dev/null
>+++ b/arch/ia64/xen/xenminstate.h
>@@ -0,0 +1,148 @@
>+#include <asm/cache.h>
>+
>+#ifdef CONFIG_XEN
>+#include "../kernel/entry.h"
>+#else
>+#include "entry.h"
>+#endif
>+
>+#ifdef __IA64_ASM_PARAVIRTUALIZED_XEN
>+/*
>+ * DO_SAVE_MIN switches to the kernel stacks (if necessary) and saves
>+ * the minimum state necessary that allows us to turn psr.ic back
>+ * on.
>+ *
>+ * Assumed state upon entry:
>+ * psr.ic: off
>+ * r31: contains saved predicates (pr)
>+ *
>+ * Upon exit, the state is as follows:
>+ * psr.ic: off
>+ * r2 = points to &pt_regs.r16
>+ * r8 = contents of ar.ccv
>+ * r9 = contents of ar.csd
>+ * r10 = contents of ar.ssd
>+ * r11 = FPSR_DEFAULT
>+ * r12 = kernel sp (kernel virtual address)
>+ * r13 = points to current task_struct (kernel virtual address)
>+ * p15 = TRUE if psr.i is set in cr.ipsr
>+ * predicate registers (other than p2, p3, and p15), b6, r3, r14, r15:
>+ * preserved
>+ * CONFIG_XEN note: p6/p7 are not preserved
>+ *
>+ * Note that psr.ic is NOT turned on by this macro. This is so that
>+ * we can pass interruption state as arguments to a handler.
>+ */
>+#define DO_SAVE_MIN(COVER,SAVE_IFS,EXTRA)
\
>+ mov r16=IA64_KR(CURRENT); /* M */
\
>+ mov r27=ar.rsc; /* M */
\
>+ mov r20=r1; /* A */
\
>+ mov r25=ar.unat; /* M */
\
>+ /* mov r29=cr.ipsr; /* M */
\
>+ movl r29=XSI_IPSR;;
\
>+ ld8 r29=[r29];;
\
>+ mov r26=ar.pfs; /* I */
\
>+ /* mov r28=cr.iip; /* M */
\
>+ movl r28=XSI_IIP;;
\
>+ ld8 r28=[r28];;
\
>+ mov r21=ar.fpsr; /* M */
\
>+ COVER; /* B;; (or nothing) */
\
We may mis-read the above COVER as COVER in arch/ia64/xen/inst_xen.h.
Why don't chage the name?
Best Regards,
Akio Takebe
_______________________________________________
Xen-ia64-devel mailing list
Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-ia64-devel
|
<Prev in Thread] |
Current Thread |
[Next in Thread>
|
- [Xen-ia64-devel] [PATCH 0/8] RFC: ia64/xen TAKE 2: paravirtualization of hand written assembly code, Isaku Yamahata
- [Xen-ia64-devel] [PATCH 3/8] ia64/pv_ops: paravirtualization hand written assnbly code. inst_native.h, Isaku Yamahata
- [Xen-ia64-devel] [PATCH 4/8] ia64/pv_ops: paravirtualize arch/ia64/kernel/switch_leave.S, Isaku Yamahata
- [Xen-ia64-devel] [PATCH 2/8] ia64/pv_ops: preparation for paravirtualizatin of switch_leave.S and ivt.S, Isaku Yamahata
- [Xen-ia64-devel] [PATCH 1/8] ia64/pv_ops: split out ia64_swtich_to(), ia64_leave_syscall() and ia64_leave_kernel from entry.S to switch_leave.S for paravirtualization., Isaku Yamahata
- [Xen-ia64-devel] [PATCH 6/8] ia64/pv_ops xen: xen paravirtualization of hand written assembly code. inst_xen.h, Isaku Yamahata
- [Xen-ia64-devel] [PATCH 5/8] ia64/pv_ops: paravirtualize arch/ia64/kernel/ivt.S., Isaku Yamahata
- [Xen-ia64-devel] [PATCH 7/8] ia64/xen: paravirtualize minstate.h, DO_SAVE_MIN., Isaku Yamahata
- [Xen-ia64-devel] [PATCH 8/8] ia64/pv_ops/xen: multi compiling switch_leave.S and ivt.S for xen., Isaku Yamahata
|
|
|
|
|