1990-01-12 16:55:50 +00:00
|
|
|
/*
|
|
|
|
* (c) copyright 1990 by the Vrije Universiteit, Amsterdam, The Netherlands.
|
|
|
|
* See the copyright notice in the ACK home directory, in the file "Copyright".
|
|
|
|
*/
|
1994-06-24 14:02:31 +00:00
|
|
|
#define RCSID3 "$Id$"
|
1990-01-17 16:05:00 +00:00
|
|
|
|
1990-01-12 16:55:50 +00:00
|
|
|
/*
|
|
|
|
* VAX-11 keywords
|
|
|
|
*/
|
|
|
|
|
2019-05-14 15:21:19 +00:00
|
|
|
{0, REG, 0, "r0"},
|
|
|
|
{0, REG, 1, "r1"},
|
|
|
|
{0, REG, 2, "r2"},
|
|
|
|
{0, REG, 3, "r3"},
|
|
|
|
{0, REG, 4, "r4"},
|
|
|
|
{0, REG, 5, "r5"},
|
|
|
|
{0, REG, 6, "r6"},
|
|
|
|
{0, REG, 7, "r7"},
|
|
|
|
{0, REG, 8, "r8"},
|
|
|
|
{0, REG, 9, "r9"},
|
|
|
|
{0, REG, 10, "r10"},
|
|
|
|
{0, REG, 11, "r11"},
|
|
|
|
{0, REG, 12, "r12"},
|
|
|
|
{0, REG, 12, "ap"},
|
|
|
|
{0, REG, 13, "r13"},
|
|
|
|
{0, REG, 13, "fp"},
|
|
|
|
{0, REG, 14, "r14"},
|
|
|
|
{0, REG, 14, "sp"},
|
|
|
|
{0, REG, 15, "r15"},
|
|
|
|
{0, REG, 15, "pc"},
|
1990-01-12 16:55:50 +00:00
|
|
|
|
|
|
|
/* For immediate mode, we need the size as specified by the instruction.
|
|
|
|
Ordinary operands are therefore encoded as _w, _b, and _l to indicate
|
|
|
|
size.
|
|
|
|
For now, immediate floating point and immediate values of size > 4 are not
|
|
|
|
implemented. _u is used for this.
|
1990-01-17 16:05:00 +00:00
|
|
|
The valu_t field is used for the opcode. Most opcodes take one byte.
|
|
|
|
The ones that don't take two bytes.
|
1990-01-12 16:55:50 +00:00
|
|
|
*/
|
|
|
|
|
|
|
|
/* integer arithmetic and logical instructions */
|
|
|
|
|
2019-05-14 15:21:19 +00:00
|
|
|
{0, OP2_w_w, 0x58, "adawi"},
|
|
|
|
{0, OP2_b_b, 0x80, "addb2"},
|
|
|
|
{0, OP3_b_b_b, 0x81, "addb3"},
|
|
|
|
{0, OP2_w_w, 0xa0, "addw2"},
|
|
|
|
{0, OP3_w_w_w, 0xa1, "addw3"},
|
|
|
|
{0, OP2_l_l, 0xc0, "addl2"},
|
|
|
|
{0, OP3_l_l_l, 0xc1, "addl3"},
|
|
|
|
{0, OP2_l_l, 0xd8, "adwc"},
|
|
|
|
{0, OP3_b_l_l, 0x78, "ashl"},
|
|
|
|
{0, OP3_b_u_u, 0x79, "ashq"},
|
|
|
|
{0, OP2_b_b, 0x8a, "bicb2"},
|
|
|
|
{0, OP3_b_b_b, 0x8b, "bicb3"},
|
|
|
|
{0, OP2_w_w, 0xaa, "bicw2"},
|
|
|
|
{0, OP3_w_w_w, 0xab, "bicw3"},
|
|
|
|
{0, OP2_l_l, 0xca, "bicl2"},
|
|
|
|
{0, OP3_l_l_l, 0xcb, "bicl3"},
|
|
|
|
{0, OP2_b_b, 0x88, "bisb2"},
|
|
|
|
{0, OP3_b_b_b, 0x89, "bisb3"},
|
|
|
|
{0, OP2_w_w, 0xa8, "bisw2"},
|
|
|
|
{0, OP3_w_w_w, 0xa9, "bisw3"},
|
|
|
|
{0, OP2_l_l, 0xc8, "bisl2"},
|
|
|
|
{0, OP3_l_l_l, 0xc9, "bisl3"},
|
|
|
|
{0, OP2_b_b, 0x93, "bitb"},
|
|
|
|
{0, OP2_w_w, 0xb3, "bitw"},
|
|
|
|
{0, OP2_l_l, 0xd3, "bitl"},
|
|
|
|
{0, OP1_X, 0x94|(1L<<16), "clrb"},
|
|
|
|
{0, OP1_X, 0xb4|(2L<<16), "clrw"},
|
|
|
|
{0, OP1_X, 0xd4|(4L<<16), "clrl"},
|
|
|
|
{0, OP1_u, 0x7c, "clrq"},
|
|
|
|
{0, OP1_u, 0x7cfd, "clro"},
|
|
|
|
{0, OP2_b_b, 0x91, "cmpb"},
|
|
|
|
{0, OP2_w_w, 0xb1, "cmpw"},
|
|
|
|
{0, OP2_l_l, 0xd1, "cmpl"},
|
|
|
|
{0, OP2_b_w, 0x99, "cvtbw"},
|
|
|
|
{0, OP2_b_l, 0x98, "cvtbl"},
|
|
|
|
{0, OP2_w_b, 0x33, "cvtwb"},
|
|
|
|
{0, OP2_w_l, 0x32, "cvtwl"},
|
|
|
|
{0, OP2_l_b, 0xf6, "cvtlb"},
|
|
|
|
{0, OP2_l_w, 0xf7, "cvtlw"},
|
|
|
|
{0, OP1_X, 0x97|(1L<<16), "decb"},
|
|
|
|
{0, OP1_X, 0xb7|(2L<<16), "decw"},
|
|
|
|
{0, OP1_X, 0xd7|(4L<<16), "decl"},
|
|
|
|
{0, OP2_b_b, 0x86, "divb2"},
|
|
|
|
{0, OP3_b_b_b, 0x87, "divb3"},
|
|
|
|
{0, OP2_w_w, 0xa6, "divw2"},
|
|
|
|
{0, OP3_w_w_w, 0xa7, "divw3"},
|
|
|
|
{0, OP2_l_l, 0xc6, "divl2"},
|
|
|
|
{0, OP3_l_l_l, 0xc7, "divl3"},
|
|
|
|
{0, OP4_l_u_l_l, 0x7b, "ediv"},
|
|
|
|
{0, OP4_l_l_l_u, 0x7a, "emul"},
|
|
|
|
{0, OP1_X, 0x96|(1L<<16), "incb"},
|
|
|
|
{0, OP1_X, 0xb6|(2L<<16), "incw"},
|
|
|
|
{0, OP1_X, 0xd6|(4L<<16), "incl"},
|
|
|
|
{0, OP2_b_b, 0x92, "mcomb"},
|
|
|
|
{0, OP2_w_w, 0xb2, "mcomw"},
|
|
|
|
{0, OP2_l_l, 0xd2, "mcoml"},
|
|
|
|
{0, OP2_b_b, 0x8e, "mnegb"},
|
|
|
|
{0, OP2_w_w, 0xae, "mnegw"},
|
|
|
|
{0, OP2_l_l, 0xce, "mnegl"},
|
|
|
|
{0, OP2_b_b, 0x90, "movb"},
|
|
|
|
{0, OP2_w_w, 0xb0, "movw"},
|
|
|
|
{0, OP2_l_l, 0xd0, "movl"},
|
|
|
|
{0, OP2_u_u, 0x7d, "movq"},
|
|
|
|
{0, OP2_u_u, 0x7dfd, "movo"},
|
|
|
|
{0, OP2_b_w, 0x9b, "movzbw"},
|
|
|
|
{0, OP2_b_l, 0x9a, "movzbl"},
|
|
|
|
{0, OP2_w_l, 0x3c, "movzwl"},
|
|
|
|
{0, OP2_b_b, 0x84, "mulb2"},
|
|
|
|
{0, OP3_b_b_b, 0x85, "mulb3"},
|
|
|
|
{0, OP2_w_w, 0xa4, "mulw2"},
|
|
|
|
{0, OP3_w_w_w, 0xa5, "mulw3"},
|
|
|
|
{0, OP2_l_l, 0xc4, "mull2"},
|
|
|
|
{0, OP3_l_l_l, 0xc5, "mull3"},
|
|
|
|
{0, OP1_X, 0xdd|(4L<<16), "pushl"},
|
|
|
|
{0, OP3_b_l_l, 0x9c, "rotl"},
|
|
|
|
{0, OP2_l_l, 0xd9, "sbwc"},
|
|
|
|
{0, OP2_b_b, 0x82, "subb2"},
|
|
|
|
{0, OP3_b_b_b, 0x83, "subb3"},
|
|
|
|
{0, OP2_w_w, 0xa2, "subw2"},
|
|
|
|
{0, OP3_w_w_w, 0xa3, "subw3"},
|
|
|
|
{0, OP2_l_l, 0xc2, "subl2"},
|
|
|
|
{0, OP3_l_l_l, 0xc3, "subl3"},
|
|
|
|
{0, OP1_X, 0x95|(1L<<16), "tstb"},
|
|
|
|
{0, OP1_X, 0xb5|(2L<<16), "tstw"},
|
|
|
|
{0, OP1_X, 0xd5|(4L<<16), "tstl"},
|
|
|
|
{0, OP2_b_b, 0x8c, "xorb2"},
|
|
|
|
{0, OP3_b_b_b, 0x8d, "xorb3"},
|
|
|
|
{0, OP2_w_w, 0xac, "xorw2"},
|
|
|
|
{0, OP3_w_w_w, 0xad, "xorw3"},
|
|
|
|
{0, OP2_l_l, 0xcc, "xorl2"},
|
|
|
|
{0, OP3_l_l_l, 0xcd, "xorl3"},
|
1990-01-12 16:55:50 +00:00
|
|
|
|
|
|
|
/* Address instructions */
|
|
|
|
|
2019-05-14 15:21:19 +00:00
|
|
|
{0, OP2_A_l, 0x9e, "movab"},
|
|
|
|
{0, OP2_A_l, 0x3e, "movaw"},
|
|
|
|
{0, OP2_A_l, 0xde, "moval"},
|
|
|
|
{0, OP2_A_l, 0xde, "movaf"},
|
|
|
|
{0, OP2_A_l, 0x7e, "movaq"},
|
|
|
|
{0, OP2_A_l, 0x7e, "movad"},
|
|
|
|
{0, OP2_A_l, 0x7e, "movag"},
|
|
|
|
{0, OP2_A_l, 0x7efd, "movah"},
|
|
|
|
{0, OP2_A_l, 0x7efd, "movao"},
|
|
|
|
{0, OP1_A, 0x9f, "pushab"},
|
|
|
|
{0, OP1_A, 0x3f, "pushaw"},
|
|
|
|
{0, OP1_A, 0xdf, "pushal"},
|
|
|
|
{0, OP1_A, 0xdf, "pushaf"},
|
|
|
|
{0, OP1_A, 0x7f, "pushaq"},
|
|
|
|
{0, OP1_A, 0x7f, "pushad"},
|
|
|
|
{0, OP1_A, 0x7f, "pushag"},
|
|
|
|
{0, OP1_A, 0x7ffd, "pushah"},
|
|
|
|
{0, OP1_A, 0x7ffd, "pushao"},
|
1990-01-12 16:55:50 +00:00
|
|
|
|
|
|
|
/* Variable length bit-field instructions */
|
|
|
|
|
2019-05-14 15:21:19 +00:00
|
|
|
{0, OP4_l_b_V_l, 0xec, "cmpv"},
|
|
|
|
{0, OP4_l_b_V_l, 0xed, "cmpzv"},
|
|
|
|
{0, OP4_l_b_V_l, 0xee, "extv"},
|
|
|
|
{0, OP4_l_b_V_l, 0xef, "extzv"},
|
|
|
|
{0, OP4_l_b_V_l, 0xeb, "ffc"},
|
|
|
|
{0, OP4_l_b_V_l, 0xea, "ffs"},
|
|
|
|
{0, OP4_l_l_b_V, 0xf0, "insv"},
|
1990-01-12 16:55:50 +00:00
|
|
|
|
|
|
|
/* Control instructions */
|
|
|
|
|
2019-05-14 15:21:19 +00:00
|
|
|
{0, OP4_b_b_b_Bw, 0x9d, "acbb"},
|
|
|
|
{0, OP4_w_w_w_Bw, 0x3d, "acbw"},
|
|
|
|
{0, OP4_l_l_l_Bw, 0xf1, "acbl"},
|
|
|
|
{0, OP4_u_u_u_Bw, 0x4f, "acbf"},
|
|
|
|
{0, OP4_u_u_u_Bw, 0x6f, "acbd"},
|
|
|
|
{0, OP4_u_u_u_Bw, 0x4ffd, "acbg"},
|
|
|
|
{0, OP4_u_u_u_Bw, 0x6ffd, "acbh"},
|
|
|
|
{0, OP3_l_l_Bb, 0xf3, "aobleq"},
|
|
|
|
{0, OP3_l_l_Bb, 0xf2, "aoblss"},
|
|
|
|
{0, OP1_BX, 0x14|(1L<<16), "bgtr"},
|
|
|
|
{0, OP1_BX, 0x15|(1L<<16), "bleq"},
|
|
|
|
{0, OP1_BX, 0x12|(1L<<16), "bneq"},
|
|
|
|
{0, OP1_BX, 0x12|(1L<<16), "bnequ"},
|
|
|
|
{0, OP1_BX, 0x13|(1L<<16), "beql"},
|
|
|
|
{0, OP1_BX, 0x13|(1L<<16), "beqlu"},
|
|
|
|
{0, OP1_BX, 0x18|(1L<<16), "bgeq"},
|
|
|
|
{0, OP1_BX, 0x19|(1L<<16), "blss"},
|
|
|
|
{0, OP1_BX, 0x1a|(1L<<16), "bgtru"},
|
|
|
|
{0, OP1_BX, 0x1b|(1L<<16), "blequ"},
|
|
|
|
{0, OP1_BX, 0x1c|(1L<<16), "bvc"},
|
|
|
|
{0, OP1_BX, 0x1d|(1L<<16), "bvs"},
|
|
|
|
{0, OP1_BX, 0x1e|(1L<<16), "bgequ"},
|
|
|
|
{0, OP1_BX, 0x1e|(1L<<16), "bcc"},
|
|
|
|
{0, OP1_BX, 0x1f|(1L<<16), "blssu"},
|
|
|
|
{0, OP1_BX, 0x1f|(1L<<16), "bcs"},
|
|
|
|
{0, OP3_l_V_Bb, 0xe0, "bbs"},
|
|
|
|
{0, OP3_l_V_Bb, 0xe1, "bbc"},
|
|
|
|
{0, OP3_l_V_Bb, 0xe2, "bbss"},
|
|
|
|
{0, OP3_l_V_Bb, 0xe3, "bbcs"},
|
|
|
|
{0, OP3_l_V_Bb, 0xe4, "bbsc"},
|
|
|
|
{0, OP3_l_V_Bb, 0xe5, "bbcc"},
|
|
|
|
{0, OP3_l_V_Bb, 0xe6, "bbssi"},
|
|
|
|
{0, OP3_l_V_Bb, 0xe7, "bbcci"},
|
|
|
|
{0, OP2_l_Bb, 0xe8, "blbs"},
|
|
|
|
{0, OP2_l_Bb, 0xe9, "blbc"},
|
|
|
|
{0, OP1_Be, 0x14, "jgtr"},
|
|
|
|
{0, OP1_Be, 0x15, "jleq"},
|
|
|
|
{0, OP1_Be, 0x12, "jneq"},
|
|
|
|
{0, OP1_Be, 0x12, "jnequ"},
|
|
|
|
{0, OP1_Be, 0x13, "jeql"},
|
|
|
|
{0, OP1_Be, 0x13, "jeqlu"},
|
|
|
|
{0, OP1_Be, 0x18, "jgeq"},
|
|
|
|
{0, OP1_Be, 0x19, "jlss"},
|
|
|
|
{0, OP1_Be, 0x1a, "jgtru"},
|
|
|
|
{0, OP1_Be, 0x1b, "jlequ"},
|
|
|
|
{0, OP1_Be, 0x1c, "jvc"},
|
|
|
|
{0, OP1_Be, 0x1d, "jvs"},
|
|
|
|
{0, OP1_Be, 0x1e, "jgequ"},
|
|
|
|
{0, OP1_Be, 0x1e, "jcc"},
|
|
|
|
{0, OP1_Be, 0x1f, "jlssu"},
|
|
|
|
{0, OP1_Be, 0x1f, "jcs"},
|
|
|
|
{0, OP2_l_Be, 0xe8, "jlbs"},
|
|
|
|
{0, OP2_l_Be, 0xe9, "jlbc"},
|
|
|
|
{0, OP3_l_V_Be, 0xe0, "jbs"},
|
|
|
|
{0, OP3_l_V_Be, 0xe1, "jbc"},
|
|
|
|
{0, OP3_l_V_Be, 0xe2, "jbss"},
|
|
|
|
{0, OP3_l_V_Be, 0xe3, "jbcs"},
|
|
|
|
{0, OP3_l_V_Be, 0xe4, "jbsc"},
|
|
|
|
{0, OP3_l_V_Be, 0xe5, "jbcc"},
|
|
|
|
{0, OP3_l_V_Be, 0xe6, "jbssi"},
|
|
|
|
{0, OP3_l_V_Be, 0xe7, "jbcci"},
|
|
|
|
{0, OP1_Bx, 0x11, "br"},
|
|
|
|
{0, OP1_BX, 0x11|(1L<<16), "brb"},
|
|
|
|
{0, OP1_BX, 0x31|(2L<<16), "brw"},
|
|
|
|
{0, OP1_Be, 0x11, "jbr"},
|
|
|
|
{0, OP1_Bx, 0x10, "bsb"},
|
|
|
|
{0, OP1_BX, 0x10|(1L<<16), "bsbb"},
|
|
|
|
{0, OP1_BX, 0x30|(2L<<16), "bsbw"},
|
|
|
|
{0, CASE_X_X_X, 0x8f|(1L<<16), "caseb"},
|
|
|
|
{0, CASE_X_X_X, 0xaf|(2L<<16), "casew"},
|
|
|
|
{0, CASE_X_X_X, 0xcf|(4L<<16), "casel"},
|
|
|
|
{0, OP1_A, 0x17, "jmp"},
|
|
|
|
{0, OP1_A, 0x16, "jsb"},
|
|
|
|
{0, OP0, 0x05, "rsb"},
|
|
|
|
{0, OP2_l_Bb, 0xf4, "sobgeq"},
|
|
|
|
{0, OP2_l_Bb, 0xf5, "sobgtr"},
|
1990-01-12 16:55:50 +00:00
|
|
|
|
|
|
|
/* Procedure call instructions */
|
|
|
|
|
2019-05-14 15:21:19 +00:00
|
|
|
{0, OP2_A_A, 0xfa, "callg"},
|
|
|
|
{0, OP2_l_A, 0xfb, "calls"},
|
|
|
|
{0, OP0, 0x04, "ret"},
|
1990-01-12 16:55:50 +00:00
|
|
|
|
|
|
|
/* Miscellaneous instructions */
|
|
|
|
|
2019-05-14 15:21:19 +00:00
|
|
|
{0, OP1_X, 0xb9|(2L<<16), "bicpsw"},
|
|
|
|
{0, OP1_X, 0xb8|(2L<<16), "bispsw"},
|
|
|
|
{0, OP0, 0x03, "bpt"},
|
|
|
|
{0, OP0, 0x00, "halt"},
|
|
|
|
{0, OP6_l_l_l_l_l_l,0x0a, "index"},
|
|
|
|
{0, OP1_X, 0xdc|(4L<<16), "movpsl"},
|
|
|
|
{0, OP0, 0x01, "nop"},
|
|
|
|
{0, OP1_X, 0xba|(2L<<16), "popr"},
|
|
|
|
{0, OP1_X, 0xbb|(2L<<16), "pushr"},
|
|
|
|
{0, OP0, 0xfc, "xfc"},
|
1990-01-12 16:55:50 +00:00
|
|
|
|
|
|
|
/* Queue instructions */
|
|
|
|
|
2019-05-14 15:21:19 +00:00
|
|
|
{0, OP2_A_A, 0x5c, "insqhi"},
|
|
|
|
{0, OP2_A_A, 0x5d, "insqti"},
|
|
|
|
{0, OP2_A_A, 0x0e, "insque"},
|
|
|
|
{0, OP2_A_l, 0x5e, "remqhi"},
|
|
|
|
{0, OP2_A_l, 0x5f, "remqti"},
|
|
|
|
{0, OP2_A_l, 0x0f, "remque"},
|
1990-01-12 16:55:50 +00:00
|
|
|
|
|
|
|
/* Floating point instructions */
|
|
|
|
|
2019-05-14 15:21:19 +00:00
|
|
|
{0, OP2_u_u, 0x40, "addf2"},
|
|
|
|
{0, OP3_u_u_u, 0x41, "addf3"},
|
|
|
|
{0, OP2_u_u, 0x60, "addd2"},
|
|
|
|
{0, OP3_u_u_u, 0x61, "addd3"},
|
|
|
|
{0, OP2_u_u, 0x40fd, "addg2"},
|
|
|
|
{0, OP3_u_u_u, 0x41fd, "addg3"},
|
|
|
|
{0, OP2_u_u, 0x60fd, "addh2"},
|
|
|
|
{0, OP3_u_u_u, 0x61fd, "addh3"},
|
|
|
|
{0, OP1_u, 0xd4, "clrf"},
|
|
|
|
{0, OP1_u, 0x7c, "clrd"},
|
|
|
|
{0, OP1_u, 0x7c, "clrg"},
|
|
|
|
{0, OP1_u, 0x7cfd, "clrh"},
|
|
|
|
{0, OP2_u_u, 0x51, "cmpf"},
|
|
|
|
{0, OP2_u_u, 0x71, "cmpd"},
|
|
|
|
{0, OP2_u_u, 0x51fd, "cmpg"},
|
|
|
|
{0, OP2_u_u, 0x71fd, "cmph"},
|
|
|
|
{0, OP2_b_u, 0x4c, "cvtbf"},
|
|
|
|
{0, OP2_b_u, 0x6c, "cvtbd"},
|
|
|
|
{0, OP2_b_u, 0x4cfd, "cvtbg"},
|
|
|
|
{0, OP2_b_u, 0x6cfd, "cvtbh"},
|
|
|
|
{0, OP2_w_u, 0x4d, "cvtwf"},
|
|
|
|
{0, OP2_w_u, 0x6d, "cvtwd"},
|
|
|
|
{0, OP2_w_u, 0x4dfd, "cvtwg"},
|
|
|
|
{0, OP2_w_u, 0x6dfd, "cvtwh"},
|
|
|
|
{0, OP2_l_u, 0x4e, "cvtlf"},
|
|
|
|
{0, OP2_l_u, 0x6e, "cvtld"},
|
|
|
|
{0, OP2_l_u, 0x4efd, "cvtlg"},
|
|
|
|
{0, OP2_l_u, 0x6efd, "cvtlh"},
|
|
|
|
{0, OP2_u_b, 0x48, "cvtfb"},
|
|
|
|
{0, OP2_u_b, 0x68, "cvtdb"},
|
|
|
|
{0, OP2_u_b, 0x48fd, "cvtgb"},
|
|
|
|
{0, OP2_u_b, 0x68fd, "cvthb"},
|
|
|
|
{0, OP2_u_w, 0x49, "cvtfw"},
|
|
|
|
{0, OP2_u_w, 0x69, "cvtdw"},
|
|
|
|
{0, OP2_u_w, 0x49fd, "cvtgw"},
|
|
|
|
{0, OP2_u_w, 0x69fd, "cvthw"},
|
|
|
|
{0, OP2_u_l, 0x4a, "cvtfl"},
|
|
|
|
{0, OP2_u_l, 0x6a, "cvtdl"},
|
|
|
|
{0, OP2_u_l, 0x4afd, "cvtgl"},
|
|
|
|
{0, OP2_u_l, 0x6afd, "cvthl"},
|
|
|
|
{0, OP2_u_l, 0x4b, "cvtrfl"},
|
|
|
|
{0, OP2_u_l, 0x6b, "cvtrdl"},
|
|
|
|
{0, OP2_u_l, 0x4bfd, "cvtrgl"},
|
|
|
|
{0, OP2_u_l, 0x6bfd, "cvtrhl"},
|
|
|
|
{0, OP2_u_u, 0x56, "cvtfd"},
|
|
|
|
{0, OP2_u_u, 0x99fd, "cvtfg"},
|
|
|
|
{0, OP2_u_u, 0x98fd, "cvtfh"},
|
|
|
|
{0, OP2_u_u, 0x76, "cvtdf"},
|
|
|
|
{0, OP2_u_u, 0x32fd, "cvtdh"},
|
|
|
|
{0, OP2_u_u, 0x33fd, "cvtgf"},
|
|
|
|
{0, OP2_u_u, 0x56fd, "cvtgh"},
|
|
|
|
{0, OP2_u_u, 0xf6fd, "cvthf"},
|
|
|
|
{0, OP2_u_u, 0xf7fd, "cvthd"},
|
|
|
|
{0, OP2_u_u, 0x76fd, "cvthg"},
|
|
|
|
{0, OP2_u_u, 0x46, "divf2"},
|
|
|
|
{0, OP3_u_u_u, 0x47, "divf3"},
|
|
|
|
{0, OP2_u_u, 0x66, "divd2"},
|
|
|
|
{0, OP3_u_u_u, 0x67, "divd3"},
|
|
|
|
{0, OP2_u_u, 0x46fd, "divg2"},
|
|
|
|
{0, OP3_u_u_u, 0x47fd, "divg3"},
|
|
|
|
{0, OP2_u_u, 0x66fd, "divh2"},
|
|
|
|
{0, OP3_u_u_u, 0x67fd, "divh3"},
|
|
|
|
{0, OP5_u_b_u_l_u, 0x54, "emodf"},
|
|
|
|
{0, OP5_u_b_u_l_u, 0x74, "emodd"},
|
|
|
|
{0, OP5_u_w_u_l_u, 0x54fd, "emodg"},
|
|
|
|
{0, OP5_u_w_u_l_u, 0x74fd, "emodh"},
|
|
|
|
{0, OP2_u_u, 0x52, "mnegf"},
|
|
|
|
{0, OP2_u_u, 0x72, "mnegd"},
|
|
|
|
{0, OP2_u_u, 0x52fd, "mnegg"},
|
|
|
|
{0, OP2_u_u, 0x72fd, "mnegh"},
|
|
|
|
{0, OP2_u_u, 0x50, "movf"},
|
|
|
|
{0, OP2_u_u, 0x70, "movd"},
|
|
|
|
{0, OP2_u_u, 0x50fd, "movg"},
|
|
|
|
{0, OP2_u_u, 0x70fd, "movh"},
|
|
|
|
{0, OP2_u_u, 0x44, "mulf2"},
|
|
|
|
{0, OP3_u_u_u, 0x45, "mulf3"},
|
|
|
|
{0, OP2_u_u, 0x64, "muld2"},
|
|
|
|
{0, OP3_u_u_u, 0x65, "muld3"},
|
|
|
|
{0, OP2_u_u, 0x44fd, "mulg2"},
|
|
|
|
{0, OP3_u_u_u, 0x45fd, "mulg3"},
|
|
|
|
{0, OP2_u_u, 0x64fd, "mulh2"},
|
|
|
|
{0, OP3_u_u_u, 0x65fd, "mulh3"},
|
|
|
|
{0, OP3_u_w_A, 0x55, "polyf"},
|
|
|
|
{0, OP3_u_w_A, 0x75, "polyd"},
|
|
|
|
{0, OP3_u_w_A, 0x55fd, "polyg"},
|
|
|
|
{0, OP3_u_w_A, 0x75fd, "polyh"},
|
|
|
|
{0, OP2_u_u, 0x42, "subf2"},
|
|
|
|
{0, OP3_u_u_u, 0x43, "subf3"},
|
|
|
|
{0, OP2_u_u, 0x62, "subd2"},
|
|
|
|
{0, OP3_u_u_u, 0x63, "subd3"},
|
|
|
|
{0, OP2_u_u, 0x42fd, "subg2"},
|
|
|
|
{0, OP3_u_u_u, 0x43fd, "subg3"},
|
|
|
|
{0, OP2_u_u, 0x62fd, "subh2"},
|
|
|
|
{0, OP3_u_u_u, 0x63fd, "subh3"},
|
|
|
|
{0, OP1_u, 0x53, "tstf"},
|
|
|
|
{0, OP1_u, 0x73, "tstd"},
|
|
|
|
{0, OP1_u, 0x53fd, "tstg"},
|
|
|
|
{0, OP1_u, 0x73fd, "tsth"},
|
1990-01-12 16:55:50 +00:00
|
|
|
|
|
|
|
/* Character string instructions */
|
|
|
|
|
2019-05-14 15:21:19 +00:00
|
|
|
{0, OP3_w_A_A, 0x29, "cmpc3"},
|
|
|
|
{0, OP5_w_A_b_w_A, 0x2d, "cmpc5"},
|
|
|
|
{0, OP3_b_w_A, 0x3a, "locc"},
|
|
|
|
{0, OP4_w_A_w_A, 0x39, "matchc"},
|
|
|
|
{0, OP3_w_A_A, 0x28, "movc3"},
|
|
|
|
{0, OP5_w_A_b_w_A, 0x2c, "movc5"},
|
|
|
|
{0, OP6_w_A_b_A_w_A,0x2e, "movtc"},
|
|
|
|
{0, OP6_w_A_b_A_w_A,0x2f, "movtuc"},
|
|
|
|
{0, OP4_w_A_A_b, 0x2a, "scanc"},
|
|
|
|
{0, OP3_b_w_A, 0x3b, "skpc"},
|
|
|
|
{0, OP4_w_A_A_b, 0x2b, "spanc"},
|
1990-01-12 16:55:50 +00:00
|
|
|
|
|
|
|
/* Cyclic redundancy check instructions */
|
|
|
|
|
2019-05-14 15:21:19 +00:00
|
|
|
{0, OP4_A_l_w_A, 0x0b, "crc"},
|
1990-01-12 16:55:50 +00:00
|
|
|
|
|
|
|
/* Decimal string instructions */
|
|
|
|
|
2019-05-14 15:21:19 +00:00
|
|
|
{0, OP4_w_A_w_A, 0x20, "addp4"},
|
|
|
|
{0, OP6_w_A_w_A_w_A,0x21, "addp6"},
|
|
|
|
{0, OP6_b_w_A_b_w_A,0xf8, "ashp"},
|
|
|
|
{0, OP3_w_A_A, 0x35, "cmpp3"},
|
|
|
|
{0, OP4_w_A_w_A, 0x37, "cmpp4"},
|
|
|
|
{0, OP3_l_w_A, 0xf9, "cvtlp"},
|
|
|
|
{0, OP3_w_A_l, 0x36, "cvtpl"},
|
|
|
|
{0, OP4_w_A_w_A, 0x08, "cvtps"},
|
|
|
|
{0, OP5_w_A_A_w_A, 0x24, "cvtpt"},
|
|
|
|
{0, OP4_w_A_w_A, 0x09, "cvtsp"},
|
|
|
|
{0, OP5_w_A_A_w_A, 0x26, "cvttp"},
|
|
|
|
{0, OP6_w_A_w_A_w_A,0x27, "divp"},
|
|
|
|
{0, OP3_w_A_A, 0x34, "movp"},
|
|
|
|
{0, OP6_w_A_w_A_w_A,0x25, "mulp"},
|
|
|
|
{0, OP4_w_A_w_A, 0x22, "subp4"},
|
|
|
|
{0, OP6_w_A_w_A_w_A,0x23, "subp6"},
|
1990-01-12 16:55:50 +00:00
|
|
|
|
|
|
|
/* Edit instruction */
|
|
|
|
|
2019-05-14 15:21:19 +00:00
|
|
|
{0, OP4_w_A_A_A, 0x38, "editpc"},
|
1990-01-12 16:55:50 +00:00
|
|
|
|
|
|
|
/* Other VAX-11 instructions */
|
|
|
|
|
1990-01-17 16:05:00 +00:00
|
|
|
/* BSD 4.3 adb has a different opinion of the bugw and bugl instructions:
|
|
|
|
it thinks that an addressing mode byte is required. However, according
|
|
|
|
to the VAX-11 Architecture Reference Manual, Revision 6.1, 1982, the
|
|
|
|
access type is b, which means that the operand is a branch displacement.
|
|
|
|
*/
|
2019-05-14 15:21:19 +00:00
|
|
|
{0, OP1_BX, 0xfeff|(2L<<16),"bugw"},
|
|
|
|
{0, OP1_BX, 0xfdff|(4L<<16),"bugl"},
|
|
|
|
|
|
|
|
{0, OP3_b_w_A, 0x0c, "prober"},
|
|
|
|
{0, OP3_b_w_A, 0x0d, "probew"},
|
|
|
|
|
|
|
|
{0, OP0, 0x02, "rei"},
|
|
|
|
{0, OP1_X, 0xbc|(2L<<16), "chmk"},
|
|
|
|
{0, OP1_X, 0xbd|(2L<<16), "chme"},
|
|
|
|
{0, OP1_X, 0xbe|(2L<<16), "chms"},
|
|
|
|
{0, OP1_X, 0xbf|(2L<<16), "chmu"},
|
|
|
|
|
|
|
|
{0, OP0, 0x06, "ldpctx"},
|
|
|
|
{0, OP0, 0x07, "svpctx"},
|
|
|
|
{0, OP2_l_l, 0xda, "mtpr"},
|
|
|
|
{0, OP2_l_l, 0xdb, "mfpr"},
|