ref: a0d30aba763788d63e47878756cbd4e5cc6f6798
dir: /ops.c/
#include <u.h>
#include <libc.h>
#include "ops.h"
Ops ops[] = {
{ "OpNop", 0 },
{ "OpUndef", 1 },
{ "OpSizeOf", 321 },
{ "OpSource", 3 },
{ "OpSourceExtension", 4 },
{ "OpName", 5 },
{ "OpMemberName", 6 },
{ "OpEntryPoint", 15 },
{ "OpTypeVoid", 19 },
{ "OpTypeBool", 20 },
{ "OpTypeInt", 21 },
{ "OpTypeFloat", 22 },
{ "OpTypeVector", 23 },
{ "OpTypeMatrix", 24 },
{ "OpTypeArray", 28 },
{ "OpTypeRuntimeArray", 29 },
{ "OpTypeStruct", 30 },
{ "OpTypeOpaque", 31 },
{ "OpTypePointer", 32 },
{ "OpTypeFunction", 33 },
{ "OpFunction", 54 },
{ "OpFunctionParameter", 55 },
{ "OpFunctionEnd", 56 },
{ "OpLabel", 248 },
{ "OpBranch", 249 },
{ nil, nil },
};
Keyword keywords[] = {
{ "None", 0x0 },
{ "Inline", 0x1 },
{ "DontInline", 0x2 },
{ "Pure", 0x4 },
{ "Const", 0x8 },
{ "OptNoneINTEL", 0x10000 }, // reserved
{ "Vertex", 0 },
{ "TessellationControl", 1 },
{ "TessellationEvaluation", 2 },
{ "Geometry", 3 },
{ "Fragment", 4 },
{ "GLCompute", 5 },
{ "Kernel", 6 },
// more
{ nil, nil },
};
uint
o_lookup(char *n)
{
Ops *o;
for (o = ops; o->opname; o++) {
if (strcmp(o->opname, n) == 0) {
return o->op;
}
}
return 0;
}
char*
o_find(uint op)
{
Ops *o;
for (o = ops; o->opname; o++) {
if (o->op == op) {
return o->opname;
}
}
return nil;
}
uint
k_lookup(char *n)
{
Keyword *k;
for (k = keywords; k->keyword; k++) {
if (strcmp(k->keyword, n) == 0) {
return k->i;
}
}
return 0;
}