Home | History | Annotate | Download | only in igen

Lines Matching defs:new_field

61       insn_field_entry *new_field;
64 new_field = ZALLOC (insn_field_entry);
65 new_field->next = word->last;
66 new_field->prev = word->last->prev;
67 new_field->next->prev = new_field;
68 new_field->prev->next = new_field;
69 new_field->word_nr = word_nr;
171 && new_field->conditions != NULL)
172 || (new_field->conditions != NULL
173 && new_field->conditions->test == insn_field_cond_eq))
178 insn_field_cond **last = &new_field->conditions;
198 new_field->val_string = NZALLOC (char, strlen_val + 1);
199 strncpy (new_field->val_string, start_val, strlen_val);
200 if (isdigit (new_field->val_string[0]))
210 if (new_field->val_string[i] != '0'
211 && new_field->val_string[i] != '1')
213 new_field->val_string);
214 val = (val << 1) + (new_field->val_string[i] == '1');
216 new_field->val_int = val;
217 new_field->type = insn_field_int;
221 new_field->val_int = a2i (new_field->val_string);
222 new_field->type = insn_field_int;
225 else if (new_field->val_string[0] == '/')
227 new_field->type = insn_field_reserved;
229 else if (new_field->val_string[0] == '*')
231 new_field->type = insn_field_wild;
235 new_field->type = insn_field_string;
236 if (filter_is_member (word->field_names, new_field->val_string))
238 new_field->val_string);
239 filter_parse (&word->field_names, new_field->val_string);
241 if (new_field->type != insn_field_string
242 && new_field->conditions != NULL)
246 new_field->pos_string = NZALLOC (char, strlen_pos + 1);
247 strncpy (new_field->pos_string, start_pos, strlen_pos);
250 new_field->first = new_field->prev->last + 1;
251 if (new_field->first == 0 /* first field */
253 && new_field->type == insn_field_string)
257 new_field->width = options.insn_bit_size;
263 new_field->width = strlen_val;
265 new_field->last = new_field->first + new_field->width - 1;
266 if (new_field->last >= options.insn_bit_size)
268 new_field->last, options.insn_bit_size);
272 new_field->first = new_field->prev->last + 1;
273 new_field->width = a2i (new_field->pos_string);
274 new_field->last = new_field->first + new_field->width - 1;
275 if (new_field->last >= options.insn_bit_size)
277 new_field->last, options.insn_bit_size);
281 new_field->first = target_a2i (options.hi_bit_nr,
282 new_field->pos_string);
283 new_field->last = new_field->next->first - 1; /* guess */
284 new_field->width = new_field->last - new_field->first + 1; /* guess */
285 new_field->prev->last = new_field->first - 1; /*fix */
286 new_field->prev->width = new_field->first - new_field->prev->first; /*fix */