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

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

?? memmgt.c

?? 本程序集是Allen I. Holub所寫的《Compiler Design in 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
 *
 */
/*
 *memmgt.c
 *
 * memory management
 */
#include        <stdio.h>
#include				<malloc.h>

void release_local(void);
void release_global(void);
void release_opt(void);
void release_oc(void);
void mem_summary(void);

typedef struct _blk_ {
        struct _blk_      *next;
				long blksize;
        char            m[1];           /* memory area */
        } BLK;

int global_flag;
static int      glbsize = 0,    /* size left in current global block */
                locsize = 0,    /* size left in current local block */
                glbindx = 0,    /* global index */
                locindx = 0;    /* local index */

static BLK       *locblk = 0,    /* pointer to local block */
                        *glbblk = 0;    /* pointer to global block */

static int optsize,optindx,ocsize,ocindx;
static BLK *optblk,*ocblk;
static long maxopt,maxglb,maxloc,maxoc;
void memini(void)
{
  global_flag = 1;
	glbsize = 0;
	locsize = 0;
	glbindx = 0;
	locindx = 0;
	locblk = 0;
	glbblk = 0;
	optsize = 0;
	optblk = 0;
	optindx = 0;
  maxopt = maxglb = maxloc = 0;
}
static char *palloc(int *sizepos,int size,int *indxpos,BLK **blk)
/*
 * main allocation routine
 */
{
  BLK      *bp;
  char            *rv;
	if( size & 1 )		/* if odd size */
		size += 1;	/* make it even */
	/* if anything left, try to allocate from it */
  if( *sizepos >= size ) {
    rv = &((*blk)->m[*indxpos]);
    *sizepos -= size;
    *indxpos += size;
    return rv;
  }
  else    {
		long allocsize;
		/* else check for size > normal blcok size */
		if (size > 2048) {
			/* this is going to fragment memory!!! I'd fix it except
			 * the fragmentation is partially dependent on the calloc 
			 * implementation 
			 */
			allocsize = size - 1;
			*sizepos = 0;
		}
		else {
			/* as long as we stick to normal blocks, fragmentation
			 * won't be an issue because as long as all blocks are the
			 * same size calloc is guaranteed to find one if there are any
			 */
			allocsize = 2047;
			*sizepos = 2048 - size;
		}
		/* allocate mem */
    bp = calloc(1,sizeof(BLK) + allocsize);
		if( bp == NULL ) {
			release_global();
			release_local();
			release_opt();
			release_oc();
			mem_summary();
			fatal(" not enough memory.");
		}
		bp->blksize = allocsize;
		/* link the block and return the base */
    bp->next = *blk;
    *blk = bp;
    *indxpos = size;
    return (*blk)->m;
	}
}

char    *xalloc(int siz)
/*
 * user-level allocation.  Global symbols are never deallocated; local
 * symbols are deallocated all at once by deallocating the local symbol
 * blocks
 */
{
        if( global_flag ) 
						return palloc(&glbsize,siz,&glbindx,&glbblk);
				else
						return palloc(&locsize,siz,&locindx,&locblk);
}
char    *oalloc(int siz)
/*
 * allocation for optimizer temps
 */
{
/*	return xalloc(siz); */
						return palloc(&optsize,siz,&optindx,&optblk);
}
char *ocalloc(int siz)
/*
 * Allocation for binary code gen
 */
{
	return palloc(&ocsize,siz,&ocindx,&ocblk);
}
static long release(int *sizepos, BLK ** blk)
/*
 * msin memory free routine
 * frees all blocks from a list at once
 *
 * This memory management scheme reduces fragmentation, however
 * temps hang around for a while...
 *
 */
{       BLK      *bp1, *bp2;
				long blkcnt = 0;
        bp1 = *blk;
        while( bp1 != 0 ) {
								blkcnt+=bp1->blksize;
                bp2 = bp1->next;
                free( bp1 );
                bp1 = bp2;
                }
        *blk = 0;
        *sizepos = 0;
				return blkcnt;
}
void release_local(void )
/*
 * release all local allocations
 */
{
	long temp = release(&locsize,&locblk);       
	if (temp > maxloc)
		maxloc = temp;
}

