⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 entry.s

📁 arm平台上的uclinux系统全部源代码
💻 S
📖 第 1 页 / 共 3 页
字号:
	addql	#8,%sp	jra	SYMBOL_NAME(ret_from_exception)ENTRY(trap40)	SAVE_ALL	moveq	#-1,%d0	movel	%d0,%sp@(LORIG_D0)	| a -1 in the ORIG_D0 field					| signifies that the stack frame					| is NOT for syscall	movel	%sp,%sp@- 		| stack frame pointer argument	movel	#40,%sp@-	jsr	SYMBOL_NAME(trap_c)	addql	#8,%sp	jra	SYMBOL_NAME(ret_from_exception)ENTRY(trap41)	SAVE_ALL	moveq	#-1,%d0	movel	%d0,%sp@(LORIG_D0)	| a -1 in the ORIG_D0 field					| signifies that the stack frame					| is NOT for syscall	movel	%sp,%sp@- 		| stack frame pointer argument	movel	#41,%sp@-	jsr	SYMBOL_NAME(trap_c)	addql	#8,%sp	jra	SYMBOL_NAME(ret_from_exception)ENTRY(trap42)	SAVE_ALL	moveq	#-1,%d0	movel	%d0,%sp@(LORIG_D0)	| a -1 in the ORIG_D0 field					| signifies that the stack frame					| is NOT for syscall	movel	%sp,%sp@- 		| stack frame pointer argument	movel	#42,%sp@-	jsr	SYMBOL_NAME(trap_c)	addql	#8,%sp	jra	SYMBOL_NAME(ret_from_exception)ENTRY(trap43)	SAVE_ALL	moveq	#-1,%d0	movel	%d0,%sp@(LORIG_D0)	| a -1 in the ORIG_D0 field					| signifies that the stack frame					| is NOT for syscall	movel	%sp,%sp@- 		| stack frame pointer argument	movel	#43,%sp@-	jsr	SYMBOL_NAME(trap_c)	addql	#8,%sp	jra	SYMBOL_NAME(ret_from_exception)ENTRY(trap44)	SAVE_ALL	moveq	#-1,%d0	movel	%d0,%sp@(LORIG_D0)	| a -1 in the ORIG_D0 field					| signifies that the stack frame					| is NOT for syscall	movel	%sp,%sp@- 		| stack frame pointer argument	movel	#44,%sp@-	jsr	SYMBOL_NAME(trap_c)	addql	#8,%sp	jra	SYMBOL_NAME(ret_from_exception)ENTRY(trap45)	SAVE_ALL	moveq	#-1,%d0	movel	%d0,%sp@(LORIG_D0)	| a -1 in the ORIG_D0 field					| signifies that the stack frame					| is NOT for syscall	movel	%sp,%sp@- 		| stack frame pointer argument	movel	#45,%sp@-	jsr	SYMBOL_NAME(trap_c)	addql	#8,%sp	jra	SYMBOL_NAME(ret_from_exception)ENTRY(trap46)	SAVE_ALL	moveq	#-1,%d0	movel	%d0,%sp@(LORIG_D0)	| a -1 in the ORIG_D0 field					| signifies that the stack frame					| is NOT for syscall	movel	%sp,%sp@- 		| stack frame pointer argument	movel	#46,%sp@-	jsr	SYMBOL_NAME(trap_c)	addql	#8,%sp	jra	SYMBOL_NAME(ret_from_exception)ENTRY(trap47)	SAVE_ALL	moveq	#-1,%d0	movel	%d0,%sp@(LORIG_D0)	| a -1 in the ORIG_D0 field					| signifies that the stack frame					| is NOT for syscall	movel	%sp,%sp@- 		| stack frame pointer argument	movel	#47,%sp@-	jsr	SYMBOL_NAME(trap_c)	addql	#8,%sp	jra	SYMBOL_NAME(ret_from_exception)ENTRY(reschedule)	| save top of frame	pea	%sp@	jbsr	SYMBOL_NAME(set_esp0)	addql	#4,%sp	pea	SYMBOL_NAME(ret_from_exception)	jmp	SYMBOL_NAME(schedule)ENTRY(system_call)	SAVE_ALL	movel	#-LENOSYS,LD0(%sp)	| default return value in d0					| original D0 is in orig_d0	movel	%d0,%d2	| save top of frame	pea	%sp@	jbsr	SYMBOL_NAME(set_esp0)	addql	#4,%sp	cmpl	#NR_syscalls,%d2	jcc	SYMBOL_NAME(ret_from_exception)	lea	SYMBOL_NAME(sys_call_table),%a0	lsl	#2,%d2		| movel	%a0@(%d2:l:4),%d3	movel	%a0@(%d2),%d3	jeq	SYMBOL_NAME(ret_from_exception)	lsr	#2,%d2	movel	SYMBOL_NAME(current_set),%a0	btst	#5,%a0@(LTASK_FLAGS+3)	| PF_TRACESYS	bnes	1f	movel	%d3,%a0	jbsr	%a0@	movel	%d0,%sp@(LD0)		| save the return value	jra	SYMBOL_NAME(ret_from_exception)1:	subql	#4,%sp	SAVE_SWITCH_STACK	jbsr	SYMBOL_NAME(syscall_trace)	RESTORE_SWITCH_STACK	addql	#4,%sp	movel	%d3,%a0	jbsr	%a0@	movel	%d0,%sp@(LD0)		| save the return value	subql	#4,%sp			| dummy return address	SAVE_SWITCH_STACK	jbsr	SYMBOL_NAME(syscall_trace)SYMBOL_NAME_LABEL(ret_from_signal)	RESTORE_SWITCH_STACK	addql	#4,%spSYMBOL_NAME_LABEL(ret_from_exception)	btst	#5,%sp@(LSR)		| check if returning to kernel	bnes	2f			| if so, skip resched, signals	tstl	SYMBOL_NAME(need_resched)	jne	SYMBOL_NAME(reschedule)	movel	SYMBOL_NAME(current_set),%a0	cmpl	#SYMBOL_NAME(task),%a0	| task[0] cannot have signals	jeq	2f	bclr	#5,%a0@(LTASK_FLAGS+1)	| check for delayed trace	jeq	1f	bclr	#7,%sp@(LSR)		| clear trace bit in SR	pea	1			| send SIGTRAP	movel	%a0,%sp@-	pea	5	jbsr	SYMBOL_NAME(send_sig)	addql	#8,%sp	addql	#4,%sp	movel	SYMBOL_NAME(current_set),%a01:	tstl	%a0@(LTASK_STATE)	| state	jne	SYMBOL_NAME(reschedule)	tstl	%a0@(LTASK_COUNTER)	| counter	jeq	SYMBOL_NAME(reschedule)	movel	%a0@(LTASK_BLOCKED),%d0	movel	%d0,%d1			| save blocked in d1 for sig handling	notl	%d0	btst	#4,%a0@(LTASK_FLAGS+3)	| PF_PTRACED	jeq	1f	moveq	#-1,%d0			| let the debugger see all signals1:	andl	%a0@(LTASK_SIGNAL),%d0	jne	Lsignal_return2:	RESTORE_ALL			| Does RTELsignal_return:	subql	#4,%sp			| dummy return address	SAVE_SWITCH_STACK	pea	%sp@(SWITCH_STACK_SIZE)	movel	%d1,%sp@-	jsr	SYMBOL_NAME(do_signal)	addql	#8,%sp	RESTORE_SWITCH_STACK	addql	#4,%sp	RESTORE_ALL/*** This is the main interrupt handler, responsible for calling process_int()*/SYMBOL_NAME_LABEL(timerhandler)	SAVE_ALL	oriw #0x700,%sr		moveq	#-1,%d0	movel	%d0,%sp@(LORIG_D0)	| a -1 in the ORIG_D0 field					| signifies that the stack frame					| is NOT for syscall	addql	#1,SYMBOL_NAME(intr_count)					|  put exception # in d0	|movel	%sp@(LFORMATVEC),%d0	|lsr	#4,%d0	movew %sp@(LFORMATVEC),%d0	and	#0x3ff,%d0	| bfextu %sp@(LFORMATVEC){#4,#10},%d0	movel	%sp,%sp@-	movel	#0x40,%sp@- 		|  put vector # on stack (was %d0)	jbsr	SYMBOL_NAME(process_int)|  process the IRQ	addql	#8,%sp			|  pop parameters off stack	bra	ret_from_interrupt	| this was fallthrough/*** This is the main interrupt handler, responsible for calling process_int()*/SYMBOL_NAME_LABEL(serialhandler)	SAVE_ALL	oriw #0x700,%sr		moveq	#-1,%d0	movel	%d0,%sp@(LORIG_D0)	| a -1 in the ORIG_D0 field					| signifies that the stack frame					| is NOT for syscall	addql	#1,SYMBOL_NAME(intr_count)					|  put exception # in d0	|movel	%sp@(LFORMATVEC),%d0	|lsr	#4,%d0	movew %sp@(LFORMATVEC),%d0	and	#0x3ff,%d0	| bfextu %sp@(LFORMATVEC){#4,#10},%d0	movel	%sp,%sp@-	movel	#0x42,%sp@- 		|  put vector # on stack (was %d0)	jbsr	SYMBOL_NAME(process_int)|  process the IRQ	addql	#8,%sp			|  pop parameters off stack	bra	ret_from_interrupt	| this was fallthrough/*** This is the main interrupt handler, responsible for calling process_int()*/SYMBOL_NAME_LABEL(inthandler1)	SAVE_ALL	oriw #0x700,%sr		moveq	#-1,%d0	movel	%d0,%sp@(LORIG_D0)	| a -1 in the ORIG_D0 field					| signifies that the stack frame					| is NOT for syscall	addql	#1,SYMBOL_NAME(intr_count)					|  put exception # in d0	|movel	%sp@(LFORMATVEC),%d0	|lsr	#4,%d0	movew %sp@(LFORMATVEC),%d0	and	#0x3ff,%d0	| bfextu %sp@(LFORMATVEC){#4,#10},%d0	movel	%sp,%sp@-	movel	#65,%sp@- 		|  put vector # on stack (was %d0)	jbsr	SYMBOL_NAME(process_int)|  process the IRQ	addql	#8,%sp			|  pop parameters off stack	bra	ret_from_interrupt	| this was fallthrough/*** This is the main interrupt handler, responsible for calling process_int()*/SYMBOL_NAME_LABEL(inthandler2)	SAVE_ALL	oriw #0x700,%sr	moveq	#-1,%d0	movel	%d0,%sp@(LORIG_D0)	| a -1 in the ORIG_D0 field					| signifies that the stack frame					| is NOT for syscall	addql	#1,SYMBOL_NAME(intr_count)					|  put exception # in d0	|movel	%sp@(LFORMATVEC),%d0	|lsr	#4,%d0	movew %sp@(LFORMATVEC),%d0	and	#0x3ff,%d0	| bfextu %sp@(LFORMATVEC){#4,#10},%d0	movel	%sp,%sp@-	movel	#66,%sp@- 		|  put vector # on stack (was %d0)	jbsr	SYMBOL_NAME(process_int)|  process the IRQ	addql	#8,%sp			|  pop parameters off stack	bra	ret_from_interrupt	| this was fallthrough/*** This is the main interrupt handler, responsible for calling process_int()*/SYMBOL_NAME_LABEL(inthandler3)	SAVE_ALL	oriw #0x700,%sr	moveq	#-1,%d0	movel	%d0,%sp@(LORIG_D0)	| a -1 in the ORIG_D0 field					| signifies that the stack frame					| is NOT for syscall	addql	#1,SYMBOL_NAME(intr_count)					|  put exception # in d0	|movel	%sp@(LFORMATVEC),%d0	|lsr	#4,%d0	movew %sp@(LFORMATVEC),%d0	and	#0x3ff,%d0	| bfextu %sp@(LFORMATVEC){#4,#10},%d0	movel	%sp,%sp@-	movel	#67,%sp@- 		|  put vector # on stack (was %d0)	jbsr	SYMBOL_NAME(process_int)|  process the IRQ	addql	#8,%sp			|  pop parameters off stack	bra	ret_from_interrupt	| this was fallthrough/*** This is the main interrupt handler, responsible for calling process_int()*/SYMBOL_NAME_LABEL(inthandler4)	SAVE_ALL	oriw #0x700,%sr	moveq	#-1,%d0	movel	%d0,%sp@(LORIG_D0)	| a -1 in the ORIG_D0 field					| signifies that the stack frame					| is NOT for syscall	addql	#1,SYMBOL_NAME(intr_count)					|  put exception # in d0	|movel	%sp@(LFORMATVEC),%d0	|lsr	#4,%d0	movew %sp@(LFORMATVEC),%d0	and	#0x3ff,%d0	| bfextu %sp@(LFORMATVEC){#4,#10},%d0	movel	%sp,%sp@-	movel	#68,%sp@- 		|  put vector # on stack (was %d0)	jbsr	SYMBOL_NAME(process_int)|  process the IRQ	addql	#8,%sp			|  pop parameters off stack	bra	ret_from_interrupt	| this was fallthrough/*** This is the main interrupt handler, responsible for calling process_int()*/SYMBOL_NAME_LABEL(inthandler5)	SAVE_ALL	oriw #0x700,%sr	moveq	#-1,%d0	movel	%d0,%sp@(LORIG_D0)	| a -1 in the ORIG_D0 field					| signifies that the stack frame					| is NOT for syscall	addql	#1,SYMBOL_NAME(intr_count)					|  put exception # in d0	|movel	%sp@(LFORMATVEC),%d0	|lsr	#4,%d0	movew %sp@(LFORMATVEC),%d0	and	#0x3ff,%d0	| bfextu %sp@(LFORMATVEC){#4,#10},%d0	movel	%sp,%sp@-	movel	#69,%sp@- 		|  put vector # on stack (was %d0)	jbsr	SYMBOL_NAME(process_int)|  process the IRQ	addql	#8,%sp			|  pop parameters off stack	bra	ret_from_interrupt	| this was fallthrough/*** This is the main interrupt handler, responsible for calling process_int()*/SYMBOL_NAME_LABEL(inthandler6)	SAVE_ALL	oriw #0x700,%sr	moveq	#-1,%d0	movel	%d0,%sp@(LORIG_D0)	| a -1 in the ORIG_D0 field					| signifies that the stack frame					| is NOT for syscall	addql	#1,SYMBOL_NAME(intr_count)					|  put exception # in d0	|movel	%sp@(LFORMATVEC),%d0	|lsr	#4,%d0	movew %sp@(LFORMATVEC),%d0	and	#0x3ff,%d0	| bfextu %sp@(LFORMATVEC){#4,#10},%d0	movel	%sp,%sp@-	movel	#70,%sp@- 		|  put vector # on stack (was %d0)	jbsr	SYMBOL_NAME(process_int)|  process the IRQ	addql	#8,%sp			|  pop parameters off stack	bra	ret_from_interrupt	| this was fallthrough/*** This is the main interrupt handler, responsible for calling process_int()*/SYMBOL_NAME_LABEL(inthandler7)	SAVE_ALL	oriw #0x700,%sr	moveq	#-1,%d0	movel	%d0,%sp@(LORIG_D0)	| a -1 in the ORIG_D0 field					| signifies that the stack frame					| is NOT for syscall	addql	#1,SYMBOL_NAME(intr_count)					|  put exception # in d0	|movel	%sp@(LFORMATVEC),%d0	|lsr	#4,%d0	movew %sp@(LFORMATVEC),%d0	and	#0x3ff,%d0	| bfextu %sp@(LFORMATVEC){#4,#10},%d0

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -