.. | .. |
---|
2 | 2 | #ifndef __PARISC_SPECIAL_INSNS_H |
---|
3 | 3 | #define __PARISC_SPECIAL_INSNS_H |
---|
4 | 4 | |
---|
| 5 | +#define lpa(va) ({ \ |
---|
| 6 | + unsigned long pa; \ |
---|
| 7 | + __asm__ __volatile__( \ |
---|
| 8 | + "copy %%r0,%0\n" \ |
---|
| 9 | + "8:\tlpa %%r0(%1),%0\n" \ |
---|
| 10 | + "9:\n" \ |
---|
| 11 | + ASM_EXCEPTIONTABLE_ENTRY(8b, 9b) \ |
---|
| 12 | + : "=&r" (pa) \ |
---|
| 13 | + : "r" (va) \ |
---|
| 14 | + : "memory" \ |
---|
| 15 | + ); \ |
---|
| 16 | + pa; \ |
---|
| 17 | +}) |
---|
| 18 | + |
---|
| 19 | +#define lpa_user(va) ({ \ |
---|
| 20 | + unsigned long pa; \ |
---|
| 21 | + __asm__ __volatile__( \ |
---|
| 22 | + "copy %%r0,%0\n" \ |
---|
| 23 | + "8:\tlpa %%r0(%%sr3,%1),%0\n" \ |
---|
| 24 | + "9:\n" \ |
---|
| 25 | + ASM_EXCEPTIONTABLE_ENTRY(8b, 9b) \ |
---|
| 26 | + : "=&r" (pa) \ |
---|
| 27 | + : "r" (va) \ |
---|
| 28 | + : "memory" \ |
---|
| 29 | + ); \ |
---|
| 30 | + pa; \ |
---|
| 31 | +}) |
---|
| 32 | + |
---|
5 | 33 | #define mfctl(reg) ({ \ |
---|
6 | 34 | unsigned long cr; \ |
---|
7 | 35 | __asm__ __volatile__( \ |
---|