Fix incorrect calculation of conditional field when being extracted
from a previous decode.
This commit is contained in:
parent
d846a17c70
commit
8d3580d090
@ -1,3 +1,8 @@
|
|||||||
|
Wed Jul 29 10:07:27 1998 Andrew Cagney <cagney@b1.cygnus.com>
|
||||||
|
|
||||||
|
* gen.c (gen_entry_expand_opcode): Extract the field value from an
|
||||||
|
opcode using the correct location bits.
|
||||||
|
|
||||||
Tue Jul 28 11:19:43 1998 Andrew Cagney <cagney@b1.cygnus.com>
|
Tue Jul 28 11:19:43 1998 Andrew Cagney <cagney@b1.cygnus.com>
|
||||||
|
|
||||||
* ld-insn.c (parse_insn_word): For constant conditional strings,
|
* ld-insn.c (parse_insn_word): For constant conditional strings,
|
||||||
|
@ -1039,8 +1039,17 @@ gen_entry_expand_opcode (gen_entry *table,
|
|||||||
/* the table entry fully
|
/* the table entry fully
|
||||||
specified the condition
|
specified the condition
|
||||||
field's value */
|
field's value */
|
||||||
|
/* extract the field's value
|
||||||
|
from the opcode */
|
||||||
value = sub_val (t->opcode_nr, t->parent->opcode->last,
|
value = sub_val (t->opcode_nr, t->parent->opcode->last,
|
||||||
first_pos, last_pos);
|
condition->field->first, condition->field->last);
|
||||||
|
/* this is a requirement of
|
||||||
|
a conditonal field
|
||||||
|
refering to another field */
|
||||||
|
ASSERT ((condition->field->first - condition->field->last)
|
||||||
|
== (first_pos - last_pos));
|
||||||
|
printf ("value=%d, opcode_nr=%d, last=%d, [%d..%d]\n",
|
||||||
|
value, t->opcode_nr, t->parent->opcode->last, condition->field->first, condition->field->last);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user