Changes from Klaus Kaempf:

* alpha-opc.h (OSF_ASMCODE): define print pal-code names as defined in App C of
the Alpha Architecture Reference Manual

* alpha-dis.c: cleaned up output print stylized code forms as defined in App
A.4.3 of the Alpha Architecture Reference Manual
This commit is contained in:
Ken Raeburn
1995-03-14 07:17:20 +00:00
parent 03c35bcb6e
commit c024cc1110
2 changed files with 523 additions and 390 deletions

View File

@ -1,3 +1,15 @@
Tue Mar 14 00:52:57 1995 Ken Raeburn (raeburn@kr-pc.cygnus.com)
Sat Feb 11 17:22:41 1995 Klaus Kaempf (kkaempf@didymus.rmi.de)
* alpha-opc.h (OSF_ASMCODE): define
print pal-code names as defined in App C of the
Alpha Architecture Reference Manual
* alpha-dis.c: cleaned up output
print stylized code forms as defined in App A.4.3 of the
Alpha Architecture Reference Manual
Wed Mar 8 15:21:14 1995 Ian Lance Taylor <ian@cygnus.com> Wed Mar 8 15:21:14 1995 Ian Lance Taylor <ian@cygnus.com>
* mips-opc.c: Add new mips4 instructions. Don't set INSN_RFE for * mips-opc.c: Add new mips4 instructions. Don't set INSN_RFE for

View File

@ -1,6 +1,6 @@
/* Opcode table for the Alpha. /* Opcode table for the Alpha.
Copyright 1993 Free Software Foundation, Inc. Copyright 1993, 1995 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by it under the terms of the GNU General Public License as published by
@ -16,11 +16,11 @@
along with this program; if not, write to the Free Software along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
/* /* Contributed by sac@cygnus.com. */
Contributed by sac@cygnus.com
*/
#define OSF_ASMCODE 1
/* Alpha opcode format */ /* Alpha opcode format */
#define RA(x) (((x)>>21)& 0x1f) #define RA(x) (((x)>>21)& 0x1f)
#define RB(x) (((x)>>16)& 0x1f) #define RB(x) (((x)>>16)& 0x1f)
@ -47,6 +47,7 @@
FP reg oooo ooaa aaab bbbb 000f ffff fffc cccc FP reg oooo ooaa aaab bbbb 000f ffff fffc cccc
Pal oooo oodd dddd dddd dddd dddd dddd dddd Pal oooo oodd dddd dddd dddd dddd dddd dddd
The following masks just give opcode & function
*/ */
#define MEMORY_FORMAT_MASK 0xfc000000 #define MEMORY_FORMAT_MASK 0xfc000000
@ -54,24 +55,22 @@
#define BRANCH_FORMAT_MASK 0xfc000000 #define BRANCH_FORMAT_MASK 0xfc000000
#define OPERATE_FORMAT_MASK 0xfc000fe0 #define OPERATE_FORMAT_MASK 0xfc000fe0
#define FLOAT_FORMAT_MASK 0xfc000fe0 #define FLOAT_FORMAT_MASK 0xfc000fe0
typedef struct
typedef struct
{ {
unsigned i; unsigned i;
char *name; char *name;
int type; int type;
} alpha_insn; } alpha_insn;
#ifdef DEFINE_TABLE #ifdef DEFINE_TABLE
char *alpha_regs[32] = char *alpha_regs[32] =
{ {
"v0", "v0", "t0", "t1", "t2", "t3", "t4", "t5", "t6",
"t0", "t1", "t2", "t3", "t4", "t5", "t6", "t7", "t7", "s0", "s1", "s2", "s3", "s4", "s5", "fp",
"s0", "s1", "s2", "s3", "s4", "s5", "a0", "a1", "a2", "a3", "a4", "a5", "t8", "t9",
"fp", "t10", "t11", "ra", "t12", "at", "gp", "sp", "zero"
"a0", "a1", "a2", "a3", "a4", "a5",
"t8", "t9", "t10", "t11",
"ra", "t12", "at", "gp", "sp", "zero"
}; };
#define MEMORY_FORMAT_CODE 1 #define MEMORY_FORMAT_CODE 1
@ -110,8 +109,6 @@ char *alpha_regs[32] =
#define FLOAT_BRANCH_FORMAT(op, name) \ #define FLOAT_BRANCH_FORMAT(op, name) \
{ (op<<26), name , FLOAT_BRANCH_FORMAT_CODE } { (op<<26), name , FLOAT_BRANCH_FORMAT_CODE }
alpha_insn alpha_insn_set[] = alpha_insn alpha_insn_set[] =
{ {
@ -494,6 +491,128 @@ FLOAT_FORMAT(0x16,0x721,"subt/suic"),
FLOAT_FORMAT(0x16, 0x761, "subt/suim"), FLOAT_FORMAT(0x16, 0x761, "subt/suim"),
FLOAT_FORMAT(0x16, 0x7e1, "subt/suid"), FLOAT_FORMAT(0x16, 0x7e1, "subt/suid"),
#if (VMS_ASMCODE)
/* unprivileged codes */
PAL_FORMAT(0x00, 0x0080, "bpt"),
PAL_FORMAT(0x00, 0x0081, "bugchk"),
PAL_FORMAT(0x00, 0x0082, "chme"),
PAL_FORMAT(0x00, 0x0083, "chmk"),
PAL_FORMAT(0x00, 0x0084, "chms"),
PAL_FORMAT(0x00, 0x0085, "chmu"),
PAL_FORMAT(0x00, 0x0086, "imb"),
PAL_FORMAT(0x00, 0x0087, "insqhil"),
PAL_FORMAT(0x00, 0x0088, "insqtil"),
PAL_FORMAT(0x00, 0x0089, "insqhiq"),
PAL_FORMAT(0x00, 0x008a, "insqtiq"),
PAL_FORMAT(0x00, 0x008b, "insquel"),
PAL_FORMAT(0x00, 0x008c, "insqueq"),
PAL_FORMAT(0x00, 0x008d, "insquel/d"),
PAL_FORMAT(0x00, 0x008e, "insqueq/d"),
PAL_FORMAT(0x00, 0x008f, "prober"),
PAL_FORMAT(0x00, 0x0090, "probew"),
PAL_FORMAT(0x00, 0x0091, "rd_ps"),
PAL_FORMAT(0x00, 0x0092, "rei"),
PAL_FORMAT(0x00, 0x0093, "remqhil"),
PAL_FORMAT(0x00, 0x0095, "remqhiq"),
PAL_FORMAT(0x00, 0x009e, "read_unq"),
PAL_FORMAT(0x00, 0x0094, "remqtil"),
PAL_FORMAT(0x00, 0x0096, "remqtiq"),
PAL_FORMAT(0x00, 0x0097, "remquel"),
PAL_FORMAT(0x00, 0x0098, "remqueq"),
PAL_FORMAT(0x00, 0x0099, "remquel/d"),
PAL_FORMAT(0x00, 0x009a, "remqueq/d"),
PAL_FORMAT(0x00, 0x009b, "swasten"),
PAL_FORMAT(0x00, 0x009c, "wr_ps_sw"),
PAL_FORMAT(0x00, 0x009d, "rscc"),
PAL_FORMAT(0x00, 0x009f, "write_unq"),
PAL_FORMAT(0x00, 0x00a0, "amovrr"),
PAL_FORMAT(0x00, 0x00a1, "amovrm"),
PAL_FORMAT(0x00, 0x00a2, "insqhilr"),
PAL_FORMAT(0x00, 0x00a3, "insqtilr"),
PAL_FORMAT(0x00, 0x00a4, "insqhiqr"),
PAL_FORMAT(0x00, 0x00a5, "insqtiqr"),
PAL_FORMAT(0x00, 0x00a6, "remqhilr"),
PAL_FORMAT(0x00, 0x00a7, "remqtilr"),
PAL_FORMAT(0x00, 0x00a8, "remqhiqr"),
PAL_FORMAT(0x00, 0x00a9, "remqtiqr"),
PAL_FORMAT(0x00, 0x00aa, "gentrap"),
/* privileged codes */
PAL_FORMAT(0x00, 0x0000, "halt"),
PAL_FORMAT(0x00, 0x0001, "cflush"),
PAL_FORMAT(0x00, 0x0002, "draina"),
PAL_FORMAT(0x00, 0x0003, "ldqp"),
PAL_FORMAT(0x00, 0x0004, "stqp"),
PAL_FORMAT(0x00, 0x0005, "swpctx"),
PAL_FORMAT(0x00, 0x0006, "mfpr_asn"),
PAL_FORMAT(0x00, 0x0007, "mtpr_asten"),
PAL_FORMAT(0x00, 0x0008, "mtpr_astsr"),
PAL_FORMAT(0x00, 0x000b, "mfpr_fen"),
PAL_FORMAT(0x00, 0x000c, "mtpr_fen"),
PAL_FORMAT(0x00, 0x000d, "mtpr_ipir"),
PAL_FORMAT(0x00, 0x000e, "mfpr_ipl"),
PAL_FORMAT(0x00, 0x000f, "mtpr_ipl"),
PAL_FORMAT(0x00, 0x0010, "mfpr_mces"),
PAL_FORMAT(0x00, 0x0011, "mtpr_mces"),
PAL_FORMAT(0x00, 0x0012, "mfpr_pcbb"),
PAL_FORMAT(0x00, 0x0013, "mfpr_prbr"),
PAL_FORMAT(0x00, 0x0014, "mtpr_prbr"),
PAL_FORMAT(0x00, 0x0015, "mfpr_ptbr"),
PAL_FORMAT(0x00, 0x0016, "mfpr_scbb"),
PAL_FORMAT(0x00, 0x0017, "mtpr_scbb"),
PAL_FORMAT(0x00, 0x0018, "mtpr_sirr"),
PAL_FORMAT(0x00, 0x0019, "mfpr_sisr"),
PAL_FORMAT(0x00, 0x001a, "mfpr_tbchk"),
PAL_FORMAT(0x00, 0x001b, "mtpr_tbia"),
PAL_FORMAT(0x00, 0x001c, "mtpr_tbiap"),
PAL_FORMAT(0x00, 0x001d, "mtpr_tbis"),
PAL_FORMAT(0x00, 0x001e, "mfpr_esp"),
PAL_FORMAT(0x00, 0x001f, "mtpr_esp"),
PAL_FORMAT(0x00, 0x0020, "mfpr_ssp"),
PAL_FORMAT(0x00, 0x0021, "mtpr_ssp"),
PAL_FORMAT(0x00, 0x0022, "mfpr_usp"),
PAL_FORMAT(0x00, 0x0023, "mtpr_usp"),
PAL_FORMAT(0x00, 0x0024, "mtpr_tbisd"),
PAL_FORMAT(0x00, 0x0025, "mtpr_tbisi"),
PAL_FORMAT(0x00, 0x0026, "mfpr_asten"),
PAL_FORMAT(0x00, 0x0027, "mfpr_astsr"),
PAL_FORMAT(0x00, 0x0029, "mfpr_vptb"),
PAL_FORMAT(0x00, 0x002a, "mtpr_vptb"),
PAL_FORMAT(0x00, 0x002b, "mtpr_perfmon"),
PAL_FORMAT(0x00, 0x002e, "mtpr_datfx"),
PAL_FORMAT(0x00, 0x003f, "mfpr_whami"),
#elif OSF_ASMCODE
/* unprivileged codes */
PAL_FORMAT(0x00, 0x0080, "bpt"),
PAL_FORMAT(0x00, 0x0081, "bugchk"),
PAL_FORMAT(0x00, 0x0083, "callsys"),
PAL_FORMAT(0x00, 0x0086, "imb"),
PAL_FORMAT(0x00, 0x009f, "wrunique"),
PAL_FORMAT(0x00, 0x009e, "rdunique"),
PAL_FORMAT(0x00, 0x00aa, "gentrap"),
/* privileged codes */
PAL_FORMAT(0x00, 0x0000, "halt"),
PAL_FORMAT(0x00, 0x0032, "rdval"),
PAL_FORMAT(0x00, 0x0030, "swpctx"),
PAL_FORMAT(0x00, 0x003c, "whami"),
PAL_FORMAT(0x00, 0x0037, "wrkgp"),
PAL_FORMAT(0x00, 0x002d, "wrvptptr"),
PAL_FORMAT(0x00, 0x0036, "rdps"),
PAL_FORMAT(0x00, 0x003d, "retsys"),
PAL_FORMAT(0x00, 0x0035, "swpipl"),
PAL_FORMAT(0x00, 0x0034, "wrent"),
PAL_FORMAT(0x00, 0x0038, "wrusp"),
PAL_FORMAT(0x00, 0x003a, "rdusp"),
PAL_FORMAT(0x00, 0x003f, "rti"),
PAL_FORMAT(0x00, 0x0033, "tbi"),
PAL_FORMAT(0x00, 0x002b, "wrfen"),
PAL_FORMAT(0x00, 0x0031, "wrval"),
#endif /* OSF_ASMCODE */
/* This is the old set we had before:
PAL_FORMAT(0x00, 0x0000, "halt"),
PAL_FORMAT(0x00, 0x0080, "bpt"), PAL_FORMAT(0x00, 0x0080, "bpt"),
PAL_FORMAT(0x00, 0x00aa, "gentrap"), PAL_FORMAT(0x00, 0x00aa, "gentrap"),
PAL_FORMAT(0x00, 0x009f, "wrunique"), PAL_FORMAT(0x00, 0x009f, "wrunique"),
@ -501,6 +620,8 @@ PAL_FORMAT(0x00, 0x0081,"bugchk"),
PAL_FORMAT(0x00, 0x0086, "imb"), PAL_FORMAT(0x00, 0x0086, "imb"),
PAL_FORMAT(0x00, 0x0083, "callsys"), PAL_FORMAT(0x00, 0x0083, "callsys"),
PAL_FORMAT(0x00, 0x009e, "rdunique"), PAL_FORMAT(0x00, 0x009e, "rdunique"),
*/
0 0
}; };