]> git.lizzy.rs Git - plan9front.git/blob - sys/src/cmd/6c/machcap.c
awk: make empty FS unicodely-correct.
[plan9front.git] / sys / src / cmd / 6c / 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(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 }