fix glaring operand type bug with clrg & mnegw; field instructions \are
[unix-history] / usr / src / old / as.vax / instrs
##
## Copyright (c) 1982 Regents of the University of California
## @(#)instrs 4.7 %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,V,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, only in memory
## V for address [sic], either in memory or register
## 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 V B
# extv EXTV TN1 CORE 0xee 4 R L R B V B W L
# extzv EXTZV TN1 CORE 0xef 4 R L R B V B W L
# cmpv HARD HARD CORE 0xec 4 R L R B V B R L
# cmpzv HARD HARD CORE 0xed 4 R L R B V 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 V B B B
# bbcc CBR JBCC CORE 0xe5 3 R L V B B B
# bbcci CBR JBCC CORE 0xe7 3 R L V B B B
# bbcs CBR JBCS CORE 0xe3 3 R L V B B B
# bbs CBR JBS CORE 0xe0 3 R L V B B B
# bbsc CBR JBSC CORE 0xe4 3 R L V B B B
# bbss CBR JBSS CORE 0xe2 3 R L V B B B
# bbssi CBR JBSS CORE 0xe6 3 R L V 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
# clrg CLR TN1 CORE 0x7c 1 W G
# 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
# 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 V B W L
# ffs HARD HARD CORE 0xea 4 R L R B V 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 W
# 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
# movag MOVA TN1 CORE 0x7e 2 A G 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 0x7f 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