diff options
author | Helge Deller <deller@gmx.de> | 2007-01-09 13:57:38 -0500 |
---|---|---|
committer | Kyle McMartin <kyle@athena.road.mcmartin.ca> | 2007-02-17 01:06:32 -0500 |
commit | 3fe4c55ebc440159c49efe2e9464ac301b390913 (patch) | |
tree | b1a27aa4fbc5cf03be658d636c39affb5f2a2f25 /arch/parisc/kernel | |
parent | 4650f0a5832033c78690811aa9b171764c11fc0f (diff) |
[PARISC] use less assembler statements in syscall path
Signed-off-by: Helge Deller <deller@gmx.de>
Signed-off-by: Kyle McMartin <kyle@parisc-linux.org>
Diffstat (limited to 'arch/parisc/kernel')
-rw-r--r-- | arch/parisc/kernel/entry.S | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/arch/parisc/kernel/entry.S b/arch/parisc/kernel/entry.S index f965673e6863..67dda1b0d6da 100644 --- a/arch/parisc/kernel/entry.S +++ b/arch/parisc/kernel/entry.S | |||
@@ -983,7 +983,7 @@ intr_check_sig: | |||
983 | /* As above */ | 983 | /* As above */ |
984 | mfctl %cr30,%r1 | 984 | mfctl %cr30,%r1 |
985 | LDREG TI_FLAGS(%r1),%r19 | 985 | LDREG TI_FLAGS(%r1),%r19 |
986 | load32 (_TIF_SIGPENDING|_TIF_RESTORE_SIGMASK), %r20 | 986 | ldi (_TIF_SIGPENDING|_TIF_RESTORE_SIGMASK), %r20 |
987 | and,COND(<>) %r19, %r20, %r0 | 987 | and,COND(<>) %r19, %r20, %r0 |
988 | b,n intr_restore /* skip past if we've nothing to do */ | 988 | b,n intr_restore /* skip past if we've nothing to do */ |
989 | 989 | ||
@@ -995,11 +995,9 @@ intr_check_sig: | |||
995 | * Only do signals if we are returning to user space | 995 | * Only do signals if we are returning to user space |
996 | */ | 996 | */ |
997 | LDREG PT_IASQ0(%r16), %r20 | 997 | LDREG PT_IASQ0(%r16), %r20 |
998 | CMPIB= 0,%r20,intr_restore /* backward */ | 998 | CMPIB=,n 0,%r20,intr_restore /* backward */ |
999 | nop | ||
1000 | LDREG PT_IASQ1(%r16), %r20 | 999 | LDREG PT_IASQ1(%r16), %r20 |
1001 | CMPIB= 0,%r20,intr_restore /* backward */ | 1000 | CMPIB=,n 0,%r20,intr_restore /* backward */ |
1002 | nop | ||
1003 | 1001 | ||
1004 | copy %r0, %r25 /* long in_syscall = 0 */ | 1002 | copy %r0, %r25 /* long in_syscall = 0 */ |
1005 | #ifdef CONFIG_64BIT | 1003 | #ifdef CONFIG_64BIT |
@@ -1009,8 +1007,7 @@ intr_check_sig: | |||
1009 | BL do_notify_resume,%r2 | 1007 | BL do_notify_resume,%r2 |
1010 | copy %r16, %r26 /* struct pt_regs *regs */ | 1008 | copy %r16, %r26 /* struct pt_regs *regs */ |
1011 | 1009 | ||
1012 | b intr_check_sig | 1010 | b,n intr_check_sig |
1013 | nop | ||
1014 | 1011 | ||
1015 | intr_restore: | 1012 | intr_restore: |
1016 | copy %r16,%r29 | 1013 | copy %r16,%r29 |
@@ -2091,7 +2088,7 @@ syscall_check_resched: | |||
2091 | .import do_signal,code | 2088 | .import do_signal,code |
2092 | syscall_check_sig: | 2089 | syscall_check_sig: |
2093 | LDREG TI_FLAGS-THREAD_SZ_ALGN-FRAME_SIZE(%r30),%r19 | 2090 | LDREG TI_FLAGS-THREAD_SZ_ALGN-FRAME_SIZE(%r30),%r19 |
2094 | load32 (_TIF_SIGPENDING|_TIF_RESTORE_SIGMASK), %r26 | 2091 | ldi (_TIF_SIGPENDING|_TIF_RESTORE_SIGMASK), %r26 |
2095 | and,COND(<>) %r19, %r26, %r0 | 2092 | and,COND(<>) %r19, %r26, %r0 |
2096 | b,n syscall_restore /* skip past if we've nothing to do */ | 2093 | b,n syscall_restore /* skip past if we've nothing to do */ |
2097 | 2094 | ||