entry.S (ff47d8c05019d6e7753cef270d6399cb5a33be57) | entry.S (606aa4aa0b2c6d7c4f5d2e459922675ea1d7e459) |
---|---|
1/* 2 * S390 low-level entry points. 3 * 4 * Copyright IBM Corp. 1999, 2012 5 * Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com), 6 * Hartmut Penner (hp@de.ibm.com), 7 * Denis Joseph Barrow (djbarrow@de.ibm.com,barrow_dj@yahoo.com), 8 * Heiko Carstens <heiko.carstens@de.ibm.com> --- 36 unchanged lines hidden (view full) --- 45STACK_SHIFT = PAGE_SHIFT + THREAD_SIZE_ORDER 46STACK_SIZE = 1 << STACK_SHIFT 47STACK_INIT = STACK_SIZE - STACK_FRAME_OVERHEAD - __PT_SIZE 48 49_TIF_WORK = (_TIF_SIGPENDING | _TIF_NOTIFY_RESUME | _TIF_NEED_RESCHED | \ 50 _TIF_UPROBE) 51_TIF_TRACE = (_TIF_SYSCALL_TRACE | _TIF_SYSCALL_AUDIT | _TIF_SECCOMP | \ 52 _TIF_SYSCALL_TRACEPOINT) | 1/* 2 * S390 low-level entry points. 3 * 4 * Copyright IBM Corp. 1999, 2012 5 * Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com), 6 * Hartmut Penner (hp@de.ibm.com), 7 * Denis Joseph Barrow (djbarrow@de.ibm.com,barrow_dj@yahoo.com), 8 * Heiko Carstens <heiko.carstens@de.ibm.com> --- 36 unchanged lines hidden (view full) --- 45STACK_SHIFT = PAGE_SHIFT + THREAD_SIZE_ORDER 46STACK_SIZE = 1 << STACK_SHIFT 47STACK_INIT = STACK_SIZE - STACK_FRAME_OVERHEAD - __PT_SIZE 48 49_TIF_WORK = (_TIF_SIGPENDING | _TIF_NOTIFY_RESUME | _TIF_NEED_RESCHED | \ 50 _TIF_UPROBE) 51_TIF_TRACE = (_TIF_SYSCALL_TRACE | _TIF_SYSCALL_AUDIT | _TIF_SECCOMP | \ 52 _TIF_SYSCALL_TRACEPOINT) |
53_CIF_WORK = (_CIF_MCCK_PENDING | _CIF_ASCE | _CIF_FPU) | 53_CIF_WORK = (_CIF_MCCK_PENDING | _CIF_ASCE_PRIMARY | _CIF_FPU) |
54_PIF_WORK = (_PIF_PER_TRAP) 55 56#define BASED(name) name-cleanup_critical(%r13) 57 58 .macro TRACE_IRQS_ON 59#ifdef CONFIG_TRACE_IRQFLAGS 60 basr %r2,%r0 61 brasl %r14,trace_hardirqs_on_caller --- 272 unchanged lines hidden (view full) --- 334 TSTMSK __PT_FLAGS(%r11),_PIF_PER_TRAP 335 jo .Lsysc_singlestep 336 TSTMSK __TI_flags(%r12),_TIF_SIGPENDING 337 jo .Lsysc_sigpending 338 TSTMSK __TI_flags(%r12),_TIF_NOTIFY_RESUME 339 jo .Lsysc_notify_resume 340 TSTMSK __LC_CPU_FLAGS,_CIF_FPU 341 jo .Lsysc_vxrs | 54_PIF_WORK = (_PIF_PER_TRAP) 55 56#define BASED(name) name-cleanup_critical(%r13) 57 58 .macro TRACE_IRQS_ON 59#ifdef CONFIG_TRACE_IRQFLAGS 60 basr %r2,%r0 61 brasl %r14,trace_hardirqs_on_caller --- 272 unchanged lines hidden (view full) --- 334 TSTMSK __PT_FLAGS(%r11),_PIF_PER_TRAP 335 jo .Lsysc_singlestep 336 TSTMSK __TI_flags(%r12),_TIF_SIGPENDING 337 jo .Lsysc_sigpending 338 TSTMSK __TI_flags(%r12),_TIF_NOTIFY_RESUME 339 jo .Lsysc_notify_resume 340 TSTMSK __LC_CPU_FLAGS,_CIF_FPU 341 jo .Lsysc_vxrs |
342 TSTMSK __LC_CPU_FLAGS,_CIF_ASCE 343 jo .Lsysc_uaccess | 342 TSTMSK __LC_CPU_FLAGS,_CIF_ASCE_PRIMARY 343 jo .Lsysc_asce_primary |
344 j .Lsysc_return # beware of critical section cleanup 345 346# 347# _TIF_NEED_RESCHED is set, call schedule 348# 349.Lsysc_reschedule: 350 larl %r14,.Lsysc_return 351 jg schedule 352 353# 354# _CIF_MCCK_PENDING is set, call handler 355# 356.Lsysc_mcck_pending: 357 larl %r14,.Lsysc_return 358 jg s390_handle_mcck # TIF bit will be cleared by handler 359 360# | 344 j .Lsysc_return # beware of critical section cleanup 345 346# 347# _TIF_NEED_RESCHED is set, call schedule 348# 349.Lsysc_reschedule: 350 larl %r14,.Lsysc_return 351 jg schedule 352 353# 354# _CIF_MCCK_PENDING is set, call handler 355# 356.Lsysc_mcck_pending: 357 larl %r14,.Lsysc_return 358 jg s390_handle_mcck # TIF bit will be cleared by handler 359 360# |
361# _CIF_ASCE is set, load user space asce | 361# _CIF_ASCE_PRIMARY is set, load user space asce |
362# | 362# |
363.Lsysc_uaccess: 364 ni __LC_CPU_FLAGS+7,255-_CIF_ASCE | 363.Lsysc_asce_primary: 364 ni __LC_CPU_FLAGS+7,255-_CIF_ASCE_PRIMARY |
365 lctlg %c1,%c1,__LC_USER_ASCE # load primary asce 366 j .Lsysc_return 367 368# 369# CIF_FPU is set, restore floating-point controls and floating-point registers. 370# 371.Lsysc_vxrs: 372 larl %r14,.Lsysc_return --- 283 unchanged lines hidden (view full) --- 656 TSTMSK __TI_flags(%r12),_TIF_NEED_RESCHED 657 jo .Lio_reschedule 658 TSTMSK __TI_flags(%r12),_TIF_SIGPENDING 659 jo .Lio_sigpending 660 TSTMSK __TI_flags(%r12),_TIF_NOTIFY_RESUME 661 jo .Lio_notify_resume 662 TSTMSK __LC_CPU_FLAGS,_CIF_FPU 663 jo .Lio_vxrs | 365 lctlg %c1,%c1,__LC_USER_ASCE # load primary asce 366 j .Lsysc_return 367 368# 369# CIF_FPU is set, restore floating-point controls and floating-point registers. 370# 371.Lsysc_vxrs: 372 larl %r14,.Lsysc_return --- 283 unchanged lines hidden (view full) --- 656 TSTMSK __TI_flags(%r12),_TIF_NEED_RESCHED 657 jo .Lio_reschedule 658 TSTMSK __TI_flags(%r12),_TIF_SIGPENDING 659 jo .Lio_sigpending 660 TSTMSK __TI_flags(%r12),_TIF_NOTIFY_RESUME 661 jo .Lio_notify_resume 662 TSTMSK __LC_CPU_FLAGS,_CIF_FPU 663 jo .Lio_vxrs |
664 TSTMSK __LC_CPU_FLAGS,_CIF_ASCE 665 jo .Lio_uaccess | 664 TSTMSK __LC_CPU_FLAGS,_CIF_ASCE_PRIMARY 665 jo .Lio_asce_primary |
666 j .Lio_return # beware of critical section cleanup 667 668# 669# _CIF_MCCK_PENDING is set, call handler 670# 671.Lio_mcck_pending: 672 # TRACE_IRQS_ON already done at .Lio_return 673 brasl %r14,s390_handle_mcck # TIF bit will be cleared by handler 674 TRACE_IRQS_OFF 675 j .Lio_return 676 677# | 666 j .Lio_return # beware of critical section cleanup 667 668# 669# _CIF_MCCK_PENDING is set, call handler 670# 671.Lio_mcck_pending: 672 # TRACE_IRQS_ON already done at .Lio_return 673 brasl %r14,s390_handle_mcck # TIF bit will be cleared by handler 674 TRACE_IRQS_OFF 675 j .Lio_return 676 677# |
678# _CIF_ASCE is set, load user space asce | 678# _CIF_ASCE_PRIMARY is set, load user space asce |
679# | 679# |
680.Lio_uaccess: 681 ni __LC_CPU_FLAGS+7,255-_CIF_ASCE | 680.Lio_asce_primary: 681 ni __LC_CPU_FLAGS+7,255-_CIF_ASCE_PRIMARY |
682 lctlg %c1,%c1,__LC_USER_ASCE # load primary asce 683 j .Lio_return 684 685# 686# CIF_FPU is set, restore floating-point controls and floating-point registers. 687# 688.Lio_vxrs: 689 larl %r14,.Lio_return --- 547 unchanged lines hidden --- | 682 lctlg %c1,%c1,__LC_USER_ASCE # load primary asce 683 j .Lio_return 684 685# 686# CIF_FPU is set, restore floating-point controls and floating-point registers. 687# 688.Lio_vxrs: 689 larl %r14,.Lio_return --- 547 unchanged lines hidden --- |