machcap.c

来自「这是一个同样来自贝尔实验室的和UNIX有着渊源的操作系统, 其简洁的设计和实现易」· C语言 代码 · 共 91 行

C
91
字号
#include "gc.h"intmachcap(Node *n){//	return 0;	if(n == Z)		return 1;	/* test */	switch(n->op) {	case OMUL:	case OLMUL:	case OASMUL:	case OASLMUL:		if(typechl[n->type->etype])			return 1;		if(typev[n->type->etype]) {//		if(typev[n->type->etype] && n->right->op == OCONST) {//			if(hi64v(n->right) == 0)				return 1;		}		break;	case OCOM:	case ONEG:	case OADD:	case OAND:	case OOR:	case OSUB:	case OXOR:	case OASHL:	case OLSHR:	case OASHR:		if(typechlv[n->left->type->etype])			return 1;		break;	case OCAST:		if(typev[n->type->etype]) {			if(typechlp[n->left->type->etype])				return 1;		}		else if(!typefd[n->type->etype]) {			if(typev[n->left->type->etype])				return 1;		}		break;	case OCOND:	case OCOMMA:	case OLIST:	case OANDAND:	case OOROR:	case ONOT:		return 1;	case OASADD:	case OASSUB:	case OASAND:	case OASOR:	case OASXOR:		return 1;	case OASASHL:	case OASASHR:	case OASLSHR:		return 1;	case OPOSTINC:	case OPOSTDEC:	case OPREINC:	case OPREDEC:		return 1;	case OEQ:	case ONE:	case OLE:	case OGT:	case OLT:	case OGE:	case OHI:	case OHS:	case OLO:	case OLS://print("%O\n", n->op);		return 1;	}	return 0;}

⌨️ 快捷键说明

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