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

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

?? conf68.c

?? C編譯器源碼是我到處找來的,看了之后很有收獲
?? C
字號:
/*
 * 68K/386 32-bit C compiler.
 *
 * copyright (c) 1997, David Lindauer
 * 
 * This compiler is intended for educational use.  It may not be used
 * for profit without the express written consent of the author.
 *
 * It may be freely redistributed, as long as this notice remains intact
 * and either the original sources or derived sources 
 * are distributed along with any executables derived from the originals.
 *
 * The author is not responsible for any damages that may arise from use
 * of this software, either idirect or consequential.
 *
 * v1.35 March 1997
 * David Lindauer, gclind01@starbase.spd.louisville.edu
 *
 * Credits to Mathew Brandt for original K&R C compiler
 *
 */
#include  <stdio.h>
#include	"expr.h"
#include 	"c.h"
extern int prm_packing;
extern long lc_maxauto, framedepth;
extern int prm_linkreg;
extern SYM *currentfunc;

char PROGNAME[]="CC68K";
char ENVNAME[]="CC68K";
char SOURCEXT[]=".SRC";
char GLBDEFINE[]="_m68k_";

#ifdef BRIEFHELP
char *usage_text = "[+e/+i/f+l/w+A/C/D/E/I/O] file list";
#else
char *usage_text = "[options] files\n"
"+e     - dump errors to file        /fname - specify parameter file\n"
"+i     - dump preprocessed file     +l     - dump listing file\n"
"/w-xxx - disable a warning          +A     - disable extensions\n"
"/C     - codegen parameters         /Dxxx  - define something\n"
"/Enn   - max number of errors       /Ipath - specify include path\n"
"/O     - optimzer parameters\n"
"Codegen parameters: (/C[+][-][params])\n"
"  -b   - no BSS\n"
"  -c   - don't optimize to CLR      +d     - display diagnostics\n"
"  +1   - generate 68010 code        +2     - generate 68020 code\n"
"  -l   - no C source in ASM file    -m     - no leading underscores\n"
"  +r   - reverse order of bit ops   +s     - small data model\n"
"  +A   - absolute addressing        +L     - large data model\n"
"  +P   - PHI system stack frames    -R     - no link register\n"
"Optimizer parameters (/O[+][-][params])\n"
"  -A   - no address register optimizations\n"
"  -D   - no data register optimizations\n"
"  -F   - no fp register optimizations\n";
#endif                                    

int prm_buggyclr = FALSE;
int prm_smalldata = FALSE;
int prm_smallcode = FALSE;
int prm_rel = TRUE;
int linkreg;
int basereg;
int prm_phiform=0;
int prm_largedata = FALSE;
int prm_68020 = FALSE;
int prm_68010 = FALSE;
int cf_maxaddress =21;
int cf_maxdata=8;
int cf_maxfloat = 40;
int cf_freeaddress =2;
int cf_freedata=3;
int cf_freefloat=3;
int stackadd = 3;
int stackmod = -4;
int strucadd = 3;
int strucmod = -4;
int stdretblocksize = 8;
int stdinttype = bt_long;
int stdunstype = bt_unsigned;
int stdintsize = 4;
int stdldoublesize = 12;
int stdaddrsize = 4;
int regdsize = 4;
int regasize = 4;
int regfsize = 12;

extern TYP stdchar;
TYP             stdconst = { bt_long, 1, UF_DEFINED, 0, 0, -1, -1, 4, {0, 0}, 0, "stdconst",0};
TYP             stdstring = {bt_pointer, 0, 0,0,0,-1, -1, 4, {0, 0}, &stdchar, 0,0};
TYP             stdint = { bt_long, 0, UF_DEFINED | UF_USED,0, 0,-1, -1, 4, {0, 0}, 0, 0,0 };
TYP							stdlongdouble = {bt_longdouble,0,0,0,0,-1,-1,12,{0,0},0,0,0 };
TYP             stduns = { bt_unsigned, 0, 0,0, 0,-1, -1, 4, {0, 0}, 0, 0,0 };
KEYWORDS prockeywords[] = {
				{0,"_trap", kw__trap}, {0,"_interrupt", kw__interrupt},
				{0,"_absolute", kw__abs }, {0,"_genword", kw__genword },
				{0,"pascal", kw__pascal },
				{0,"_D0",kw_D0},{0,"_D1",kw_D1},{0,"_D2",kw_D2},{0,"_D3",kw_D3},
				{0,"_D4",kw_D4},{0,"_D5",kw_D5},{0,"_D6",kw_D6},{0,"_D7",kw_D7},
				{0,"_A0",kw_A0},{0,"_A1",kw_A1},{0,"_A2",kw_A2},{0,"_A3",kw_A3},
				{0,"_A4",kw_A4},{0,"_A5",kw_A5},{0,"_A6",kw_A6},{0,"_A7",kw_A7},
				{0,"_FP0",kw_F0},{0,"_FP1",kw_F1},{0,"_FP2",kw_F2},{0,"_FP3",kw_F3},
				{0,"_FP4",kw_F4},{0,"_FP5",kw_F5},{0,"_FP6",kw_F6},{0,"_FP7",kw_F7},
        {0, 0, 0} };

