aboutsummaryrefslogtreecommitdiffstats
path: root/arch/ia64/kernel/entry.S
diff options
context:
space:
mode:
authorDavid Mosberger-Tang <davidm@hpl.hp.com>2005-04-28 00:18:22 -0400
committerTony Luck <tony.luck@intel.com>2005-04-28 00:18:22 -0400
commitc03f058fbf685f2ff630095d2c1e98d331b81e82 (patch)
treedef1271117756fdde22b4d51b03a43378ad927ca /arch/ia64/kernel/entry.S
parent87e522a0f7f8a7a5a1a880517989835c4f09c63e (diff)
[IA64] In ia64_leave_syscall(), fix comments and whitespace only.
Signed-off-by: David Mosberger-Tang <davidm@hpl.hp.com> Signed-off-by: Tony Luck <tony.luck@intel.com>
Diffstat (limited to 'arch/ia64/kernel/entry.S')
-rw-r--r--arch/ia64/kernel/entry.S79
1 files changed, 39 insertions, 40 deletions
diff --git a/arch/ia64/kernel/entry.S b/arch/ia64/kernel/entry.S
index d97a07c77a43..a7542c3d3b3c 100644
--- a/arch/ia64/kernel/entry.S
+++ b/arch/ia64/kernel/entry.S
@@ -625,7 +625,7 @@ END(ia64_ret_from_syscall)
625 * r8-r11: restored (syscall return value(s)) 625 * r8-r11: restored (syscall return value(s))
626 * r12: restored (user-level stack pointer) 626 * r12: restored (user-level stack pointer)
627 * r13: restored (user-level thread pointer) 627 * r13: restored (user-level thread pointer)
628 * r14: cleared 628 * r14: set to __kernel_syscall_via_epc
629 * r15: restored (syscall #) 629 * r15: restored (syscall #)
630 * r16-r17: cleared 630 * r16-r17: cleared
631 * r18: user-level b6 631 * r18: user-level b6
@@ -646,7 +646,7 @@ END(ia64_ret_from_syscall)
646 * pr: restored (user-level pr) 646 * pr: restored (user-level pr)
647 * b0: restored (user-level rp) 647 * b0: restored (user-level rp)
648 * b6: restored 648 * b6: restored
649 * b7: cleared 649 * b7: set to __kernel_syscall_via_epc
650 * ar.unat: restored (user-level ar.unat) 650 * ar.unat: restored (user-level ar.unat)
651 * ar.pfs: restored (user-level ar.pfs) 651 * ar.pfs: restored (user-level ar.pfs)
652 * ar.rsc: restored (user-level ar.rsc) 652 * ar.rsc: restored (user-level ar.rsc)
@@ -708,63 +708,63 @@ ENTRY(ia64_leave_syscall)
708(pNonSys) break 0 // bug check: we shouldn't be here if pNonSys is TRUE! 708(pNonSys) break 0 // bug check: we shouldn't be here if pNonSys is TRUE!
709 ;; 709 ;;
710 invala // M0|1 invalidate ALAT 710 invala // M0|1 invalidate ALAT
711 rsm psr.i | psr.ic // M2 initiate turning off of interrupt and interruption collection 711 rsm psr.i | psr.ic // M2 turn off interrupts and interruption collection
712 cmp.eq p9,p0=r0,r0 // set p9 to indicate that we should restore cr.ifs 712 cmp.eq p9,p0=r0,r0 // A set p9 to indicate that we should restore cr.ifs
713 713
714 ld8 r29=[r2],16 // load cr.ipsr 714 ld8 r29=[r2],16 // M0|1 load cr.ipsr
715 ld8 r28=[r3],16 // load cr.iip 715 ld8 r28=[r3],16 // M0|1 load cr.iip
716 mov r22=r0 // clear r22 716 mov r22=r0 // A clear r22
717 ;; 717 ;;
718 ld8 r30=[r2],16 // M0|1 load cr.ifs 718 ld8 r30=[r2],16 // M0|1 load cr.ifs
719 ld8 r25=[r3],16 // M0|1 load ar.unat 719 ld8 r25=[r3],16 // M0|1 load ar.unat
720(pUStk) add r14=IA64_TASK_THREAD_ON_USTACK_OFFSET,r13 720(pUStk) add r14=IA64_TASK_THREAD_ON_USTACK_OFFSET,r13
721 ;; 721 ;;
722 ld8 r26=[r2],PT(B0)-PT(AR_PFS) // M0|1 load ar.pfs 722 ld8 r26=[r2],PT(B0)-PT(AR_PFS) // M0|1 load ar.pfs
723(pKStk) mov r22=psr // M2 read PSR now that interrupts are disabled 723(pKStk) mov r22=psr // M2 read PSR now that interrupts are disabled
724 nop 0 724 nop 0
725 ;; 725 ;;
726 ld8 r21=[r2],PT(AR_RNAT)-PT(B0) // load b0 726 ld8 r21=[r2],PT(AR_RNAT)-PT(B0) // M0|1 load b0
727 ld8 r27=[r3],PT(PR)-PT(AR_RSC) // load ar.rsc 727 ld8 r27=[r3],PT(PR)-PT(AR_RSC) // M0|1 load ar.rsc
728 mov f6=f0 // clear f6 728 mov f6=f0 // F clear f6
729 ;; 729 ;;
730 ld8 r24=[r2],PT(AR_FPSR)-PT(AR_RNAT) // load ar.rnat (may be garbage) 730 ld8 r24=[r2],PT(AR_FPSR)-PT(AR_RNAT) // M0|1 load ar.rnat (may be garbage)
731 ld8 r31=[r3],PT(R1)-PT(PR) // load predicates 731 ld8 r31=[r3],PT(R1)-PT(PR) // M0|1 load predicates
732 mov f7=f0 // clear f7 732 mov f7=f0 // F clear f7
733 ;; 733 ;;
734 ld8 r20=[r2],PT(R12)-PT(AR_FPSR) // load ar.fpsr 734 ld8 r20=[r2],PT(R12)-PT(AR_FPSR) // M0|1 load ar.fpsr
735 ld8.fill r1=[r3],16 // load r1 735 ld8.fill r1=[r3],16 // M0|1 load r1
736(pUStk) mov r17=1 736(pUStk) mov r17=1 // A
737 ;; 737 ;;
738(pUStk) st1 [r14]=r17 738(pUStk) st1 [r14]=r17 // M2|3
739 ld8.fill r13=[r3],16 739 ld8.fill r13=[r3],16 // M0|1
740 mov f8=f0 // clear f8 740 mov f8=f0 // F clear f8
741 ;; 741 ;;
742 ld8.fill r12=[r2] // restore r12 (sp) 742 ld8.fill r12=[r2] // M0|1 restore r12 (sp)
743 ld8.fill r15=[r3] // restore r15 743 ld8.fill r15=[r3] // M0|1 restore r15
744 mov b6=r18 // I0 restore b6 744 mov b6=r18 // I0 restore b6
745 745
746 addl r17=THIS_CPU(ia64_phys_stacked_size_p8),r0 746 addl r17=THIS_CPU(ia64_phys_stacked_size_p8),r0 // A
747 mov f9=f0 // clear f9 747 mov f9=f0 // F clear f9
748(pKStk) br.cond.dpnt.many skip_rbs_switch 748(pKStk) br.cond.dpnt.many skip_rbs_switch // B
749 749
750 srlz.d // M0 ensure interruption collection is off 750 srlz.d // M0 ensure interruption collection is off (for cover)
751 shr.u r18=r19,16 // I0|1 get byte size of existing "dirty" partition 751 shr.u r18=r19,16 // I0|1 get byte size of existing "dirty" partition
752 cover // B add current frame into dirty partition and set cr.ifs 752 cover // B add current frame into dirty partition & set cr.ifs
753 ;; 753 ;;
754(pUStk) ld4 r17=[r17] // r17 = cpu_data->phys_stacked_size_p8 754(pUStk) ld4 r17=[r17] // M0|1 r17 = cpu_data->phys_stacked_size_p8
755 mov r19=ar.bsp // M2 get new backing store pointer 755 mov r19=ar.bsp // M2 get new backing store pointer
756 mov f10=f0 // clear f10 756 mov f10=f0 // F clear f10
757 757
758 nop.m 0 758 nop.m 0
759 movl r14=__kernel_syscall_via_epc // X 759 movl r14=__kernel_syscall_via_epc // X
760 ;; 760 ;;
761 mov.m ar.csd=r0 // M2 clear ar.csd 761 mov.m ar.csd=r0 // M2 clear ar.csd
762 mov.m ar.ccv=r0 // clear ar.ccv 762 mov.m ar.ccv=r0 // M2 clear ar.ccv
763 mov b7=r14 // I0 clear b7 (hint with __kernel_syscall_via_epc) 763 mov b7=r14 // I0 clear b7 (hint with __kernel_syscall_via_epc)
764 764
765 mov.m ar.ssd=r0 // M2 clear ar.ssd 765 mov.m ar.ssd=r0 // M2 clear ar.ssd
766 mov f11=f0 // clear f11 766 mov f11=f0 // F clear f11
767 br.cond.sptk.many rbs_switch 767 br.cond.sptk.many rbs_switch // B
768END(ia64_leave_syscall) 768END(ia64_leave_syscall)
769 769
770#ifdef CONFIG_IA32_SUPPORT 770#ifdef CONFIG_IA32_SUPPORT
@@ -940,7 +940,6 @@ GLOBAL_ENTRY(ia64_leave_kernel)
940 * NOTE: alloc, loadrs, and cover can't be predicated. 940 * NOTE: alloc, loadrs, and cover can't be predicated.
941 */ 941 */
942(pNonSys) br.cond.dpnt dont_preserve_current_frame 942(pNonSys) br.cond.dpnt dont_preserve_current_frame
943
944 cover // add current frame into dirty partition and set cr.ifs 943 cover // add current frame into dirty partition and set cr.ifs
945 ;; 944 ;;
946 mov r19=ar.bsp // get new backing store pointer 945 mov r19=ar.bsp // get new backing store pointer