ia64/xen-unstable

changeset 10672:ac110157c19d

[IA64] Move asmmacro.h to linux-xen

Signed-off-by: Akio Takebe <takebe_akio@jp.fujitsu.com>
Signed-off-by: Alex Williamson <alex.williamson@hp.com>
author awilliam@xenbuild.aw
date Thu Jul 06 10:02:28 2006 -0600 (2006-07-06)
parents 59b142b0884e
children 80e04aa530b8
files xen/include/asm-ia64/linux-xen/asm/README.origin xen/include/asm-ia64/linux-xen/asm/asmmacro.h xen/include/asm-ia64/linux/asm/README.origin xen/include/asm-ia64/linux/asm/asmmacro.h
line diff
     1.1 --- a/xen/include/asm-ia64/linux-xen/asm/README.origin	Thu Jul 06 09:54:48 2006 -0600
     1.2 +++ b/xen/include/asm-ia64/linux-xen/asm/README.origin	Thu Jul 06 10:02:28 2006 -0600
     1.3 @@ -5,6 +5,7 @@
     1.4  # (e.g. with #ifdef XEN or XEN in a comment) so that they can be
     1.5  # easily updated to future versions of the corresponding Linux files.
     1.6  
     1.7 +asmmacro.h		-> linux/include/asm-ia64/asmmacro.h
     1.8  cache.h			-> linux/include/asm-ia64/cache.h
     1.9  gcc_intrin.h		-> linux/include/asm-ia64/gcc_intrin.h
    1.10  ia64regs.h		-> linux/include/asm-ia64/ia64regs.h
     2.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     2.2 +++ b/xen/include/asm-ia64/linux-xen/asm/asmmacro.h	Thu Jul 06 10:02:28 2006 -0600
     2.3 @@ -0,0 +1,111 @@
     2.4 +#ifndef _ASM_IA64_ASMMACRO_H
     2.5 +#define _ASM_IA64_ASMMACRO_H
     2.6 +
     2.7 +/*
     2.8 + * Copyright (C) 2000-2001, 2003-2004 Hewlett-Packard Co
     2.9 + *	David Mosberger-Tang <davidm@hpl.hp.com>
    2.10 + */
    2.11 +
    2.12 +#include <linux/config.h>
    2.13 +
    2.14 +#define ENTRY(name)				\
    2.15 +	.align 32;				\
    2.16 +	.proc name;				\
    2.17 +name:
    2.18 +
    2.19 +#define ENTRY_MIN_ALIGN(name)			\
    2.20 +	.align 16;				\
    2.21 +	.proc name;				\
    2.22 +name:
    2.23 +
    2.24 +#define GLOBAL_ENTRY(name)			\
    2.25 +	.global name;				\
    2.26 +	ENTRY(name)
    2.27 +
    2.28 +#define END(name)				\
    2.29 +	.endp name
    2.30 +
    2.31 +/*
    2.32 + * Helper macros to make unwind directives more readable:
    2.33 + */
    2.34 +
    2.35 +/* prologue_gr: */
    2.36 +#define ASM_UNW_PRLG_RP			0x8
    2.37 +#define ASM_UNW_PRLG_PFS		0x4
    2.38 +#define ASM_UNW_PRLG_PSP		0x2
    2.39 +#define ASM_UNW_PRLG_PR			0x1
    2.40 +#define ASM_UNW_PRLG_GRSAVE(ninputs)	(32+(ninputs))
    2.41 +
    2.42 +/*
    2.43 + * Helper macros for accessing user memory.
    2.44 + */
    2.45 +
    2.46 +	.section "__ex_table", "a"		// declare section & section attributes
    2.47 +	.previous
    2.48 +
    2.49 +# define EX(y,x...)				\
    2.50 +	.xdata4 "__ex_table", 99f-., y-.;	\
    2.51 +  [99:]	x
    2.52 +# define EXCLR(y,x...)				\
    2.53 +	.xdata4 "__ex_table", 99f-., y-.+4;	\
    2.54 +  [99:]	x
    2.55 +
    2.56 +/*
    2.57 + * Mark instructions that need a load of a virtual address patched to be
    2.58 + * a load of a physical address.  We use this either in critical performance
    2.59 + * path (ivt.S - TLB miss processing) or in places where it might not be
    2.60 + * safe to use a "tpa" instruction (mca_asm.S - error recovery).
    2.61 + */
    2.62 +	.section ".data.patch.vtop", "a"	// declare section & section attributes
    2.63 +	.previous
    2.64 +
    2.65 +#define	LOAD_PHYSICAL(pr, reg, obj)		\
    2.66 +[1:](pr)movl reg = obj;				\
    2.67 +	.xdata4 ".data.patch.vtop", 1b-.
    2.68 +
    2.69 +/*
    2.70 + * For now, we always put in the McKinley E9 workaround.  On CPUs that don't need it,
    2.71 + * we'll patch out the work-around bundles with NOPs, so their impact is minimal.
    2.72 + */
    2.73 +#define DO_MCKINLEY_E9_WORKAROUND
    2.74 +
    2.75 +#ifdef DO_MCKINLEY_E9_WORKAROUND
    2.76 +	.section ".data.patch.mckinley_e9", "a"
    2.77 +	.previous
    2.78 +/* workaround for Itanium 2 Errata 9: */
    2.79 +# define FSYS_RETURN					\
    2.80 +	.xdata4 ".data.patch.mckinley_e9", 1f-.;	\
    2.81 +1:{ .mib;						\
    2.82 +	nop.m 0;					\
    2.83 +	mov r16=ar.pfs;					\
    2.84 +	br.call.sptk.many b7=2f;;			\
    2.85 +  };							\
    2.86 +2:{ .mib;						\
    2.87 +	nop.m 0;					\
    2.88 +	mov ar.pfs=r16;					\
    2.89 +	br.ret.sptk.many b6;;				\
    2.90 +  }
    2.91 +#else
    2.92 +# define FSYS_RETURN	br.ret.sptk.many b6
    2.93 +#endif
    2.94 +
    2.95 +/*
    2.96 + * Up until early 2004, use of .align within a function caused bad unwind info.
    2.97 + * TEXT_ALIGN(n) expands into ".align n" if a fixed GAS is available or into nothing
    2.98 + * otherwise.
    2.99 + */
   2.100 +#ifdef HAVE_WORKING_TEXT_ALIGN
   2.101 +# define TEXT_ALIGN(n)	.align n
   2.102 +#else
   2.103 +# define TEXT_ALIGN(n)
   2.104 +#endif
   2.105 +
   2.106 +#ifdef HAVE_SERIALIZE_DIRECTIVE
   2.107 +# define dv_serialize_data		.serialize.data
   2.108 +# define dv_serialize_instruction	.serialize.instruction
   2.109 +#else
   2.110 +# define dv_serialize_data
   2.111 +# define dv_serialize_instruction
   2.112 +#endif
   2.113 +
   2.114 +#endif /* _ASM_IA64_ASMMACRO_H */
     3.1 --- a/xen/include/asm-ia64/linux/asm/README.origin	Thu Jul 06 09:54:48 2006 -0600
     3.2 +++ b/xen/include/asm-ia64/linux/asm/README.origin	Thu Jul 06 10:02:28 2006 -0600
     3.3 @@ -5,7 +5,6 @@
     3.4  # the instructions in the README there.
     3.5  
     3.6  acpi.h			-> linux/include/asm-ia64/acpi.h
     3.7 -asmmacro.h		-> linux/include/asm-ia64/asmmacro.h
     3.8  atomic.h		-> linux/include/asm-ia64/atomic.h
     3.9  bitops.h		-> linux/include/asm-ia64/bitops.h
    3.10  break.h			-> linux/include/asm-ia64/break.h
     4.1 --- a/xen/include/asm-ia64/linux/asm/asmmacro.h	Thu Jul 06 09:54:48 2006 -0600
     4.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
     4.3 @@ -1,111 +0,0 @@
     4.4 -#ifndef _ASM_IA64_ASMMACRO_H
     4.5 -#define _ASM_IA64_ASMMACRO_H
     4.6 -
     4.7 -/*
     4.8 - * Copyright (C) 2000-2001, 2003-2004 Hewlett-Packard Co
     4.9 - *	David Mosberger-Tang <davidm@hpl.hp.com>
    4.10 - */
    4.11 -
    4.12 -#include <linux/config.h>
    4.13 -
    4.14 -#define ENTRY(name)				\
    4.15 -	.align 32;				\
    4.16 -	.proc name;				\
    4.17 -name:
    4.18 -
    4.19 -#define ENTRY_MIN_ALIGN(name)			\
    4.20 -	.align 16;				\
    4.21 -	.proc name;				\
    4.22 -name:
    4.23 -
    4.24 -#define GLOBAL_ENTRY(name)			\
    4.25 -	.global name;				\
    4.26 -	ENTRY(name)
    4.27 -
    4.28 -#define END(name)				\
    4.29 -	.endp name
    4.30 -
    4.31 -/*
    4.32 - * Helper macros to make unwind directives more readable:
    4.33 - */
    4.34 -
    4.35 -/* prologue_gr: */
    4.36 -#define ASM_UNW_PRLG_RP			0x8
    4.37 -#define ASM_UNW_PRLG_PFS		0x4
    4.38 -#define ASM_UNW_PRLG_PSP		0x2
    4.39 -#define ASM_UNW_PRLG_PR			0x1
    4.40 -#define ASM_UNW_PRLG_GRSAVE(ninputs)	(32+(ninputs))
    4.41 -
    4.42 -/*
    4.43 - * Helper macros for accessing user memory.
    4.44 - */
    4.45 -
    4.46 -	.section "__ex_table", "a"		// declare section & section attributes
    4.47 -	.previous
    4.48 -
    4.49 -# define EX(y,x...)				\
    4.50 -	.xdata4 "__ex_table", 99f-., y-.;	\
    4.51 -  [99:]	x
    4.52 -# define EXCLR(y,x...)				\
    4.53 -	.xdata4 "__ex_table", 99f-., y-.+4;	\
    4.54 -  [99:]	x
    4.55 -
    4.56 -/*
    4.57 - * Mark instructions that need a load of a virtual address patched to be
    4.58 - * a load of a physical address.  We use this either in critical performance
    4.59 - * path (ivt.S - TLB miss processing) or in places where it might not be
    4.60 - * safe to use a "tpa" instruction (mca_asm.S - error recovery).
    4.61 - */
    4.62 -	.section ".data.patch.vtop", "a"	// declare section & section attributes
    4.63 -	.previous
    4.64 -
    4.65 -#define	LOAD_PHYSICAL(pr, reg, obj)		\
    4.66 -[1:](pr)movl reg = obj;				\
    4.67 -	.xdata4 ".data.patch.vtop", 1b-.
    4.68 -
    4.69 -/*
    4.70 - * For now, we always put in the McKinley E9 workaround.  On CPUs that don't need it,
    4.71 - * we'll patch out the work-around bundles with NOPs, so their impact is minimal.
    4.72 - */
    4.73 -#define DO_MCKINLEY_E9_WORKAROUND
    4.74 -
    4.75 -#ifdef DO_MCKINLEY_E9_WORKAROUND
    4.76 -	.section ".data.patch.mckinley_e9", "a"
    4.77 -	.previous
    4.78 -/* workaround for Itanium 2 Errata 9: */
    4.79 -# define FSYS_RETURN					\
    4.80 -	.xdata4 ".data.patch.mckinley_e9", 1f-.;	\
    4.81 -1:{ .mib;						\
    4.82 -	nop.m 0;					\
    4.83 -	mov r16=ar.pfs;					\
    4.84 -	br.call.sptk.many b7=2f;;			\
    4.85 -  };							\
    4.86 -2:{ .mib;						\
    4.87 -	nop.m 0;					\
    4.88 -	mov ar.pfs=r16;					\
    4.89 -	br.ret.sptk.many b6;;				\
    4.90 -  }
    4.91 -#else
    4.92 -# define FSYS_RETURN	br.ret.sptk.many b6
    4.93 -#endif
    4.94 -
    4.95 -/*
    4.96 - * Up until early 2004, use of .align within a function caused bad unwind info.
    4.97 - * TEXT_ALIGN(n) expands into ".align n" if a fixed GAS is available or into nothing
    4.98 - * otherwise.
    4.99 - */
   4.100 -#ifdef HAVE_WORKING_TEXT_ALIGN
   4.101 -# define TEXT_ALIGN(n)	.align n
   4.102 -#else
   4.103 -# define TEXT_ALIGN(n)
   4.104 -#endif
   4.105 -
   4.106 -#ifdef HAVE_SERIALIZE_DIRECTIVE
   4.107 -# define dv_serialize_data		.serialize.data
   4.108 -# define dv_serialize_instruction	.serialize.instruction
   4.109 -#else
   4.110 -# define dv_serialize_data
   4.111 -# define dv_serialize_instruction
   4.112 -#endif
   4.113 -
   4.114 -#endif /* _ASM_IA64_ASMMACRO_H */