char *registers[]  = { 
"D0","D1","D2","D3","D4","D5","D6","D7",
"","","","","","","","",
"A0","A1","A2","A3","A4","A5","A6","A7",
"","","","","","","","",
"FP0","FP1","FP2","FP3","FP4","FP5","FP6","FP7",
"","","","","","","","" } ;

int confcodegen(char s, int bool)
{
	switch (s) {
					case 'c':
						prm_buggyclr = !bool;
						break;
					case 'L':		/* 68000 specific */
						prm_largedata = bool;
						break;
					case '2':   /* 68020 specific */
						prm_68020 = bool;
						break;
					case '1':   /* 68020 specific */
						prm_68010 = bool;
						break;
					case 'P':
						prm_phiform = bool;
						break;
					case 's':
						prm_smalldata = prm_smallcode = bool;
						break;
					case 'A':
						prm_rel = !bool;
						break;
					default:
						return 0;
	}
	return 1;
}
void confsetup(void)
{
	if (prm_68020)
		prm_largedata = FALSE;
	if (prm_phiform)
		prm_linkreg = FALSE;
	linkreg = 6;
  basereg = 5;
	if (prm_phiform || prm_linkreg) {
		if (prm_rel) {
		  cf_maxaddress=21;
		}
		else
			cf_maxaddress = 22;
	}
	else {
		/* Note that the link reg may be used by trap calls even
		 * though nothing else uses it, so it can never be freed
		 */
		if (prm_rel) {
			cf_maxaddress=21;
		}
		else {
			cf_maxaddress=22;
		}
	}
}
static int     alignment(int type, TYP *tp)
{       switch(tp->type) {
                case bt_char: case bt_unsignedchar:  return 1;
                case bt_short: case bt_unsignedshort: return 2;
                case bt_long: case bt_unsigned: return 4;
                case bt_enum:           return 2;
                case bt_pointer:
								case bt_matchall:
                        if(tp->val_flag)
                                return alignment(type,tp->btp);
                        else
                                return 4;
                case bt_float:          return 4;
                case bt_double:         return 4;
								case bt_longdouble:				return 4;
                case bt_struct:
                case bt_union:          return 4;
                default:                return 1;
                }
}
int getalign(int sc, TYP *tp)
{
   int align = alignment(sc,tp);
												if (sc != sc_auto) 
													if (prm_packing) 
														if (!prm_68020)
															align = 1;
														else
															if (align > 2) align = 2;
	return align;
}

long getautoval(long val)
{

	if (prm_linkreg && !currentfunc->intflag)
		return val;
	if (val >= 0) 
		if (prm_phiform || currentfunc->intflag)
			return framedepth+val;
		else
			return val;
	else
		return lc_maxauto + val;
}

