亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? entry.s

?? 底層驅(qū)動(dòng)開(kāi)發(fā)
?? S
?? 第 1 頁(yè) / 共 4 頁(yè)
字號(hào):
	rotw	-1			# we restore a4..a7	_bltui	a6, 16, 1f		# only have to restore current window?	/* The working registers are a0 and a3.  We are restoring to	 * a4..a7.  Be careful not to destroy what we have just restored.	 * Note: wmask has the format YYYYM:	 *       Y: number of registers saved in groups of 4	 *       M: 4 bit mask of first 16 registers	 */	mov	a2, a6	mov	a3, a52:	rotw	-1			# a0..a3 become a4..a7	addi	a3, a7, -4*4		# next iteration	addi	a2, a6, -16		# decrementing Y in WMASK	l32i	a4, a3, PT_AREG_END + 0	l32i	a5, a3, PT_AREG_END + 4	l32i	a6, a3, PT_AREG_END + 8	l32i	a7, a3, PT_AREG_END + 12	_bgeui	a2, 16, 2b	/* Clear unrestored registers (don't leak anything to user-land */1:	rsr	a0, WINDOWBASE	rsr	a3, SAR	sub	a3, a0, a3	beqz	a3, 2f	extui	a3, a3, 0, WBBITS1:	rotw	-1	addi	a3, a7, -1	movi	a4, 0	movi	a5, 0	movi	a6, 0	movi	a7, 0	bgei	a3, 1, 1b	/* We are back were we were when we started.	 * Note: a2 still contains WMASK (if we've returned to the original	 *	 frame where we had loaded a2), or at least the lower 4 bits	 *	 (if we have restored WSBITS-1 frames).	 */2:	j	common_exception_exit	/* This is the kernel exception exit.	 * We avoided to do a MOVSP when we entered the exception, but we	 * have to do it here.	 */kernel_exception_exit:	/* Disable interrupts (a3 holds PT_PS) */	wsr	a3, PS#ifdef PREEMPTIBLE_KERNEL#ifdef CONFIG_PREEMPT	/*	 * Note: We've just returned from a call4, so we have	 * at least 4 addt'l regs.	 */	/* Check current_thread_info->preempt_count */	GET_THREAD_INFO(a2)	l32i	a3, a2, TI_PREEMPT	bnez	a3, 1f	l32i	a2, a2, TI_FLAGS1:#endif#endif	/* Check if we have to do a movsp.	 *	 * We only have to do a movsp if the previous window-frame has	 * been spilled to the *temporary* exception stack instead of the	 * task's stack. This is the case if the corresponding bit in	 * WINDOWSTART for the previous window-frame was set before	 * (not spilled) but is zero now (spilled).	 * If this bit is zero, all other bits except the one for the	 * current window frame are also zero. So, we can use a simple test:	 * 'and' WINDOWSTART and WINDOWSTART-1:	 *	 *  (XXXXXX1[0]* - 1) AND XXXXXX1[0]* = XXXXXX0[0]*	 *	 * The result is zero only if one bit was set.	 *	 * (Note: We might have gone through several task switches before	 *        we come back to the current task, so WINDOWBASE might be	 *        different from the time the exception occurred.)	 */	/* Test WINDOWSTART before and after the exception.	 * We actually have WMASK, so we only have to test if it is 1 or not.	 */	l32i	a2, a1, PT_WMASK	_beqi	a2, 1, common_exception_exit	# Spilled before exception,jump	/* Test WINDOWSTART now. If spilled, do the movsp */	rsr     a3, WINDOWSTART	addi	a0, a3, -1	and     a3, a3, a0	_bnez	a3, common_exception_exit	/* Do a movsp (we returned from a call4, so we have at least a0..a7) */	addi    a0, a1, -16	l32i    a3, a0, 0	l32i    a4, a0, 4	s32i    a3, a1, PT_SIZE+0	s32i    a4, a1, PT_SIZE+4	l32i    a3, a0, 8	l32i    a4, a0, 12	s32i    a3, a1, PT_SIZE+8	s32i    a4, a1, PT_SIZE+12	/* Common exception exit.	 * We restore the special register and the current window frame, and	 * return from the exception.	 *	 * Note: We expect a2 to hold PT_WMASK	 */common_exception_exit:	_bbsi.l	a2, 1, 1f	l32i	a4,  a1, PT_AREG4	l32i	a5,  a1, PT_AREG5	l32i	a6,  a1, PT_AREG6	l32i	a7,  a1, PT_AREG7	_bbsi.l	a2, 2, 1f	l32i	a8,  a1, PT_AREG8	l32i	a9,  a1, PT_AREG9	l32i	a10, a1, PT_AREG10	l32i	a11, a1, PT_AREG11	_bbsi.l	a2, 3, 1f	l32i	a12, a1, PT_AREG12	l32i	a13, a1, PT_AREG13	l32i	a14, a1, PT_AREG14	l32i	a15, a1, PT_AREG15	/* Restore PC, SAR */1:	l32i	a2, a1, PT_PC	l32i	a3, a1, PT_SAR	wsr	a2, EPC_1	wsr	a3, SAR	/* Restore LBEG, LEND, LCOUNT */	l32i	a2, a1, PT_LBEG	l32i	a3, a1, PT_LEND	wsr	a2, LBEG	l32i	a2, a1, PT_LCOUNT	wsr	a3, LEND	wsr	a2, LCOUNT	/* Check if it was double exception. */	l32i	a0, a1, PT_DEPC	l32i	a3, a1, PT_AREG3	l32i	a2, a1, PT_AREG2	_bgeui	a0, VALID_DOUBLE_EXCEPTION_ADDRESS, 1f	/* Restore a0...a3 and return */	l32i	a0, a1, PT_AREG0	l32i	a1, a1, PT_AREG1	rfe1:	wsr	a0, DEPC	l32i	a0, a1, PT_AREG0	l32i	a1, a1, PT_AREG1	rfde/* * Debug exception handler. * * Currently, we don't support KGDB, so only user application can be debugged. * * When we get here,  a0 is trashed and saved to excsave[debuglevel] */ENTRY(debug_exception)	rsr	a0, EPS + XCHAL_DEBUGLEVEL	bbsi.l	a0, PS_EXCM_SHIFT, 1f	# exception mode	/* Set EPC_1 and EXCCAUSE */	wsr	a2, DEPC		# save a2 temporarily	rsr	a2, EPC + XCHAL_DEBUGLEVEL	wsr	a2, EPC_1	movi	a2, EXCCAUSE_MAPPED_DEBUG	wsr	a2, EXCCAUSE	/* Restore PS to the value before the debug exc but with PS.EXCM set.*/	movi	a2, 1 << PS_EXCM_SHIFT	or	a2, a0, a2	movi	a0, debug_exception	# restore a3, debug jump vector	wsr	a2, PS	xsr	a0, EXCSAVE + XCHAL_DEBUGLEVEL	/* Switch to kernel/user stack, restore jump vector, and save a0 */	bbsi.l	a2, PS_UM_SHIFT, 2f	# jump if user mode	addi	a2, a1, -16-PT_SIZE	# assume kernel stack	s32i	a0, a2, PT_AREG0	movi	a0, 0	s32i	a1, a2, PT_AREG1	s32i	a0, a2, PT_DEPC		# mark it as a regular exception	xsr	a0, DEPC	s32i	a3, a2, PT_AREG3	s32i	a0, a2, PT_AREG2	mov	a1, a2	j	_kernel_exception2:	rsr	a2, EXCSAVE_1	l32i	a2, a2, EXC_TABLE_KSTK	# load kernel stack pointer	s32i	a0, a2, PT_AREG0	movi	a0, 0	s32i	a1, a2, PT_AREG1	s32i	a0, a2, PT_DEPC	xsr	a0, DEPC	s32i	a3, a2, PT_AREG3	s32i	a0, a2, PT_AREG2	mov	a1, a2	j	_user_exception	/* Debug exception while in exception mode. */1:	j	1b	// FIXME!!/* * We get here in case of an unrecoverable exception. * The only thing we can do is to be nice and print a panic message. * We only produce a single stack frame for panic, so ??? * * * Entry conditions: * *   - a0 contains the caller address; original value saved in excsave1. *   - the original a0 contains a valid return address (backtrace) or 0. *   - a2 contains a valid stackpointer * * Notes: * *   - If the stack pointer could be invalid, the caller has to setup a *     dummy stack pointer (e.g. the stack of the init_task) * *   - If the return address could be invalid, the caller has to set it *     to 0, so the backtrace would stop. * */	.align 4unrecoverable_text:	.ascii "Unrecoverable error in exception handler\0"ENTRY(unrecoverable_exception)	movi	a0, 1	movi	a1, 0	wsr	a0, WINDOWSTART	wsr	a1, WINDOWBASE	rsync	movi	a1, PS_WOE_MASK | 1	wsr	a1, PS	rsync	movi	a1, init_task	movi	a0, 0	addi	a1, a1, PT_REGS_OFFSET	movi	a4, panic	movi	a6, unrecoverable_text	callx4	a41:	j	1b/* -------------------------- FAST EXCEPTION HANDLERS ----------------------- *//* * Fast-handler for alloca exceptions * *  The ALLOCA handler is entered when user code executes the MOVSP *  instruction and the caller's frame is not in the register file. *  In this case, the caller frame's a0..a3 are on the stack just *  below sp (a1), and this handler moves them. * *  For "MOVSP <ar>,<as>" without destination register a1, this routine *  simply moves the value from <as> to <ar> without moving the save area. * * Entry condition: * *   a0:	trashed, original value saved on stack (PT_AREG0) *   a1:	a1 *   a2:	new stack pointer, original in DEPC *   a3:	dispatch table *   depc:	a2, original value saved on stack (PT_DEPC) *   excsave_1:	a3 * *   PT_DEPC >= VALID_DOUBLE_EXCEPTION_ADDRESS: double exception, DEPC *	     <  VALID_DOUBLE_EXCEPTION_ADDRESS: regular exception */#if XCHAL_HAVE_BE#define _EXTUI_MOVSP_SRC(ar)	extui ar, ar, 4, 4#define _EXTUI_MOVSP_DST(ar)	extui ar, ar, 0, 4#else#define _EXTUI_MOVSP_SRC(ar)	extui ar, ar, 0, 4#define _EXTUI_MOVSP_DST(ar)	extui ar, ar, 4, 4#endifENTRY(fast_alloca)	/* We shouldn't be in a double exception. */	l32i	a0, a2, PT_DEPC	_bgeui	a0, VALID_DOUBLE_EXCEPTION_ADDRESS, .Lunhandled_double	rsr	a0, DEPC		# get a2	s32i	a4, a2, PT_AREG4	# save a4 and	s32i	a0, a2, PT_AREG2	# a2 to stack	/* Exit critical section. */	movi	a0, 0	s32i	a0, a3, EXC_TABLE_FIXUP	/* Restore a3, excsave_1 */	xsr	a3, EXCSAVE_1		# make sure excsave_1 is valid for dbl.	rsr	a4, EPC_1		# get exception address	s32i	a3, a2, PT_AREG3	# save a3 to stack#ifdef ALLOCA_EXCEPTION_IN_IRAM#error	iram not supported#else	/* Note: l8ui not allowed in IRAM/IROM!! */	l8ui	a0, a4, 1		# read as(src) from MOVSP instruction#endif	movi	a3, .Lmovsp_src	_EXTUI_MOVSP_SRC(a0)		# extract source register number	addx8	a3, a0, a3	jx	a3.Lunhandled_double:	wsr	a0, EXCSAVE_1	movi	a0, unrecoverable_exception	callx0	a0	.align 8.Lmovsp_src:	l32i	a3, a2, PT_AREG0;	_j 1f;	.align 8	mov	a3, a1;			_j 1f;	.align 8	l32i	a3, a2, PT_AREG2;	_j 1f;	.align 8	l32i	a3, a2, PT_AREG3;	_j 1f;	.align 8	l32i	a3, a2, PT_AREG4;	_j 1f;	.align 8	mov	a3, a5;			_j 1f;	.align 8	mov	a3, a6;			_j 1f;	.align 8	mov	a3, a7;			_j 1f;	.align 8	mov	a3, a8;			_j 1f;	.align 8	mov	a3, a9;			_j 1f;	.align 8	mov	a3, a10;		_j 1f;	.align 8	mov	a3, a11;		_j 1f;	.align 8	mov	a3, a12;		_j 1f;	.align 8	mov	a3, a13;		_j 1f;	.align 8	mov	a3, a14;		_j 1f;	.align 8	mov	a3, a15;		_j 1f;	.align 81:#ifdef ALLOCA_EXCEPTION_IN_IRAM#error	iram not supported#else	l8ui	a0, a4, 0		# read ar(dst) from MOVSP instruction#endif	addi	a4, a4, 3		# step over movsp	_EXTUI_MOVSP_DST(a0)		# extract destination register	wsr	a4, EPC_1		# save new epc_1	_bnei	a0, 1, 1f		# no 'movsp a1, ax': jump        /* Move the save area. This implies the use of the L32E	 * and S32E instructions, because this move must be done with	 * the user's PS.RING privilege levels, not with ring 0	 * (kernel's) privileges currently active with PS.EXCM	 * set. Note that we have stil registered a fixup routine with the	 * double exception vector in case a double exception occurs.	 */	/* a0,a4:avail a1:old user stack a2:exc. stack a3:new user stack. */	l32e	a0, a1, -16	l32e	a4, a1, -12	s32e	a0, a3, -16	s32e	a4, a3, -12	l32e	a0, a1, -8	l32e	a4, a1, -4	s32e	a0, a3, -8	s32e	a4, a3, -4	/* Restore stack-pointer and all the other saved registers. */	mov	a1, a3	l32i	a4, a2, PT_AREG4	l32i	a3, a2, PT_AREG3	l32i	a0, a2, PT_AREG0	l32i	a2, a2, PT_AREG2	rfe	/*  MOVSP <at>,<as>  was invoked with <at> != a1.	 *  Because the stack pointer is not being modified,	 *  we should be able to just modify the pointer	 *  without moving any save area.	 *  The processor only traps these occurrences if the	 *  caller window isn't live, so unfortunately we can't	 *  use this as an alternate trap mechanism.	 *  So we just do the move.  This requires that we	 *  resolve the destination register, not just the source,	 *  so there's some extra work.	 *  (PERHAPS NOT REALLY NEEDED, BUT CLEANER...)	 */	/* a0 dst-reg, a1 user-stack, a2 stack, a3 value of src reg. */1:	movi	a4, .Lmovsp_dst	addx8	a4, a0, a4	jx	a4	.align 8.Lmovsp_dst:	s32i	a3, a2, PT_AREG0;	_j 1f;	.align 8	mov	a1, a3;			_j 1f;	.align 8	s32i	a3, a2, PT_AREG2;	_j 1f;	.align 8	s32i	a3, a2, PT_AREG3;	_j 1f;	.align 8	s32i	a3, a2, PT_AREG4;	_j 1f;	.align 8	mov	a5, a3;			_j 1f;	.align 8	mov	a6, a3;			_j 1f;	.align 8	mov	a7, a3;			_j 1f;	.align 8	mov	a8, a3;			_j 1f;	.align 8	mov	a9, a3;			_j 1f;	.align 8	mov	a10, a3;		_j 1f;	.align 8	mov	a11, a3;		_j 1f;	.align 8	mov	a12, a3;		_j 1f;	.align 8	mov	a13, a3;		_j 1f;	.align 8	mov	a14, a3;		_j 1f;	.align 8	mov	a15, a3;		_j 1f;	.align 81:	l32i	a4, a2, PT_AREG4	l32i	a3, a2, PT_AREG3	l32i	a0, a2, PT_AREG0	l32i	a2, a2, PT_AREG2	rfe/* * fast system calls. * * WARNING:  The kernel doesn't save the entire user context before * handling a fast system call.  These functions are small and short, * usually offering some functionality not available to user tasks. * * BE CAREFUL TO PRESERVE THE USER'S CONTEXT. * * Entry condition: * *   a0:	trashed, original value saved on stack (PT_AREG0) *   a1:	a1 *   a2:	new stack pointer, original in DEPC *   a3:	dispatch table *   depc:	a2, original value saved on stack (PT_DEPC) *   excsave_1:	a3 */ENTRY(fast_syscall_kernel)	/* Skip syscall. */	rsr	a0, EPC_1	addi	a0, a0, 3	wsr	a0, EPC_1

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美性生活久久| 中文字幕亚洲一区二区va在线| 一本大道久久a久久精二百| 成人免费视频app| 国产69精品一区二区亚洲孕妇| 极品美女销魂一区二区三区免费| 另类小说综合欧美亚洲| 日本vs亚洲vs韩国一区三区 | 1区2区3区精品视频| 中文字幕欧美日韩一区| 国产精品色哟哟| 亚洲天堂成人在线观看| 亚洲免费av高清| 一区二区三区中文字幕电影 | 久久精品国产精品亚洲红杏| 蜜臀av性久久久久av蜜臀妖精| 美女一区二区三区在线观看| 激情小说欧美图片| 国产精品亚洲一区二区三区妖精 | 国产一区二区三区不卡在线观看 | 国产xxx精品视频大全| 国产成人啪免费观看软件| 成人精品国产福利| 色噜噜狠狠色综合欧洲selulu| 欧美中文字幕不卡| 日韩欧美美女一区二区三区| 久久久久一区二区三区四区| 欧美国产日产图区| 一区二区三区欧美日| 日韩精品成人一区二区在线| 国内精品久久久久影院色| 成人精品gif动图一区| 欧美在线一区二区| 精品国产青草久久久久福利| 亚洲国产精品ⅴa在线观看| 国产精品网站在线播放| 一区二区三区在线视频免费| 青青草成人在线观看| 国产一区福利在线| 91色婷婷久久久久合中文| 欧美日韩中文字幕一区二区| 精品成人免费观看| 亚洲品质自拍视频网站| 日韩1区2区3区| 国产a视频精品免费观看| 91福利国产精品| 欧美成va人片在线观看| 亚洲色欲色欲www在线观看| 亚洲国产精品麻豆| 国产成人免费视频精品含羞草妖精| 色偷偷成人一区二区三区91| 日韩欧美国产1| 亚洲女厕所小便bbb| 久久99国产精品久久99| 91蝌蚪porny成人天涯| 欧美tickling挠脚心丨vk| 亚洲另类在线一区| 国产一区二区视频在线播放| 色综合色综合色综合色综合色综合 | 色屁屁一区二区| 久久青草欧美一区二区三区| 亚洲一区二区精品视频| 国产成人精品影院| 这里只有精品免费| 亚洲人吸女人奶水| 国产激情一区二区三区| 欧美一级久久久| 亚洲国产一区二区a毛片| 国产·精品毛片| 欧美va亚洲va香蕉在线| 亚洲福利视频一区二区| 成人av在线资源网| 奇米影视一区二区三区| 一本到不卡精品视频在线观看| 久久精品人人做人人爽人人| 日日摸夜夜添夜夜添精品视频| 97se亚洲国产综合自在线不卡 | 日产精品久久久久久久性色| 91在线观看美女| 国产欧美视频一区二区| 老司机午夜精品99久久| 欧美日韩一区二区三区视频| 日韩美女视频一区| 盗摄精品av一区二区三区| 欧美videossexotv100| 亚洲成av人片在www色猫咪| 91影视在线播放| 国产精品欧美一级免费| 国产精品一区二区黑丝| 欧美岛国在线观看| 麻豆精品在线播放| 91精品国产综合久久精品性色| 亚洲亚洲精品在线观看| 色屁屁一区二区| 亚洲免费av高清| 91老师片黄在线观看| 亚洲丝袜精品丝袜在线| 91天堂素人约啪| 日韩毛片视频在线看| 波多野结衣一区二区三区 | 一区二区三区日韩精品| 色视频欧美一区二区三区| 亚洲欧美视频一区| 91在线porny国产在线看| 亚洲欧美日本在线| 色噜噜狠狠色综合欧洲selulu| 亚洲欧美色综合| 日本高清免费不卡视频| 亚洲一区视频在线| 欧美日韩第一区日日骚| 免费在线视频一区| 精品国产一区二区三区四区四| 久久99热99| 国产网红主播福利一区二区| 成人激情图片网| 亚洲欧美日本韩国| 欧美色图免费看| 蜜臀a∨国产成人精品| 久久网站热最新地址| 不卡的av网站| 亚洲国产成人porn| 欧美一区二区三区四区五区| 国产真实精品久久二三区| 国产精品嫩草影院com| 91在线视频网址| 亚洲成av人片www| 欧美变态tickle挠乳网站| 国产成人综合视频| 综合婷婷亚洲小说| 欧美精品在线视频| 国产综合久久久久久鬼色| 国产亚洲一区字幕| 91网站视频在线观看| 日韩成人一区二区三区在线观看| 欧美电影免费观看完整版| 国产99久久久国产精品免费看| 亚洲欧洲制服丝袜| 日韩一级黄色大片| av在线播放成人| 偷拍一区二区三区四区| 精品人伦一区二区色婷婷| 成人av资源在线| 亚洲大片精品永久免费| 久久久久久久av麻豆果冻| 一本在线高清不卡dvd| 美女视频网站久久| 亚洲图片你懂的| 日韩午夜三级在线| 不卡免费追剧大全电视剧网站| 亚洲成人7777| 国产日韩欧美a| 欧美三片在线视频观看| 国产成人精品影视| 视频一区二区国产| 国产精品久久久久久户外露出 | 日韩欧美综合在线| 风间由美一区二区三区在线观看 | av电影在线观看完整版一区二区| 日日夜夜精品视频天天综合网| 久久精品男人天堂av| 欧美性一级生活| 国产精品亚洲成人| 日韩电影在线一区二区三区| 国产精品护士白丝一区av| 日韩欧美一卡二卡| 欧美性一区二区| 不卡高清视频专区| 国内国产精品久久| 婷婷丁香激情综合| 亚洲精品久久久蜜桃| 国产午夜一区二区三区| 欧美一卡2卡3卡4卡| 91首页免费视频| 成人免费看片app下载| 麻豆极品一区二区三区| 亚洲一区中文在线| 亚洲色图在线播放| 久久久精品人体av艺术| 欧美一区二区在线看| 欧洲视频一区二区| av在线一区二区| 国产成人午夜99999| 美女一区二区视频| 日韩成人午夜电影| 五月天精品一区二区三区| 亚洲乱码日产精品bd| 中文字幕人成不卡一区| 国产日产欧美一区二区视频| 日韩精品在线一区| 6080日韩午夜伦伦午夜伦| 欧美性淫爽ww久久久久无| 91免费视频观看| eeuss鲁片一区二区三区在线观看| 久久av老司机精品网站导航| 日本成人中文字幕| 视频一区免费在线观看| 亚欧色一区w666天堂| 亚洲18影院在线观看| 天天射综合影视| 日韩激情一二三区|