entry.S (d4bbf7e7759afc172e2bfbc5c416324590049cdd) entry.S (2c1cfb2db61474040a394962872f4cde613f89fb)
1/* arch/sparc/kernel/entry.S: Sparc trap low-level entry points.
2 *
3 * Copyright (C) 1995, 2007 David S. Miller (davem@davemloft.net)
4 * Copyright (C) 1996 Eddie C. Dost (ecd@skynet.be)
5 * Copyright (C) 1996 Miguel de Icaza (miguel@nuclecu.unam.mx)
6 * Copyright (C) 1996-1999 Jakub Jelinek (jj@sunsite.mff.cuni.cz)
7 * Copyright (C) 1997 Anton Blanchard (anton@progsoc.uts.edu.au)
8 */

--- 303 unchanged lines hidden (view full) ---

312 beq,a maybe_smp4m_msg_out
313 nop
314 call smp_resched_interrupt
315 nop
316maybe_smp4m_msg_out:
317 RESTORE_ALL
318
319 .align 4
1/* arch/sparc/kernel/entry.S: Sparc trap low-level entry points.
2 *
3 * Copyright (C) 1995, 2007 David S. Miller (davem@davemloft.net)
4 * Copyright (C) 1996 Eddie C. Dost (ecd@skynet.be)
5 * Copyright (C) 1996 Miguel de Icaza (miguel@nuclecu.unam.mx)
6 * Copyright (C) 1996-1999 Jakub Jelinek (jj@sunsite.mff.cuni.cz)
7 * Copyright (C) 1997 Anton Blanchard (anton@progsoc.uts.edu.au)
8 */

--- 303 unchanged lines hidden (view full) ---

312 beq,a maybe_smp4m_msg_out
313 nop
314 call smp_resched_interrupt
315 nop
316maybe_smp4m_msg_out:
317 RESTORE_ALL
318
319 .align 4
320 .globl linux_trap_ipi15_sun4m
321linux_trap_ipi15_sun4m:
320 .globl linux_trap_ipi15
321linux_trap_ipi15:
322 SAVE_ALL
323 sethi %hi(0x80000000), %o2
324 GET_PROCESSOR4M_ID(o0)
325 sethi %hi(sun4m_irq_percpu), %l5
326 or %l5, %lo(sun4m_irq_percpu), %o5
327 sll %o0, 2, %o0
328 ld [%o5 + %o0], %o5
329 ld [%o5 + 0x00], %o3 ! sun4m_irq_percpu[cpu]->pending

--- 425 unchanged lines hidden (view full) ---

755 or %l4, %l0, %l4 ! or them in... mix mix mix
756
757 wr %l4, 0x0, %psr ! set new %psr
758 WRITE_PAUSE ! TI scumbags...
759
760 jmp %l2 ! advance over trap instruction
761 rett %l2 + 0x4 ! like this...
762
322 SAVE_ALL
323 sethi %hi(0x80000000), %o2
324 GET_PROCESSOR4M_ID(o0)
325 sethi %hi(sun4m_irq_percpu), %l5
326 or %l5, %lo(sun4m_irq_percpu), %o5
327 sll %o0, 2, %o0
328 ld [%o5 + %o0], %o5
329 ld [%o5 + 0x00], %o3 ! sun4m_irq_percpu[cpu]->pending

--- 425 unchanged lines hidden (view full) ---

755 or %l4, %l0, %l4 ! or them in... mix mix mix
756
757 wr %l4, 0x0, %psr ! set new %psr
758 WRITE_PAUSE ! TI scumbags...
759
760 jmp %l2 ! advance over trap instruction
761 rett %l2 + 0x4 ! like this...
762
763#ifndef CONFIG_SMP
763 .align 4
764 .align 4
764 .globl linux_trap_nmi_sun4c
765linux_trap_nmi_sun4c:
765 .globl linux_trap_ipi15
766linux_trap_ipi15:
766 SAVE_ALL
767
767 SAVE_ALL
768
768 /* Ugh, we need to clear the IRQ line. This is now
769 * a very sun4c specific trap handler...
770 */
771 sethi %hi(interrupt_enable), %l5
772 ld [%l5 + %lo(interrupt_enable)], %l5
773 ldub [%l5], %l6
774 andn %l6, INTS_ENAB, %l6
775 stb %l6, [%l5]
776
777 /* Now it is safe to re-enable traps without recursion. */
778 or %l0, PSR_PIL, %l0
779 wr %l0, PSR_ET, %psr
780 WRITE_PAUSE
781
782 /* Now call the c-code with the pt_regs frame ptr and the
783 * memory error registers as arguments. The ordering chosen
784 * here is due to unlatching semantics.

--- 7 unchanged lines hidden (view full) ---

792 lda [%o0] ASI_CONTROL, %o4 ! async vaddr
793 sub %o0, 0x4, %o0
794 lda [%o0] ASI_CONTROL, %o3 ! async error
795 call sparc_lvl15_nmi
796 add %sp, STACKFRAME_SZ, %o0
797
798 RESTORE_ALL
799
769 /* Now it is safe to re-enable traps without recursion. */
770 or %l0, PSR_PIL, %l0
771 wr %l0, PSR_ET, %psr
772 WRITE_PAUSE
773
774 /* Now call the c-code with the pt_regs frame ptr and the
775 * memory error registers as arguments. The ordering chosen
776 * here is due to unlatching semantics.

--- 7 unchanged lines hidden (view full) ---

784 lda [%o0] ASI_CONTROL, %o4 ! async vaddr
785 sub %o0, 0x4, %o0
786 lda [%o0] ASI_CONTROL, %o3 ! async error
787 call sparc_lvl15_nmi
788 add %sp, STACKFRAME_SZ, %o0
789
790 RESTORE_ALL
791
792#endif /* CONFIG_SMP */
793
800 .align 4
801 .globl invalid_segment_patch1_ff
802 .globl invalid_segment_patch2_ff
803invalid_segment_patch1_ff: cmp %l4, 0xff
804invalid_segment_patch2_ff: mov 0xff, %l3
805
806 .align 4
807 .globl invalid_segment_patch1_1ff

--- 866 unchanged lines hidden ---
794 .align 4
795 .globl invalid_segment_patch1_ff
796 .globl invalid_segment_patch2_ff
797invalid_segment_patch1_ff: cmp %l4, 0xff
798invalid_segment_patch2_ff: mov 0xff, %l3
799
800 .align 4
801 .globl invalid_segment_patch1_1ff

--- 866 unchanged lines hidden ---