# # Copyright (c) 1982 Regents of the University of California # @(#)instrs 4.3 %G% # # Robert R. Henry # University of California, Berkeley # Berkeley, CA # February 6, 1982 # # Instruction definitions for the VAX # This file is processed by an awk script, and shared between: # as assembler # c2 optimizer # adb debugger # sdb symbolic debugger # # The awk script reads this file, and produces macros understood # by the appropriate consumer. The awk script determines how # to interpret the file by looking for a line of the form: # FLAVOR AS # FLAVOR C2 # and proceeding accordingly. This line should be prepended to # the front of this file. # # Lines starting with # are deleted # Empty lines are passed through # # field user(s) what # # $1 as, c2, adb instruction name # # $2 c2 instruction class # $3 c2 instruction sub class # HARD, TN1, TN2, TN3, TNX2, OP # # $4 as, adb escape opcode byte (NONE, NEW, ESCD, ESCF) # $5 as, adb primary opcode byte # # $6 as, adb number of arguments # $7 as, adb 1st operand: access A,R,W,M,I,B # $8 as, adb 1st operand: type, BWLQOFDGH # # $9 as, adb 2nd operand: access # ... # # # These are the definitions used in this file: # instruction class (c2) # understood only by c2. If it is HARD, the second field # is ignored. # instruction subclass: (c2) # HARD paired with the class # S single valued attribute to C2 # TN1 class + type of 1st operand # TN2 class + type of 2nd operand # TN3 class + type of 3rd operand # TNX2 class + type of 1st and 2nd operand # OP class + type of 1st operand and # of args # default class + subclass # # escape byte: # CORE 1 byte opcodes in all VAXen # NEW 1 byte opcodes only in newer VAXen # ESCD 2 byte opcodes, escape byte of 0xFD, newer VAXen # ESCF 2 byte opcodes, escape byte of 0xFF, newer VAXen # code byte # number of arguments # Access type # A for address # W for writing # R for reading # M for modifying # B for branch displacement # I for xfc code # Data types # B byte # W word # L long # Q quad # O octa # F f_float # D d_float # G g_float # H h_float # # The order of instructions in this table is not critical; # the clients take care of their own table construction and ordering. # The instructions are grouped (more or less) into functional groups. #------------------------------------------------------- #1 2 3 4 5 6 7 8 # # bicpsw HARD HARD CORE 0xb9 1 R W bispsw HARD HARD CORE 0xb8 1 R W movpsl HARD HARD CORE 0xdc 1 W L ldpctx HARD HARD CORE 0x06 0 svpctx HARD HARD CORE 0x07 0 mfpr MFPR TN1 CORE 0xdb 2 R L W L mtpr MTPR TN1 CORE 0xda 2 R L R L prober PROBER TN1 CORE 0x0c 3 R B R W A B probew PROBEW TN1 CORE 0x0d 3 R B R W A B adawi HARD HARD CORE 0x58 2 R W M W chme HARD HARD CORE 0xbd 1 R W chmk HARD HARD CORE 0xbc 1 R W chms HARD HARD CORE 0xbe 1 R W chmu HARD HARD CORE 0xbf 1 R W insque HARD HARD CORE 0x0e 2 A B A B insqhi HARD HARD NEW 0x5c 2 A B A Q insqti HARD HARD NEW 0x5d 2 A B A Q remque HARD HARD CORE 0x0f 2 A B W L remqhi HARD HARD NEW 0x5e 2 A Q W L remqti HARD HARD NEW 0x5f 2 A Q W L bpt HARD HARD CORE 0x03 0 escd HARD HARD CORE 0xfd 0 esce HARD HARD CORE 0xfe 0 escf HARD HARD CORE 0xff 0 xfc HARD HARD CORE 0xfc 0 bugw HARD HARD ESCF 0xfe 1 R W bugl HARD HARD ESCF 0xfd 1 R L nop HARD HARD CORE 0x01 0 halt HARD HARD CORE 0x00 0 crc HARD HARD CORE 0x0b 4 A B R L R W A B movp HARD HARD CORE 0x34 3 R W A B A B cvtlp HARD HARD CORE 0xf9 3 R L R W A B cvtpl HARD HARD CORE 0x36 3 R W A B W L cvttp HARD HARD CORE 0x26 5 R W A B A B R W A B cvtpt HARD HARD CORE 0x24 5 R W A B A B R W A B cvtps HARD HARD CORE 0x08 4 R W A B R W A B cvtsp HARD HARD CORE 0x09 4 R W A B R W A B addp4 HARD HARD CORE 0x20 4 R W A B R W A B addp6 HARD HARD CORE 0x21 6 R W A B R W A B R W A B subp4 HARD HARD CORE 0x22 4 R W A B R W A B subp6 HARD HARD CORE 0x23 6 R W A B R W A B R W A B mulp HARD HARD CORE 0x25 6 R W A B R W A B R W A B divp HARD HARD CORE 0x27 6 R W A B R W A B R W A B cmpp3 HARD HARD CORE 0x35 3 R W A B A B cmpp4 HARD HARD CORE 0x37 4 R W A B R W A B insv INSV -1 CORE 0xf0 4 R L R L R B W B extv EXTV TN1 CORE 0xee 4 R L R B R B W L extzv EXTZV TN1 CORE 0xef 4 R L R B R B W L cmpv HARD HARD CORE 0xec 4 R L R B R B R L cmpzv HARD HARD CORE 0xed 4 R L R B R B R L editpc HARD HARD CORE 0x38 4 R W A B A B A B locc HARD HARD CORE 0x3a 3 R B R W A B matchc HARD HARD CORE 0x39 4 R W A B R W A B skpc HARD HARD CORE 0x3b 3 R B R W A B scanc HARD HARD CORE 0x2a 4 R W A B A B R B spanc HARD HARD CORE 0x2b 4 R W A B A B R B movc3 MOVC3 S CORE 0x28 3 R W A B A B movc5 HARD HARD CORE 0x2c 5 R W A B R B R W A B movtc HARD HARD CORE 0x2e 6 R W A B R B A B R W A B movtuc HARD HARD CORE 0x2f 6 R W A B R B A B R W A B cmpc3 HARD HARD CORE 0x29 3 R W A B A B cmpc5 HARD HARD CORE 0x2d 5 R W A B R B R W A B adwc HARD HARD CORE 0xd8 2 R L M L sbwc HARD HARD CORE 0xd9 2 R L M L rotl HARD HARD CORE 0x9c 3 R B R L W L ashl ASH TN3 CORE 0x78 3 R B R L W L ashp HARD HARD CORE 0xf8 6 R B R W A B R B R W A B ashq ASH TN3 CORE 0x79 3 R B R Q W Q jmp JMP S CORE 0x17 1 A B brb JBR S CORE 0x11 1 B B brw JBR S CORE 0x31 1 B W bitb BIT TN1 CORE 0x93 2 R B R B bitw BIT TN1 CORE 0xb3 2 R W R W bitl BIT TN1 CORE 0xd3 2 R L R L bbc CBR JBC CORE 0xe1 3 R L R B B B bbcc CBR JBCC CORE 0xe5 3 R L R B B B bbcci CBR JBCC CORE 0xe7 3 R L R B B B bbcs CBR JBCS CORE 0xe3 3 R L R B B B bbs CBR JBS CORE 0xe0 3 R L R B B B bbsc CBR JBSC CORE 0xe4 3 R L R B B B bbss CBR JBSS CORE 0xe2 3 R L R B B B bbssi CBR JBSS CORE 0xe6 3 R L R B B B bcc CBR JHIS CORE 0x1e 1 B B bcs CBR JLO CORE 0x1f 1 B B blbs CBR JLBS CORE 0xe8 2 R L B B blbc CBR JLBC CORE 0xe9 2 R L B B beql CBR JEQ CORE 0x13 1 B B beqlu CBR JEQ CORE 0x13 1 B B bgeq CBR JGE CORE 0x18 1 B B bgequ CBR JHIS CORE 0x1e 1 B B bgtr CBR JGT CORE 0x14 1 B B bgtru CBR JHI CORE 0x1a 1 B B bleq CBR JLE CORE 0x15 1 B B blequ CBR JLOS CORE 0x1b 1 B B blss CBR JLT CORE 0x19 1 B B blssu CBR JLO CORE 0x1f 1 B B bneq CBR JNE CORE 0x12 1 B B bnequ CBR JNE CORE 0x12 1 B B bvc CBR 0 CORE 0x1c 1 B B bvs CBR 0 CORE 0x1d 1 B B caseb CASE TN1 CORE 0x8f 3 R B R B R B casew CASE TN1 CORE 0xaf 3 R W R W R W casel CASE TN1 CORE 0xcf 3 R L R L R L clrb CLR TN1 CORE 0x94 1 W B clrw CLR TN1 CORE 0xb4 1 W W clrl CLR TN1 CORE 0xd4 1 W L clrq CLR TN1 CORE 0x7c 1 W Q clro CLR TN1 ESCD 0x7c 1 W O clrf CLR TN1 CORE 0xd4 1 W F clrd CLR TN1 CORE 0x7c 1 W D clrh CLR TN1 ESCD 0x7c 1 W H cvtbw CVT TNX2 CORE 0x99 2 R B W W cvtbl CVT TNX2 CORE 0x98 2 R B W L cvtbf CVT TNX2 CORE 0x4c 2 R B W F cvtbg CVT TNX2 ESCD 0x4c 2 R B W G cvtbd CVT TNX2 CORE 0x6c 2 R B W D cvtbh CVT TNX2 ESCD 0x6c 2 R B W H cvtwb CVT TNX2 CORE 0x33 2 R W W B cvtwl CVT TNX2 CORE 0x32 2 R W W L cvtwf CVT TNX2 CORE 0x4d 2 R W W F cvtwg CVT TNX2 ESCD 0x4d 2 R W W G cvtwd CVT TNX2 CORE 0x6d 2 R W W D cvtwh CVT TNX2 ESCD 0x6d 2 R W W H cvtlb CVT TNX2 CORE 0xf6 2 R L W B cvtlw CVT TNX2 CORE 0xf7 2 R L W W cvtlf CVT TNX2 CORE 0x4e 2 R L W F cvtlg CVT TNX2 ESCD 0x4e 2 R L W G cvtld CVT TNX2 CORE 0x6e 2 R L W D cvtlh CVT TNX2 ESCD 0x6e 2 R L W H cvtfb CVT TNX2 CORE 0x48 2 R F W B cvtfw CVT TNX2 CORE 0x49 2 R F W W cvtfl CVT TNX2 CORE 0x4a 2 R F W L cvtrfl CVT TNX2 CORE 0x4b 2 R F W L cvtfd CVT TNX2 CORE 0x56 2 R F W D cvtfg CVT TNX2 ESCD 0x99 2 R F W G cvtfh CVT TNX2 ESCD 0x98 2 R F W H cvtgb CVT TNX2 ESCD 0x48 2 R G W B cvtgw CVT TNX2 ESCD 0x49 2 R G W W cvtgl CVT TNX2 ESCD 0x4a 2 R G W L cvtrgl CVT TNX2 ESCD 0x4b 2 R G W L cvtgf CVT TNX2 ESCD 0x33 2 R G W F cvtgd CVT TNX2 ESCD 0x56 2 R G W D cvtgh CVT TNX2 ESCD 0x56 2 R G W H cvtdb CVT TNX2 CORE 0x68 2 R D W B cvtdw CVT TNX2 CORE 0x69 2 R D W W cvtdl CVT TNX2 CORE 0x6a 2 R D W L cvtrdl CVT TNX2 CORE 0x6b 2 R D W L cvtdf CVT TNX2 CORE 0x76 2 R D W F cvtdh CVT TNX2 ESCD 0x32 2 R D W H cvthb CVT TNX2 ESCD 0x68 2 R H W B cvthw CVT TNX2 ESCD 0x69 2 R H W W cvthl CVT TNX2 ESCD 0x6a 2 R H W L cvtrhl CVT TNX2 ESCD 0x6b 2 R H W L cvthf CVT TNX2 ESCD 0xf6 2 R H W F cvthd CVT TNX2 ESCD 0xf7 2 R H W D cvthg CVT TNX2 ESCD 0x76 2 R H W G ffc HARD HARD CORE 0xeb 4 R L R B R B W L ffs HARD HARD CORE 0xea 4 R L R B R B W L index HARD HARD CORE 0x0a 6 R L R L R L R L R L W L rei HARD HARD CORE 0x02 0 callg CALLS S CORE 0xfa 2 A B A B calls CALLS S CORE 0xfb 2 R L A B ret JBR RET CORE 0x04 0 jsb JSB S CORE 0x16 1 A B bsbb HARD HARD CORE 0x10 1 B B bsbw HARD HARD CORE 0x30 1 B W rsb JBR RSB CORE 0x05 0 pushr HARD HARD CORE 0xbb 1 R W popr HARD HARD CORE 0xba 1 R W mnegb NEG TN1 CORE 0x8e 2 R B W B mnegw NEG TN1 CORE 0xae 2 R W W L mnegl NEG TN1 CORE 0xce 2 R L W L mnegf NEG TN1 CORE 0x52 2 R F W F mnegg NEG TN1 ESCD 0x52 2 R G W G mnegd NEG TN1 CORE 0x72 2 R D W D mnegh NEG TN1 ESCD 0x72 2 R H W H movab MOVA TN1 CORE 0x9e 2 A B W L movaw MOVA TN1 CORE 0x3e 2 A W W L moval MOVA TN1 CORE 0xde 2 A L W L movaq MOVA TN1 CORE 0x7e 2 A Q W L movao MOVA TN1 ESCD 0x7e 2 A O W L movaf MOVA TN1 CORE 0xde 2 A F W L movad MOVA TN1 CORE 0x7e 2 A D W L movah MOVA TN1 ESCD 0x7e 2 A H W L movb MOV TN1 CORE 0x90 2 R B W B movw MOV TN1 CORE 0xb0 2 R W W W movl MOV TN1 CORE 0xd0 2 R L W L movf MOV TN1 CORE 0x50 2 R F W F movq MOV TN1 CORE 0x7d 2 R Q W Q movo MOV TN1 ESCD 0x7d 2 R O W O movg MOV TN1 ESCD 0x50 2 R G W G movd MOV TN1 CORE 0x70 2 R D W D movh MOV TN1 ESCD 0x70 2 R H W H movzbl MOVZ TNX2 CORE 0x9a 2 R B W L movzbw MOVZ TNX2 CORE 0x9b 2 R B W W movzwl MOVZ TNX2 CORE 0x3c 2 R W W L pushl PUSH TN1 CORE 0xdd 1 R L pushab PUSHA TN1 CORE 0x9f 1 A B pushaw PUSHA TN1 CORE 0x3f 1 A W pushal PUSHA TN1 CORE 0xdf 1 A L pushaq PUSHA TN1 CORE 0x7f 1 A Q pushao PUSHA TN1 ESCD 0x7f 1 A O pushaf PUSHA TN1 CORE 0xdf 1 A F pushad PUSHA TN1 CORE 0x7f 1 A D pushag PUSHA TN1 CORE 0xdf 1 A G pushah PUSHA TN1 ESCD 0x7f 1 A H acbb ACB TN1 CORE 0x9d 4 R B R B M B B W acbw ACB TN1 CORE 0x3d 4 R W R W M W B W acbl ACB TN1 CORE 0xf1 4 R L R L M L B W acbf ACB TN1 CORE 0x4f 4 R F R F M F B W acbg ACB TN1 ESCD 0x4f 4 R G R G M G B W acbd ACB TN1 CORE 0x6f 4 R D R D M D B W acbh ACB TN1 ESCD 0x6f 4 R H R H M H B W aobleq AOBLEQ S CORE 0xf3 3 R L M L B B aoblss AOBLSS S CORE 0xf2 3 R L M L B B sobgeq SOBGEQ S CORE 0xf4 2 M L B B sobgtr SOBGTR S CORE 0xf5 2 M L B B addb2 ADD OP CORE 0x80 2 R B M B addb3 ADD OP CORE 0x81 3 R B R B W B addw2 ADD OP CORE 0xa0 2 R W M W addw3 ADD OP CORE 0xa1 3 R W R W W W addl2 ADD OP CORE 0xc0 2 R L M L addl3 ADD OP CORE 0xc1 3 R L R L W L addf2 ADD OP CORE 0x40 2 R F M F addf3 ADD OP CORE 0x41 3 R F R F W F addg2 ADD OP ESCD 0x40 2 R G M G addg3 ADD OP ESCD 0x41 3 R G R G W G addd2 ADD OP CORE 0x60 2 R D M D addd3 ADD OP CORE 0x61 3 R D R D W D addh2 ADD OP ESCD 0x60 2 R H M H addh3 ADD OP ESCD 0x61 3 R H R H W H subb2 SUB OP CORE 0x82 2 R B M B subb3 SUB OP CORE 0x83 3 R B R B W B subw2 SUB OP CORE 0xa2 2 R W M W subw3 SUB OP CORE 0xa3 3 R W R W W W subl2 SUB OP CORE 0xc2 2 R L M L subl3 SUB OP CORE 0xc3 3 R L R L W L subf2 SUB OP CORE 0x42 2 R F M F subf3 SUB OP CORE 0x43 3 R F R F W F subg2 SUB OP ESCD 0x42 2 R G M G subg3 SUB OP ESCD 0x43 3 R G R G W G subd2 SUB OP CORE 0x62 2 R D M D subd3 SUB OP CORE 0x63 3 R D R D W D subh2 SUB OP ESCD 0x62 2 R H M H subh3 SUB OP ESCD 0x63 3 R H R H W H mulb2 MUL OP CORE 0x84 2 R B M B mulb3 MUL OP CORE 0x85 3 R B R B W B mulw2 MUL OP CORE 0xa4 2 R W M W mulw3 MUL OP CORE 0xa5 3 R W R W W W mull2 MUL OP CORE 0xc4 2 R L M L mull3 MUL OP CORE 0xc5 3 R L R L W L mulf2 MUL OP CORE 0x44 2 R F M F mulf3 MUL OP CORE 0x45 3 R F R F W F mulg2 MUL OP ESCD 0x44 2 R G M G mulg3 MUL OP ESCD 0x45 3 R G R G W G muld2 MUL OP CORE 0x64 2 R D M D muld3 MUL OP CORE 0x65 3 R D R D W D mulh2 MUL OP ESCD 0x64 2 R H M H mulh3 MUL OP ESCD 0x65 3 R H R H W H divb2 DIV OP CORE 0x86 2 R B M B divb3 DIV OP CORE 0x87 3 R B R B W B divw2 DIV OP CORE 0xa6 2 R W M W divw3 DIV OP CORE 0xa7 3 R W R W W W divl2 DIV OP CORE 0xc6 2 R L M L divl3 DIV OP CORE 0xc7 3 R L R L W L divf2 DIV OP CORE 0x46 2 R F M F divf3 DIV OP CORE 0x47 3 R F R F W F divg2 DIV OP ESCD 0x46 2 R G M G divg3 DIV OP ESCD 0x47 3 R G R G W G divd2 DIV OP CORE 0x66 2 R D M D divd3 DIV OP CORE 0x67 3 R D R D R D divh2 DIV OP ESCD 0x66 2 R H M H divh3 DIV OP ESCD 0x67 3 R H R H R H incb INC TN1 CORE 0x96 1 M B incw INC TN1 CORE 0xb6 1 M W incl INC TN1 CORE 0xd6 1 M L decb DEC TN1 CORE 0x97 1 M B decl DEC TN1 CORE 0xd7 1 M L decw DEC TN1 CORE 0xb7 1 M W cmpb CMP TN1 CORE 0x91 2 R B R B cmpw CMP TN1 CORE 0xb1 2 R W R W cmpl CMP TN1 CORE 0xd1 2 R L R L cmpf CMP TN1 CORE 0x51 2 R F R F cmpg CMP TN1 ESCD 0x51 2 R G R G cmpd CMP TN1 CORE 0x71 2 R D R D cmph CMP TN1 ESCD 0x71 2 R H R H tstb TST TN1 CORE 0x95 1 R B tstw TST TN1 CORE 0xb5 1 R W tstl TST TN1 CORE 0xd5 1 R L tstf TST TN1 CORE 0x53 1 R F tstg TST TN1 ESCD 0x53 1 R G tstd TST TN1 CORE 0x73 1 R D tsth TST TN1 ESCD 0x73 1 R H polyf HARD HARD CORE 0x55 3 R F R W A B polyg HARD HARD ESCD 0x55 3 R G R W A B polyd HARD HARD CORE 0x75 3 R D R W A B polyh HARD HARD ESCD 0x75 3 R H R W A B emul HARD HARD CORE 0x7a 4 R L R L R L W Q ediv HARD HARD CORE 0x7b 4 R L R Q W L W L emodf HARD HARD CORE 0x54 5 R F R B R F W L W F emodd HARD HARD CORE 0x74 5 R D R B R D W L W D emodg HARD HARD ESCD 0x54 5 R G R W R G W L W G emodh HARD HARD ESCD 0x74 5 R H R W R H W L W H mcomb COM TN1 CORE 0x92 2 R B W B mcomw COM TN1 CORE 0xb2 2 R W W W mcoml COM TN1 CORE 0xd2 2 R L W L bicl2 BIC OP CORE 0xca 2 R L M L bicl3 BIC OP CORE 0xcb 3 R L R L W L bicw2 BIC OP CORE 0xaa 2 R W M W bicw3 BIC OP CORE 0xab 3 R W R W W W bicb2 BIC OP CORE 0x8a 2 R B M B bicb3 BIC OP CORE 0x8b 3 R B R B W B bisb2 BIS OP CORE 0x88 2 R B M B bisb3 BIS OP CORE 0x89 3 R B R B W B bisw2 BIS OP CORE 0xa8 2 R W M W bisw3 BIS OP CORE 0xa9 3 R W R W W W bisl2 BIS OP CORE 0xc8 2 R L M L bisl3 BIS OP CORE 0xc9 3 R L R L W L xorb2 XOR OP CORE 0x8c 2 R B M B xorb3 XOR OP CORE 0x8d 3 R B R B W B xorw2 XOR OP CORE 0xac 2 R W M W xorw3 XOR OP CORE 0xad 3 R W R W W W xorl2 XOR OP CORE 0xcc 2 R L M L xorl3 XOR OP CORE 0xcd 3 R L R L W L