shithub: gpufs

ref: 8b6238bf263ac5d1f357c0f4a4d0e113b83f1570
dir: /ops.h/

View raw version
typedef struct CompileTimeContext CompileTimeContext;
struct CompileTimeContext {
	Shader *shader;
};

enum {
	COMPILE,
	RUNTIME,
};

typedef struct FrameContext FrameContext;
struct FrameContext {
	short type;
	union {
		CompileTimeContext c;
	};
};

typedef struct Frame Frame;
struct Frame {
	u32int *pc;
	FrameContext ctxt;
	Frame *next;
};

typedef struct Op Op;
struct Op {
	u32int opcode;
	void (*f)(Frame*,u32int);
};

int oplookup(u32int code, void (**f)(Frame*,u32int));