URL
https://opencores.org/ocsvn/or1k/or1k/trunk
Subversion Repositories or1k
[/] [or1k/] [trunk/] [insight/] [utils/] [amd-udi/] [include/] [opcodes.h] - Rev 578
Go to most recent revision | Compare with Previous | Blame | View Log
/* @(#)opcodes.h 5.19 93/08/10 17:49:11, Srini,AMD */ /****************************************************************************** * Copyright 1991 Advanced Micro Devices, Inc. * * This software is the property of Advanced Micro Devices, Inc (AMD) which * specifically grants the user the right to modify, use and distribute this * software provided this notice is not removed or altered. All other rights * are reserved by AMD. * * AMD MAKES NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO THIS * SOFTWARE. IN NO EVENT SHALL AMD BE LIABLE FOR INCIDENTAL OR CONSEQUENTIAL * DAMAGES IN CONNECTION WITH OR ARISING FROM THE FURNISHING, PERFORMANCE, OR * USE OF THIS SOFTWARE. * * So that all may benefit from your experience, please report any problems * or suggestions about this software to the 29K Technical Support Center at * 800-29-29-AMD (800-292-9263) in the USA, or 0800-89-1131 in the UK, or * 0031-11-1129 in Japan, toll free. The direct dial number is 512-462-4118. * * Advanced Micro Devices, Inc. * 29K Support Products * Mail Stop 573 * 5900 E. Ben White Blvd. * Austin, TX 78741 * 800-292-9263 ***************************************************************************** * Engineer: Srini Subramanian. ***************************************************************************** ** ** This file gives the definitions of opcodes in the Am29000 ** processor. ** ** This file defines the opcodes used in the Am29000 processor. ** The opcodes here are defined as the first eight-bit field in ** the (32-bit) instruction. Note that many instructions are ** defined with a "mode bit" in the least significant bit of the ** opcode field. In this definition, instructions with ** different mode bits are treated as different instructions. ** This allows consistent processing of eight bit opcodes. ** ** For instance, AND with the mode bit set to zero (M=0) defines ** the third eight bit field in the instruction word as being ** the content of a register. When M=1 the content of the third ** field is taken to be an immediate value, zero-extended to 32 ** bits. ** ** The #define statements below will treat AND as two different ** instructions called AND0 and AND1. As you might suspect, ** AND0 is describes the opcode AND when M=0 and AND1 describes ** the opcode AND where M=1. ** ** Note1: Wherever the name of an opcode as listed in the User's ** Manual confilcts with either a reserved keyword, or a ** previously defined opcode, "_op" is appended to the ** name. ** ** Note2: These opcodes are sorted in numerical order. ** ** Note3: Opcodes are broken up into groups of 16 (16#n0# to ** 16#nF#). ** ** Note4: When no opcode is defined, a variable of the name ** illegal_nn is declared in that space. The value of ** "nn" is the number of the opcode in hexadecimal. ** ***************************************************************************** */ #ifndef _OPCODES_H_INCLUDED_ #define _OPCODES_H_INCLUDED_ #define ILLEGAL_00 0x00 #define CONSTN 0x01 #define CONSTH 0x02 #define CONST 0x03 #define MTSRIM 0x04 #define CONSTHZ 0x05 #define LOADL0 0x06 #define LOADL1 0x07 #define CLZ0 0x08 #define CLZ1 0x09 #define EXBYTE0 0x0A #define EXBYTE1 0x0B #define INBYTE0 0x0C #define INBYTE1 0x0D #define STOREL0 0x0E #define STOREL1 0x0F #define ADDS0 0x10 #define ADDS1 0x11 #define ADDU0 0x12 #define ADDU1 0x13 #define ADD0 0x14 #define ADD1 0x15 #define LOAD0 0x16 #define LOAD1 0x17 #define ADDCS0 0x18 #define ADDCS1 0x19 #define ADDCU0 0x1A #define ADDCU1 0x1B #define ADDC0 0x1C #define ADDC1 0x1D #define STORE0 0x1E #define STORE1 0x1F #define SUBS0 0x20 #define SUBS1 0x21 #define SUBU0 0x22 #define SUBU1 0x23 #define SUB0 0x24 #define SUB1 0x25 #define LOADSET0 0x26 #define LOADSET1 0x27 #define SUBCS0 0x28 #define SUBCS1 0x29 #define SUBCU0 0x2A #define SUBCU1 0x2B #define SUBC0 0x2C #define SUBC1 0x2D #define CPBYTE0 0x2E #define CPBYTE1 0x2F #define SUBRS0 0x30 #define SUBRS1 0x31 #define SUBRU0 0x32 #define SUBRU1 0x33 #define SUBR0 0x34 #define SUBR1 0x35 #define LOADM0 0x36 #define LOADM1 0x37 #define SUBRCS0 0x38 #define SUBRCS1 0x39 #define SUBRCU0 0x3A #define SUBRCU1 0x3B #define SUBRC0 0x3C #define SUBRC1 0x3D #define STOREM0 0x3E #define STOREM1 0x3F #define CPLT0 0x40 #define CPLT1 0x41 #define CPLTU0 0x42 #define CPLTU1 0x43 #define CPLE0 0x44 #define CPLE1 0x45 #define CPLEU0 0x46 #define CPLEU1 0x47 #define CPGT0 0x48 #define CPGT1 0x49 #define CPGTU0 0x4A #define CPGTU1 0x4B #define CPGE0 0x4C #define CPGE1 0x4D #define CPGEU0 0x4E #define CPGEU1 0x4F #define ASLT0 0x50 #define ASLT1 0x51 #define ASLTU0 0x52 #define ASLTU1 0x53 #define ASLE0 0x54 #define ASLE1 0x55 #define ASLEU0 0x56 #define ASLEU1 0x57 #define ASGT0 0x58 #define ASGT1 0x59 #define ASGTU0 0x5A #define ASGTU1 0x5B #define ASGE0 0x5C #define ASGE1 0x5D #define ASGEU0 0x5E #define ASGEU1 0x5F #define CPEQ0 0x60 #define CPEQ1 0x61 #define CPNEQ0 0x62 #define CPNEQ1 0x63 #define MUL0 0x64 #define MUL1 0x65 #define MULL0 0x66 #define MULL1 0x67 #define DIV0_OP0 0x68 #define DIV0_OP1 0x69 #define DIV_OP0 0x6A #define DIV_OP1 0x6B #define DIVL0 0x6C #define DIVL1 0x6D #define DIVREM0 0x6E #define DIVREM1 0x6F #define ASEQ0 0x70 #define ASEQ1 0x71 #define ASNEQ0 0x72 #define ASNEQ1 0x73 #define MULU0 0x74 #define MULU1 0x75 #define ILLEGAL_76 0x76 #define ILLEGAL_77 0x77 #define INHW0 0x78 #define INHW1 0x79 #define EXTRACT0 0x7A #define EXTRACT1 0x7B #define EXHW0 0x7C #define EXHW1 0x7D #define EXHWS 0x7E #define ILLEGAL_7F 0x7F #define SLL0 0x80 #define SLL1 0x81 #define SRL0 0x82 #define SRL1 0x83 #define ILLEGAL_84 0x84 #define ILLEGAL_85 0x85 #define SRA0 0x86 #define SRA1 0x87 #define IRET 0x88 #define HALT_OP 0x89 #define ILLEGAL_8A 0x8A #define ILLEGAL_8B 0x8B #define IRETINV 0x8C #define ILLEGAL_8D 0x8D #define ILLEGAL_8E 0x8E #define ILLEGAL_8F 0x8F #define AND_OP0 0x90 #define AND_OP1 0x91 #define OR_OP0 0x92 #define OR_OP1 0x93 #define XOR_OP0 0x94 #define XOR_OP1 0x95 #define XNOR0 0x96 #define XNOR1 0x97 #define NOR0 0x98 #define NOR1 0x99 #define NAND0 0x9A #define NAND1 0x9B #define ANDN0 0x9C #define ANDN1 0x9D #define SETIP 0x9E #define INV 0x9F #define JMP0 0xA0 #define JMP1 0xA1 #define ILLEGAL_A2 0xA2 #define ILLEGAL_A3 0xA3 #define JMPF0 0xA4 #define JMPF1 0xA5 #define ILLEGAL_A6 0xA6 #define ILLEGAL_A7 0xA7 #define CALL0 0xA8 #define CALL1 0xA9 #define ORN_OP0 0xAA #define ORN_OP1 0xAB #define JMPT0 0xAC #define JMPT1 0xAD #define ILLEGAL_AE 0xAE #define ILLEGAL_AF 0xAF #define ILLEGAL_B0 0xB0 #define ILLEGAL_B1 0xB1 #define ILLEGAL_B2 0xB2 #define ILLEGAL_B3 0xB3 #define JMPFDEC0 0xB4 #define JMPFDEC1 0xB5 #define MFTLB 0xB6 #define ILLEGAL_B7 0xB7 #define ILLEGAL_B8 0xB8 #define ILLEGAL_B9 0xB9 #define ILLEGAL_BA 0xBA #define ILLEGAL_BB 0xBB #define ILLEGAL_BC 0xBC #define ILLEGAL_BD 0xBD #define MTTLB 0xBE #define ILLEGAL_BF 0xBF #define JMPI 0xC0 #define ILLEGAL_C1 0xC1 #define ILLEGAL_C2 0xC2 #define ILLEGAL_C3 0xC3 #define JMPFI 0xC4 #define ILLEGAL_C5 0xC5 #define MFSR 0xC6 #define ILLEGAL_C7 0xC7 #define CALLI 0xC8 #define ILLEGAL_C9 0xC9 #define ILLEGAL_CA 0xCA #define ILLEGAL_CB 0xCB #define JMPTI 0xCC #define ILLEGAL_CD 0xCD #define MTSR 0xCE #define ILLEGAL_CF 0xCF #define ILLEGAL_D0 0xD0 #define ILLEGAL_D1 0xD1 #define ILLEGAL_D2 0xD2 #define ILLEGAL_D3 0xD3 #define ILLEGAL_D4 0xD4 #define ILLEGAL_D5 0xD5 #define ILLEGAL_D6 0xD6 #define EMULATE 0xD7 #define ILLEGAL_D8 0xD8 #define ILLEGAL_D9 0xD9 #define ILLEGAL_DA 0xDA #define ILLEGAL_DB 0xDB #define ILLEGAL_DC 0xDC #define ILLEGAL_DD 0xDD #define MULTM 0xDE #define MULTMU 0xDF #define MULTIPLY 0xE0 #define DIVIDE 0xE1 #define MULTIPLU 0xE2 #define DIVIDU 0xE3 #define CONVERT 0xE4 #define SQRT 0xE5 #define CLASS 0xE6 #define ILLEGAL_E7 0xE7 #define ILLEGAL_E8 0xE8 #define ILLEGAL_E9 0xE9 #define FEQ 0xEA #define DEQ 0xEB #define FGT 0xEC #define DGT 0xED #define FGE 0xEE #define DGE 0xEF #define FADD 0xF0 #define DADD 0xF1 #define FSUB 0xF2 #define DSUB 0xF3 #define FMUL 0xF4 #define DMUL 0xF5 #define FDIV 0xF6 #define DDIV 0xF7 #define ILLEGAL_F8 0xF8 #define FDMUL 0xF9 #define ILLEGAL_FA 0xFA #define ILLEGAL_FB 0xFB #define ILLEGAL_FC 0xFC #define ILLEGAL_FD 0xFD #define ILLEGAL_FE 0xFE #define ILLEGAL_FF 0xFF /* External declarations of variable defined in opcodes.c */ extern char *opcode_name[]; extern char *reg[]; extern char *spreg[]; #endif /* _OPCODES_H_INCLUDED_ */
Go to most recent revision | Compare with Previous | Blame | View Log