vaxfloat.awk

来自「<B>Digital的Unix操作系统VAX 4.2源码</B>」· AWK 代码 · 共 46 行

AWK
46
字号
$1 ~ /^set_op_types$/{	for (i = 6; i < 7; i++)	    arg[i] = F	n = split($2,arg,",")	if ( n == 6 )	    printf "movw $(typ_%s+(typ_%s<<8)),op_types4(fp)\n",arg[5],arg[6]		if ( n == 5 )	    printf "movb $(typ_%s),op_types4(fp)\n",arg[5]	if ( n > 2)	    {	    printf "movl $(typ_%s+(typ_%s<<8)+(typ_%s<<16)+(typ_%s<<24))",arg[1],arg[2],arg[3],arg[4]	    printf ",op_types(fp)\n"	    }	if ( n == 2 )	    printf "movw $(typ_%s+(typ_%s<<8)),op_types(fp)\n",arg[1],arg[2]	if ( n == 1)	    printf "movb $typ_%s,op_types(fp)\n",arg[1]	}$1 ~ /^inst_type$/ {	print "# define xxx 0"	split($2,opcode,",")	for ( i =1 ; i <= length(opcode[2]); i++ )	    {	    printf "# define xxx xxx+it_%s\n",substr(opcode[2],i,1)	    }	print "# define xxx xxx<<4"	for ( i =1 ; i <= length(opcode[1]); i++ )	    {	    printf "# define xxx xxx+it_%s\n",substr(opcode[1],i,1)	    }	print ".byte xxx"	}$1 !~ /^set_op_types$|^inst_type$/

⌨️ 快捷键说明

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