diff options
Diffstat (limited to 'arch/sparc')
-rw-r--r-- | arch/sparc/kernel/entry.S | 15 |
1 files changed, 2 insertions, 13 deletions
diff --git a/arch/sparc/kernel/entry.S b/arch/sparc/kernel/entry.S index dcaa1cf0de40..dc089702e00a 100644 --- a/arch/sparc/kernel/entry.S +++ b/arch/sparc/kernel/entry.S | |||
@@ -959,17 +959,9 @@ flush_patch_four: | |||
959 | .align 4 | 959 | .align 4 |
960 | linux_sparc_ni_syscall: | 960 | linux_sparc_ni_syscall: |
961 | sethi %hi(sys_ni_syscall), %l7 | 961 | sethi %hi(sys_ni_syscall), %l7 |
962 | b syscall_is_too_hard | 962 | b do_syscall |
963 | or %l7, %lo(sys_ni_syscall), %l7 | 963 | or %l7, %lo(sys_ni_syscall), %l7 |
964 | 964 | ||
965 | linux_fast_syscall: | ||
966 | andn %l7, 3, %l7 | ||
967 | mov %i0, %o0 | ||
968 | mov %i1, %o1 | ||
969 | mov %i2, %o2 | ||
970 | jmpl %l7 + %g0, %g0 | ||
971 | mov %i3, %o3 | ||
972 | |||
973 | linux_syscall_trace: | 965 | linux_syscall_trace: |
974 | add %sp, STACKFRAME_SZ, %o0 | 966 | add %sp, STACKFRAME_SZ, %o0 |
975 | call syscall_trace | 967 | call syscall_trace |
@@ -1002,11 +994,8 @@ linux_sparc_syscall: | |||
1002 | bgeu linux_sparc_ni_syscall | 994 | bgeu linux_sparc_ni_syscall |
1003 | sll %g1, 2, %l4 | 995 | sll %g1, 2, %l4 |
1004 | ld [%l7 + %l4], %l7 | 996 | ld [%l7 + %l4], %l7 |
1005 | andcc %l7, 1, %g0 | ||
1006 | bne linux_fast_syscall | ||
1007 | /* Just do first insn from SAVE_ALL in the delay slot */ | ||
1008 | 997 | ||
1009 | syscall_is_too_hard: | 998 | do_syscall: |
1010 | SAVE_ALL_HEAD | 999 | SAVE_ALL_HEAD |
1011 | rd %wim, %l3 | 1000 | rd %wim, %l3 |
1012 | 1001 | ||