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

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

?? oxccb.c

?? OXCC is a multipass, interpreting C compiler with several language extensions. It generates an Archi
?? C
?? 第 1 頁 / 共 5 頁
字號:
							case BX:
								PERROR(pName ":ERROR: Line:%d invalid integer size\n", iv->lastline);
							default:
								PERROR(pName ":ERROR: Line:%d invalid immediate input\n",iv->lastline);
						}
					case B4:
						switch(mosize)
						{
							case B1:
								*((long*)obuf) = *((char*)ibuf);
								return 4;
							case B2:
								*((long*)obuf) = *((short*)ibuf);
								return 4;
							case B8:
								*((long*)obuf) = *((long*)ibuf);
								return 4;
							case BX:
								PERROR(pName ":ERROR: Line:%d invalid integer size\n", iv->lastline);
							default:
								PERROR(pName ":ERROR: Line:%d invalid immediate input\n", iv->lastline);
						}
					case B8:
					{
					long l[2];
						l[0] = 0;
						l[1] = 0;
						if(mosize == B4)
							l[0] = *((long*)ibuf);
						else if(mosize == B2)
							l[0] = *((short*)ibuf);
						else if(mosize == B1)
							l[0] = *((char*)ibuf);
						else
							PERROR(pName ":ERROR: Line:%d invalid integer size\n", iv->lastline);
						if(l[0] < 0)
							l[1] = -1;
						memcpy(obuf, l, 8);
						return 8;
					}
					default:
					  PERROR(pName ":ERROR: Line:%d invalid integer size=%d\n",
					  	iv->lastline, osize);
				}
			}/* END: signed integer */
		}/* END: osize != mosize */
		/* NOT REACHED */
		PERROR(pName ":ERROR: Line:%d LOAD IMMED SYSERR1 osize=%d mosize=%d\n", iv->lastline, osize, mosize);
		return 0; /* suppress compiler warning */
	}
	else
	{/* generate the shortest possible immediate value */
	int thesize = 0;
		if(dtype == D_FLOAT)
		{
			switch(mosize)
			{
				case	B4:
					*((float*)obuf) = *((float*)ibuf);
					thesize = 4;
					break;
				case	B8:
					*((double*)obuf) = *((double*)ibuf);
					thesize = 8;
					break;
				case	BX:
#if SUPPORT_LONG_DOUBLE
					*((long double*)obuf) = *((long double*)ibuf);
#else
					memcpy(obuf, ibuf, XSZ);
#endif
					thesize = XSZ;
					break;
				default:
					PERROR(pName ":ERROR: Line:%d wrong sized floating immediate\n", iv->lastline);
			}
		}
		else /* dtype not D_FLOAT */
		{
		int negative;
		int sgned;
		unsigned long ul[2];
		long *sl;

			ul[1] = 0;		
			negative = 0;
			sl = ul;
			if(dtype == D_UNSIGNED || dtype == D_POINTER)
			{
				sgned = 0;
				if(mosize == B8)
				{
					ul[0] = *((unsigned long*)ibuf);
					ul[1] = *((unsigned long*)(((char*)ibuf)+4));
				}
				else
				{
					if(mosize == B4)
						ul[0] = *((unsigned long*)ibuf);
					else if(mosize == B2)
						ul[0] = *((unsigned short*)ibuf);
					else if(mosize == B1)
						ul[0] = *((unsigned char*)ibuf);
					else
						PERROR(pName ":ERROR: Line:%d invalid integer immediate\n", iv->lastline);
				}
			}
			else /* sgned */
			{
				sgned = 1;
				if(mosize == B8)
				{
					sl[0] = *((long*)ibuf);
					sl[1] = *((long*)(((char*)ibuf)+4));
					if(sl[1] < 0)
					{
						negative = 1;
						ul[1] = ~ul[1];
						ul[0] = ~ul[0];
						if(ul[0] == 0xffffffff)
						{
							ul[0] = 0;
							ul[1] += 1;
						}
						else ul[0] += 1;
					}
				}
				else
				{
					if(mosize == B4)
						sl[0] = *((long*)ibuf);
					else if(mosize == B2)
						sl[0] = *((short*)ibuf);
					else if(mosize == B1)
						sl[0] = *((char*)ibuf);
					else
						PERROR(pName ":ERROR: Line:%d invalid integer immediate\n",iv->lastline);
					if(sl[0] < 0)
					{
						negative = 1;
						sl[0] = -sl[0];
					}
				}
			} /* END: sgned */
			if(negative)
			{
				if(ul[1])
					mosize = B8;
				else if(ul[0] & 0xffff8000)
					mosize = B4;
				else if(ul[0] & 0xffffff80)
					mosize = B2;
				else
					mosize = B1;
			}
			else
			{
				if(sgned)
				{
					if(ul[1])
						mosize = B8;
					else if(ul[0] & 0xffff8000)
					{
						if(!(ul[0] & 0xffff0000))
						{
							*poc = LUI;
							mosize = B2;
						}
						else
							mosize = B4;
					}
					else if(ul[0] & 0xffffff80)
					{
						if(!(ul[0] & 0xffffff00))
						{
							*poc = LUI;
							mosize = B1;
						}
						else
							mosize = B2;
					}
					else
						mosize = B1;
				}
				else /* unsigned */
				{
					if(ul[1])
						mosize = B8;
					else if(ul[0] & 0xffff0000)
						mosize = B4;
					else if(ul[0] & 0xffffff00)
						mosize = B2;
					else
						mosize = B1;
				}
			}
			if(negative)
			{
				ul[1] = ~ul[1];
				ul[0] = ~ul[0];
				if(ul[0] == 0xffffffff)
				{
					ul[0] = 0;
					ul[1] += 1;
				}
				else ul[0] += 1;
			}
			switch(mosize)
			{
				case B1:
					*((char*)obuf) = *((char*)sl);
					thesize = 1;
					break;
				case B2:
					*((short*)obuf) = *((short*)sl);
					thesize = 2;
					break;
				case B4:
					*((long*)obuf) = *((long*)sl);
					thesize = 4;
					break;
				case B8:
					*((double*)obuf) = *((double*)sl);
					thesize = 8;
					break;
			}
		}/* END: not D_FLOAT */
		*poc |= mosize;
		return thesize;
	}
}
static void
addr_toevalstack(Piv iv, PND pnd)
{
unsigned char obuf[20];
int atype = pnd->atype;

	if(atype & (A_AUTO|A_PARAM|A_DATA))
	{
	int l;
		obuf[0] = LAI;
		l = 1;
		l += load_addr(iv, &obuf[0], &obuf[1], pnd, 0);

		write_obuf(iv, obuf, l);
		if(atype & (A_AUTO|A_PARAM))
		{
			obuf[0] = ABSSTK;
			write_obuf(iv, obuf, 1);
		}
		else if(l < 5)
		{
			obuf[0] = ABSMEM;
			write_obuf(iv, obuf, 1);
		}
		++iv->stackdepth;
	}
}
static void
data_toevalstack(Piv iv, PND pnd, PND dst)
{
unsigned char obuf[20];
int xtra, oc;
unsigned short dtype, atype;
unsigned char osize;

		atype = pnd->atype;
		dtype = pnd->dtype;
		if(atype & A_IMMED)
		{
			if(dtype == D_UNSIGNED)
				obuf[0] = LUI;
			else
				obuf[0] = LI;
			xtra = load_immed(iv, &obuf[0], &obuf[1], pnd, -1);
			write_obuf(iv, obuf, 1+xtra);
			++iv->stackdepth;
			return;
		}
		xtra = oc = 0;
		osize = pnd->opsize;
		if(osize == BX)
		{
			obuf[0] = XTD;
			osize = 0;
			oc = 1;
			xtra = 1;
		}
		if(atype & (A_TEMP|A_RET))
		{
			if(atype & A_MEMADDR)
			{
			unsigned char xsize = get_datasize(0, pnd);
				if(osize == B8 && dtype < D_FLOAT)
					obuf[xtra++] = XTD;

				if(		dst	
					&&	(pnd->TMPNUM == dst->TMPNUM)
					&&	((dst->atype & (A_ABSOLUTE|A_MEMADDR))
							== (A_ABSOLUTE|A_MEMADDR))
				  )
				{/* generally used for a += b etc. */
					obuf[xtra++] = IMMED;
					obuf[xtra] = DEREF1|xsize;
					write_obuf(iv, obuf, 1+xtra);
					++iv->stackdepth;
				}
				else
				{
					obuf[xtra++] = IMMED;
					obuf[xtra] = DEREF|get_datasize(0, pnd);
					write_obuf(iv, obuf, 1+xtra);
				}
				pnd->atype &= ~A_MEMADDR;
				pnd->atype |= A_VALUE;
			}
			return;
		}

		if(atype & (A_AUTO|A_PARAM))
		{
			if(atype & (A_POINTER|A_VALUE) == (A_POINTER|A_VALUE))
			{/* Put address on eval stack */
				addr_toevalstack(iv, pnd);
				pnd->atype |= A_ABSOLUTE;
				return;
			}
			else
			{
				obuf[oc] = LS|osize;
				xtra += load_addr(iv, &obuf[oc], &obuf[oc+1], pnd, 2);
				++iv->stackdepth;
			}
		}
		else if(atype & A_DATA)
		{
			if(atype & (A_POINTER|A_VALUE) == (A_POINTER|A_VALUE))
			{/* Put address on eval stack */
				addr_toevalstack(iv, pnd);
				pnd->atype |= A_ABSOLUTE;
				return;
			}
			else
			{
				obuf[oc] = LM|osize;
				xtra += load_addr(iv,&obuf[oc], &obuf[oc+1], pnd, 2);
				++iv->stackdepth;
			}
		}
		write_obuf(iv, obuf, 1+xtra);
}
static void
promote_arg(Piv iv, PND pnd, long argsize)
{
long dsize = pnd->size;
struct _nd dst;

	if(dsize != argsize)
	{
		dst.size = argsize;
		dst.dtype = pnd->dtype;
		dst.atype = 0;
		do_conversion(iv, &dst, pnd);
	}
}
static unsigned char
arg_toevalstack(Piv iv, PND pnd, long argsize)
{
unsigned char dtype;

	if(pnd->atype & A_IMMED)
	{
		data_toevalstack(iv, pnd, 0);
		return ARG;
	}
	dtype = pnd->dtype;
	if(dtype == D_STRUCT)
	{
		addr_toevalstack(iv, pnd);
		return ARGA;
	}
	else if(dtype == D_FUNCTION)
	{
		addr_toevalstack(iv, pnd);
		return ARGF;
	}
	else if(dtype == D_FUNCPTR)
	{
		data_toevalstack(iv, pnd, 0);
		return ARGF;
	}
	else if(dtype == D_ARRAY)
	{
		addr_toevalstack(iv, pnd);
	}
	else
	{
		data_toevalstack(iv, pnd, 0);
		promote_arg(iv, pnd, argsize);
	}
	return ARG;
}
static void
mov_esdata(Piv iv, unsigned short atype, int size)
{
unsigned char obuf[2];

	if(atype & A_MEMADDR)
	{
		if(size == B1)
			obuf[0] = MOVAA1;
		else if(size == B2)
			obuf[0] = MOVAA2;
		else if(size == B4)
			obuf[0] = MOVAA4;
		else if(size == B8)
			obuf[0] = MOVAA8;
#if SUPPORT_LONG_DOUBLE
		else if(size == BX)
			obuf[0] = MOVAAX;
#endif
		else {obuf[0] = MOVAAC; size = XSZ;}
	}
	else
	{
		if(size == B1)
			obuf[0] = MOVDA1;
		else if(size == B2)
			obuf[0] = MOVDA2;
		else if(size == B4)
			obuf[0] = MOVDA4;
		else if(size == B8)
			obuf[0] = MOVDA8;
#if SUPPORT_LONG_DOUBLE
		else if(size == BX)
			obuf[0] = MOVDAX;
#endif
		else
			PERROR(pName ":ERROR: Line:%d illegal mov data size=%d\n", iv->lastline, size);
	}
	if(obuf[0] == MOVAAC)
	{
		load_val(iv, size);
		--iv->stackdepth;
	}
	write_obuf(iv, obuf, 1);	
	iv->stackdepth -= 2;
}
static void
from_evalstack(Piv iv, PND d, PND s)
{
unsigned char obuf[20];
int xtra, oc;
unsigned short datype = d->atype;
unsigned char osize = d->opsize;

	xtra = oc = 0;

	if(datype & (A_TEMP|A_RET))
	{
		if(datype & A_MEMADDR)
		{
			mov_esdata(iv, s->atype, osize);
		}
		return;
	}

	if(osize == BX)
	{
		obuf[0] = XTD;
		oc = 1;
		osize = 0;
		xtra = 1;
	}
	if(datype & (A_AUTO|A_PARAM))
	{
		obuf[oc] = SS|osize;
		xtra += load_addr(iv, &obuf[oc], &obuf[oc+1], d, 2);
		--iv->stackdepth;
	}
	else if(datype & OPDATA)
	{
		obuf[oc] = SM|osize;
		xtra += load_addr(iv, &obuf[oc], &obuf[oc+1], d, 2);
		--iv->stackdepth;
	}
	write_obuf(iv, obuf, 1+xtra);
}
static unsigned char
get_datasize(unsigned char opcode, PND pnd)
{
unsigned char dtype = pnd->dtype;
long dsize = pnd->size;

	switch(dtype)
	{
		case	D_ARRAY:
		case	D_FUNCTION:
		case	D_STRUCT:
			return LONG;
	}

	if(		opcode == orop
		||	opcode == andop
		||	opcode == notop
		||	opcode == lshop
		||	opcode == complop
		||	opcode == xorop
		)
	{
		if(dsize == 1)
			return B1;
		else if(dsize == 2)
			return B2;
		else if(dsize == 4)
			return B4;
		else if(dsize == 8)
			return B8;		
		else
			return BX;
	}
	else
	{
		if(dtype == D_UNSIGNED)
		{
			if(dsize == 1)
				return UBYTE;
			else if(dsize == 2)
				return USHORT;
			else if(dsize == 4)
				return ULONG;
			else
			{
				if(opcode == rshop)
					return SULONGLONG;
				return ULONGLONG;
			}
		}
		else if(dtype == D_FLOAT)
		{
			if(dsize == 4)
				return FLOAT;
			else if(dsize == 8)
				return DOUBLE;
			else
				return LONGDOUBLE;
		}
		else
		{
			if(dsize == 1)
				return BYTE;
			else if(dsize == 2)
				return SHORT;
			else if(dsize == 4)
				return LONG;
			else
			{
				if(opcode == rshop)
					return SLONGLONG;
				return LONGLONG;
			}
		}
	}
	return 0;
}
static void *
new_nodeO(Piv iv)
{
PNODEO p;

	if(iv->ob_bufcnt < sizeof(NODEO))
	{/* Allocate a new chunk of linked list space */
	  iv->ob_bufcnt = 4080;
	  iv->ob_buf = Ccalloc(FUNCDATA, 1, iv->ob_bufcnt);
	}
	p = (PNODEO)iv->ob_buf;
	iv->ob_buf += sizeof(NODEO);
	iv->ob_bufcnt -= sizeof(NODEO);
	return p;	
}
static void
link_ob(Piv iv)
{/* Attach to the used list */

	if(!iv->ob_usedhead)
	{
		iv->ob_usedhead = iv->ob;
		iv->ob_usedtail = iv->ob;
	}
	else
	{
		iv->ob_usedtail->next = iv->ob;
		iv->ob_usedtail = iv->ob;
	}
	iv->ob = new_nodeO(iv);
}
static void *
new_nodeC(Piv iv)
{
PNODEC p;

	if(iv->cod_bufcnt < sizeof(NODEC))
	{/* Allocate a new chunk of linked list space */
	  iv->cod_bufcnt = 4080;
	  iv-

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本伊人午夜精品| 欧美高清视频不卡网| 欧美日韩在线三级| 国产亚洲综合色| 一区二区三区中文字幕电影| 日本aⅴ免费视频一区二区三区| 成人免费视频app| 欧美成人精品高清在线播放| 亚洲成人精品影院| 色综合天天性综合| www国产成人| 奇米精品一区二区三区四区| 在线观看日韩精品| 亚洲欧洲av另类| 国产a精品视频| 欧美大片日本大片免费观看| 天天综合网 天天综合色| 日本乱人伦aⅴ精品| 亚洲欧洲一区二区在线播放| 东方欧美亚洲色图在线| 久久一区二区三区四区| 久久丁香综合五月国产三级网站| 欧美日韩一级二级| 亚洲成av人片一区二区| 欧美三级三级三级| 亚洲自拍偷拍网站| 欧美主播一区二区三区| 亚洲欧美色图小说| 91麻豆蜜桃一区二区三区| 国产精品久久久久久久久免费丝袜 | 国产亚洲一区二区三区四区 | 欧美变态tickle挠乳网站| 五月婷婷久久丁香| 欧美三级一区二区| 日本亚洲免费观看| 欧美va亚洲va国产综合| 国产一区欧美二区| 国产午夜精品久久| 91无套直看片红桃| 一区二区久久久久久| 欧美日韩久久久| 久久国产欧美日韩精品| 久久综合久久综合九色| 丁香网亚洲国际| 亚洲色欲色欲www| 欧美日韩精品一区二区在线播放| 日本sm残虐另类| 精品国产91亚洲一区二区三区婷婷| 国产精品一级片| 亚洲欧美成人一区二区三区| 精品视频色一区| 精品午夜一区二区三区在线观看| 日本一区二区三区在线观看| 91网址在线看| 日本不卡中文字幕| 国产欧美精品一区二区三区四区| 日韩午夜三级在线| 国产传媒日韩欧美成人| 亚洲青青青在线视频| 欧美一区二区三区免费| 国产久卡久卡久卡久卡视频精品| 亚洲欧洲av一区二区三区久久| 欧美精品aⅴ在线视频| 国产精品中文字幕一区二区三区| 亚洲欧美日韩国产综合在线| 91精品国产综合久久精品麻豆 | 久久影院电视剧免费观看| 成人三级伦理片| 奇米精品一区二区三区在线观看一 | 一区二区三区在线观看视频| 日韩欧美一区二区不卡| av电影在线观看不卡| 日本成人在线电影网| 国产精品乱码妇女bbbb| 91精品国产综合久久久久久久久久| 国产精品88888| 午夜精品久久久久| 亚洲人妖av一区二区| 精品久久久三级丝袜| 欧美性生活久久| 国产99久久久国产精品免费看| 亚洲国产精品欧美一二99| 久久品道一品道久久精品| 欧美吻胸吃奶大尺度电影| 国产盗摄一区二区| 老汉av免费一区二区三区| 亚洲影院免费观看| 日韩美女久久久| 国产精品区一区二区三区| 精品国产91久久久久久久妲己 | 久久精品国产亚洲一区二区三区| 中文字幕一区二区不卡| 欧美一区二区国产| 欧美日韩亚洲高清一区二区| 91在线精品一区二区三区| 成人午夜激情片| 国产一区二区三区在线观看精品| 性做久久久久久久免费看| 亚洲另类色综合网站| 国产欧美一区视频| 久久精品综合网| 欧美不卡123| 欧美一级午夜免费电影| 91精品国产91热久久久做人人| 欧美吻胸吃奶大尺度电影| 91久久人澡人人添人人爽欧美| 本田岬高潮一区二区三区| 国产成人自拍网| 春色校园综合激情亚洲| 国产成人精品免费在线| 国产成人精品免费视频网站| 国产成人精品亚洲日本在线桃色| 国产成人日日夜夜| www.亚洲国产| 91色九色蝌蚪| 欧美最猛性xxxxx直播| 欧美综合视频在线观看| 欧美日韩国产精品成人| 欧美军同video69gay| 亚洲综合av网| 丝袜国产日韩另类美女| 秋霞成人午夜伦在线观看| 久久se精品一区二区| 激情综合网av| 99久久er热在这里只有精品66| 色婷婷久久久亚洲一区二区三区| 欧美自拍丝袜亚洲| 日韩精品一区二区三区在线观看| 欧美精品一区二区久久婷婷| 欧美激情一区不卡| 亚洲综合视频在线观看| 美女视频一区二区| 国产成人免费视频网站| 色系网站成人免费| 91精品国产色综合久久| 国产亚洲精品7777| 亚洲精品午夜久久久| 青草av.久久免费一区| 国产乱妇无码大片在线观看| 色素色在线综合| 日韩女同互慰一区二区| 国产精品久久久久国产精品日日| 亚洲一区二区三区自拍| 激情综合网激情| 在线观看日韩高清av| 2024国产精品| 亚洲图片有声小说| 韩国女主播成人在线观看| 972aa.com艺术欧美| 91精品欧美福利在线观看| 中文在线一区二区| 五月婷婷欧美视频| av不卡免费电影| 日韩精品一区二| 亚洲午夜久久久| 国产大陆a不卡| 欧美一级日韩免费不卡| 日韩一区中文字幕| 精品亚洲国产成人av制服丝袜 | 日本欧美在线看| 不卡一二三区首页| 日韩欧美一区电影| 亚洲午夜久久久久久久久电影院| 国产一区二区视频在线播放| 欧美日韩夫妻久久| 专区另类欧美日韩| 国产精品一二三区在线| 欧美乱妇15p| 亚洲欧美区自拍先锋| 国产成人亚洲精品青草天美| 欧美日本不卡视频| 亚洲欧美日韩一区二区 | 激情都市一区二区| 欧美日韩一区成人| 亚洲精品videosex极品| 成人性视频网站| 精品三级av在线| 奇米影视一区二区三区| 欧美性欧美巨大黑白大战| 17c精品麻豆一区二区免费| 国产乱色国产精品免费视频| 91精品国产综合久久精品图片| 夜夜精品视频一区二区 | 欧美一级在线免费| 一区二区三区免费观看| 97久久精品人人澡人人爽| 国产精品视频一区二区三区不卡 | 一本大道久久精品懂色aⅴ| 国产精品色在线观看| 国产美女在线精品| 精品国产乱码久久久久久老虎 | 亚洲国产wwwccc36天堂| 在线观看不卡视频| 亚洲国产成人av网| 欧美日韩亚洲另类| 强制捆绑调教一区二区| 欧美成人精品1314www| 国产一区二区三区不卡在线观看| 精品国产91乱码一区二区三区| 狠狠色丁香婷综合久久|