diff options
author | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-02-26 15:48:06 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-02-26 15:48:06 -0500 |
commit | b0138a6cb7923a997d278b47c176778534d1095b (patch) | |
tree | 4fcb8822a69631baba568e4e1942847747123887 /include/asm-parisc/assembly.h | |
parent | 6572d6d7d0f965dda19d02af804ed3ae4b3bf1fc (diff) | |
parent | 1055a8af093fea7490445bd15cd671020e542035 (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.h | 20 |
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 |