aboutsummaryrefslogtreecommitdiffstats
path: root/include/asm-parisc/assembly.h
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@woody.linux-foundation.org>2007-02-26 15:48:06 -0500
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-02-26 15:48:06 -0500
commitb0138a6cb7923a997d278b47c176778534d1095b (patch)
tree4fcb8822a69631baba568e4e1942847747123887 /include/asm-parisc/assembly.h
parent6572d6d7d0f965dda19d02af804ed3ae4b3bf1fc (diff)
parent1055a8af093fea7490445bd15cd671020e542035 (diff)
Merge master.kernel.org:/pub/scm/linux/kernel/git/kyle/parisc-2.6
* master.kernel.org:/pub/scm/linux/kernel/git/kyle/parisc-2.6: (78 commits) [PARISC] Use symbolic last syscall in __NR_Linux_syscalls [PARISC] Add missing statfs64 and fstatfs64 syscalls Revert "[PARISC] Optimize TLB flush on SMP systems" [PARISC] Compat signal fixes for 64-bit parisc [PARISC] Reorder syscalls to match unistd.h Revert "[PATCH] make kernel/signal.c:kill_proc_info() static" [PARISC] fix sys_rt_sigqueueinfo [PARISC] fix section mismatch warnings in harmony sound driver [PARISC] do not export get_register/set_register [PARISC] add ENTRY()/ENDPROC() and simplify assembly of HP/UX emulation code [PARISC] convert to use CONFIG_64BIT instead of __LP64__ [PARISC] use CONFIG_64BIT instead of __LP64__ [PARISC] add ASM_EXCEPTIONTABLE_ENTRY() macro [PARISC] more ENTRY(), ENDPROC(), END() conversions [PARISC] fix ENTRY() and ENDPROC() for 64bit-parisc [PARISC] Fixes /proc/cpuinfo cache output on B160L [PARISC] implement standard ENTRY(), END() and ENDPROC() [PARISC] kill ENTRY_SYS_CPUS [PARISC] clean up debugging printks in smp.c [PARISC] factor syscall_restart code out of do_signal ... Fix conflict in include/linux/sched.h due to kill_proc_info() being made publicly available to PARISC again.
Diffstat (limited to 'include/asm-parisc/assembly.h')
-rw-r--r--include/asm-parisc/assembly.h20
1 files changed, 14 insertions, 6 deletions
diff --git a/include/asm-parisc/assembly.h b/include/asm-parisc/assembly.h
index 5a1e0e8b1c32..5587f0023881 100644
--- a/include/asm-parisc/assembly.h
+++ b/include/asm-parisc/assembly.h
@@ -31,9 +31,13 @@
31#define STREGM std,ma 31#define STREGM std,ma
32#define SHRREG shrd 32#define SHRREG shrd
33#define SHLREG shld 33#define SHLREG shld
34#define ADDIB addib,*
35#define CMPB cmpb,*
36#define ANDCM andcm,*
34#define RP_OFFSET 16 37#define RP_OFFSET 16
35#define FRAME_SIZE 128 38#define FRAME_SIZE 128
36#define CALLEE_REG_FRAME_SIZE 144 39#define CALLEE_REG_FRAME_SIZE 144
40#define ASM_ULONG_INSN .dword
37#else /* CONFIG_64BIT */ 41#else /* CONFIG_64BIT */
38#define LDREG ldw 42#define LDREG ldw
39#define STREG stw 43#define STREG stw
@@ -42,9 +46,13 @@
42#define STREGM stwm 46#define STREGM stwm
43#define SHRREG shr 47#define SHRREG shr
44#define SHLREG shlw 48#define SHLREG shlw
49#define ADDIB addib,
50#define CMPB cmpb,
51#define ANDCM andcm
45#define RP_OFFSET 20 52#define RP_OFFSET 20
46#define FRAME_SIZE 64 53#define FRAME_SIZE 64
47#define CALLEE_REG_FRAME_SIZE 128 54#define CALLEE_REG_FRAME_SIZE 128
55#define ASM_ULONG_INSN .word
48#endif 56#endif
49 57
50#define CALLEE_SAVE_FRAME_SIZE (CALLEE_REG_FRAME_SIZE + CALLEE_FLOAT_FRAME_SIZE) 58#define CALLEE_SAVE_FRAME_SIZE (CALLEE_REG_FRAME_SIZE + CALLEE_FLOAT_FRAME_SIZE)
@@ -65,7 +73,7 @@
65 73
66#ifdef __ASSEMBLY__ 74#ifdef __ASSEMBLY__
67 75
68#ifdef __LP64__ 76#ifdef CONFIG_64BIT
69/* the 64-bit pa gnu assembler unfortunately defaults to .level 1.1 or 2.0 so 77/* the 64-bit pa gnu assembler unfortunately defaults to .level 1.1 or 2.0 so
70 * work around that for now... */ 78 * work around that for now... */
71 .level 2.0w 79 .level 2.0w
@@ -156,7 +164,7 @@
156 .endm 164 .endm
157 165
158 .macro loadgp 166 .macro loadgp
159#ifdef __LP64__ 167#ifdef CONFIG_64BIT
160 ldil L%__gp, %r27 168 ldil L%__gp, %r27
161 ldo R%__gp(%r27), %r27 169 ldo R%__gp(%r27), %r27
162#else 170#else
@@ -334,7 +342,7 @@
334 fldd,mb -8(%r30), %fr12 342 fldd,mb -8(%r30), %fr12
335 .endm 343 .endm
336 344
337#ifdef __LP64__ 345#ifdef CONFIG_64BIT
338 .macro callee_save 346 .macro callee_save
339 std,ma %r3, CALLEE_REG_FRAME_SIZE(%r30) 347 std,ma %r3, CALLEE_REG_FRAME_SIZE(%r30)
340 mfctl %cr27, %r3 348 mfctl %cr27, %r3
@@ -377,7 +385,7 @@
377 ldd,mb -CALLEE_REG_FRAME_SIZE(%r30), %r3 385 ldd,mb -CALLEE_REG_FRAME_SIZE(%r30), %r3
378 .endm 386 .endm
379 387
380#else /* ! __LP64__ */ 388#else /* ! CONFIG_64BIT */
381 389
382 .macro callee_save 390 .macro callee_save
383 stw,ma %r3, CALLEE_REG_FRAME_SIZE(%r30) 391 stw,ma %r3, CALLEE_REG_FRAME_SIZE(%r30)
@@ -420,7 +428,7 @@
420 mtctl %r3, %cr27 428 mtctl %r3, %cr27
421 ldw,mb -CALLEE_REG_FRAME_SIZE(%r30), %r3 429 ldw,mb -CALLEE_REG_FRAME_SIZE(%r30), %r3
422 .endm 430 .endm
423#endif /* ! __LP64__ */ 431#endif /* ! CONFIG_64BIT */
424 432
425 .macro save_specials regs 433 .macro save_specials regs
426 434
@@ -441,7 +449,7 @@
441 mtctl %r0, %cr18 449 mtctl %r0, %cr18
442 SAVE_CR (%cr18, PT_IAOQ1(\regs)) 450 SAVE_CR (%cr18, PT_IAOQ1(\regs))
443 451
444#ifdef __LP64__ 452#ifdef CONFIG_64BIT
445 /* cr11 (sar) is a funny one. 5 bits on PA1.1 and 6 bit on PA2.0 453 /* cr11 (sar) is a funny one. 5 bits on PA1.1 and 6 bit on PA2.0
446 * For PA2.0 mtsar or mtctl always write 6 bits, but mfctl only 454 * For PA2.0 mtsar or mtctl always write 6 bits, but mfctl only
447 * reads 5 bits. Use mfctl,w to read all six bits. Otherwise 455 * reads 5 bits. Use mfctl,w to read all six bits. Otherwise