* config/tc-hppa.c (pa_ip): Handle 'N', 'O', 'o', '0', '1', 'u',
and '2' in copr and sfu instruction templates.
This commit is contained in:
parent
43983d3c15
commit
d0286a2112
2 changed files with 53 additions and 4 deletions
|
@ -1,3 +1,8 @@
|
|||
Mon Jan 17 00:18:55 1994 Jeffrey A. Law (law@snake.cs.utah.edu)
|
||||
|
||||
* config/tc-hppa.c (pa_ip): Handle 'N', 'O', 'o', '0', '1', 'u',
|
||||
and '2' in copr and sfu instruction templates.
|
||||
|
||||
Sun Jan 16 16:44:23 1994 Jeffrey A. Law (law@snake.cs.utah.edu)
|
||||
|
||||
* as.h (subseg_force_new): Add prototype.
|
||||
|
|
|
@ -2015,6 +2015,11 @@ pa_ip (str)
|
|||
nullif = pa_parse_nullif (&s);
|
||||
INSERT_FIELD_AND_CONTINUE (opcode, nullif, 1);
|
||||
|
||||
/* Handle a nullification completer for copr and spop insns. */
|
||||
case 'N':
|
||||
nullif = pa_parse_nullif (&s);
|
||||
INSERT_FIELD_AND_CONTINUE (opcode, nullif, 5);
|
||||
|
||||
/* Handle a 11 bit immediate at 31. */
|
||||
case 'i':
|
||||
the_insn.field_selector = pa_chk_field_selector (&s);
|
||||
|
@ -2247,12 +2252,51 @@ pa_ip (str)
|
|||
CHECK_FIELD (num, 7, 0, 0);
|
||||
INSERT_FIELD_AND_CONTINUE (opcode, num, 6);
|
||||
|
||||
/* We don't support any of these. FIXME. */
|
||||
/* Handle a 20 bit SOP field for spop0. */
|
||||
case 'O':
|
||||
get_expression (s);
|
||||
num = pa_get_absolute_expression (&the_insn, &s);
|
||||
s = expr_end;
|
||||
abort ();
|
||||
continue;
|
||||
CHECK_FIELD (num, 1048575, 0, 0);
|
||||
num = (num & 0x1f) | ((num & 0x000fffe0) << 6);
|
||||
INSERT_FIELD_AND_CONTINUE (opcode, num, 0);
|
||||
|
||||
/* Handle a 15bit SOP field for spop1. */
|
||||
case 'o':
|
||||
num = pa_get_absolute_expression (&the_insn, &s);
|
||||
s = expr_end;
|
||||
CHECK_FIELD (num, 32767, 0, 0);
|
||||
INSERT_FIELD_AND_CONTINUE (opcode, num, 11);
|
||||
|
||||
/* Handle a 10bit SOP field for spop3. */
|
||||
case '0':
|
||||
num = pa_get_absolute_expression (&the_insn, &s);
|
||||
s = expr_end;
|
||||
CHECK_FIELD (num, 1023, 0, 0);
|
||||
num = (num & 0x1f) | ((num & 0x000003e0) << 6);
|
||||
INSERT_FIELD_AND_CONTINUE (opcode, num, 0);
|
||||
|
||||
/* Handle a 15 bit SOP field for spop2. */
|
||||
case '1':
|
||||
num = pa_get_absolute_expression (&the_insn, &s);
|
||||
s = expr_end;
|
||||
CHECK_FIELD (num, 32767, 0, 0);
|
||||
num = (num & 0x1f) | ((num & 0x00007fe0) << 6);
|
||||
INSERT_FIELD_AND_CONTINUE (opcode, num, 0);
|
||||
|
||||
/* Handle a 3-bit co-processor ID field. */
|
||||
case 'u':
|
||||
num = pa_get_absolute_expression (&the_insn, &s);
|
||||
s = expr_end;
|
||||
CHECK_FIELD (num, 7, 0, 0);
|
||||
INSERT_FIELD_AND_CONTINUE (opcode, num, 6);
|
||||
|
||||
/* Handle a 22bit SOP field for copr. */
|
||||
case '2':
|
||||
num = pa_get_absolute_expression (&the_insn, &s);
|
||||
s = expr_end;
|
||||
CHECK_FIELD (num, 4194303, 0, 0);
|
||||
num = (num & 0x1f) | ((num & 0x003fffe0) << 4);
|
||||
INSERT_FIELD_AND_CONTINUE (opcode, num, 0);
|
||||
|
||||
/* Handle a source FP operand format completer. */
|
||||
case 'F':
|
||||
|
|
Loading…
Add table
Reference in a new issue