Lines Matching refs:self
48 def __init__(self, value, default):
49 self.value = value
50 self.default = default
53 def __init__(self, name, values):
54 self.name = name
55 self.values = values
56 self.bare_values = [x.value for x in values]
61 self.default = defaults[0]
76 def __init__(self, name, start, size, implied = False, force_enum = None):
77 self.name = name
78 self.start = start
79 self.size = size
80 self.implied = implied
81 self.is_enum = (force_enum is not None) or size > 1
82 self.enum = force_enum or name
84 if not self.is_enum:
85 self.bare_values = ['', name]
86 self.default = 0
88 self.bare_values = [x.value for x in enums[self.enum].values]
89 defaults = [x for x in enums[self.enum].values if x.default]
93 self.default = self.bare_values.index(defaults[0].value)
95 self.default = None
102 def __init__(self, index, size, is_float = False, swizzle = False,
104 self.is_float = is_float or absneg
105 self.start = (index * 8)
106 self.size = size
107 self.absneg = absneg
108 self.notted = notted
109 self.swizzle = swizzle
110 self.halfswizzle = halfswizzle
111 self.widen = widen
112 self.lanes = lanes
113 self.lane = lane
114 self.combine = combine
115 self.name = name
117 self.offset = {}
118 self.bits = {}
120 self.offset['neg'] = 32 + 2 + ((2 - index) * 2)
121 self.offset['abs'] = 33 + 2 + ((2 - index) * 2)
122 self.bits['neg'] = 1
123 self.bits['abs'] = 1
125 self.offset['not'] = 35
126 self.bits['not'] = 1
128 self.offset['widen'] = 26 if index == 1 else 36
129 self.bits['widen'] = 4 # XXX: too much?
131 self.offset['lane'] = self.lane
132 self.bits['lane'] = 2 if size in (8, 32) else 1
135 self.offset['swizzle'] = 24 + ((2 - index) * 2)
136 self.bits['swizzle'] = 2
138 self.offset['combine'] = 37
139 self.bits['combine'] = 3
142 def __init__(self, name = ""):
143 self.name = name
146 def __init__(self, read = False, write = False, count = 0, flags = 'true', name = ""):
147 self.name = name
148 self.read = read
149 self.write = write
150 self.count = count
151 self.flags = (flags != 'false')
152 self.start = 40
154 if write and not self.flags:
155 self.start = 16
158 self.absneg = False
159 self.swizzle = False
160 self.notted = False
161 self.widen = False
162 self.lanes = False
163 self.lane = False
164 self.halfswizzle = False
165 self.combine = False
166 self.size = 32
168 if not self.flags:
169 self.encoded_flags = 0
171 self.encoded_flags = 0xc0
174 self.encoded_flags = (0x80 if write else 0) | (0x40 if read else 0)
177 def __init__(self, name, start, size, signed):
178 self.name = name
179 self.start = start
180 self.size = size
181 self.signed = signed
184 def __init__(self, name, opcode, opcode2, srcs = [], dests = [], immediates = [], modifiers = [], staging = None, unit = None):
185 self.name = name
186 self.srcs = srcs
187 self.dests = dests
188 self.opcode = opcode
189 self.opcode2 = opcode2 or 0
190 self.immediates = immediates
191 self.modifiers = modifiers
192 self.staging = staging
193 self.unit = unit
194 self.is_signed = len(name.split(".")) > 1 and ('s' in name.split(".")[1])
197 self.message = unit not in ["FMA", "CVT", "SFU"]
199 self.secondary_shift = max(len(self.srcs) * 8, 16)
200 self.secondary_mask = 0xF if opcode2 is not None else 0x0
201 if "left" in [x.name for x in self.modifiers]:
202 self.secondary_mask |= 0x100
204 self.secondary_mask &= ~0xC # conflicts
207 self.secondary_mask |= 0x10
209 self.secondary_shift = 27 # Alias with memory_size
210 self.secondary_mask = 0x7
211 if "descriptor_type" in [x.name for x in self.modifiers]:
212 self.secondary_mask = 0x3
213 self.secondary_shift = 37
214 elif "memory_width" in [x.name for x in self.modifiers]:
215 self.secondary_mask = 0x7
216 self.secondary_shift = 27
219 assert(not opcode2 or (opcode2 & self.secondary_mask) == opcode2)
221 def __str__(self):
222 return self.name