int funcvaluesize(int size)
{
		return 4 - size;						
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产成a人亚洲精| a在线欧美一区| 欧美一级精品大片| 麻豆久久久久久| 国产精品久久久久久久蜜臀| 在线亚洲一区二区| 国产一区 二区 三区一级| 日本成人在线一区| 国产欧美一区二区精品性色超碰 | 91精品国产91久久久久久最新毛片 | 欧美zozozo| 91久久精品日日躁夜夜躁欧美| 青青草原综合久久大伊人精品| 亚洲国产成人午夜在线一区| 欧美性猛片xxxx免费看久爱| 九九九精品视频| 亚洲精品菠萝久久久久久久| 国产精品久久久久桃色tv| 欧美一二区视频| 欧美一级日韩一级| 欧美日韩在线播放| 91麻豆精品视频| 成人国产免费视频| 99视频精品在线| 99久久精品国产精品久久| 国产一区二区三区在线看麻豆| 麻豆精品国产传媒mv男同| 亚洲国产精品久久不卡毛片| 一二三区精品视频| 夜夜揉揉日日人人青青一国产精品| 久久蜜桃香蕉精品一区二区三区| 日韩免费观看高清完整版| 欧美剧在线免费观看网站| 欧美日韩视频一区二区| 欧美日韩一区 二区 三区 久久精品| 欧美在线视频你懂得| 欧美日韩免费高清一区色橹橹 | 视频一区视频二区中文| 亚洲一二三区视频在线观看| 亚洲一区二区三区视频在线| 午夜欧美电影在线观看| 久久国产精品72免费观看| 国产乱码精品一区二区三区忘忧草 | 欧美成人a∨高清免费观看| 久久综合视频网| 伊人开心综合网| 美女视频黄免费的久久| 丁香激情综合五月| 日韩精品在线看片z| 一区二区欧美精品| 国产精品夜夜嗨| 91精品国产色综合久久| 亚洲欧洲一区二区三区| 天天操天天色综合| 日本高清无吗v一区| 久久人人爽爽爽人久久久| 亚洲成人动漫一区| 日本高清不卡一区| 国产精品剧情在线亚洲| 国产最新精品免费| 国产欧美一区二区精品久导航| 日韩国产高清影视| 欧美日韩国产片| 精品在线播放午夜| 国产女同性恋一区二区| 久久精品国产秦先生| 日韩精品资源二区在线| 日本不卡不码高清免费观看| 欧美色图一区二区三区| 亚洲一区视频在线| 69堂成人精品免费视频| 婷婷夜色潮精品综合在线| 欧美日韩一区成人| 麻豆视频一区二区| 中文字幕精品一区二区三区精品| 国产另类ts人妖一区二区| 国产情人综合久久777777| 国产一区二区三区免费| 最近日韩中文字幕| 欧美人牲a欧美精品| 国产一区二区三区蝌蚪| 亚洲精品免费在线| 日韩欧美卡一卡二| 成人精品国产免费网站| 亚洲高清在线精品| 精品国产免费人成电影在线观看四季 | 在线综合亚洲欧美在线视频| 无码av中文一区二区三区桃花岛| 精品国产乱码久久久久久闺蜜 | 欧美日韩成人综合| 成人午夜在线播放| 国产一区二区看久久| 亚洲一二三区视频在线观看| 欧美经典一区二区| 日韩免费电影网站| 欧美福利视频一区| 日本韩国欧美在线| 成人美女在线观看| 国产一区二区三区四区五区入口| 亚洲午夜影视影院在线观看| 欧美国产97人人爽人人喊| 欧美xxxxx牲另类人与| 欧美日韩一区二区三区在线| 色综合久久久久| 91啪九色porn原创视频在线观看| 国产精品一二三四| 国产麻豆精品95视频| 免费精品视频在线| 久久国产精品露脸对白| 亚洲高清在线视频| 日韩高清中文字幕一区| 日韩影院在线观看| 久久er精品视频| 秋霞影院一区二区| 久久99精品国产91久久来源 | 久久精品国产久精国产爱| 视频一区欧美精品| 久久se这里有精品| 高清shemale亚洲人妖| 91在线看国产| 日韩欧美久久一区| 中文字幕不卡在线观看| 亚洲精品免费播放| 精品一二三四区| av网站免费线看精品| 欧美亚洲国产怡红院影院| 欧美一区二区三区免费在线看 | 美国av一区二区| av在线不卡观看免费观看| 制服丝袜亚洲网站| 亚洲免费观看高清在线观看| 日本视频一区二区| 91视频观看视频| 久久综合色婷婷| 日本少妇一区二区| 欧美三级一区二区| 一区二区三区欧美| www.欧美日韩国产在线| 欧美一区二区视频免费观看| 亚洲欧美电影院| 成人av网址在线| 久久久久久影视| 国内精品国产三级国产a久久| 欧美一区二区不卡视频| 一区二区成人在线视频| 99视频一区二区三区| 久久久久久一二三区| 国产综合色产在线精品| 日韩欧美一区中文| 韩国三级在线一区| 国产精品你懂的在线欣赏| 国产精品主播直播| 亚洲国产精品ⅴa在线观看| 国产成人av网站| 国产精品美女久久久久久| 国产福利一区二区| √…a在线天堂一区| 欧美日韩三级在线| 美女任你摸久久| 欧美国产日韩亚洲一区| 91色porny| 男人操女人的视频在线观看欧美 | 精品99一区二区| 国产精品综合一区二区| 国产精品九色蝌蚪自拍| 欧美精品123区| 国产精品中文字幕一区二区三区| 国产精品久久久久影视| 色综合久久久久综合体| 黑人精品欧美一区二区蜜桃| 亚洲精品日韩综合观看成人91| 欧美电影在线免费观看| 国产乱码精品一区二区三| 亚洲午夜久久久久中文字幕久| 欧美一级高清片| 99国产精品久| 丁香六月久久综合狠狠色| 亚洲电影视频在线| 日韩美女视频一区二区| 精品理论电影在线观看 | 欧美精选一区二区| a亚洲天堂av| 高清不卡在线观看| 国产裸体歌舞团一区二区| 亚洲电影欧美电影有声小说| 亚洲国产成人一区二区三区| 欧美成人一区二区三区| 欧美日韩亚洲综合一区| 色哟哟一区二区在线观看| 不卡的电影网站| 国产精品资源站在线| 精久久久久久久久久久| 日韩精品一区第一页| 久久精品国产99国产| 日韩电影一二三区| 免费久久99精品国产| 久久精品噜噜噜成人av农村| 青草国产精品久久久久久| 免费人成黄页网站在线一区二区| 天天综合天天综合色|