diff options
author | Jeff Law <law@redhat.com> | 1999-09-19 19:46:52 +0000 |
---|---|---|
committer | Jeff Law <law@redhat.com> | 1999-09-19 19:46:52 +0000 |
commit | 71823da428aa35e33eaedb4e298a98f01f4d8387 (patch) | |
tree | d9fcd77d367aba9e097f6e7a38922f6a81009a88 /gas | |
parent | c49ec3da04e9d80d89cbc70863e4c4c1366dbd58 (diff) | |
download | gdb-71823da428aa35e33eaedb4e298a98f01f4d8387.zip gdb-71823da428aa35e33eaedb4e298a98f01f4d8387.tar.gz gdb-71823da428aa35e33eaedb4e298a98f01f4d8387.tar.bz2 |
* config/tc-hppa.c (pa_ip); Handle "fe", and 'cJ'.
Diffstat (limited to 'gas')
-rw-r--r-- | gas/ChangeLog | 2 | ||||
-rw-r--r-- | gas/config/tc-hppa.c | 25 |
2 files changed, 25 insertions, 2 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog index 913dd76..5fe9bbf 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,5 +1,7 @@ Sun Sep 19 10:43:31 1999 Jeffrey A Law (law@cygnus.com) + * config/tc-hppa.c (pa_ip); Handle "fe", and 'cJ'. + * config/tc-hppa.c (pa_ip): Handle 'd', '#' and 'cq'. * config/tc-hppa.c (struct pa_it): New field "trunc". diff --git a/gas/config/tc-hppa.c b/gas/config/tc-hppa.c index 755585a..191b6cd 100644 --- a/gas/config/tc-hppa.c +++ b/gas/config/tc-hppa.c @@ -1786,6 +1786,7 @@ pa_ip (str) /* Handle a short load/store completer. */ case 'm': case 'q': + case 'J': { int a = 0; int m = 0; @@ -1810,8 +1811,8 @@ pa_ip (str) s += 2; } - /* 'm' and 'q' are the same, except for where they encode - the before/after field. */ + /* 'J', 'm' and 'q' are the same, except for where they + encode the before/after field. */ if (*args == 'm') { opcode |= m << 5; @@ -1822,6 +1823,11 @@ pa_ip (str) opcode |= m << 3; INSERT_FIELD_AND_CONTINUE (opcode, a, 2); } + else if (*args == 'J') + { + /* M bit is explicit in the major opcode. */ + INSERT_FIELD_AND_CONTINUE (opcode, a, 2); + } } /* Handle a stbys completer. */ @@ -3605,6 +3611,21 @@ pa_ip (str) INSERT_FIELD_AND_CONTINUE (opcode, result.number_part, 11); } + /* Handle L/R register halves like 'x'. */ + case 'e': + { + struct pa_11_fp_reg_struct result; + + if (strict && *s != '%') + break; + pa_parse_number (&s, &result); + CHECK_FIELD (result.number_part, 31, 0, 0); + opcode |= (result.number_part & 0x1f) << 16; + if (need_pa11_opcode (&the_insn, &result)) + { + opcode |= (result.l_r_select & 1) << 1; + } + continue; default: abort (); } |