Lines Matching refs:self
27 def __init__(self, c_type, union_field, glsl_type):
28 self.c_type = c_type
29 self.union_field = union_field
30 self.glsl_type = glsl_type
39 def __init__(self, source_types, num_operands):
45 self.dest_type = None
46 self.source_types = source_types
47 self.num_operands = num_operands
48 self.i = 0
50 def __init__(self, dest_type, source_types, num_operands):
57 self.dest_type = dest_type
58 self.source_types = source_types
59 self.num_operands = num_operands
60 self.i = 0
62 def __iter__(self):
63 return self
65 def __next__(self):
66 if self.i < len(self.source_types):
67 i = self.i
68 self.i += 1
70 if self.dest_type is None:
71 dest_type = self.source_types[i]
73 dest_type = self.dest_type
75 return (dest_type, self.num_operands * (self.source_types[i],))
326 def __init__(self, name, num_operands, printable_name = None, source_types = None, dest_type = None, c_expression = None, flags = None, all_signatures = None):
327 self.name = name
328 self.num_operands = num_operands
331 self.printable_name = name
333 self.printable_name = printable_name
335 self.all_signatures = all_signatures
338 self.source_types = tuple()
340 self.source_types = source_types
342 self.dest_type = dest_type
345 self.c_expression = None
347 self.c_expression = {'default': c_expression}
349 self.c_expression = c_expression
352 self.flags = frozenset()
354 self.flags = frozenset([flags])
356 self.flags = frozenset(flags)
359 def get_enum_name(self):
360 return "ir_{0}op_{1}".format(("un", "bin", "tri", "quad")[self.num_operands-1], self.name)
363 def get_template(self):
364 if self.c_expression is None:
367 if horizontal_operation in self.flags:
368 if non_assign_operation in self.flags:
369 return constant_template_horizontal_nonassignment.render(op=self)
370 elif types_identical_operation in self.flags:
371 return constant_template_horizontal_single_implementation.render(op=self)
373 return constant_template_horizontal.render(op=self)
375 if self.num_operands == 2:
376 if self.name == "mul":
377 return constant_template_mul.render(op=self)
378 elif self.name == "vector_extract":
379 return constant_template_vector_extract.render(op=self)
380 elif vector_scalar_operation in self.flags:
381 return constant_template_vector_scalar.render(op=self)
382 elif self.num_operands == 3:
383 if self.name == "vector_insert":
384 return constant_template_vector_insert.render(op=self)
385 elif self.name == "lrp":
386 return constant_template_lrp.render(op=self)
387 elif self.name == "csel":
388 return constant_template_csel.render(op=self)
389 elif self.num_operands == 4:
390 if self.name == "vector":
391 return constant_template_vector.render(op=self)
393 return constant_template_common.render(op=self)
396 def get_c_expression(self, types, indices=("c", "c", "c")):
402 expr = self.c_expression[types[0].union_field] if types[0].union_field in self.c_expression else self.c_expression['default']
410 def signatures(self):
411 if self.all_signatures is not None:
412 return self.all_signatures
414 return type_signature_iter(self.dest_type, self.source_types, self.num_operands)