⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 asm.m4

📁 open source bios with linux platform, very good and can be reused.
💻 M4
字号:
/*  -*- asm -*- *   Creation Date: <2001/12/30 20:08:53 samuel> *   Time-stamp: <2002/01/14 00:48:09 samuel> *    *	<asm.m4> *	 *	m4 initialization (m4 is used as an assembly preprocessor) *    *   Copyright (C) 2001, 2002 Samuel Rydh (samuel@ibrium.se) *    *   This program 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 *    *//* This end-of-quote matches the start-of-quote in mol_config.h */]]]]]changequote([,])	dnl m4 macros to avoid in header files (we can not rename these)dnl ==========================================================dnl  shift, eval, expr, decr, incr, ifelse, popdef, pushdefdnl **************************************************************dnl * Rename to reduce namespace conflictsdnl **************************************************************	dnl *** Changing the name of built-in macros using defn does not always work ***	undefine([changecom])undefine([changequote])dnl undefine([decr])undefine([defn])undefine([divert])undefine([divnum])undefine([errprint])dnl undefine([eval])dnl undefine([expr])undefine([file])undefine([format])undefine([len])undefine([line])dnl undefine([ifelse])dnl undefine([incr])undefine([indir])undefine([include])undefine([index])undefine([maketemp])undefine([paste])undefine([patsubst])dnl undefine([popdef])dnl undefine([pushdef])undefine([regexp])dnl undefine([shift])undefine([sinclude])undefine([spaste])undefine([substr])undefine([syscmd])undefine([sysval])undefine([translit])undefine([traceoff])undefine([traceon])undefine([undivert])undefine([unix])dnl undefine([__gnu__])dnl undefine([__unix__])dnl Uncomment to list m4 definitionsdnl	dumpdef m4exit/************************************************************************//*	M4 Macros	 						*//************************************************************************//* WARNING - M4 BUG IN MacOS X (10.1.2): * eval() in MacOS X (10.1.2) handles '&' as '&&' and '|' as '||'. *//* FORLOOP(var, from, to, [body var...]) */define([mFORLOOP], [pushdef([$1], [$2])_mFORLOOP([$1], [$2], [$3], [$4])popdef([$1])])define([_mFORLOOP], [$4[]ifelse($1, [$3], ,	 [define([$1], incr($1))_mFORLOOP([$1], [$2], [$3], [$4])])])define([mFIRST],[$1])define([mCONCAT_C],[ [$@] ])/* FOREACH(var, [item1, ...], [body var ...]) */define([mFOREACH],[pushdef([$1],mFIRST($2))_mFOREACH([$1],[shift($2)],[$3])popdef([$1])])define([_mFOREACH],[$3] [ifelse(mFIRST($2),,,[define([$1],mFIRST($2)) _mFOREACH([$1],[shift($2)],[$3])])])/******************** Nice macro definitions **************************//* MACRO(name, [param1, ...], [body _param1 ...]) */#ifdef __linux__define([MACRO], [	.macro [$1] $2	mFOREACH([i],[$2],[ pushdef(_[]i,\i) ])	$3	.endm	mFOREACH([i],[$2],[ popdef(_[]i) ])])#elsedefine([MACRO], [	.macro [$1] 	pushdef([_n],0)	mFOREACH([i],[$2],[ pushdef(_[]i,[$[]]_n) define([_n],incr(_n)) ]) 	$3	.endmacro	mFOREACH([i],[$2],[ popdef(_[]i) ])	popdef([_n])])#endifdefine([MACRO_0], [MACRO([$1],[_dummy_param_],[$2])])/* mDEFINE(name, [param1, ...], [body _param1 ...]) */define([mDEFINE], [	pushdef([_n],1)	mFOREACH([i],[$2],[ pushdef(_[]i,[$[]]_n) define([_n],incr(_n)) ])	define([$1], mCONCAT_C($3) )	mFOREACH([i],[$2],[ popdef(_[]i) ])	popdef([_n])])/* rLABEL(label): b label_b ; b label_f */define(rLABEL,[dnlifdef([$1]_curnum,,[$1[]f:])dnl	define([_tmp_curnum],ifdef($1[]_curnum, [eval($1_curnum+1)], 1)) dnl	define([$1]_curnum,_tmp_curnum)dnl	define([$1]f,$1_[]eval($1_curnum[]+1) )dnl	define([$1]b,$1_[]$1_curnum[] )$1[]_[]$1_curnum[]dnl])

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -