diff options
author | Ian Lance Taylor <ian@airs.com> | 1996-01-12 19:37:58 +0000 |
---|---|---|
committer | Ian Lance Taylor <ian@airs.com> | 1996-01-12 19:37:58 +0000 |
commit | 6ddc0baaf9e9a7fc0340e8092a59e9f020484fae (patch) | |
tree | 0c35c19f2e35d01d42c27a7e9db294e18820bf2b | |
parent | 02fcd12620bbd5305137708afb2a26607fe48a2b (diff) | |
download | gdb-6ddc0baaf9e9a7fc0340e8092a59e9f020484fae.zip gdb-6ddc0baaf9e9a7fc0340e8092a59e9f020484fae.tar.gz gdb-6ddc0baaf9e9a7fc0340e8092a59e9f020484fae.tar.bz2 |
Fri Jan 12 14:35:58 1996 David Mosberger-Tang <davidm@AZStarNet.com>
* alpha-opc.h (alpha_insn_set): VAX floating point opcode was
incorrectly defined as 0x16 when it should be 0x15.
(FLOAT_FORMAT_MASK): function code is 11 bits, not just 7 bits!
(alpha_insn_set): added cvtst and cvttq float ops. Also added
excb (exception barrier) which is defined in the Alpha
Architecture Handbook version 2.
* alpha-dis.c (print_insn_alpha): Fixed special-case decoding for
OPERATE_FORMAT_CODE type instructions. The bug caused mulq to be
disassembled as or, for example.
-rw-r--r-- | opcodes/ChangeLog | 12 | ||||
-rw-r--r-- | opcodes/alpha-opc.h | 233 |
2 files changed, 138 insertions, 107 deletions
diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog index 08c8431..337d3f7 100644 --- a/opcodes/ChangeLog +++ b/opcodes/ChangeLog @@ -1,3 +1,15 @@ +Fri Jan 12 14:35:58 1996 David Mosberger-Tang <davidm@AZStarNet.com> + + * alpha-opc.h (alpha_insn_set): VAX floating point opcode was + incorrectly defined as 0x16 when it should be 0x15. + (FLOAT_FORMAT_MASK): function code is 11 bits, not just 7 bits! + (alpha_insn_set): added cvtst and cvttq float ops. Also added + excb (exception barrier) which is defined in the Alpha + Architecture Handbook version 2. + * alpha-dis.c (print_insn_alpha): Fixed special-case decoding for + OPERATE_FORMAT_CODE type instructions. The bug caused mulq to be + disassembled as or, for example. + Wed Jan 10 12:37:22 1996 Ian Lance Taylor <ian@cygnus.com> * mips-dis.c (print_insn_arg): Print cases 'i' and 'u' in hex. diff --git a/opcodes/alpha-opc.h b/opcodes/alpha-opc.h index 0bd5a5c..f944b9c 100644 --- a/opcodes/alpha-opc.h +++ b/opcodes/alpha-opc.h @@ -55,7 +55,7 @@ #define MEMORY_BRANCH_FORMAT_MASK 0xfc00c000 #define BRANCH_FORMAT_MASK 0xfc000000 #define OPERATE_FORMAT_MASK 0xfc000fe0 -#define FLOAT_FORMAT_MASK 0xfc000fe0 +#define FLOAT_FORMAT_MASK 0xfc00ffe0 typedef struct { @@ -139,6 +139,7 @@ MEMORY_FORMAT( 0x0f, "stq_u"), MEMORY_FORMAT_FUNCTION( 0x18, 0x8000, "fetch"), MEMORY_FORMAT_FUNCTION( 0x18, 0xe000, "rc"), MEMORY_FORMAT_FUNCTION( 0x18, 0x0000, "trapb"), +MEMORY_FORMAT_FUNCTION( 0x18, 0x0400, "excb"), /* axp arch manual version 2 */ MEMORY_FORMAT_FUNCTION( 0x18, 0xa000, "fetch_m"), MEMORY_FORMAT_FUNCTION( 0x18, 0xc000, "rpcc"), MEMORY_FORMAT_FUNCTION( 0x18, 0x4000, "mb"), @@ -381,6 +382,24 @@ FLOAT_FORMAT(0x16, 0x7be, "cvtqt/sui"), FLOAT_FORMAT(0x16, 0x73e, "cvtqt/suic"), FLOAT_FORMAT(0x16, 0x77e, "cvtqt/suim"), FLOAT_FORMAT(0x16, 0x7fe, "cvtqt/suid"), +FLOAT_FORMAT(0x16, 0x2ac, "cvtst"), /* note: floatop is same as cvtts! */ +FLOAT_FORMAT(0x16, 0x6ac, "cvtst/s"), /* note: floatop is same as cvtts! */ +FLOAT_FORMAT(0x16, 0x0af, "cvttq"), +FLOAT_FORMAT(0x16, 0x02f, "cvttq/c"), +FLOAT_FORMAT(0x16, 0x1af, "cvttq/v"), +FLOAT_FORMAT(0x16, 0x12f, "cvttq/vc"), +FLOAT_FORMAT(0x16, 0x5af, "cvttq/sv"), +FLOAT_FORMAT(0x16, 0x52f, "cvttq/svc"), +FLOAT_FORMAT(0x16, 0x7af, "cvttq/svi"), +FLOAT_FORMAT(0x16, 0x72f, "cvttq/svic"), +FLOAT_FORMAT(0x16, 0x0ef, "cvttq/d"), +FLOAT_FORMAT(0x16, 0x1ef, "cvttq/vd"), +FLOAT_FORMAT(0x16, 0x5ef, "cvttq/svd"), +FLOAT_FORMAT(0x16, 0x7ef, "cvttq/svid"), +FLOAT_FORMAT(0x16, 0x06f, "cvttq/m"), +FLOAT_FORMAT(0x16, 0x16f, "cvttq/vm"), +FLOAT_FORMAT(0x16, 0x56f, "cvttq/svm"), +FLOAT_FORMAT(0x16, 0x76f, "cvttq/svim"), FLOAT_FORMAT(0x16, 0x0ac, "cvtts"), FLOAT_FORMAT(0x16, 0x02c, "cvtts/c"), FLOAT_FORMAT(0x16, 0x06c, "cvtts/m"), @@ -496,112 +515,112 @@ FLOAT_FORMAT(0x16, 0x7e1, "subt/suid"), /* VAX floating point operations: */ -FLOAT_FORMAT(0x16, 0x080, "addf"), -FLOAT_FORMAT(0x16, 0x000, "addf/c"), -FLOAT_FORMAT(0x16, 0x180, "addf/u"), -FLOAT_FORMAT(0x16, 0x100, "addf/uc"), -FLOAT_FORMAT(0x16, 0x480, "addf/s"), -FLOAT_FORMAT(0x16, 0x400, "addf/sc"), -FLOAT_FORMAT(0x16, 0x580, "addf/su"), -FLOAT_FORMAT(0x16, 0x500, "addf/suc"), -FLOAT_FORMAT(0x16, 0x09e, "cvtdg"), -FLOAT_FORMAT(0x16, 0x01e, "cvtdg/c"), -FLOAT_FORMAT(0x16, 0x19e, "cvtdg/u"), -FLOAT_FORMAT(0x16, 0x11e, "cvtdg/uc"), -FLOAT_FORMAT(0x16, 0x49e, "cvtdg/s"), -FLOAT_FORMAT(0x16, 0x41e, "cvtdg/sc"), -FLOAT_FORMAT(0x16, 0x59e, "cvtdg/su"), -FLOAT_FORMAT(0x16, 0x51e, "cvtdg/suc"), -FLOAT_FORMAT(0x16, 0x0a0, "addg"), -FLOAT_FORMAT(0x16, 0x020, "addg/c"), -FLOAT_FORMAT(0x16, 0x1a0, "addg/u"), -FLOAT_FORMAT(0x16, 0x120, "addg/uc"), -FLOAT_FORMAT(0x16, 0x4a0, "addg/s"), -FLOAT_FORMAT(0x16, 0x420, "addg/sc"), -FLOAT_FORMAT(0x16, 0x5a0, "addg/su"), -FLOAT_FORMAT(0x16, 0x520, "addg/suc"), -FLOAT_FORMAT(0x16, 0x0a5, "cmpgeq"), -FLOAT_FORMAT(0x16, 0x4a5, "cmpgeq/s"), -FLOAT_FORMAT(0x16, 0x0a6, "cmpglt"), -FLOAT_FORMAT(0x16, 0x4a6, "cmpglt/s"), -FLOAT_FORMAT(0x16, 0x0a7, "cmpgle"), -FLOAT_FORMAT(0x16, 0x4a7, "cmpgle/s"), -FLOAT_FORMAT(0x16, 0x0ac, "cvtgf"), -FLOAT_FORMAT(0x16, 0x02c, "cvtgf/c"), -FLOAT_FORMAT(0x16, 0x1ac, "cvtgf/u"), -FLOAT_FORMAT(0x16, 0x12c, "cvtgf/uc"), -FLOAT_FORMAT(0x16, 0x4ac, "cvtgf/s"), -FLOAT_FORMAT(0x16, 0x42c, "cvtgf/sc"), -FLOAT_FORMAT(0x16, 0x5ac, "cvtgf/su"), -FLOAT_FORMAT(0x16, 0x52c, "cvtgf/suc"), -FLOAT_FORMAT(0x16, 0x0ad, "cvtgd"), -FLOAT_FORMAT(0x16, 0x02d, "cvtgd/c"), -FLOAT_FORMAT(0x16, 0x1ad, "cvtgd/u"), -FLOAT_FORMAT(0x16, 0x12d, "cvtgd/uc"), -FLOAT_FORMAT(0x16, 0x4ad, "cvtgd/s"), -FLOAT_FORMAT(0x16, 0x42d, "cvtgd/sc"), -FLOAT_FORMAT(0x16, 0x5ad, "cvtgd/su"), -FLOAT_FORMAT(0x16, 0x52d, "cvtgd/suc"), -FLOAT_FORMAT(0x16, 0x0bc, "cvtqf"), -FLOAT_FORMAT(0x16, 0x03c, "cvtqf/c"), -FLOAT_FORMAT(0x16, 0x0be, "cvtqg"), -FLOAT_FORMAT(0x16, 0x03e, "cvtqg/c"), -FLOAT_FORMAT(0x16, 0x083, "divf"), -FLOAT_FORMAT(0x16, 0x003, "divf/c"), -FLOAT_FORMAT(0x16, 0x183, "divf/u"), -FLOAT_FORMAT(0x16, 0x103, "divf/uc"), -FLOAT_FORMAT(0x16, 0x483, "divf/s"), -FLOAT_FORMAT(0x16, 0x403, "divf/sc"), -FLOAT_FORMAT(0x16, 0x583, "divf/su"), -FLOAT_FORMAT(0x16, 0x503, "divf/suc"), -FLOAT_FORMAT(0x16, 0x0a3, "divg"), -FLOAT_FORMAT(0x16, 0x023, "divg/c"), -FLOAT_FORMAT(0x16, 0x1a3, "divg/u"), -FLOAT_FORMAT(0x16, 0x123, "divg/uc"), -FLOAT_FORMAT(0x16, 0x4a3, "divg/s"), -FLOAT_FORMAT(0x16, 0x423, "divg/sc"), -FLOAT_FORMAT(0x16, 0x5a3, "divg/su"), -FLOAT_FORMAT(0x16, 0x523, "divg/suc"), -FLOAT_FORMAT(0x16, 0x082, "mulf"), -FLOAT_FORMAT(0x16, 0x002, "mulf/c"), -FLOAT_FORMAT(0x16, 0x182, "mulf/u"), -FLOAT_FORMAT(0x16, 0x102, "mulf/uc"), -FLOAT_FORMAT(0x16, 0x482, "mulf/s"), -FLOAT_FORMAT(0x16, 0x402, "mulf/sc"), -FLOAT_FORMAT(0x16, 0x582, "mulf/su"), -FLOAT_FORMAT(0x16, 0x502, "mulf/suc"), -FLOAT_FORMAT(0x16, 0x0a2, "mulg"), -FLOAT_FORMAT(0x16, 0x022, "mulg/c"), -FLOAT_FORMAT(0x16, 0x1a2, "mulg/u"), -FLOAT_FORMAT(0x16, 0x122, "mulg/uc"), -FLOAT_FORMAT(0x16, 0x4a2, "mulg/s"), -FLOAT_FORMAT(0x16, 0x422, "mulg/sc"), -FLOAT_FORMAT(0x16, 0x5a2, "mulg/su"), -FLOAT_FORMAT(0x16, 0x522, "mulg/suc"), -FLOAT_FORMAT(0x16, 0x081, "subf"), -FLOAT_FORMAT(0x16, 0x001, "subf/c"), -FLOAT_FORMAT(0x16, 0x181, "subf/u"), -FLOAT_FORMAT(0x16, 0x101, "subf/uc"), -FLOAT_FORMAT(0x16, 0x481, "subf/s"), -FLOAT_FORMAT(0x16, 0x401, "subf/sc"), -FLOAT_FORMAT(0x16, 0x581, "subf/su"), -FLOAT_FORMAT(0x16, 0x501, "subf/suc"), -FLOAT_FORMAT(0x16, 0x0a1, "subg"), -FLOAT_FORMAT(0x16, 0x021, "subg/c"), -FLOAT_FORMAT(0x16, 0x1a1, "subg/u"), -FLOAT_FORMAT(0x16, 0x121, "subg/uc"), -FLOAT_FORMAT(0x16, 0x4a1, "subg/s"), -FLOAT_FORMAT(0x16, 0x421, "subg/sc"), -FLOAT_FORMAT(0x16, 0x5a1, "subg/su"), -FLOAT_FORMAT(0x16, 0x521, "subg/suc"), -FLOAT_FORMAT(0x16, 0x0af, "cvtgq"), -FLOAT_FORMAT(0x16, 0x02f, "cvtgq/c"), -FLOAT_FORMAT(0x16, 0x1af, "cvtgq/v"), -FLOAT_FORMAT(0x16, 0x12f, "cvtgq/vc"), -FLOAT_FORMAT(0x16, 0x4af, "cvtgq/s"), -FLOAT_FORMAT(0x16, 0x42f, "cvtgq/sc"), -FLOAT_FORMAT(0x16, 0x5af, "cvtgq/sv"), -FLOAT_FORMAT(0x16, 0x52f, "cvtgq/svc"), +FLOAT_FORMAT(0x15, 0x080, "addf"), +FLOAT_FORMAT(0x15, 0x000, "addf/c"), +FLOAT_FORMAT(0x15, 0x180, "addf/u"), +FLOAT_FORMAT(0x15, 0x100, "addf/uc"), +FLOAT_FORMAT(0x15, 0x480, "addf/s"), +FLOAT_FORMAT(0x15, 0x400, "addf/sc"), +FLOAT_FORMAT(0x15, 0x580, "addf/su"), +FLOAT_FORMAT(0x15, 0x500, "addf/suc"), +FLOAT_FORMAT(0x15, 0x09e, "cvtdg"), +FLOAT_FORMAT(0x15, 0x01e, "cvtdg/c"), +FLOAT_FORMAT(0x15, 0x19e, "cvtdg/u"), +FLOAT_FORMAT(0x15, 0x11e, "cvtdg/uc"), +FLOAT_FORMAT(0x15, 0x49e, "cvtdg/s"), +FLOAT_FORMAT(0x15, 0x41e, "cvtdg/sc"), +FLOAT_FORMAT(0x15, 0x59e, "cvtdg/su"), +FLOAT_FORMAT(0x15, 0x51e, "cvtdg/suc"), +FLOAT_FORMAT(0x15, 0x0a0, "addg"), +FLOAT_FORMAT(0x15, 0x020, "addg/c"), +FLOAT_FORMAT(0x15, 0x1a0, "addg/u"), +FLOAT_FORMAT(0x15, 0x120, "addg/uc"), +FLOAT_FORMAT(0x15, 0x4a0, "addg/s"), +FLOAT_FORMAT(0x15, 0x420, "addg/sc"), +FLOAT_FORMAT(0x15, 0x5a0, "addg/su"), +FLOAT_FORMAT(0x15, 0x520, "addg/suc"), +FLOAT_FORMAT(0x15, 0x0a5, "cmpgeq"), +FLOAT_FORMAT(0x15, 0x4a5, "cmpgeq/s"), +FLOAT_FORMAT(0x15, 0x0a6, "cmpglt"), +FLOAT_FORMAT(0x15, 0x4a6, "cmpglt/s"), +FLOAT_FORMAT(0x15, 0x0a7, "cmpgle"), +FLOAT_FORMAT(0x15, 0x4a7, "cmpgle/s"), +FLOAT_FORMAT(0x15, 0x0ac, "cvtgf"), +FLOAT_FORMAT(0x15, 0x02c, "cvtgf/c"), +FLOAT_FORMAT(0x15, 0x1ac, "cvtgf/u"), +FLOAT_FORMAT(0x15, 0x12c, "cvtgf/uc"), +FLOAT_FORMAT(0x15, 0x4ac, "cvtgf/s"), +FLOAT_FORMAT(0x15, 0x42c, "cvtgf/sc"), +FLOAT_FORMAT(0x15, 0x5ac, "cvtgf/su"), +FLOAT_FORMAT(0x15, 0x52c, "cvtgf/suc"), +FLOAT_FORMAT(0x15, 0x0ad, "cvtgd"), +FLOAT_FORMAT(0x15, 0x02d, "cvtgd/c"), +FLOAT_FORMAT(0x15, 0x1ad, "cvtgd/u"), +FLOAT_FORMAT(0x15, 0x12d, "cvtgd/uc"), +FLOAT_FORMAT(0x15, 0x4ad, "cvtgd/s"), +FLOAT_FORMAT(0x15, 0x42d, "cvtgd/sc"), +FLOAT_FORMAT(0x15, 0x5ad, "cvtgd/su"), +FLOAT_FORMAT(0x15, 0x52d, "cvtgd/suc"), +FLOAT_FORMAT(0x15, 0x0bc, "cvtqf"), +FLOAT_FORMAT(0x15, 0x03c, "cvtqf/c"), +FLOAT_FORMAT(0x15, 0x0be, "cvtqg"), +FLOAT_FORMAT(0x15, 0x03e, "cvtqg/c"), +FLOAT_FORMAT(0x15, 0x083, "divf"), +FLOAT_FORMAT(0x15, 0x003, "divf/c"), +FLOAT_FORMAT(0x15, 0x183, "divf/u"), +FLOAT_FORMAT(0x15, 0x103, "divf/uc"), +FLOAT_FORMAT(0x15, 0x483, "divf/s"), +FLOAT_FORMAT(0x15, 0x403, "divf/sc"), +FLOAT_FORMAT(0x15, 0x583, "divf/su"), +FLOAT_FORMAT(0x15, 0x503, "divf/suc"), +FLOAT_FORMAT(0x15, 0x0a3, "divg"), +FLOAT_FORMAT(0x15, 0x023, "divg/c"), +FLOAT_FORMAT(0x15, 0x1a3, "divg/u"), +FLOAT_FORMAT(0x15, 0x123, "divg/uc"), +FLOAT_FORMAT(0x15, 0x4a3, "divg/s"), +FLOAT_FORMAT(0x15, 0x423, "divg/sc"), +FLOAT_FORMAT(0x15, 0x5a3, "divg/su"), +FLOAT_FORMAT(0x15, 0x523, "divg/suc"), +FLOAT_FORMAT(0x15, 0x082, "mulf"), +FLOAT_FORMAT(0x15, 0x002, "mulf/c"), +FLOAT_FORMAT(0x15, 0x182, "mulf/u"), +FLOAT_FORMAT(0x15, 0x102, "mulf/uc"), +FLOAT_FORMAT(0x15, 0x482, "mulf/s"), +FLOAT_FORMAT(0x15, 0x402, "mulf/sc"), +FLOAT_FORMAT(0x15, 0x582, "mulf/su"), +FLOAT_FORMAT(0x15, 0x502, "mulf/suc"), +FLOAT_FORMAT(0x15, 0x0a2, "mulg"), +FLOAT_FORMAT(0x15, 0x022, "mulg/c"), +FLOAT_FORMAT(0x15, 0x1a2, "mulg/u"), +FLOAT_FORMAT(0x15, 0x122, "mulg/uc"), +FLOAT_FORMAT(0x15, 0x4a2, "mulg/s"), +FLOAT_FORMAT(0x15, 0x422, "mulg/sc"), +FLOAT_FORMAT(0x15, 0x5a2, "mulg/su"), +FLOAT_FORMAT(0x15, 0x522, "mulg/suc"), +FLOAT_FORMAT(0x15, 0x081, "subf"), +FLOAT_FORMAT(0x15, 0x001, "subf/c"), +FLOAT_FORMAT(0x15, 0x181, "subf/u"), +FLOAT_FORMAT(0x15, 0x101, "subf/uc"), +FLOAT_FORMAT(0x15, 0x481, "subf/s"), +FLOAT_FORMAT(0x15, 0x401, "subf/sc"), +FLOAT_FORMAT(0x15, 0x581, "subf/su"), +FLOAT_FORMAT(0x15, 0x501, "subf/suc"), +FLOAT_FORMAT(0x15, 0x0a1, "subg"), +FLOAT_FORMAT(0x15, 0x021, "subg/c"), +FLOAT_FORMAT(0x15, 0x1a1, "subg/u"), +FLOAT_FORMAT(0x15, 0x121, "subg/uc"), +FLOAT_FORMAT(0x15, 0x4a1, "subg/s"), +FLOAT_FORMAT(0x15, 0x421, "subg/sc"), +FLOAT_FORMAT(0x15, 0x5a1, "subg/su"), +FLOAT_FORMAT(0x15, 0x521, "subg/suc"), +FLOAT_FORMAT(0x15, 0x0af, "cvtgq"), +FLOAT_FORMAT(0x15, 0x02f, "cvtgq/c"), +FLOAT_FORMAT(0x15, 0x1af, "cvtgq/v"), +FLOAT_FORMAT(0x15, 0x12f, "cvtgq/vc"), +FLOAT_FORMAT(0x15, 0x4af, "cvtgq/s"), +FLOAT_FORMAT(0x15, 0x42f, "cvtgq/sc"), +FLOAT_FORMAT(0x15, 0x5af, "cvtgq/sv"), +FLOAT_FORMAT(0x15, 0x52f, "cvtgq/svc"), #if (VMS_ASMCODE) /* unprivileged codes */ |