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

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

?? proc-arm2,3.s

?? 這是一個(gè)SIGMA方案的PMP播放器的UCLINUX程序,可播放DVD,VCD,CD MP3...有很好的參考價(jià)值.
?? S
字號(hào):
/* *  linux/arch/arm/mm/proc-arm2,3.S * *  Copyright (C) 1997-1999 Russell King * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation. * *  MMU functions for ARM2,3 * *  These are the low level assembler for performing cache *  and memory functions on ARM2, ARM250 and ARM3 processors. */#include <linux/linkage.h>#include <asm/assembler.h>#include <asm/constants.h>#include <asm/procinfo.h>/* * MEMC workhorse code.  It's both a horse which things it's a pig. *//* * Function: cpu_memc_update_entry(pgd_t *pgd, unsigned long phys_pte, unsigned long addr) * Params  : pgd	Page tables/MEMC mapping *         : phys_pte	physical address, or PTE *         : addr	virtual address */ENTRY(cpu_memc_update_entry)		tst	r1, #PAGE_PRESENT		@ is the page present		orreq	r1, r1, #PAGE_OLD | PAGE_CLEAN		moveq	r2, #0x01f00000		mov	r3, r1, lsr #13			@ convert to physical page nr		and	r3, r3, #0x3fc		adr	ip, memc_phys_table_32		ldr	r3, [ip, r3]		tst	r1, #PAGE_OLD | PAGE_NOT_USER		biceq	r3, r3, #0x200		tsteq	r1, #PAGE_READONLY | PAGE_CLEAN		biceq	r3, r3, #0x300		mov	r2, r2, lsr #15			@ virtual -> nr		orr	r3, r3, r2, lsl #15		and	r2, r2, #0x300		orr	r3, r3, r2, lsl #2		and	r2, r3, #255		sub	r0, r0, #256 * 4		str	r3, [r0, r2, lsl #2]		strb	r3, [r3]		movs	pc, lr/* * Params  : r0 = preserved *         : r1 = memc table base (preserved) *         : r2 = page table entry *         : r3 = preserved *         : r4 = unused *         : r5 = memc physical address translation table *         : ip = virtual address (preserved) */update_pte:		mov	r4, r2, lsr #13		and	r4, r4, #0x3fc		ldr	r4, [r5, r4]			@ covert to MEMC page		tst	r2, #PAGE_OLD | PAGE_NOT_USER	@ check for MEMC read		biceq	r4, r4, #0x200		tsteq	r2, #PAGE_READONLY | PAGE_CLEAN	@ check for MEMC write		biceq	r4, r4, #0x300		orr	r4, r4, ip		and	r2, ip, #0x01800000		orr	r4, r4, r2, lsr #13		and	r2, r4, #255		str	r4, [r1, r2, lsl #2]		movs	pc, lr/* * Params  : r0 = preserved *         : r1 = memc table base (preserved) *         : r2 = page table base *         : r3 = preserved *         : r4 = unused *         : r5 = memc physical address translation table *         : ip = virtual address (updated) */update_pte_table:		stmfd	sp!, {r0, lr}		bic	r0, r2, #31:		ldr	r2, [r0], #4			@ get entry		tst	r2, #PAGE_PRESENT		@ page present		blne	update_pte			@ process pte		add	ip, ip, #32768			@ increment virt addr		ldr	r2, [r0], #4			@ get entry		tst	r2, #PAGE_PRESENT		@ page present		blne	update_pte			@ process pte		add	ip, ip, #32768			@ increment virt addr		ldr	r2, [r0], #4			@ get entry		tst	r2, #PAGE_PRESENT		@ page present		blne	update_pte			@ process pte		add	ip, ip, #32768			@ increment virt addr		ldr	r2, [r0], #4			@ get entry		tst	r2, #PAGE_PRESENT		@ page present		blne	update_pte			@ process pte		add	ip, ip, #32768			@ increment virt addr		tst	ip, #32768 * 31			@ finished?		bne	1b		ldmfd	sp!, {r0, pc}^/* * Function: cpu_memc_update_all(pgd_t *pgd) * Params  : pgd	Page tables/MEMC mapping * Notes   : this is optimised for 32k pages */ENTRY(cpu_memc_update_all)		stmfd	sp!, {r4, r5, lr}		bl	clear_tables		sub	r1, r0, #256 * 4		@ start of MEMC tables		adr	r5, memc_phys_table_32		@ Convert to logical page number		mov	ip, #0				@ virtual address1:		ldmia	r0!, {r2, r3}		tst	r2, #PAGE_PRESENT		addeq	ip, ip, #1048576		blne	update_pte_table		mov	r2, r3		tst	r2, #PAGE_PRESENT		addeq	ip, ip, #1048576		blne	update_pte_table		teq	ip, #32 * 1048576		bne	1b		ldmfd	sp!, {r4, r5, pc}^/* * Build the table to map from physical page number to memc page number */		.type	memc_phys_table_32, #objectmemc_phys_table_32:		.irp	b7, 0x00, 0x80		.irp	b6, 0x00, 0x02		.irp	b5, 0x00, 0x04		.irp	b4, 0x00, 0x01		.irp	b3, 0x00, 0x40		.irp	b2, 0x00, 0x20		.irp	b1, 0x00, 0x10		.irp	b0, 0x00, 0x08		.long	0x03800300 + \b7 + \b6 + \b5 + \b4 + \b3 + \b2 + \b1 + \b0		.endr		.endr		.endr		.endr		.endr		.endr		.endr		.endr		.size	memc_phys_table_32, . - memc_phys_table_32/* * helper for cpu_memc_update_all, this clears out all * mappings, setting them close to the top of memory, * and inaccessible (0x01f00000). * Params  : r0 = page table pointer */clear_tables:	ldr	r1, _arm3_set_pgd - 4		ldr	r2, [r1]		sub	r1, r0, #256 * 4		@ start of MEMC tables		add	r2, r1, r2, lsl #2		@ end of tables		mov	r3, #0x03f00000			@ Default mapping (null mapping)		orr	r3, r3, #0x00000f00		orr	r4, r3, #1		orr	r5, r3, #2		orr	ip, r3, #31:		stmia	r1!, {r3, r4, r5, ip}		add	r3, r3, #4		add	r4, r4, #4		add	r5, r5, #4		add	ip, ip, #4		stmia	r1!, {r3, r4, r5, ip}		add	r3, r3, #4		add	r4, r4, #4		add	r5, r5, #4		add	ip, ip, #4		teq	r1, r2		bne	1b		mov	pc, lr/* * Function: *_set_pgd(pgd_t *pgd) * Params  : pgd	New page tables/MEMC mapping * Purpose : update MEMC hardware with new mapping */		.word	SYMBOL_NAME(page_nr)_arm3_set_pgd:	mcr	p15, 0, r1, c1, c0, 0		@ flush cache_arm2_set_pgd:	stmfd	sp!, {lr}		ldr	r1, _arm3_set_pgd - 4		ldr	r2, [r1]		sub	r0, r0, #256 * 4		@ start of MEMC tables		add	r1, r0, r2, lsl #2		@ end of tables1:		ldmia	r0!, {r2, r3, ip, lr}		strb	r2, [r2]		strb	r3, [r3]		strb	ip, [ip]		strb	lr, [lr]		ldmia	r0!, {r2, r3, ip, lr}		strb	r2, [r2]		strb	r3, [r3]		strb	ip, [ip]		strb	lr, [lr]		teq	r0, r1		bne	1b		ldmfd	sp!, {pc}^/* * Function: *_proc_init (void) * Purpose : Initialise the cache control registers */_arm3_proc_init:		mov	r0, #0x001f0000		orr	r0, r0, #0x0000ff00		orr	r0, r0, #0x000000ff		mcr	p15, 0, r0, c3, c0		@ ARM3 Cacheable		mcr     p15, 0, r0, c4, c0		@ ARM3 Updateable		mov	r0, #0		mcr     p15, 0, r0, c5, c0		@ ARM3 Disruptive		mcr     p15, 0, r0, c1, c0		@ ARM3 Flush		mov	r0, #3		mcr     p15, 0, r0, c2, c0		@ ARM3 Control_arm2_proc_init:		movs	pc, lr/* * Function: *_proc_fin (void) * Purpose : Finalise processor (disable caches) */_arm3_proc_fin:	mov	r0, #2		mcr	p15, 0, r0, c2, c0_arm2_proc_fin:	orrs	pc, lr, #I_BIT|F_BIT/* * Function: *_xchg_1 (int new, volatile void *ptr) * Params  : new	New value to store at... *	   : ptr	pointer to byte-wide location * Purpose : Performs an exchange operation * Returns : Original byte data at 'ptr' */_arm2_xchg_1:	mov	r2, pc		orr	r2, r2, #I_BIT		teqp	r2, #0		ldrb	r2, [r1]		strb	r0, [r1]		mov	r0, r2		movs	pc, lr_arm3_xchg_1:	swpb	r0, r0, [r1]		movs	pc, lr/* * Function: *_xchg_4 (int new, volatile void *ptr) * Params  : new	New value to store at... *	   : ptr	pointer to word-wide location * Purpose : Performs an exchange operation * Returns : Original word data at 'ptr' */_arm2_xchg_4:	mov	r2, pc		orr	r2, r2, #I_BIT		teqp	r2, #0		ldr	r2, [r1]		str	r0, [r1]		mov	r0, r2		movs	pc, lr_arm3_xchg_4:	swp	r0, r0, [r1]		movs	pc, lr_arm2_3_check_bugs:		bics	pc, lr, #0x04000000		@ Clear FIQ disable bitarmvlsi_name:	.asciz	"ARM/VLSI"_arm2_name:	.asciz	"ARM 2"_arm250_name:	.asciz	"ARM 250"_arm3_name:	.asciz	"ARM 3"		.section ".text.init", #alloc, #execinstr/* * Purpose : Function pointers used to access above functions - all calls *	     come through these */		.globl	SYMBOL_NAME(arm2_processor_functions)SYMBOL_NAME(arm2_processor_functions):		.word	_arm2_3_check_bugs		.word	_arm2_proc_init		.word	_arm2_proc_fin		.word	_arm2_set_pgd		.word	_arm2_xchg_1		.word	_arm2_xchg_4cpu_arm2_info:		.long	armvlsi_name		.long	_arm2_name		.globl	SYMBOL_NAME(arm250_processor_functions)SYMBOL_NAME(arm250_processor_functions):		.word	_arm2_3_check_bugs		.word	_arm2_proc_init		.word	_arm2_proc_fin		.word	_arm2_set_pgd		.word	_arm3_xchg_1		.word	_arm3_xchg_4cpu_arm250_info:		.long	armvlsi_name		.long	_arm250_name		.globl	SYMBOL_NAME(arm3_processor_functions)SYMBOL_NAME(arm3_processor_functions):		.word	_arm2_3_check_bugs		.word	_arm3_proc_init		.word	_arm3_proc_fin		.word	_arm3_set_pgd		.word	_arm3_xchg_1		.word	_arm3_xchg_4cpu_arm3_info:		.long	armvlsi_name		.long	_arm3_namearm2_arch_name:	.asciz	"armv1"arm3_arch_name:	.asciz	"armv2"arm2_elf_name:	.asciz	"v1"arm3_elf_name:	.asciz	"v2"		.align		.section ".proc.info", #alloc, #execinstr		.long	0x41560200		.long	0xfffffff0		.long	0		mov	pc, lr		.long	arm2_arch_name		.long	arm2_elf_name		.long	0		.long	cpu_arm2_info		.long	SYMBOL_NAME(arm2_processor_functions)		.long	0x41560250		.long	0xfffffff0		.long	0		mov	pc, lr		.long	arm3_arch_name		.long	arm3_elf_name		.long	0		.long	cpu_arm250_info		.long	SYMBOL_NAME(arm250_processor_functions)		.long	0x41560300		.long	0xfffffff0		.long	0		mov	pc, lr		.long	arm3_arch_name		.long	arm3_elf_name		.long	0		.long	cpu_arm3_info		.long	SYMBOL_NAME(arm3_processor_functions)

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲成人www| 国产在线不卡视频| 国产亚洲va综合人人澡精品 | 国产乱码精品1区2区3区| 中文字幕字幕中文在线中不卡视频| 欧美另类高清zo欧美| 国产成人av自拍| 日日夜夜精品免费视频| 国产精品免费aⅴ片在线观看| 欧美高清激情brazzers| 99免费精品视频| 精品午夜久久福利影院| 午夜精品久久久久久久久| 国产精品久久久久久久裸模| 精品国产乱码久久久久久久久| 一本到高清视频免费精品| 国产尤物一区二区在线| 日韩国产高清影视| 一区二区三区四区亚洲| 国产精品久久久久影院亚瑟| 欧美大片日本大片免费观看| 欧美日韩大陆在线| 在线一区二区三区四区五区 | 成人一级黄色片| 另类欧美日韩国产在线| 日韩精品亚洲专区| 亚洲丰满少妇videoshd| 一卡二卡三卡日韩欧美| 亚洲色图欧洲色图| 中文字幕在线播放不卡一区| 久久久久久电影| 欧美成人福利视频| 日韩免费看的电影| 日韩欧美一级精品久久| 51久久夜色精品国产麻豆| 欧美日韩久久久| 欧美色国产精品| 欧美色视频在线| 在线成人免费观看| 欧美一级黄色大片| 精品久久久久久久久久久院品网 | 91色乱码一区二区三区| 91社区在线播放| 色综合欧美在线视频区| 91在线视频播放地址| 色综合天天天天做夜夜夜夜做| 99re66热这里只有精品3直播| 99精品久久99久久久久| 在线视频中文字幕一区二区| 在线一区二区视频| 91.com视频| 精品国产一区二区三区不卡| www国产成人| 国产精品女主播在线观看| 中文字幕亚洲一区二区av在线| 国产精品久久久久久妇女6080| 一区免费观看视频| 亚洲一区二区三区三| 日韩精品免费视频人成| 久久不见久久见免费视频7| 国产一区啦啦啦在线观看| 国产91露脸合集magnet | 日韩视频一区二区在线观看| 久久综合九色综合欧美98| 日本一区二区三区在线不卡| 亚洲视频在线一区观看| 三级精品在线观看| 国产成人午夜电影网| youjizz久久| 欧美日韩精品二区第二页| 欧美一卡二卡在线观看| 国产精品天干天干在线综合| 一级精品视频在线观看宜春院| 中文一区二区在线观看 | 欧美麻豆精品久久久久久| 制服丝袜日韩国产| 久久久久久久久久久久久女国产乱| 中文字幕第一区第二区| 亚洲国产欧美日韩另类综合| 久久国产尿小便嘘嘘尿| 白白色 亚洲乱淫| 欧美一三区三区四区免费在线看 | 亚洲日本中文字幕区| 午夜欧美视频在线观看| 国产成人精品午夜视频免费| 欧美在线三级电影| 26uuu色噜噜精品一区| 一区二区在线观看免费视频播放 | 亚洲一二三区视频在线观看| 久久精品国产99国产| 成人18视频日本| 欧美一级一区二区| 亚洲三级电影全部在线观看高清| 日本aⅴ精品一区二区三区| 成人av电影在线播放| 777色狠狠一区二区三区| 中文字幕一区在线观看视频| 秋霞午夜鲁丝一区二区老狼| 99精品视频在线观看| 精品乱人伦小说| 亚洲国产wwwccc36天堂| 菠萝蜜视频在线观看一区| 欧美电影免费观看高清完整版在线观看 | 久久久久久久综合色一本| 亚洲综合av网| 成人三级伦理片| 91精品国产入口| 亚洲乱码中文字幕综合| 国产成人aaaa| 精品国产一区二区精华| 午夜免费欧美电影| 色综合久久99| 国产精品国产a| 狠狠色伊人亚洲综合成人| 欧美日韩你懂得| 一区二区三区高清不卡| 91在线视频网址| 国产日韩精品一区二区三区| 麻豆国产欧美一区二区三区| 欧美日韩在线播| 亚洲精品免费在线播放| 不卡的av在线播放| 国产欧美精品国产国产专区| 精品一区二区三区在线播放 | 成人app网站| 国产嫩草影院久久久久| 国产麻豆91精品| 26uuu精品一区二区| 理论电影国产精品| 日韩一级片在线观看| 天天做天天摸天天爽国产一区| 在线视频欧美区| 亚洲精品国产一区二区精华液 | 色欲综合视频天天天| 国产精品久久午夜夜伦鲁鲁| 懂色av一区二区夜夜嗨| 国产三级一区二区| 粉嫩13p一区二区三区| 中文字幕乱码日本亚洲一区二区| 看电视剧不卡顿的网站| 亚洲精品在线观看网站| 国产精品一区二区视频| 日本一区二区三区在线不卡| 高清国产一区二区| 国产精品久久久久久久久搜平片 | 色偷偷久久一区二区三区| 亚洲日本va午夜在线电影| 91视频.com| 亚洲综合丝袜美腿| 欧美三级日韩三级| 蜜臀av性久久久久av蜜臀妖精| 日韩网站在线看片你懂的| 精东粉嫩av免费一区二区三区| 久久奇米777| 成人影视亚洲图片在线| 亚洲欧美激情一区二区| 欧美亚洲日本一区| 日本特黄久久久高潮| 精品蜜桃在线看| 成人污视频在线观看| 亚洲综合免费观看高清在线观看 | 国产精品二区一区二区aⅴ污介绍| www.亚洲精品| 午夜精品久久久久久久久久久| 欧美一级理论片| 懂色av噜噜一区二区三区av| 亚洲天堂网中文字| 欧美精三区欧美精三区| 久久99国产精品成人| 中文字幕国产精品一区二区| 欧洲人成人精品| 麻豆极品一区二区三区| 国产精品高清亚洲| 欧美日韩午夜精品| 国产又粗又猛又爽又黄91精品| 136国产福利精品导航| 欧美一区二区免费视频| 成人毛片在线观看| 日韩专区一卡二卡| 中文字幕av一区二区三区高| 欧美色精品天天在线观看视频| 国产综合久久久久影院| 亚洲九九爱视频| 日韩欧美aaaaaa| 色婷婷综合久久久中文字幕| 久久不见久久见中文字幕免费| 亚洲欧美在线另类| 日韩午夜激情av| 色综合久久88色综合天天免费| 免费成人深夜小野草| 亚洲视频1区2区| 久久久久久久久久久久电影| 欧美午夜不卡视频| 国产91高潮流白浆在线麻豆| 日日摸夜夜添夜夜添精品视频| 国产精品国产三级国产aⅴ中文 | 91精品国产黑色紧身裤美女| 亚洲三级视频在线观看| 精品国产乱码久久久久久闺蜜 | 欧美精品一区二区三区久久久|