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 --- |