1#ifndef _ASM_IA64_ASMMACRO_H 2#define _ASM_IA64_ASMMACRO_H 3 4/* 5 * Copyright (C) 2000-2001 Hewlett-Packard Co 6 * Copyright (C) 2000-2001 David Mosberger-Tang <davidm@hpl.hp.com> 7 */ 8 9#define ENTRY(name) \ 10 .align 32; \ 11 .proc name; \ 12name: 13 14#define GLOBAL_ENTRY(name) \ 15 .global name; \ 16 ENTRY(name) 17 18#define END(name) \ 19 .endp name 20 21/* 22 * Helper macros to make unwind directives more readable: 23 */ 24 25/* prologue_gr: */ 26#define ASM_UNW_PRLG_RP 0x8 27#define ASM_UNW_PRLG_PFS 0x4 28#define ASM_UNW_PRLG_PSP 0x2 29#define ASM_UNW_PRLG_PR 0x1 30#define ASM_UNW_PRLG_GRSAVE(ninputs) (32+(ninputs)) 31 32/* 33 * Helper macros for accessing user memory. 34 */ 35 36 .section "__ex_table", "a" // declare section & section attributes 37 .previous 38 39#if __GNUC__ >= 3 40# define EX(y,x...) \ 41 .xdata4 "__ex_table", @gprel(99f), @gprel(y); \ 42 [99:] x 43# define EXCLR(y,x...) \ 44 .xdata4 "__ex_table", @gprel(99f), @gprel(y)+4; \ 45 [99:] x 46#else 47# define EX(y,x...) \ 48 .xdata4 "__ex_table", @gprel(99f), @gprel(y); \ 49 99: x 50# define EXCLR(y,x...) \ 51 .xdata4 "__ex_table", @gprel(99f), @gprel(y)+4; \ 52 99: x 53#endif 54 55#endif /* _ASM_IA64_ASMMACRO_H */ 56