* hppa.h (pa_opcodes): Add "call" and "ret". Clean up "b", "bve"
authorJeff Law <law@redhat.com>
Thu, 23 Sep 1999 14:29:10 +0000 (14:29 +0000)
committerJeff Law <law@redhat.com>
Thu, 23 Sep 1999 14:29:10 +0000 (14:29 +0000)
        and "be" using completer prefixes.

include/opcode/ChangeLog
include/opcode/hppa.h

index 4e4838c..30994e1 100644 (file)
@@ -1,5 +1,8 @@
 Thu Sep 23 07:08:38 1999  Jerry Quinn <jquinn@nortelnetworks.com>
 
+       * hppa.h (pa_opcodes): Add "call" and "ret".  Clean up "b", "bve"
+       and "be" using completer prefixes.
+
        * hppa.h (pa_opcodes): Add initializers to silence compiler.
 
        * hppa.h: Update comments about character usage.
index d937985..947bd0b 100644 (file)
@@ -71,8 +71,8 @@ struct pa_opcode
    In the args field, the following characters are unused:
 
        '  "   &     -  /   34 6789:;< > @'
-       '  C                     Y [\]  '
-       '    e                   y   } '
+       ' BC         M             [\]  '
+       '    e g    l            y   } '
 
    Here are all the characters:
 
@@ -145,11 +145,7 @@ Also these:
        the bb instruction. It's the same as r above, except the
         value is in a different location)
    Z    %r1 -- implicit target of addil instruction.
-   g    ,gate completer for new syntax branch
-   l   ,l completer for new syntax branch
-   M    ,push completer for new syntax branch
    L    ,%r2 completer for new syntax branch
-   B    ,pop completer for new syntax branch
    {    Source format completer for fcnv
    _    Destination format completer for fcnv
    h    cbit for fcmp
@@ -158,6 +154,7 @@ Also these:
    #    14bit offset for double precision FP load long/store.
    J    Yet another 14bit offset with an unusual encoding.
    K    Yet another 14bit offset with an unusual encoding.
+   Y    %sr0,%r31 -- implicit target of be,l instruction.
 
 Completer operands all have 'c' as the prefix:
 
@@ -169,6 +166,11 @@ Completer operands all have 'c' as the prefix:
    cc   Another load/store completer with a different encoding than the
        others
 
+   cp  branch link and push completer
+   cP  branch pop completer
+   cl  branch link completer
+   cg  branch gate completer
+
    cw  read/write completer for PROBE
    cW  wide completer for MFCTL
    cL  local processor completer for cache control
@@ -262,13 +264,14 @@ static const char *const completer_chars = ",CcY<>?!@+&U~FfGHINnOoZMadu|/=0123%e
 static const struct pa_opcode pa_opcodes[] =
 {
 
+/* pseudo-instructions */
 
-{ "b",         0xe8002000, 0xfc00e000, "gnW,b", pa10, FLAG_STRICT},
-{ "b",         0xe8008000, 0xfc00e000, "lMnXL", pa20, FLAG_STRICT},
-{ "b",         0xe800a000, 0xfc00e000, "lnXL", pa20, FLAG_STRICT},
-{ "b",         0xe8000000, 0xfc00e000, "lnW,b", pa10, FLAG_STRICT},
-{ "b",         0xe8000000, 0xffe0e000, "nW", pa10, 0}, /* bl foo,r0 */
 { "ldi",       0x34000000, 0xffe0c000, "j,x", pa10, 0},/* ldo val(r0),r */
+
+{ "call",      0xe800f000, 0xfc1ffffd, "n(b)", pa20, FLAG_STRICT},
+{ "call",      0xe800a000, 0xffe0e000, "nW", pa10, FLAG_STRICT},
+{ "ret",       0xe840d000, 0xfffffffd, "n", pa20, FLAG_STRICT},
+
 { "comib",     0x84000000, 0xfc000000, "?nn5,b,w", pa10, 0}, /* comib{tf}*/
 /* This entry is for the disassembler only.  It will never be used by
    assembler.  */
@@ -397,18 +400,24 @@ static const struct pa_opcode pa_opcodes[] =
 { "addil",     0x28000000, 0xfc000000, "k,b", pa10, 0},
 
 /* Branching instructions. */
+{ "b",         0xe8008000, 0xfc00e000, "cpnXL", pa20, FLAG_STRICT},
+{ "b",         0xe800a000, 0xfc00e000, "clnXL", pa20, FLAG_STRICT},
+{ "b",         0xe8000000, 0xfc00e000, "clnW,b", pa10, FLAG_STRICT},
+{ "b",         0xe8002000, 0xfc00e000, "cgnW,b", pa10, FLAG_STRICT},
+{ "b",         0xe8000000, 0xffe0e000, "nW", pa10},  /* b,l foo,r0 */
 { "bl",                0xe8000000, 0xfc00e000, "nW,b", pa10, 0},
 { "gate",      0xe8002000, 0xfc00e000, "nW,b", pa10, 0},
 { "blr",       0xe8004000, 0xfc00e001, "nx,b", pa10, 0},
 { "bv",                0xe800c000, 0xfc00fffd, "nx(b)", pa10, 0},
 { "bv",                0xe800c000, 0xfc00fffd, "n(b)", pa10, 0},
-{ "bve",       0xe800f001, 0xfc00ffff, "lMn(b)L", pa20, FLAG_STRICT},
-{ "bve",       0xe800f000, 0xfc00ffff, "ln(b)L", pa20, FLAG_STRICT},
-{ "bve",       0xe800d001, 0xfc00ffff, "Bn(b)", pa20, FLAG_STRICT},
-{ "bve",       0xe800d000, 0xfc00ffff, "n(b)", pa20, FLAG_STRICT},
-{ "be",                0xe4000000, 0xfc000000, "lnz(S,b)", pa10, FLAG_STRICT},
-{ "be",                0xe0000000, 0xfc000000, "nz(S,b)", pa10, FLAG_STRICT},
+{ "bve",       0xe800f001, 0xfc1ffffd, "cpn(b)L", pa20, FLAG_STRICT},
+{ "bve",       0xe800f000, 0xfc1ffffd, "cln(b)L", pa20, FLAG_STRICT},
+{ "bve",       0xe800d001, 0xfc1ffffd, "cPn(b)", pa20, FLAG_STRICT},
+{ "bve",       0xe800d000, 0xfc1ffffd, "n(b)", pa20, FLAG_STRICT},
+{ "be",                0xe4000000, 0xfc000000, "clnz(S,b),Y", pa10, FLAG_STRICT},
+{ "be",                0xe4000000, 0xfc000000, "clnz(b),Y", pa10, FLAG_STRICT},
 { "be",                0xe0000000, 0xfc000000, "nz(S,b)", pa10, 0},
+{ "be",                0xe0000000, 0xfc000000, "nz(b)", pa10, 0},
 { "ble",       0xe4000000, 0xfc000000, "nz(S,b)", pa10, 0},
 { "movb",      0xc8000000, 0xfc000000, "?ynx,b,w", pa10, 0},
 { "movib",     0xcc000000, 0xfc000000, "?yn5,b,w", pa10, 0},