## ## Copyright (c) 1982 Regents of the University of California ## @(#)instrs 4.4 %G% ## ## Robert R. Henry ## University of California, Berkeley ## Berkeley, CA ## February 6, 1982 ## ## THIS FILE IS BOTH AN AWK SCRIPT AND THE DATA ## ## Instruction definitions for the VAX ## ## This file is processed by an awk script, viz: ## (echo "FLAVOR AS"; cat instrs) | awk -f instrs > as.instrs ## (echo "FLAVOR ADB"; cat instrs) | awk -f instrs > as.instrs ## (echo "FLAVOR SDB"; cat instrs) | awk -f instrs > as.instrs ## (echo "FLAVOR C2"; cat instrs) | awk -f instrs > c2.instrs ## ## The data in this file is shared between: ## as assembler ## c2 optimizer ## adb debugger ## sdb symbolic debugger ## ## The awk script reads itself, 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 ADB (same as AS, but without pseudo instructions) ## FLAVOR SDB (same as ADB) ## FLAVOR C2 (radically different format for instructions) ## and proceeding accordingly. This line should be prepended to ## the front of this file. ## ## Lines starting with # are always comments to awk ## Lines starting with ## are always comments ## Lines starting with a single # are data lines, to be output. ## ## Empty lines are passed through ## ## field user(s) what ## ## $1 awk #: comment to awk ## ## $2 as, c2, adb instruction name ## ## $3 c2 instruction class ## $4 c2 instruction sub class ## HARD, TN1, TN2, TN3, TNX2, OP ## ## $5 as, adb escape opcode byte (NONE, NEW, ESCD, ESCF) ## $6 as, adb primary opcode byte ## ## $7 as, adb number of arguments ## $8 as, adb 1st operand: access A,R,W,M,I,B ## $9 as, adb 1st operand: type, BWLQOFDGH ## ## $10 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. ## ## The following is the awk program to interpret this table. BEGIN{ flavor = AS; } { if (NF == 0){ printf("\n"); next; } if ($1 == "FLAVOR"){ flavor = $2; if (flavor == "SDB"){ flavor = "ADB"; } next; } if ($1 != "#"){ next; } if ($5 == "MACR"){ if (flavor == "ADB"){ next; } if (flavor == "AS"){ if ($3 == "CBR") $3 = "IJXXX"; printf("PSEUDO(\"%s\", %s, %s),\n", $2, $6, $3); next; } if (flavor == "C2"){ if ($4 == "C2X") next; printf("\"%s\",", $2); if ($3 == "CBR" && $4 != "JBR"){ printf("T(CBR,%s),\n", $4); } else { printf("%s,\n", $4); } next; } } if (flavor == "C2"){ printf("\"%s\",", $2); if ($3 == "HARD"){ # 0 value printf("0,\n"); next; } if ($4 == "S"){ # single value printf("%s,\n", $3); next; } if ($4 == "TN1"){ # use type of 1st operand printf("T(%s,TYP%s),\n", $3, $9); next; } if ($4 == "TN3"){ # use type of 3rd operand printf("T(%s,TYP%s),\n", $3, $13); next; } if ($4 == "TNX2"){ # cross product of 1st and 2nd operand printf("T(%s,U(TYP%s,TYP%s)),\n", $3, $9, $11); next; } if ($4 == "OP"){ # arithmetic operator printf("T(%s,U(TYP%s,OP%d)),\n", $3, $9, $7); next; } printf("T(%s,%s),\n", $3, $4); # special value next; } if (flavor == "AS" || flavor == "ADB"){ printf("OP(\"%s\", %s, %s, %d", $2, $5, $6, $7); for (i = 8; i+1 <= NF; i = i + 2){ printf(", A_%s%s", $i, $(i+1)); } for (i = $7; i < 6; i++){ printf(",0"); } printf("),\n"); } } ## ##------------------------------------------------------- ##1 2 3 4 5 6 7 8 9 ## ## ## PSEUDO (MACR) operators come first ## Data initializers # .byte IBYTE C2X MACR 0 VAR # .word IWORD WGEN MACR 0 VAR # .int IINT LGEN MACR 0 VAR # .long ILONG LGEN MACR 0 VAR # .quad IQUAD C2X MACR 0 VAR # .octa IOCTA C2X MACR 0 VAR # .float IFFLOAT C2X MACR 0 VAR # .double IDFLOAT C2X MACR 0 VAR # .ffloat IFFLOAT C2X MACR 0 VAR # .dfloat IDFLOAT C2X MACR 0 VAR # .gfloat IGFLOAT C2X MACR 0 VAR # .hfloat IHFLOAT C2X MACR 0 VAR # .space ISPACE C2X MACR 0 1 # .fill IFILL C2X MACR 0 2 # .ascii IASCII C2X MACR 0 VAR # .asciz IASCIZ C2X MACR 0 VAR # .data IDATA DATA MACR 0 1 # .text ITEXT TEXT MACR 0 1 # .align IALIGN ALIGN MACR 0 1 # .line ILINENO C2X MACR 0 1 # .file IFILE C2X MACR 0 1 # .globl IGLOBAL EROU MACR 0 1 # .comm ICOMM COMM MACR 0 2 # .lcomm ILCOMM LCOMM MACR 0 2 # .set ISET SET MACR 0 2 # .lsym ILSYM C2X MACR 0 2 # .org IORG C2X MACR 0 1 # .stab ISTAB C2X MACR 0 6 # .stabd ISTABDOT C2X MACR 0 3 # .stabn ISTABNONE C2X MACR 0 3 # .stabs ISTABSTR C2X MACR 0 3 # .ABORT IABORT C2X MACR 0 0 ## Pseudo jumps # jbc CBR JBC MACR 0xe1 1 B B # jlbc CBR JLBC MACR 0xe9 1 B B # jbs CBR JBS MACR 0xe0 1 B B # jlbs CBR JLBS MACR 0xe8 1 B B # jbcc CBR JBCC MACR 0xe5 1 B B # jbsc CBR JBSC MACR 0xe4 1 B B # jbcs CBR JBCS MACR 0xe3 1 B B # jbss CBR JBSS MACR 0xe2 1 B B # jbr CBR JBR MACR 0x11 1 B B # jcc CBR C2X MACR 0x1e 1 B B # jcs CBR C2X MACR 0x1f 1 B B # jvc CBR C2X MACR 0x1c 1 B B # jvs CBR C2X MACR 0x1d 1 B B # jlss CBR JLT MACR 0x19 1 B B # jlssu CBR JLO MACR 0x1f 1 B B # jleq CBR JLE MACR 0x15 1 B B # jlequ CBR JLOS MACR 0x1b 1 B B # jeql CBR JEQ MACR 0x13 1 B B # jeqlu CBR JEQ MACR 0x13 1 B B # jneq CBR JNE MACR 0x12 1 B B # jnequ CBR JNE MACR 0x12 1 B B # jgeq CBR JGE MACR 0x18 1 B B # jgequ CBR JHIS MACR 0x1e 1 B B # jgtr CBR JGT MACR 0x14 1 B B # jgtru CBR JHI MACR 0x1a 1 B B ## ## Registers ## # r0 REG C2X MACR 0 0 # r1 REG C2X MACR 1 0 # r2 REG C2X MACR 2 0 # r3 REG C2X MACR 3 0 # r4 REG C2X MACR 4 0 # r5 REG C2X MACR 5 0 # r6 REG C2X MACR 6 0 # r7 REG C2X MACR 7 0 # r8 REG C2X MACR 8 0 # r9 REG C2X MACR 9 0 # r10 REG C2X MACR 10 0 # r11 REG C2X MACR 11 0 # r12 REG C2X MACR 12 0 # r13 REG C2X MACR 13 0 # r14 REG C2X MACR 14 0 # r15 REG C2X MACR 15 0 # ap REG C2X MACR 12 0 # fp REG C2X MACR 13 0 # sp REG C2X MACR 14 0 # pc REG C2X MACR 15 0 ## Normal instructions # 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