void release_global(void)
/*
 * release all global allocations
 */
{ 
	long temp = release(&glbsize,&glbblk);       
	if (temp > maxglb)
		maxglb = temp;
}
void release_opt(void)
/*
 * release optimizer temps
 */
{
	long temp = release(&optsize,&optblk);       
	if (temp > maxopt)
		maxopt = temp;
}
void release_oc(void)
/*
 * release all binary codegen allocations
 */
{ 
	long temp = release(&ocsize,&ocblk);       
	if (temp > maxoc)
		maxoc = temp;
}
void mem_summary(void)
{
	printf("Memory usage:\n");
	if (maxglb)
		printf("  Globals:        %ld\n",maxglb);
	if (maxloc)
		printf("  Local peak:     %ld\n",maxloc);
	if (maxopt)
		printf("  Optimizer peak: %ld\n",maxopt);
	if (maxoc)
		printf("  Binary code peak: %ld\n",maxopt);

}	

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产真实精品久久二三区| 亚洲少妇最新在线视频| 日本sm残虐另类| 91精选在线观看| 日本三级亚洲精品| 精品国免费一区二区三区| 国产激情精品久久久第一区二区| 国产视频一区在线观看| 91在线视频在线| 日韩国产一区二| www国产成人| 99精品欧美一区二区三区小说| 亚洲精品高清在线观看| 欧美高清dvd| 国产精品一二三区在线| 亚洲区小说区图片区qvod| 欧美日韩视频第一区| 美女久久久精品| 中文字幕视频一区| 欧美精选一区二区| 国产成人综合亚洲网站| 亚洲免费av在线| 日韩欧美自拍偷拍| 91视频一区二区三区| 日韩电影在线一区二区三区| 久久久久久麻豆| 日本高清免费不卡视频| 青青草成人在线观看| 国产精品久久久久一区二区三区 | 91免费精品国自产拍在线不卡| 亚洲女爱视频在线| 日韩精品一区二区三区三区免费| 成人一区二区在线观看| 天堂资源在线中文精品| 中文字幕欧美激情| 欧美高清一级片在线| 99re这里都是精品| 麻豆中文一区二区| 一区二区三区日本| www亚洲一区| 欧美裸体一区二区三区| 不卡一二三区首页| 久久成人精品无人区| 亚洲午夜电影在线| 日本一区二区三区高清不卡| 911精品产国品一二三产区| 成人美女视频在线观看| 韩国精品久久久| 婷婷一区二区三区| 成人欧美一区二区三区| 久久久久久久综合| 91精品在线一区二区| 色94色欧美sute亚洲线路一ni | 亚洲欧洲精品天堂一级| 精品日韩av一区二区| 欧美区在线观看| 色综合久久九月婷婷色综合| 国产成人亚洲综合a∨婷婷 | 国产精品一区专区| 日韩精品一级中文字幕精品视频免费观看 | 亚洲啪啪综合av一区二区三区| 欧美成人性福生活免费看| 欧美亚洲一区二区在线观看| 国产成人免费视| 国产一区二区三区免费看| 日韩成人精品在线观看| 亚洲成av人影院| 夜夜精品视频一区二区 | 97精品视频在线观看自产线路二 | 麻豆成人av在线| 五月婷婷色综合| 亚洲成人一区在线| 亚洲午夜一区二区三区| 一区二区在线免费观看| 亚洲欧美电影院| 中文字幕一区二区5566日韩| 国产精品视频yy9299一区| 欧美国产日韩一二三区| 久久男人中文字幕资源站| 久久色在线视频| 国产欧美精品一区aⅴ影院| 久久色视频免费观看| 久久久国产精品不卡| 久久久国产精华| 国产精品国产自产拍在线| 国产欧美精品区一区二区三区| 久久免费精品国产久精品久久久久 | 国产精品免费视频一区| 亚洲天堂av一区| 一区二区三区美女视频| 性做久久久久久久免费看| 日本不卡的三区四区五区| 精品一区二区三区视频在线观看| 久久99热这里只有精品| 国产成人av电影| 色综合色综合色综合| 欧美色手机在线观看| 精品少妇一区二区三区在线视频| 亚洲精品在线观| 成人欧美一区二区三区白人| 亚洲一区二区三区四区中文字幕| 日韩高清国产一区在线| 国产久卡久卡久卡久卡视频精品| 国产成人午夜电影网| 色婷婷久久久亚洲一区二区三区| 欧美日韩一级大片网址| 久久久天堂av| 一区二区三区美女| 久久精品免费看| 99久久综合精品| 777a∨成人精品桃花网| 国产丝袜欧美中文另类| 亚洲香肠在线观看| 国产麻豆成人传媒免费观看| 色综合久久88色综合天天| 日韩一区二区电影在线| 国产精品美女视频| 免费视频最近日韩| 色综合久久久久网| 欧美精品一区二区三区四区 | 欧美精品在线一区二区| 久久亚洲一区二区三区四区| 一区二区三区中文字幕精品精品| 另类的小说在线视频另类成人小视频在线 | 欧美r级电影在线观看| 亚洲人妖av一区二区| 免费成人在线观看视频| 91网址在线看| 久久久亚洲欧洲日产国码αv| 亚洲欧洲色图综合| 国精产品一区一区三区mba桃花| 日本精品免费观看高清观看| 欧美精品一区二区三区四区| 一级日本不卡的影视| 国产综合成人久久大片91| 色噜噜狠狠成人中文综合| 久久精品视频免费观看| 丝袜脚交一区二区| 91在线你懂得| 欧美激情综合网| 麻豆91精品视频| 欧美色涩在线第一页| 亚洲精选视频在线| 国产成人精品三级麻豆| 精品国产区一区| 日产国产高清一区二区三区 | 国产风韵犹存在线视精品| 宅男在线国产精品| 亚洲成人免费影院| 色先锋久久av资源部| 亚洲免费av观看| 国产成人在线视频播放| 精品成人一区二区| 久草热8精品视频在线观看| 欧美日韩黄色一区二区| 一区二区三区不卡在线观看 | 午夜视频一区在线观看| 91啪亚洲精品| 国产精品国产三级国产| 国产福利不卡视频| 国产日产精品1区| 国产成人午夜电影网| 国产日韩欧美精品综合| 国产91丝袜在线观看| 久久久久久**毛片大全| 国产一区二区精品在线观看| 欧美tk—视频vk| 国产一区91精品张津瑜| 精品国产人成亚洲区| 国产在线不卡一区| 久久九九全国免费| 成人性生交大片免费看中文网站| 久久久99精品免费观看不卡| 国产91色综合久久免费分享| 国产精品女主播av| 99re在线精品| 亚洲国产日产av| 欧美一区日韩一区| 秋霞国产午夜精品免费视频| 日韩一卡二卡三卡国产欧美| 久久99热狠狠色一区二区| 久久久午夜精品| 99在线热播精品免费| 亚洲综合在线视频| 欧美福利一区二区| 国产一区二区三区电影在线观看| 久久久国产综合精品女国产盗摄| 丰满白嫩尤物一区二区| 亚洲伦理在线精品| 欧美精品v日韩精品v韩国精品v| 欧美96一区二区免费视频| 久久综合九色综合欧美亚洲| av中文一区二区三区| 亚洲综合视频网| 日韩欧美电影一二三| 成人免费看片app下载| 亚洲最新在线观看| 欧美一区二区三区电影| 成人h精品动漫一区二区三区| 伊人婷婷欧美激情|