Subversion Repositories planix.SVN

Rev

Rev 2 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 - 1
#include "gc.h"
2
 
3
int
4
machcap(Node *n)
5
{
6
 
7
	if(n == Z)
8
		return 1;	/* test */
9
 
10
	switch(n->op) {
11
	case OMUL:
12
	case OLMUL:
13
	case OASMUL:
14
	case OASLMUL:
15
		if(typechl[n->type->etype])
16
			return 1;
17
		if(typev[n->type->etype]) {
18
				return 1;
19
		}
20
		break;
21
 
22
	case OCOM:
23
	case ONEG:
24
	case OADD:
25
	case OAND:
26
	case OOR:
27
	case OSUB:
28
	case OXOR:
29
	case OASHL:
30
	case OLSHR:
31
	case OASHR:
32
		if(typechlv[n->left->type->etype])
33
			return 1;
34
		break;
35
 
36
	case OCAST:
37
		return 1;
38
 
39
	case OCOND:
40
	case OCOMMA:
41
	case OLIST:
42
	case OANDAND:
43
	case OOROR:
44
	case ONOT:
45
		return 1;
46
 
47
	case OASADD:
48
	case OASSUB:
49
	case OASAND:
50
	case OASOR:
51
	case OASXOR:
52
		return 1;
53
 
54
	case OASASHL:
55
	case OASASHR:
56
	case OASLSHR:
57
		return 1;
58
 
59
	case OPOSTINC:
60
	case OPOSTDEC:
61
	case OPREINC:
62
	case OPREDEC:
63
		return 1;
64
 
65
	case OEQ:
66
	case ONE:
67
	case OLE:
68
	case OGT:
69
	case OLT:
70
	case OGE:
71
	case OHI:
72
	case OHS:
73
	case OLO:
74
	case OLS:
75
		return 1;
76
	}
77
	return 0;
78
}