]> git.lizzy.rs Git - plan9front.git/blob - sys/src/cmd/7c/machcap.c
disk/format: implement long name support
[plan9front.git] / sys / src / cmd / 7c / machcap.c
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(typechlv[n->type->etype])
16                         return 1;
17                 break;
18
19         case OADD:
20         case OAND:
21         case OOR:
22         case OSUB:
23         case OXOR:
24         case OASHL:
25         case OLSHR:
26         case OASHR:
27                 if(typechlv[n->left->type->etype])
28                         return 1;
29                 break;
30
31         case OCAST:
32                 return 1;
33
34         case OCOND:
35         case OCOMMA:
36         case OLIST:
37         case OANDAND:
38         case OOROR:
39         case ONOT:
40                 return 1;
41
42         case OASADD:
43         case OASSUB:
44         case OASAND:
45         case OASOR:
46         case OASXOR:
47                 return 1;
48
49         case OASASHL:
50         case OASASHR:
51         case OASLSHR:
52                 return 1;
53
54         case OPOSTINC:
55         case OPOSTDEC:
56         case OPREINC:
57         case OPREDEC:
58                 return 1;
59
60         case OEQ:
61         case ONE:
62         case OLE:
63         case OGT:
64         case OLT:
65         case OGE:
66         case OHI:
67         case OHS:
68         case OLO:
69         case OLS:
70                 return 1;
71
72         case ONEG:
73                 if(typechlv[n->left->type->etype])
74                         return 1;
75                 break;
76
77         case OCOM:
78                 break;
79         }
80         return 0;
81 }