sampler
};
- argument(enum type type, size_t size) : type(type), size(size) { }
- argument() : type(scalar), size(0) { }
+ enum ext_type {
+ zero_ext,
+ sign_ext
+ };
+
+ argument(enum type type, size_t size,
+ size_t target_size, size_t target_align,
+ enum ext_type ext_type) :
+ type(type), size(size),
+ target_size(target_size), target_align(target_align),
+ ext_type(ext_type) { }
+
+ argument(enum type type, size_t size) :
+ type(type), size(size),
+ target_size(size), target_align(1),
+ ext_type(zero_ext) { }
+
+ argument() : type(scalar), size(0),
+ target_size(0), target_align(1),
+ ext_type(zero_ext) { }
type type;
size_t size;
+ size_t target_size;
+ size_t target_align;
+ ext_type ext_type;
};
struct symbol {