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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? swap.s.68k

?? cfront是最開始c++語言到C語言的轉換工具
?? 68K
字號:
|	.file "swap.s.68k"|	ident	"@(#)cls4:lib/task/task/swap.s.68k	1.1"|##############################################################################|  | C++ source for the C++ Language System, Release 3.0.  This product| is a new release of the original cfront developed in the computer| science research center of AT&T Bell Laboratories.| | Copyright (c) 1991 AT&T and UNIX System Laboratories, Inc.| Copyright (c) 1984, 1989, 1990 AT&T.  All Rights Reserved.| || THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE of AT&T and UNIX System|	| Laboratories, Inc.  The copyright notice above does not evidence| any actual or intended publication of such source code.| ||##############################################################################| |	swap of DEDICATED| call swap(*running_task, *to_run_task, is_new_child, running_is_terminated)| This routine saves the fp in running's t_framep.| If running is a SHARED task, we must save its stack size as well,| although the stack does not need to be copied out here.| It then restores to_run's t_framep to be the current fp.| If to_run is a new child, it explicitly restores the registers from| New_task_regs, and returns without movem to restore the regs saved in| the stack.| If to_run is not a new child, it restores all the registers saved in| the frame on returning.| If running_task is TERMINATED, then we don't need to do a save.| NOTE:  assumes all functions return values in d0.| The following constants are displacements of elements in class task:| t_framep, th, t_basep, t_size, t_savearea, and t_mode.TFRAME = 20TH = 24TBASEP = 32TSIZE = 36TSAVE = 40TMODE = 52| The following constants are displacements from the fp to function args.ARG1 = 8ARG2 = 12ARG3 = 16ARG4 = 20ARG5 = 24	.text	.globl	_swap_swap:	link	a6,#-40	moveml	#0x3cfc,sp@		| save all user regs (d2-d7, a2-a5)	movl	a6@(ARG2),a1		| a1 = to_run	movl	a6@(ARG4),d0		| d0 = running_is_terminated	bnes	L_RESTORE		| if running is TERMINATED					|	skip the save	movl	a6@(ARG1),a0		| a0 = running	| save state of running task	movl	a6,a0@(TFRAME)		| running->t_framep = fp (a6)	movl	a0@(TMODE),d0		| d0 = running->t_mode	cmpl	#2,d0			| if running->t_mode == SHARED	bnes	L_RESTORE	| the code here to save the t_size is the same as for sswap	movl	a0@(TBASEP),d0		| d0 = running->t_basep	subl	sp,d0			| d0 = running->t_basep - sp	addql	#4,d0			| (size in bytes)	asrl	#2,d0			| d0 /= 4 (size in ints)	movl	d0,a0@(TSIZE)		| running->t_size = d0L_RESTORE:	movl	a6@(ARG3),d1		| d1 = is_new_child	| restore state of to_run task	movl	a1@(TFRAME),a6		| a6 (fp) = to_run->t_framep	| if is_new_child, restore registers	tstl	d1	beqs	L_RET	| new child task effectively returns from task::task, so we need	| to set the return value to "this"	movl	a1@(TH),d0		| d0 = to_run->th	lea	_New_task_regs,a1	| a1 = address of New_task_regs	movl	a1@,d2	movl	a1@(4),d3	movl	a1@(8),d4	movl	a1@(12),d5	movl	a1@(16),d6	movl	a1@(20),d7	movl	a1@(32),a2	movl	a1@(36),a3	movl	a1@(40),a4	movl	a1@(44),a5	unlk	a6			| NOTE:  movem not needed here.	rtsL_RET:	moveml	a6@(-40),#0x3cfc	| restore all user regs (d2-d7, a2-a5)	unlk	a6	rts|	swap of SHARED| sswap(*running, *prevOnStack, *to_run, is_new_child, running_is_terminated)| This routine saves the fp in running's t_framep and the stack size in t_size.| Then it copies out the target stack to prevOnStack's t_savearea.| If to_run is not a new child, it then copies the saved stack of to_run | (from t_savearea) to the target stack, and then restores to_run's t_framep | to be the current fp.  We don't need to restore state of a child | to_run object, because it's already in place.| If running_task is TERMINATED, then we don't need to do a save,| and if running_task is TERMINATED and equals prevOnStack, then we don't| have to do the stack copy.| NOTE:  assumes all functions return values in d0.	.text	.globl	_sswap_sswap:	link	a6,#-40	moveml	#0x3cfc,sp@		| save all user regs (d2-d7, a2-a5)	movl	a6@(ARG1),a1		| a1 = running	movl	a6@(ARG2),a2		| a2 = prevOnStack	movl	a6@(ARG5),d0		| d0 = running_is_terminated	bnes	L_SKIP			| if running is TERMINATED					|	skip the save	|save hw state of running	movl	a6,a1@(TFRAME)		| running->t_framep = fp (a6)	movl	a1@(TBASEP),d0		| d0 = running->t_basep	subl	sp,d0			| d0 = running->t_basep - sp	addql	#4,d0			| (size in bytes)	asrl	#2,d0			| d0 /= 4 (size in ints)	movl	d0,a1@(TSIZE)		| running->t_size = d0	bra	L_SAVEL_SKIP:	cmpl	a1,a2			| if running == prevOnStack	beq	L_REST			|	skip prevOnStack saveL_SAVE:	|copy out target stack to prevOnStack->t_savearea	movl	a2@(TSIZE),d2		| d2 = prevOnStack->t_size (count)	movl	d2,sp@-			| push count arg on stack	jsr	_swap_call_new		| get count bytes of storage	addql	#4,sp			| pop arg off stack	asll	#2,d2			| scale d2 to bytes	addl	d2,d0			| d0 = base of new stack, plus 1 long	subql	#4,d0			| d0 = base of new stack	movl	d0,a0			| a0 = base of new stack (to)	movl	a0,a2@(TSAVE)		| prevOnStack->t_savearea = a0 (to)	movl	a2@(TBASEP),a1		| a1 = prevOnStack->t_basep (from)	addql	#4,a0			| prepare for predecrement	addql	#4,a1			| ditto	movl	a2@(TSIZE),d0		| d0 = prevOnStack->t_size (count)	tstl	d0	beqs	L2			| if size == 0, goto L2	subql	#1,d0			| for dbraL1:	| copy out loop	movl	a1@-,a0@-		| *--to = *--from	dbra	d0,L1			| if --d0 != 0, goto L1L2:L_REST:	movl	a6@(ARG4),d0		| d0 = is_new_child	bnes	L6			| if is_new_child != 0					|	skip the copy-in loop	|copy into target stack from to_run->t_savearea	movl	a6@(ARG3),a2		| a2 = to_run	movl	a2@(TBASEP),a0		| a0 = to_run->t_basep (to)	movl	a2@(TSIZE),d0		| d0 = to_run->t_size (count)	| Kick up the sp if new stack will be taller than current.	asll	#2,d0			| d0 = new stack height in bytes	subl	d0,a0			| a0 = target sp	subl	sp,a0			| a0 = a0 - sp	tstl	a0	bges	L3			| if a0 < 0	addl	a0,sp			|	kick up spL3:	movl	a2@(TBASEP),a0		| a0 = to_run->t_basep (to)	movl	a2@(TSAVE),a1		| a1 = to_run->t_savearea (from)	addql	#4,a1			| prepare for predecrement	addql	#4,a0			| ditto	movl	a2@(TSIZE),d0		| d0 = to_run->t_size (count)	tstl	d0	beqs	L5			| if size == 0, goto L5	subql	#1,d0			| for dbraL4:	| copy in loop	movl	a1@-,a0@-		| *--to = *--from	dbra	d0,L4			| if --d0 != 0, goto L4L5:	| restore state of to_run	movl	a2@(TFRAME),a6		| fp (a6) = to_run->t_framep	| finally, delete to_run's t_savearea	movl	a2@(TSIZE),d1		| d1 = to_run->t_size	asll	#2,d1			| scale size to bytes	movl	a2@(TSAVE),a0		| a0 = to_run->t_savearea	subl	d1,a0			| get low address of savearea	addql	#4,a0	movl	a0,sp@-			| push pointer to savearea on stack	jsr	_swap_call_delete	| delete to_run->t_savearea	addql	#4,sp			| pop arg off stack	movl	#0,a2@(TSAVE)		| to_run->t_savearea = 0L6:	moveml	a6@(-40),#0x3cfc	| restore all user regs (d2-d7, a2-a5)	unlk	a6	rts

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产尤物一区二区在线| 亚洲伦理在线免费看| 欧美日韩卡一卡二| 欧美色综合天天久久综合精品| 99视频精品全部免费在线| 国产成人精品网址| 成人ar影院免费观看视频| 不卡的看片网站| 色先锋久久av资源部| 欧美性猛交一区二区三区精品| 欧美日韩国产小视频| 日韩欧美中文字幕一区| 26uuu精品一区二区三区四区在线| 久久影院视频免费| 亚洲欧洲一区二区在线播放| 亚洲激情综合网| 午夜精品123| 国产精品一区二区无线| 大白屁股一区二区视频| 日本丰满少妇一区二区三区| 欧美日韩精品一区二区在线播放| 精品少妇一区二区三区| 国产日韩欧美麻豆| 亚洲综合一二三区| 裸体歌舞表演一区二区| 成人app软件下载大全免费| 欧美日韩国产片| 国产女人18水真多18精品一级做| 中文字幕一区在线观看视频| 日本va欧美va欧美va精品| 成人黄色网址在线观看| 欧美日韩电影在线播放| 久久久噜噜噜久久中文字幕色伊伊 | 久久精品免费在线观看| 国产亚洲一区二区在线观看| 欧美国产精品一区| 天堂成人国产精品一区| 国产成人丝袜美腿| 欧美嫩在线观看| 中文字幕精品一区二区三区精品| 午夜日韩在线电影| 丁香亚洲综合激情啪啪综合| 欧美精品久久久久久久多人混战| 久久久国产一区二区三区四区小说| 亚洲精品第1页| 国产成人免费视频网站| 日韩丝袜美女视频| 亚洲精品亚洲人成人网| 国产成人啪午夜精品网站男同| 在线观看91av| 亚洲成av人影院在线观看网| 成人免费的视频| 久久综合九色综合欧美亚洲| 午夜私人影院久久久久| 91免费小视频| 中文字幕不卡在线| 国产福利视频一区二区三区| 日韩免费福利电影在线观看| 亚洲成精国产精品女| 在线观看日韩毛片| 亚洲欧洲日韩av| 国产精品伊人色| 精品国产sm最大网站免费看| 日本视频一区二区| 日韩一区二区三区电影在线观看 | 欧美一级高清片在线观看| 伊人夜夜躁av伊人久久| 91视频com| 亚洲三级理论片| 91婷婷韩国欧美一区二区| 国产精品理伦片| 成人av一区二区三区| 国产精品乱码妇女bbbb| av动漫一区二区| 中文字幕一区二区三中文字幕| 成人午夜视频免费看| 欧美另类一区二区三区| 日韩中文字幕不卡| 日韩三级精品电影久久久| 久久99精品一区二区三区| 久久欧美一区二区| 波多野结衣欧美| 亚洲狼人国产精品| 91精品国产一区二区三区蜜臀| 日本伊人精品一区二区三区观看方式| 欧美日韩亚洲丝袜制服| 日韩高清在线电影| 欧美精品一区二区不卡| 成人自拍视频在线| 亚洲精品精品亚洲| 91精品国产aⅴ一区二区| 黄一区二区三区| 国产精品网站在线播放| 色香蕉久久蜜桃| 日本va欧美va瓶| 国产精品久久久久久久浪潮网站 | 亚洲综合久久av| 5858s免费视频成人| 韩国一区二区三区| 亚洲欧美一区二区在线观看| 欧美日高清视频| 久久99久久久欧美国产| 国产精品色在线观看| 精品视频在线免费| 激情成人综合网| 亚洲精品成人精品456| 精品国产凹凸成av人网站| 99久久国产综合精品女不卡| 日本伊人色综合网| 国产精品国模大尺度视频| 欧美高清www午色夜在线视频| 国产精品一卡二| 亚洲成人黄色影院| 国产农村妇女精品| 3d成人动漫网站| 成人av网在线| 国产精品99精品久久免费| 亚洲午夜久久久久中文字幕久| 国产亚洲欧洲一区高清在线观看| 在线观看视频欧美| 国产成人亚洲精品青草天美| 亚洲一级二级三级| 亚洲色图.com| 亚洲国产高清在线观看视频| 日韩午夜在线观看| 在线观看91视频| 99re热这里只有精品免费视频| 久久国产三级精品| 亚洲成a天堂v人片| 亚洲综合丁香婷婷六月香| 欧美国产激情二区三区| 日韩亚洲欧美中文三级| 色综合欧美在线| 国产成人午夜片在线观看高清观看| 日本亚洲天堂网| 亚洲第一二三四区| 伊人婷婷欧美激情| 亚洲蜜臀av乱码久久精品蜜桃| 欧美精品一区二区三区在线播放| 欧美精品日日鲁夜夜添| 欧美三级中文字幕在线观看| jlzzjlzz亚洲日本少妇| 国产成人午夜视频| 国产成人精品免费一区二区| 激情五月激情综合网| 久久精品国产99久久6| 琪琪久久久久日韩精品| 亚洲丶国产丶欧美一区二区三区| 亚洲精品五月天| 亚洲精品综合在线| 亚洲欧洲制服丝袜| 亚洲欧美中日韩| 亚洲激情自拍视频| 亚洲国产一区二区视频| 亚洲精品国产精品乱码不99 | 久久不见久久见中文字幕免费| 日日夜夜精品视频天天综合网| 亚洲高清免费在线| 午夜久久久影院| 麻豆精品蜜桃视频网站| 国产一区二区三区免费观看| 国产麻豆精品久久一二三| 国产酒店精品激情| 白白色 亚洲乱淫| 91久久精品日日躁夜夜躁欧美| 欧美亚洲尤物久久| 欧美一区二区三区在线看| 日韩视频在线你懂得| 精品国产免费一区二区三区香蕉| 久久蜜桃av一区精品变态类天堂| 欧美经典一区二区三区| 亚洲手机成人高清视频| 亚洲大片精品永久免费| 韩国女主播成人在线| 91视频在线看| 精品三级在线看| 成人欧美一区二区三区视频网页| 亚洲一区中文在线| 久久er99热精品一区二区| 成人免费的视频| 欧美日韩国产一区| 久久精品这里都是精品| 亚洲人成人一区二区在线观看 | 久久精品一区四区| 亚洲综合男人的天堂| 国产一区二区在线影院| 91成人网在线| 久久综合国产精品| 一区二区三区av电影| 黄色成人免费在线| 色94色欧美sute亚洲线路一ni| 欧美电影免费观看高清完整版在线| 欧美国产日本视频| 免费欧美在线视频| 91美女视频网站| 亚洲精品一线二线三线| 亚洲一区二区成人在线观看| 国产91精品露脸国语对白| 正在播放亚洲一区| 亚洲精品视频观看|