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

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

?? mem_transfer_ia64.s

?? xvid MPEG-4 編解碼源代碼
?? S
?? 第 1 頁 / 共 2 頁
字號(hào):
/////////////////////////////////////////////////////////////////////////////////// mem_transfer.c optimized for ia-64 by Sebastian Felis and Max Stengel,// University of Karlsruhe, Germany, 03.06.2002, during the laboratory// "IA-64 Video Codec Assember Parktikum" at IPD Goos.///////// legal header taken from original C-file /////////////////////////////////////////// * XVID MPEG-4 VIDEO CODEC// * - 8bit<->16bit transfer  -// *// *  This file is part of XviD, a free MPEG-4 video encoder/decoder// *// *  XviD is free software; you can redistribute it and/or modify it// *  under the terms of the GNU General Public License as published by// *  the Free Software Foundation; either version 2 of the License, or// *  (at your option) any later version.// *// *  This program is distributed in the hope that it will be useful,// *  but WITHOUT ANY WARRANTY; without even the implied warranty of// *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the// *  GNU General Public License for more details.// *// *  You should have received a copy of the GNU General Public License// *  along with this program; if not, write to the Free Software// *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA// *// *  Under section 8 of the GNU General Public License, the copyright// *  holders of XVID explicitly forbid distribution in the following// *  countries:// *// *    - Japan// *    - United States of America// *// *  Linking XviD statically or dynamically with other modules is making a// *  combined work based on XviD.  Thus, the terms and conditions of the// *  GNU General Public License cover the whole combination.// *// *  As a special exception, the copyright holders of XviD give you// *  permission to link XviD with independent modules that communicate with// *  XviD solely through the VFW1.1 and DShow interfaces, regardless of the// *  license terms of these independent modules, and to copy and distribute// *  the resulting combined work under terms of your choice, provided that// *  every copy of the combined work is accompanied by a complete copy of// *  the source code of XviD (the version of XviD used to produce the// *  combined work), being distributed under the terms of the GNU General// *  Public License plus this exception.  An independent module is a module// *  which is not derived from or based on XviD.// *// *  Note that people who make modified versions of XviD are not obligated// *  to grant this special exception for their modified versions; it is// *  their choice whether to do so.  The GNU General Public License gives// *  permission to release a modified version without this exception; this// *  exception also makes it possible to release a modified version which// *  carries forward this exception.// *// * $Id: mem_transfer_ia64.s,v 1.4 2002/11/17 00:51:11 edgomez Exp $/////// History ///////////////////////////////////////////////////////////////////// - 16.07.2002: several minor changes for ecc-conformity// - 03.06.2002: initial version///////////////////////////////////////////////////////////////////////////////////// Annotations:// ===========//// - All functions work on 8x8-matrices. While the C-code-functions treat each//   element seperatly, the functions in this assembler-code treat a whole line//   simultaneously. So one loop is saved.//   The remaining loop is relized by using softwarepipelining with rotating//   rregisters.// - Register renaming is used for better readability// - To load 8 bytes of missaligned data, two 8-byte-blocks are loaded, both//   parts are shifted and joined together with an "OR"-Instruction.// - First parameter is stored in GR 32, next in GR 33, and so on. They must be //   saved, as these GRs are used for register-rotation.// - Some of the orininal, German comments used during development are left in//   in the code. They shouldn't bother anyone.//// Anmerkungen:// ============//// - Alle Funtionen arbeiten mit 8x8-Matrizen. W鋒rend die Funktionen im C-Code//   jedes Element einzeln bearbeiten, bearbeiten die Funtionen dieses Assembler-//   Codes eine Zeile gleichzeitig. Dadurch kann eine Schleife eingespart werden.//   Die verbleibende Schleife wird unter Benutzung von Softwarepipelining mit//   rotierenden Registern realisiert.// - Umbenennung der Register zwecks besserer Lesbarkeit wird verwendet.// - Um 8 Bytes falsch ausgerichtete Daten zu laden, werden zwei 8-Byte-Bl鯿ke//   geladen, beide Teile mit "shift"-Operationen zurechter點(diǎn)kt und mit einem//   logischen Oder zusammenkopiert.// - Die Parameter werden in den Registern ab GR 32 黚ergeben. Sie m黶sen ge-//   sichert werden, da die Register f黵 die register-Rotation ben鰐igt werden.// - Einige der urspr黱glichen, deutschen Kommentare aus der Entwicklungsphase//   sind im Code verblieben. Sie sollten niemanden st鰎en.///////////////////////////////////////////////////////////////////////////////////	***	define Latencies for software pipilines ***	LL  = 3 // Load	SL  = 3 // Store	PL  = 1 // Pack	SHL = 1 // Shift 	OL  = 1 // Or	UL  = 1 // Unpack	PAL = 1 // Parallel Add	PSL = 1 // Parallel Subtract	PAVGL = 1 // Parallel Avarage	.text		/////////////////////////////////////////////////////////////////////////////////// transfer8x8_copy_ia64//// SRC is missaligned, to align the source load two 8-bytes-words, shift it,// join them and store the aligned source into the destination address./////////////////////////////////////////////////////////////////////////////////	.align 16	.global transfer8x8_copy_ia64#	.proc transfer8x8_copy_ia64#	transfer8x8_copy_ia64:	.prologue	//	*** register renaming ***	zero = r0	oldLC = r2	oldPR = r3		src_1 = r14 // left aligned address of src	src_2 = r15 // right aligned address of src	dst = r16  // destination address	stride = r17		offset = r18 // shift right offset	aoffset = r19 // shift left offset	//	*** Saving old Loop-Counter (LC) and Predicate Registers (PR) ***	.save ar.lc, oldLC	mov oldLC = ar.lc	mov oldPR = pr	.body//	*** Allocating new stackframe, initialize LC, Epilogue-Counter and PR ***	alloc r9 = ar.pfs, 3, 29, 0, 32//	*** Saving Parameters ***	mov dst = r32	mov stride = r34	//	*** Misalingment-Treatment ***		and src_1 = -8, r33 // Computing adress of first aligned block containing src-values	dep offset = r33, zero, 3, 3 // Extracting offset for shr from src-adress	;;	sub aoffset = 64, offset // Computing counterpart of offset ("anti-offset"), used for shl	add src_2 = 8, src_1 // Computing adress of second aligned block containing src-values//	*** init loop: set loop counter, epilog counter, predicates ***	mov ar.lc = 7 	mov ar.ec = LL + SHL + OL + 1	mov pr.rot = 1 << 16	;;	//	*** define register arrays and predicate array for software pipeline ***	// src_v1 = source value 1, shd_r = shifted right, shd_l = shifted left	.rotr src_v1[LL+1], src_v2[LL+1], shd_r[SHL+1], shd_l[SHL+1], value[OL+1]	.rotp ld_stage[LL], sh_stage[SHL], or_stage[OL], st_stage[1]//	Software pipelined loop://	Stage 1: Load two 2 bytes from SRC_1, SRC_2 into SRC_v1 and SRC_v2//	Stage 2: Shift both values of source to SHD_R and SHD_L//	Stage 3: Join both parts together with OR//	Stage 4: Store aligned date to destination and add stride to destination address .Loop_8x8copy:	{.mii		(ld_stage[0]) ld8 src_v1[0] = [src_1], stride			(sh_stage[0]) shr.u shd_r[0] = src_v1[LL], offset	}	{.mii		(ld_stage[0]) ld8 src_v2[0] = [src_2], stride			(sh_stage[0]) shl shd_l[0] = src_v2[LL], aoffset		(or_stage[0]) or value[0] = shd_l[SHL], shd_r[SHL]	}	{.mib		(st_stage[0]) st8 [dst] = value[OL]		(st_stage[0]) add dst = dst, stride		br.ctop.sptk.few .Loop_8x8copy		;;		}	//	*** Restore old LC and PRs ***	mov ar.lc = oldLC	mov pr = oldPR, -1		br.ret.sptk.many b0		.endp transfer8x8_copy_ia64#/////////////////////////////////////////////////////////////////////////////////// transfer_8to16copy_ia64//// SRC is aligned. To convert 8 bit unsigned values to 16 bit signed values,// UNPACK is used. So 8 bytes are loaded from source, unpacked to two // 4 x 16 bit values and stored to the destination. Destination is a continuous // array of 64 x 16 bit signed data. To store the next line, only 16 must be// added to the destination address.///////////////////////////////////////////////////////////////////////////////	.align 16	.global transfer_8to16copy_ia64#	.proc transfer_8to16copy_ia64#		transfer_8to16copy_ia64:	.prologue//	*** register renaming ***	oldLC = r2	oldPR = r3	zero = r0 // damit ist die Zahl "zero" = 0 gemeint		dst_1 = r14 // destination address for first 4 x 16 bit values	dst_2 = r15 // destination address for second 4 x 16 bit values	src = r16	stride = r17//	*** Saving old Loop-Counter (LC) and Predicate Registers (PR) ***	.save ar.lc, oldLC	mov oldLC = ar.lc	mov oldPR = pr	.body//	*** Allocating new stackframe, define rotating registers ***	alloc r9 = ar.pfs, 4, 92, 0, 96	//	*** Saving Paramters ***	mov dst_1 = r32 // fist 4 x 16 bit values	add dst_2 = 8, r32 // second 4 x 16 bit values	mov src = r33	mov stride = r34//	*** init loop: set loop counter, epilog counter, predicates ***	mov ar.lc = 7	mov ar.ec = LL + UL + 1	mov pr.rot = 1 << 16	;;	//	*** define register arrays and predicate array for software pipeline ***	// src_v = source value, dst_v1 = destination value 1	.rotr src_v[LL+1], dst_v1[UL+1], dst_v2[UL+1]	.rotp ld_stage[LL], upack_stage[UL], st_stage[1]	//	Software pipelined loop://	Stage 1: Load value of SRC//	Stage 2: Unpack the SRC_V to two 4 x 16 bit signed data//	Stage 3: Store both 8 byte of 16 bit data.Loop_8to16copy:	{.mii		(ld_stage[0]) ld8 src_v[0] = [src], stride		(upack_stage[0]) unpack1.l dst_v1[0] = zero, src_v[LL]		(upack_stage[0]) unpack1.h dst_v2[0] = zero, src_v[LL]	}	{.mmb		(st_stage[0]) st8 [dst_1] = dst_v1[UL], 16		(st_stage[0]) st8 [dst_2] = dst_v2[UL], 16		br.ctop.sptk.few .Loop_8to16copy		;;	}		//	*** Restore old LC and PRs ***	mov ar.lc = oldLC	mov pr = oldPR, -1	br.ret.sptk.many b0	.endp transfer_8to16copy_ia64#	/////////////////////////////////////////////////////////////////////////////////// transfer_16to8copy_ia64//// src is a 64 x 16 bit signed continuous array. To convert the 16 bit // values to 8 bit unsigned data, PACK is used. So two 8-bytes-words of // 4 x 16 bit signed data are loaded, packed together and stored a 8-byte-word// of 8 x 8 unsigned data to the destination.///////////////////////////////////////////////////////////////////////////////	.align 16	.global transfer_16to8copy_ia64#	.proc transfer_16to8copy_ia64#transfer_16to8copy_ia64:	.prologue//	*** register renaming ***	dst = r14 	src_1 = r15	src_2 = r17	stride = r16//	*** Saving old Loop-Counter (LC) and Predicate Registers (PR) ***	.save ar.lc, oldLC	mov oldLC = ar.lc	mov oldPR = pr		.body//	*** Allocating new stackframe, define rotating registers ***	alloc r9 = ar.pfs, 4, 92, 0, 96	//	*** Saving Paramters ***	mov dst = r32	mov src_1 = r33	add src_2 = 8, r33	mov stride = r34//	*** init loop: set loop counter, epilog counter, predicates ***	mov ar.lc = 7	mov ar.ec = LL + PL + 1	mov pr.rot = 1 << 16	;;//	*** define register arrays and predicate array for software pipeline ***	// src_v1 = source value 1, dst_v = destination value	.rotr src_v1[LL+1], src_v2[LL+1], dst_v[PL+1]	.rotp ld_stage[LL], pack_stage[PL], st_stage[1]		//	Software pipelined loop://	Stage 1: Load two 8-byte-words of 4 x 16 bit signed source data//	Stage 2: Pack them together to one 8 byte 8 x 8 bit unsigned data//	Stage 3: Store the 8 byte to the destination address and add stride to//	         destination address (to get the next 8 byte line of destination).Loop_16to8copy:	{.mmi			(ld_stage[0]) ld8 src_v1[0] = [src_1], 16		(ld_stage[0]) ld8 src_v2[0] = [src_2], 16		(pack_stage[0]) pack2.uss dst_v[0] = src_v1[LL], src_v2[LL]	}	{.mib		(st_stage[0]) st8 [dst] = dst_v[PL]		(st_stage[0]) add dst = dst, stride		br.ctop.sptk.few .Loop_16to8copy		;;	}	//	*** Restore old LC and PRs ***

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久青草国产手机看片福利盒子| 久久精品亚洲麻豆av一区二区 | 亚洲欧洲在线观看av| 色综合久久久久| 国产盗摄一区二区三区| 丝袜a∨在线一区二区三区不卡| xvideos.蜜桃一区二区| 欧美男女性生活在线直播观看| 成人精品视频一区| 麻豆91在线看| 亚洲不卡一区二区三区| 亚洲国产精品激情在线观看| 91精品午夜视频| 欧美性感一类影片在线播放| 不卡av在线网| 国产福利91精品一区二区三区| 美女视频一区在线观看| 亚洲狠狠丁香婷婷综合久久久| 久久综合九色综合欧美亚洲| 在线播放日韩导航| 在线亚洲一区观看| 99久久伊人精品| 国产福利一区二区| 国产精品综合一区二区三区| 蜜桃传媒麻豆第一区在线观看| 午夜精品福利一区二区三区av| 亚洲欧美经典视频| 青青草91视频| 亚洲一区在线看| 亚洲精品国产成人久久av盗摄| 欧美激情一区不卡| 国产无一区二区| 久久综合久久综合亚洲| 精品久久国产97色综合| 日韩一区二区在线看片| 91精品国产全国免费观看| 91精品国产色综合久久久蜜香臀| 欧美日韩激情在线| 欧美色视频在线| 欧美日韩高清一区二区三区| 欧美三级电影网| 欧美日韩国产综合一区二区三区| 欧美在线观看视频在线| 欧美精品第1页| 日韩美女一区二区三区四区| 欧美一区二区三区四区久久| 日韩三级精品电影久久久 | 成人涩涩免费视频| 高潮精品一区videoshd| 国产不卡在线播放| www.66久久| 色综合视频一区二区三区高清| 91亚洲国产成人精品一区二三| 91丨九色丨蝌蚪丨老版| 在线观看视频91| 欧美精选一区二区| 欧美成人伊人久久综合网| 久久亚洲精华国产精华液| 蜜臀av性久久久久蜜臀aⅴ四虎| 青娱乐精品视频在线| 国产乱码一区二区三区| 成人av综合在线| 欧美性受极品xxxx喷水| 91精品国产品国语在线不卡| 精品久久一区二区| 日本一区二区成人| 亚洲最大色网站| 美女高潮久久久| 成人夜色视频网站在线观看| 色一区在线观看| 4438x亚洲最大成人网| 26uuu国产电影一区二区| 亚洲图片欧美激情| 无码av中文一区二区三区桃花岛| 精品综合免费视频观看| 成人午夜碰碰视频| 欧美日韩综合不卡| 精品91自产拍在线观看一区| 亚洲欧美在线另类| 免费成人在线视频观看| 成人一区在线看| 欧美日本一区二区在线观看| 国产日韩精品一区二区三区在线| 亚洲啪啪综合av一区二区三区| 日本免费在线视频不卡一不卡二| 成人中文字幕在线| 91精品国产乱| 成人欧美一区二区三区白人| 日韩二区三区在线观看| 不卡av在线免费观看| 日韩三级在线免费观看| 亚洲精品ww久久久久久p站| 九九九久久久精品| 欧美日韩国产一级片| 国产日韩精品一区二区浪潮av| 亚洲最色的网站| 国产激情一区二区三区| 欧美日韩精品一区二区三区 | 久久久精品日韩欧美| 一区二区激情小说| 国产精品1区2区| 91精品国产色综合久久不卡电影| 中文字幕一区二区三区蜜月| 极品少妇xxxx精品少妇| 欧美天堂亚洲电影院在线播放| 国产欧美视频一区二区三区| 免费一级欧美片在线观看| 在线视频欧美区| 国产精品青草综合久久久久99| 免费看日韩精品| 91高清视频免费看| 国产精品久久久久久久久免费相片 | 一本到不卡精品视频在线观看| 亚洲综合一二区| 成人激情黄色小说| 久久亚区不卡日本| 免费成人你懂的| 欧美日韩亚州综合| 亚洲精品国久久99热| 国产白丝网站精品污在线入口| 欧美一区二区啪啪| 午夜成人在线视频| 欧美色综合天天久久综合精品| 亚洲日本青草视频在线怡红院| 成人国产一区二区三区精品| 日韩欧美亚洲另类制服综合在线| 亚洲一区在线视频| 欧美色手机在线观看| 亚洲一区二区欧美| 欧美性感一区二区三区| 亚洲第一精品在线| 欧美日韩高清不卡| 天天综合天天综合色| 在线观看视频91| 亚洲aⅴ怡春院| 欧美精品日日鲁夜夜添| 婷婷六月综合亚洲| 91精品国产综合久久精品性色| 亚洲二区在线视频| 欧美色图激情小说| 日本美女一区二区| 欧美tickling挠脚心丨vk| 久久99精品一区二区三区三区| 欧美一区二区三区免费| 精彩视频一区二区三区| 久久久美女毛片| 国产成人亚洲综合a∨猫咪| 国产清纯美女被跳蛋高潮一区二区久久w| 激情综合色综合久久| 日韩电影免费在线观看网站| 日韩一级免费观看| 韩国视频一区二区| 国产日韩在线不卡| 色综合久久88色综合天天| 亚洲伊人色欲综合网| 在线不卡免费av| 狠狠网亚洲精品| 国产精品久久久久久久久免费丝袜| 成人一区二区三区| 亚洲精品国产一区二区精华液 | 久久久国产综合精品女国产盗摄| 国产高清在线观看免费不卡| 欧美韩国一区二区| 欧美性猛交xxxx黑人交| 精品在线播放免费| 久久九九久精品国产免费直播| 成人理论电影网| 亚洲综合av网| 欧美一级高清片| 国产成人午夜99999| 亚洲人成影院在线观看| 91精品国产色综合久久久蜜香臀| 国产精品一品二品| 夜夜夜精品看看| 久久一区二区三区四区| 色婷婷av久久久久久久| 美国欧美日韩国产在线播放| 1000部国产精品成人观看| 欧美精品九九99久久| 成人一区二区三区| 婷婷综合另类小说色区| 久久精品夜夜夜夜久久| 欧洲生活片亚洲生活在线观看| 久久精品免费观看| 一区二区三区中文字幕电影 | 欧美丰满少妇xxxxx高潮对白| 国产一区二区影院| 亚洲国产综合人成综合网站| 久久久久久99久久久精品网站| 欧日韩精品视频| 国产精品综合视频| 天天影视涩香欲综合网| 国产精品久久久久久久久动漫 | 老司机精品视频一区二区三区| 综合色中文字幕| 久久久久久久久久电影| 91精品国产色综合久久久蜜香臀| 91一区二区三区在线观看| 精品一区二区免费在线观看| 亚洲国产欧美在线|