[Next] [Up] [Previous]

Flexible CISC Mode

As is obvious from the diagram below illustrating the instruction format for this mode, it is patterned after that of the Digital Equipment Corporation's VAX computer:

but it does have some important differences as well.

The most major one is that fewer addressing modes are offered; instead, more registers can be specified by the instruction; instead of sixteen registers, one of sixty-four scratchpad registers are used as operands or as index registers, and one of thirty-two base registers are used in memory-reference instructions.

A second one is that because this architecture does not include either a length field or a terminating character in its native string and packed decimal data types, a length field is an additional optional instruction element immediately following the eight-bit opcode. Also, a 16-bit length field is uses as another optional instruction element in vector instructions.

As with the VAX, the number of operands of an instruction are determined by the opcode, and all instructions have the same format.

Bytes of the form 11xxxxxx prefix an operand field to indicate indexing; as well, a byte of the form 10xxxxxx indicates indexing by an index register that is incremented after use.

Scratchpad register 0 cannot be used as an index; the byte 11000000 can be used as a dummy index prefix byte. This is applicable only to indirect addressing; if an operand field indicating indirect addressing is preceded by one index byte, this indicates pre-indirect indexing; if by two, the second index byte provides an index register used for post-indirect indexing. If only post-indirect indexing is desired, the dummy index prefix byte is used.

A byte of the form 00ssssss indicates an operand that is one of the scratchpad registers, whether arithmetic/index or floating-point depends on the type of the instruction.

A byte of the form 010bbbbb specifies a base register, from the same set of 32 base registers used in Vector Register Mode, and is followed by a 16-bit address (unless these addresses are increased to 32 bits in size by the 32/28-bit addressing bit of the Program Status Block), and the address is added to the contents of the specified base register to form the effective address.

Base register 0 cannot be used as a base register, and thus the byte 01000000 instead precedes an immediate operand, of the length indicated by the type of the instruction.

A byte of the form 011bbbbb also specifies a base register, and the 16-bit address added to it forms a pointer to a 32-bit value in memory (or a 64-bit value, if 64-bit addressing is indicated in the Program Status Block) which serves as the actual effective address of the instruction; thus, this indicates indirect addressing.


The opcodes of the most important instructions used in this mode are:

00      oD oS             SWB     Swap Byte
01      oD oS             CB      Compare Byte
02      oD oS             MVB     Move Byte

04      oD oS             AB      Add Byte
05      oD oS             SB      Subtract Byte

08      oD oS             IB      Insert Byte
09      oD oS             UCB     Unsigned Compare Byte
0A      oD oS             ULB     Unsigned Load Byte
0B      oD oS             XB      XOR Byte
0C      oD oS             NB      AND Byte
0D      oD oS             OB      OR Byte

0F      oD oS             STGB    Store if Greater Byte

10      oD oS             SWH     Swap Halfword
11      oD oS             CH      Compare Halfword
12      oD oS             MVH     Move Halfword

14      oD oS             AH      Add Halfword
15      oD oS             SH      Subtract Halfword
16      oD oS             MH      Multiply Halfword
17      oD oS             DH      Divide Halfword

18      oD oS             IH      Insert Halfword
19      oD oS             UCH     Unsigned Compare Halfword
1A      oD oS             ULH     Unsigned Load Halfword
1B      oD oS             XH      XOR Halfword
1C      oD oS             NH      AND Halfword
1D      oD oS             OH      OR Halfword
1E      oD oS             MEH     Multiply Extensibly Halfword
1F      oD oS             DEH     Divide Extensibly Halfword

20      oD oS             SW      Swap
21      oD oS             C       Compare
22      oD oS             MV      Move

24      oD oS             A       Add
25      oD oS             S       Subtract
26      oD oS             M       Multiply
27      oD oS             D       Divide

28      oD oS             I       Insert
29      oD oS             UC      Unsigned Compare
2A      oD oS             UL      Unsigned Load
2B      oD oS             X       XOR
2C      oD oS             N       AND
2D      oD oS             O       OR
2E      oD oS             ME      Multiply Extensibly
2F      oD oS             DE      Divide Extensibly

30      oD oS             SWL     Swap Long
31      oD oS             CL      Compare Long
32      oD oS             MVL     Move Long

34      oD oS             AL      Add Long
35      oD oS             SL      Subtract Long
36      oD oS             ML      Multiply Long
37      oD oS             DL      Divide Long

39      oD oS             UCL     Unsigned Compare Long

3B      oD oS             XL      XOR Long
3C      oD oS             NL      AND Long
3D      oD oS             OL      OR Long
3E      oD oS             MEL     Multiply Extensibly Long
3F      oD oS             DEL     Divide Extensibly Long

40      oD oS             SWM     Swap Medium
41      oD oS             CM      Compare Medium
42      oD oS             MVM     Move Medium

44      oD oS             AM      Add Medium
45      oD oS             SM      Subtract Medium
46      oD oS             MM      Multiply Medium
47      oD oS             DM      Divide Medium

48      oD oS             SWF     Swap Floating
49      oD oS             CF      Compare Floating
4A      oD oS             MVF     Move Floating

4C      oD oS             AF      Add Floating
4D      oD oS             SF      Subtract Floating
4E      oD oS             MF      Multiply Floating
4F      oD oS             DF      Divide Floating

50      oD oS             SWD     Swap Double
51      oD oS             CD      Compare Double
52      oD oS             MVD     Move Double

54      oD oS             AD      Add Double
55      oD oS             SD      Subtract Double
56      oD oS             MD      Multiply Double
57      oD oS             DD      Divide Double

58      oD oS             SWQ     Swap Quad
59      oD oS             CQ      Compare Quad
5A      oD oS             MVQ     Move Quad

5C      oD oS             AQ      Add Quad
5D      oD oS             SQ      Subtract Quad
5E      oD oS             MQ      Multiply Quad
5F      oD oS             DQ      Divide Quad

6000    pL oD oS          MESTP   Multiply Extensibly and Store Packed
6001    pL oD oS          CP      Compare Packed
6002    pL oD oS          MVP     Move Packed
6003    pL oR oQ oO oS    DSTRP   Divide and Store Remainder Packed
6004    pL oD oS          AP      Add Packed
6005    pL oD oS          SP      Subtract Packed
6006    pL oD oS          MP      Multiply Packed
6007    pL oD oS          DP      Divide Packed

6012    sL oD oS          MVC     Move Character

6015    sL oD oS          CC      Compare Character    
6016    sL oD oS          P       Pack
6017    sL oD oS          U       Unpack

601A    sL oD oS          MVCH    Move Halfword Characters

601D    sL oD oS          CCH     Compare Halfword Characters
601E    sL oD oS          PH      Pack Halfword
601F    sL oD oS          UH      Unpack Halfword

6020    sL oD oS          CVPB    Convert Packed to Byte
6021    sL oD oS          CVPH    Convert Packed to Halfword
6022    sL oD oS          CVPW    Convert Packed to Word
6023    sL oD oS          CVPL    Convert Packed to Long
6024    sL oD oE oS       CVPM    Convert Packed to Medium
6025    sL oD oE oS       CVPF    Convert Packed to Floating
6026    sL oD oE oS       CVPD    Convert Packed to Double
6027    sL oD oE oS       CVPQ    Convert Packed to Quad

6028    sL oD oS          CVBP    Convert Byte to Packed
6029    sL oD oS          CVHP    Convert Halfword to Packed
602A    sL oD oS          CVWP    Convert Word to Packed
602B    sL oD oS          CVLP    Convert Long to Packed
602C    sL oD oE oS       CVMP    Convert Medium to Packed
602D    sL oD oE oS       CVFP    Convert Floating to Packed
602E    sL oD oE oS       CVDP    Convert Double to Packed
602F    sL oD oE oS       CVQP    Convert Quad to Packed

6030    sL vL oT oD oS    CV      Convert
6031    sL vL oT oD oS    CVR     Convert Reversed

6033    sL vL oT oD oS    CVRI    Convert Reversed Incomplete

6038    sL vL oT oD oS    DCV     Displaced Convert
6039    sL vL oT oD oS    DCVR    Displaced Convert Reversed

603B    sL vL oT oD oS    DCVRI   Displaced Convert Reversed Incomplete

6040    sL oT oD oS       TBH     Translate Byte to Halfword
6041    sL oT oD oS       TTHB    Table Translate Halfword to Byte
6042    sL oT oD oS       T       Translate

6044    sL oT oD oS       FMT     Format
6045    sL oT oD oS       SC      Scan

604A    sL oT oD oS       TH      Translate Halfword

604C    sL oT oD oS       FMTH    Format Halfword
604D    sL oT oD oS       SCH     Scan Halfword

6052    oD oS             LBA     Load Base Register
6053    oD oS             SBA     Store Base Register

6060    oR oJ             JMS     Jump to Subroutine

6071    oJ                JL      Jump if Low
6072    oJ                JE      Jump if Equal
6073    oJ                JLE     Jump if Low or Equal
6074    oJ                JH      Jump if High
6075    oJ                JNE     Jump if Not Equal
6076    oJ                JHE     Jump if High or Equal
6077    oJ                JNV     Jump if No Overflow

6078    oJ                JV      Jump if Overflow

607A    oJ                JC      Jump if Carry
607B    oJ                JNC     Jump if No Carry

607F    oJ                JMP     Jump

6081    oR oJ             RL      Return if Low
6082    oR oJ             RE      Return if Equal
6083    oR oJ             RLE     Return if Low or Equal
6084    oR oJ             RH      Return if High
6085    oR oJ             RNE     Return if Not Equal
6086    oR oJ             RHE     Return if High or Equal
6087    oR oJ             RNV     Return if No Overflow

6088    oR oJ             RV      Return if Overflow

608A    oR oJ             RC      Return if Carry
608B    oR oJ             RNC     Return if No Carry

608F    oR oJ             RMP     Return

60A0    oD                CLRB    Clear Byte
60A1    oD                ABSB    Absolute Value Byte
60A2    oD                INVB    Invert Byte
60A3    oD                NEGB    Negate Byte
60A4    oD oS             NB      Normalize Byte

60A8    oD                CLRH    Clear Halfword
60A9    oD                ABSH    Absolute Value Halfword
60AA    oD                INVH    Invert Halfword
60AB    oD                NEGH    Negate Halfword
60AC    oD oS             NH      Normalize Halfword

60B0    oD                CLR     Clear
60B1    oD                ABS     Absolute Value
60B2    oD                INV     Invert
60B3    oD                NEG     Negate
60B4    oD oS             N       Normalize

60B8    oD                CLRL    Clear Long
60B9    oD                ABSL    Absolute Value Long
60BA    oD                INVL    Invert Long
60BB    oD                NEGL    Negate Long
60BC    oD oS             NL      Normalize Long

60C0    sL oD             SHLB    Shift Left Byte
60C1    sL oD             SHRB    Shift Right Byte

60C3    sL oD             ASRB    Arithmetic Shift Right Byte
60C4    sL oD             ROLB    Rotate Left Byte
60C5    sL oD             RORB    Rotate Right Byte
60C6    sL oD             RLCB    Rotate Left through Carry Byte
60C7    sL oD             RRCB    Rotate Right through Carry Byte

60C8    sL oD             SHLH    Shift Left Halfword
60C9    sL oD             SHRH    Shift Right Halfword

60CB    sL oD             ASRH    Arithmetic Shift Right Halfword
60CC    sL oD             ROLH    Rotate Left Halfword
60CD    sL oD             RORH    Rotate Right Halfword
60CE    sL oD             RLCH    Rotate Left through Carry Halfword
60CF    sL oD             RRCH    Rotate Right through Carry Halfword

60D0    sL oD             SHL     Shift Left
60D1    sL oD             SHR     Shift Right

60D3    sL oD             ASR     Arithmetic Shift Right
60D4    sL oD             ROL     Rotate Left
60D5    sL oD             ROR     Rotate Right
60D6    sL oD             RLC     Rotate Left through Carry
60D7    sL oD             RRC     Rotate Right through Carry

60D8    sL oD             SHLL    Shift Left Long
60D9    sL oD             SHRL    Shift Right Long

60DB    sL oD             ASRL    Arithmetic Shift Right Long
60DC    sL oD             ROLL    Rotate Left Long
60DD    sL oD             RORL    Rotate Right Long
60DE    sL oD             RLCL    Rotate Left through Carry Long
60DF    sL oD             RRCL    Rotate Right through Carry Long

60E0    sL oD             SEBI    Separate Bits

60E5    oM oD oS          BMM16   Bit-Matrix Multiply 16
60E6    oM oD oS          BMM32   Bit-Matrix Multiply 32
60E7    oM oD oS          BMM64   Bit-Matrix Multiply 64

60E9    oM1 oM2 oD oS     BMSP16  Bit-Matrix Sum of Products 16
60EA    oM1 oM2 oD oS     BMSP32  Bit-Matrix Sum of Products 32
60EB    oM1 oM2 oD oS     BMSP64  Bit-Matrix Sum of Products 64

60ED    oM oS             LBMM16  Load Bit-Matrix Multiply 16
60EE    oM oS             LBMM32  Load Bit-Matrix Multiply 32
60EF    oM oS             LBMM64  Load Bit-Matrix Multiply 64

60F0    sL                SETAM   Set Addressing Mode
60F1    sL                INWM    Interpret Next With Mode

60F8    sL                SVC     Supervisor Call

6100    vL oD oS          VSWB    Vector Swap Byte
6101    vL oD oS          VCB     Vector Compare Byte
6102    vL oD oS          VMVB    Vector Move Byte

6108    vL oD oS          VIB     Vector Insert Byte
6109    vL oD oS          VUCB    Vector Unsigned Compare Byte
610A    vL oD oS          VULB    Vector Unsigned Load Byte

6110    vL oD oS          VSWH    Vector Swap Halfword
6111    vL oD oS          VCH     Vector Compare Halfword
6112    vL oD oS          VMVH    Vector Move Halfword

6118    vL oD oS          VIH     Vector Insert Halfword
6119    vL oD oS          VUCH    Vector Unsigned Compare Halfword
611A    vL oD oS          VULH    Vector Unsigned Load Halfword

6120    vL oD oS          VSW     Vector Swap
6121    vL oD oS          VC      Vector Compare
6122    vL oD oS          VMV     Vector Move

6128    vL oD oS          VI      Vector Insert
6129    vL oD oS          VUC     Vector Unsigned Compare
612A    vL oD oS          VUL     Vector Unsigned Load

6130    vL oD oS          VSWL    Vector Swap Long
6131    vL oD oS          VCL     Vector Compare Long
6132    vL oD oS          VMVL    Vector Move Long

6139    vL oD oS          VUCL    Vector Unsigned Compare Long

6140    vL oD oS          VSWM    Vector Swap Medium
6141    vL oD oS          VCM     Vector Compare Medium
6142    vL oD oS          VMVM    Vector Move Medium

6148    vL oD oS          VSWF    Vector Swap Floating
6149    vL oD oS          VCF     Vector Compare Floating
614A    vL oD oS          VMVF    Vector Move Floating

6150    vL oD oS          VSWD    Vector Swap Double
6151    vL oD oS          VCD     Vector Compare Double
6152    vL oD oS          VMVD    Vector Move Double

6158    vL oD oS          VSWQ    Vector Swap Quad
6159    vL oD oS          VCQ     Vector Compare Quad
615A    vL oD oS          VMVQ    Vector Move Quad

6400    oD                SINM    Sine Medium
6401    oD                COSM    Cosine Medium
6402    oD                TANM    Tangent Medium

6404    oD                ASNM    Arcsine Medium
6405    oD                ACSM    Arccosine Medium
6406    oD                ATNM    Arctangent Medium

6408    oD                SINHM   Hyperbolic Sine Medium
6409    oD                COSHM   Hyperbolic Cosine Medium
640A    oD                TANHM   Hyperbolic Tangent Medium

640C    oD                ASNHM   Inverse Hyperbolic Sine Medium
640D    oD                ACSHM   Inverse Hyperbolic Cosine Medium
640E    oD                ATNHM   Inverse Hyperbolic Tangent Medium

6410    oD                SQRM    Square Root Medium
6411    oD                QBRM    Cube Root Medium
6412    oD                LOGM    Logarithm Medium
6413    oD                EXPM    Exponential Medium
6414    oD                CLRM    Clear Medium
6415    oD                ABSM    Absolute Value Medium
6416    oD                SGNM    Signum Medium
6417    oD                NEGM    Negate Medium

6420    oD                SINF    Sine Floating
6421    oD                COSF    Cosine Floating
6422    oD                TANF    Tangent Floating

6424    oD                ASNF    Arcsine Floating
6425    oD                ACSF    Arccosine Floating
6426    oD                ATNF    Arctangent Floating

6428    oD                SINHF   Hyperbolic Sine Floating
6429    oD                COSHF   Hyperbolic Cosine Floating
642A    oD                TANHF   Hyperbolic Tangent Floating

642C    oD                ASNHF   Inverse Hyperbolic Sine Floating
642D    oD                ACSHF   Inverse Hyperbolic Cosine Floating
642E    oD                ATNHF   Inverse Hyperbolic Tangent Floating

6430    oD                SQRF    Square Root Floating
6431    oD                QBRF    Cube Root Floating
6432    oD                LOGF    Logarithm Floating
6433    oD                EXPF    Exponential Floating
6434    oD                CLRF    Clear Floating
6435    oD                ABSF    Absolute Value Floating
6436    oD                SGNF    Signum Floating
6437    oD                NEGF    Negate Floating

6440    oD                SIND    Sine Double
6441    oD                COSD    Cosine Double
6442    oD                TAND    Tangent Double

6444    oD                ASND    Arcsine Double
6445    oD                ACSD    Arccosine Double
6446    oD                ATND    Arctangent Double

6448    oD                SINHD   Hyperbolic Sine Double
6449    oD                COSHD   Hyperbolic Cosine Double
644A    oD                TANHD   Hyperbolic Tangent Double

644C    oD                ASNHD   Inverse Hyperbolic Sine Double
644D    oD                ACSHD   Inverse Hyperbolic Cosine Double
644E    oD                ATNHD   Inverse Hyperbolic Tangent Double

6450    oD                SQRD    Square Root Double
6451    oD                QBRD    Cube Root Double
6452    oD                LOGD    Logarithm Double
6453    oD                EXPD    Exponential Double
6454    oD                CLRD    Clear Double
6455    oD                ABSD    Absolute Value Double
6456    oD                SGND    Signum Double
6457    oD                NEGD    Negate Double

6460    oD                SINQ    Sine Quad
6461    oD                COSQ    Cosine Quad
6462    oD                TANQ    Tangent Quad

6464    oD                ASNQ    Arcsine Quad
6465    oD                ACSQ    Arccosine Quad
6466    oD                ATNQ    Arctangent Quad

6468    oD                SINHQ   Hyperbolic Sine Quad
6469    oD                COSHQ   Hyperbolic Cosine Quad
646A    oD                TANHQ   Hyperbolic Tangent Quad

646C    oD                ASNHQ   Inverse Hyperbolic Sine Quad
646D    oD                ACSHQ   Inverse Hyperbolic Cosine Quad
646E    oD                ATNHQ   Inverse Hyperbolic Tangent Quad

6470    oD                SQRQ    Square Root Quad
6471    oD                QBRQ    Cube Root Quad
6472    oD                LOGQ    Logarithm Quad
6473    oD                EXPQ    Exponential Quad
6474    oD                CLRQ    Clear Quad
6475    oD                ABSQ    Absolute Value Quad
6476    oD                SGNQ    Signum Quad
6477    oD                NEGQ    Negate Quad

6482    oD oS             LMB     Load Medium with Byte
6483    oD oS             STMB    Store Medium in Byte
6484    oD oS             AMB     Add Byte to Medium
6485    oD oS             SMB     Subtract Byte from Medium
6486    oD oS             MMB     Multiply Medium by Byte
6487    oD oS             DMB     Divide Medium by Byte

648A    oD oS             LMH     Load Medium with Halfword
648B    oD oS             STMH    Store Medium in Halfword
648C    oD oS             AMH     Add Halfword to Medium
648D    oD oS             SMH     Subtract Halfword from Medium
648E    oD oS             MMH     Multiply Medium by Halfword
648F    oD oS             DMH     Divide Medium by Halfword

6492    oD oS             LMI     Load Medium with Integer
6493    oD oS             STMI    Store Medium in Integer
6494    oD oS             AMI     Add Integer to Medium
6495    oD oS             SMI     Subtract Integer from Medium
6496    oD oS             MMI     Multiply Medium by Integer
6497    oD oS             DMI     Divide Medium by Integer

649A    oD oS             LML     Load Medium with Long
649B    oD oS             STML    Store Medium in Long
649C    oD oS             AML     Add Long to Medium
649D    oD oS             SML     Subtract Long from Medium
649E    oD oS             MML     Multiply Medium by Long
649F    oD oS             DML     Divide Medium by Long

64A2    oD oS             LFB     Load Floating with Byte
64A3    oD oS             STFB    Store Floating in Byte
64A4    oD oS             AFB     Add Byte to Floating
64A5    oD oS             SFB     Subtract Byte from Floating
64A6    oD oS             MFB     Multiply Floating by Byte
64A7    oD oS             DFB     Divide Floating by Byte

64AA    oD oS             LFH     Load Floating with Halfword
64AB    oD oS             STFH    Store Floating in Halfword
64AC    oD oS             AFH     Add Halfword to Floating
64AD    oD oS             SFH     Subtract Halfword from Floating
64AE    oD oS             MFH     Multiply Floating by Halfword
64AF    oD oS             DFH     Divide Floating by Halfword

64B2    oD oS             LFI     Load Floating with Integer
64B3    oD oS             STFI    Store Floating in Integer
64B4    oD oS             AFI     Add Integer to Floating
64B5    oD oS             SFI     Subtract Integer from Floating
64B6    oD oS             MFI     Multiply Floating by Integer
64B7    oD oS             DFI     Divide Floating by Integer

64BA    oD oS             LFL     Load Floating with Long
64BB    oD oS             STFL    Store Floating in Long
64BC    oD oS             AFL     Add Long to Floating
64BD    oD oS             SFL     Subtract Long from Floating
64BE    oD oS             MFL     Multiply Floating by Long
64BF    oD oS             DFL     Divide Floating by Long

64C2    oD oS             LDB     Load Double with Byte
64C3    oD oS             STDB    Store Double in Byte
64C4    oD oS             ADB     Add Byte to Double
64C5    oD oS             SDB     Subtract Byte from Double
64C6    oD oS             MDB     Multiply Double by Byte
64C7    oD oS             DDB     Divide Double by Byte

64CA    oD oS             LDH     Load Double with Halfword
64CB    oD oS             STDH    Store Double in Halfword
64CC    oD oS             ADH     Add Halfword to Double
64CD    oD oS             SDH     Subtract Halfword from Double
64CE    oD oS             MDH     Multiply Double by Halfword
64CF    oD oS             DDH     Divide Double by Halfword

64D2    oD oS             LDI     Load Double with Integer
64D3    oD oS             STDI    Store Double in Integer
64D4    oD oS             ADI     Add Integer to Double
64D5    oD oS             SDI     Subtract Integer from Double
64D6    oD oS             MDI     Multiply Double by Integer
64D7    oD oS             DDI     Divide Double by Integer

64DA    oD oS             LDL     Load Double with Long
64DB    oD oS             STDL    Store Double in Long
64DC    oD oS             ADL     Add Long to Double
64DD    oD oS             SDL     Subtract Long from Double
64DE    oD oS             MDL     Multiply Double by Long
64DF    oD oS             DDL     Divide Double by Long

64E2    oD oS             LQB     Load Quad with Byte
64E3    oD oS             STQB    Store Quad in Byte
64E4    oD oS             AQB     Add Byte to Quad
64E5    oD oS             SQB     Subtract Byte from Quad
64E6    oD oS             MQB     Multiply Quad by Byte
64E7    oD oS             DQB     Divide Quad by Byte

64EA    oD oS             LQH     Load Quad with Halfword
64EB    oD oS             STQH    Store Quad in Halfword
64EC    oD oS             AQH     Add Halfword to Quad
64ED    oD oS             SQH     Subtract Halfword from Quad
64EE    oD oS             MQH     Multiply Quad by Halfword
64EF    oD oS             DQH     Divide Quad by Halfword

64F2    oD oS             LQI     Load Quad with Integer
64F3    oD oS             STQI    Store Quad in Integer
64F4    oD oS             AQI     Add Integer to Quad
64F5    oD oS             SQI     Subtract Integer from Quad
64F6    oD oS             MQI     Multiply Quad by Integer
64F7    oD oS             DQI     Divide Quad by Integer

64FA    oD oS             LQL     Load Quad with Long
64FB    oD oS             STQL    Store Quad in Long
64FC    oD oS             AQL     Add Long to Quad
64FD    oD oS             SQL     Subtract Long from Quad
64FE    oD oS             MQL     Multiply Quad by Long
64FF    oD oS             DQL     Divide Quad by Long

6600    oM oD oS          SWBSV   Swap Byte Short Vector

6602    oM oD oS          MVBSV   Move Byte Short Vector

6604    oM oD oS          ABSV    Add Byte Short Vector
6605    oM oD oS          SBSV    Subtract Byte Short Vector

6608    oM oD oS          SMBPB   Set Mask Bit if Positive Byte
6609    oM oD oS          SMBZB   Set Mask Bit if Zero Byte
660A    oM oD oS          SMBNB   Set Mask Bit if Negative Byte

660D    oM oD oS          XBSV    XOR Byte Short Vector
660E    oM oD oS          NBSV    AND Byte Short Vector
660F    oM oD oS          OBSV    OR Byte Short Vector

6610    oM oD oS          SWHSV   Swap Halfword Short Vector

6612    oM oD oS          MVHSV   Move Halfword Short Vector

6614    oM oD oS          AHSV    Add Halfword Short Vector
6615    oM oD oS          SHSV    Subtract Halfword Short Vector
6616    oM oD oS          MHSV    Multiply Halfword Short Vector
6617    oM oD oS          DHSV    Divide Halfword Short Vector

6618    oM oD oS          SMBPH   Set Mask Bit if Positive Halfword
6619    oM oD oS          SMBZH   Set Mask Bit if Zero Halfword
661A    oM oD oS          SMBNH   Set Mask Bit if Negative Halfword

661D    oM oD oS          XHSV    XOR Halfword Short Vector
661E    oM oD oS          NHSV    AND Halfword Short Vector
661F    oM oD oS          OHSV    OR Halfword Short Vector

6620    oM oD oS          SWSV    Swap Short Vector

6622    oM oD oS          MVSV    Move Short Vector

6624    oM oD oS          ASV     Add Short Vector
6625    oM oD oS          SSV     Subtract Short Vector
6626    oM oD oS          MSV     Multiply Short Vector
6627    oM oD oS          DSV     Divide Short Vector

6628    oM oD oS          SMBP    Set Mask Bit if Positive
6629    oM oD oS          SMBZ    Set Mask Bit if Zero
662A    oM oD oS          SMBN    Set Mask Bit if Negative

662D    oM oD oS          XSV     XOR Short Vector
662E    oM oD oS          NSV     AND Short Vector
662F    oM oD oS          OSV     OR Short Vector

6630    oM oD oS          SWLSV   Swap Long Short Vector

6632    oM oD oS          MVLSV   Move Long Short Vector

6634    oM oD oS          ALSV    Add Long Short Vector
6635    oM oD oS          SLSV    Subtract Long Short Vector
6636    oM oD oS          MLSV    Multiply Long Short Vector
6637    oM oD oS          DLSV    Divide Long Short Vector

6638    oM oD oS          SMBPL   Set Mask Bit if Positive Long
6639    oM oD oS          SMBZL   Set Mask Bit if Zero Long
663A    oM oD oS          SMBNL   Set Mask Bit if Negative Long

663D    oM oD oS          XLSV    XOR Long Short Vector
663E    oM oD oS          NLSV    AND Long Short Vector
663F    oM oD oS          OLSV    OR Long Short Vector

6642    oM oD oS          MVSMSV  Move Small Short Vector

6644    oM oD oS          ASMSV   Add Small Short Vector
6645    oM oD oS          SSMSV   Subtract Small Short Vector
6646    oM oD oS          MSMSV   Multiply Small Short Vector
6647    oM oD oS          DSMSV   Divide Small Short Vector

6648    oM oD oS          SMBPSM  Set Mask Bit if Positive Small
6649    oM oD oS          SMBZSM  Set Mask Bit if Zero Small
664A    oM oD oS          SMBNSM  Set Mask Bit if Negative Small

664E    oD oS             SHSMHSV Shuffle Small/Halfword Short Vector

6652    oM oD oS          MVFSV   Move Floating Short Vector

6654    oM oD oS          AFSV    Add Floating Short Vector
6655    oM oD oS          SFSV    Subtract Floating Short Vector
6656    oM oD oS          MFSV    Multiply Floating Short Vector
6657    oM oD oS          DFSV    Divide Floating Short Vector

6658    oM oD oS          SMBPF   Set Mask Bit if Positive Floating
6659    oM oD oS          SMBZF   Set Mask Bit if Zero Floating
665A    oM oD oS          SMBNF   Set Mask Bit if Negative Floating

665E    oD oS             SHFWSV  Shuffle Floating/Word Short Vector

6662    oM oD oS          MVDSV   Move Double Short Vector

6664    oM oD oS          ADSV    Add Double Short Vector
6665    oM oD oS          SDSV    Subtract Double Short Vector
6666    oM oD oS          MDSV    Multiply Double Short Vector
6667    oM oD oS          DDSV    Divide Double Short Vector

6668    oM oD oS          SMBPD   Set Mask Bit if Positive Double
6669    oM oD oS          SMBZD   Set Mask Bit if Zero Double
666A    oM oD oS          SMBND   Set Mask Bit if Negative Double

666E    oD oS             SHDLSV  Shuffle Double/Long Short Vector

6670    oM oD oS          SWQSV   Swap Quad Short Vector

6672    oM oD oS          MVQSV   Move Quad Short Vector

6674    oM oD oS          AQSV    Add Quad Short Vector
6675    oM oD oS          SQSV    Subtract Quad Short Vector
6676    oM oD oS          MQSV    Multiply Quad Short Vector
6677    oM oD oS          DQSV    Divide Quad Short Vector

6678    oM oD oS          SMBPQ   Set Mask Bit if Positive Quad
6679    oM oD oS          SMBZQ   Set Mask Bit if Zero Quad
667A    oM oD oS          SMBNQ   Set Mask Bit if Negative Quad

667E    oD oS             SHQSV   Shuffle Quad Short Vector

84      oD oO oS          ABT     Add Byte Three-Address
85      oD oO oS          SBT     Subtract Byte Three-Address

8B      oD oO oS          XBT     XOR Byte Three-Address
8C      oD oO oS          NBT     AND Byte Three-Address
8D      oD oO oS          OBT     OR Byte Three-Address

94      oD oO oS          AHT     Add Halfword Three-Address
95      oD oO oS          SHT     Subtract Halfword Three-Address
96      oD oO oS          MHT     Multiply Halfword Three-Address
97      oD oO oS          DHT     Divide Halfword Three-Address

9B      oD oO oS          XHT     XOR Halfword Three-Address
9C      oD oO oS          NHT     AND Halfword Three-Address
9D      oD oO oS          OHT     OR Halfword Three-Address
9E      oD oO oS          MEHT    Multiply Extensibly Halfword Three-Address
9F      oD oO oS          DEHT    Divide Extensibly Halfword Three-Address

A4      oD oO oS          AT      Add Three-Address
A5      oD oO oS          ST      Subtract Three-Address
A6      oD oO oS          MT      Multiply Three-Address
A7      oD oO oS          DT      Divide Three-Address

AB      oD oO oS          XT      XOR Three-Address
AC      oD oO oS          NT      AND Three-Address
AD      oD oO oS          OT      OR Three-Address
AE      oD oO oS          MET     Multiply Extensibly Three-Address
AF      oD oO oS          DET     Divide Extensibly Three-Address

B4      oD oO oS          ALT     Add Long Three-Address
B5      oD oO oS          SLT     Subtract Long Three-Address
B6      oD oO oS          MLT     Multiply Long Three-Address
B7      oD oO oS          DLT     Divide Long Three-Address

BB      oD oO oS          XLT     XOR Long Three-Address
BC      oD oO oS          NLT     AND Long Three-Address
BD      oD oO oS          OLT     OR Long Three-Address
BE      oD oO oS          MELT    Multiply Extensibly Long Three-Address
BF      oD oO oS          DELT    Divide Extensibly Long Three-Address

C4      oD oO oS          AMT     Add Medium Three-Address
C5      oD oO oS          SMT     Subtract Medium Three-Address
C6      oD oO oS          MMT     Multiply Medium Three-Address
C7      oD oO oS          DMT     Divide Medium Three-Address

CC      oD oO oS          AFT     Add Floating Three-Address
CD      oD oO oS          SFT     Subtract Floating Three-Address
CE      oD oO oS          MFT     Multiply Floating Three-Address
CF      oD oO oS          DFT     Divide Floating Three-Address

D4      oD oO oS          ADT     Add Double Three-Address
D5      oD oO oS          SDT     Subtract Double Three-Address
D6      oD oO oS          MDT     Multiply Double Three-Address
D7      oD oO oS          DDT     Divide Double Three-Address

DC      oD oO oS          AQT     Add Quad Three-Address
DD      oD oO oS          SQT     Subtract Quad Three-Address
DE      oD oO oS          MQT     Multiply Quad Three-Address
DF      oD oO oS          DQT     Divide Quad Three-Address

E000    pL oD oO oS       MESTPT  Multiply Extensibly and Store Packed Three-Address

E004    pL oD oO oS       APT     Add Packed Three-Address
E005    pL oD oO oS       SPT     Subtract Packed Three-Address
E006    pL oD oO oS       MPT     Multiply Packed Three-Address
E007    pL oD oO oS       DPT     Divide Packed Three-Address

E0A1    oD oS             ABSB    Absolute Value Byte Two-Address
E0A2    oD oS             INVB    Invert Byte Two-Address
E0A3    oD oS             NEGB    Negate Byte Two-Address
E0A4    oD oO oS          NB      Normalize Byte Three-Address

E0A9    oD oS             ABSH    Absolute Value Halfword Two-Address
E0AA    oD oS             INVH    Invert Halfword Two-Address
E0AB    oD oS             NEGH    Negate Halfword Two-Address
E0AC    oD oO oS          NH      Normalize Halfword Three-Address

E0B1    oD oS             ABS     Absolute Value Two-Address
E0B2    oD oS             INV     Invert Two-Address
E0B3    oD oS             NEG     Negate Two-Address
E0B4    oD oO oS          N       Normalize Three-Address

E0B9    oD oS             ABSL    Absolute Value Long Two-Address
E0BA    oD oS             INVL    Invert Long Two-Address
E0BB    oD oS             NEGL    Negate Long Two-Address
E0BC    oD oO oS          NL      Normalize Long Three-Address

E0C0    sL oD oS          SHLBT   Shift Left Byte Two-Address
E0C1    sL oD oS          SHRBT   Shift Right Byte Two-Address

E0C3    sL oD oS          ASRBT   Arithmetic Shift Right Byte Two-Address
E0C4    sL oD oS          ROLBT   Rotate Left Byte Two-Address
E0C5    sL oD oS          RORBT   Rotate Right Byte Two-Address
E0C6    sL oD oS          RLCBT   Rotate Left through Carry Byte Two-Address
E0C7    sL oD oS          RRCBT   Rotate Right through Carry Byte Two-Address

E0C8    sL oD oS          SHLHT   Shift Left Halfword Two-Address
E0C9    sL oD oS          SHRHT   Shift Right Halfword Two-Address

E0CB    sL oD oS          ASRHT   Arithmetic Shift Right Halfword Two-Address
E0CC    sL oD oS          ROLHT   Rotate Left Halfword Two-Address
E0CD    sL oD oS          RORHT   Rotate Right Halfword Two-Address
E0CE    sL oD oS          RLCHT   Rotate Left through Carry Halfword Two-Address
E0CF    sL oD oS          RRCHT   Rotate Right through Carry Halfword Two-Address

E0D0    sL oD oS          SHLT    Shift Left Two-Address
E0D1    sL oD oS          SHRT    Shift Right Two-Address

E0D3    sL oD oS          ASRT    Arithmetic Shift Right Two-Address
E0D4    sL oD oS          ROLT    Rotate Left Two-Address
E0D5    sL oD oS          RORT    Rotate Right Two-Address
E0D6    sL oD oS          RLCT    Rotate Left through Carry Two-Address
E0D7    sL oD oS          RRCT    Rotate Right through Carry Two-Address

E0D8    sL oD oS          SHLLT   Shift Left Long Two-Address
E0D9    sL oD oS          SHRLT   Shift Right Long Two-Address

E0DB    sL oD oS          ASRLT   Arithmetic Shift Right Long Two-Address
E0DC    sL oD oS          ROLLT   Rotate Left Long Two-Address
E0DD    sL oD oS          RORLT   Rotate Right Long Two-Address
E0DE    sL oD oS          RLCLT   Rotate Left through Carry Long Two-Address
E0DF    sL oD oS          RRCLT   Rotate Right through Carry Long Two-Address

E104    vL oD oO oS       VAB     Vector Add Byte
E105    vL oD oO oS       VSB     Vector Subtract Byte

E10B    vL oD oO oS       VXB     Vector XOR Byte
E10C    vL oD oO oS       VNB     Vector AND Byte
E10D    vL oD oO oS       VOB     Vector OR Byte

E114    vL oD oO oS       VAH     Vector Add Halfword
E115    vL oD oO oS       VSH     Vector Subtract Halfword
E116    vL oD oO oS       VMH     Vector Multiply Halfword
E117    vL oD oO oS       VDH     Vector Divide Halfword

E11B    vL oD oO oS       VXH     Vector XOR Halfword
E11C    vL oD oO oS       VNH     Vector AND Halfword
E11D    vL oD oO oS       VOH     Vector OR Halfword
E11E    vL oD oO oS       VMEH    Vector Multiply Extensibly Halfword
E11F    vL oD oO oS       VDEH    Vector Divide Extensibly Halfword

E124    vL oD oO oS       VA      Vector Add
E125    vL oD oO oS       VS      Vector Subtract
E126    vL oD oO oS       VM      Vector Multiply
E127    vL oD oO oS       VD      Vector Divide

E12B    vL oD oO oS       VX      Vector XOR
E12C    vL oD oO oS       VN      Vector AND
E12D    vL oD oO oS       VO      Vector OR
E12E    vL oD oO oS       VME     Vector Multiply Extensibly
E12F    vL oD oO oS       VDE     Vector Divide Extensibly

E134    vL oD oO oS       VAL     Vector Add Long
E135    vL oD oO oS       VSL     Vector Subtract Long
E136    vL oD oO oS       VML     Vector Multiply Long
E137    vL oD oO oS       VDL     Vector Divide Long

E13B    vL oD oO oS       VXL     Vector XOR Long
E13C    vL oD oO oS       VNL     Vector AND Long
E13D    vL oD oO oS       VOL     Vector OR Long
E13E    vL oD oO oS       VMEL    Vector Multiply Extensibly Long
E13F    vL oD oO oS       VDEL    Vector Divide Extensibly Long

E144    vL oD oO oS       VAM     Vector Add Medium
E145    vL oD oO oS       VSM     Vector Subtract Medium
E146    vL oD oO oS       VMM     Vector Multiply Medium
E147    vL oD oO oS       VDM     Vector Divide Medium

E14C    vL oD oO oS       VAF     Vector Add Floating
E14D    vL oD oO oS       VSF     Vector Subtract Floating
E14E    vL oD oO oS       VMF     Vector Multiply Floating
E14F    vL oD oO oS       VDF     Vector Divide Floating

E154    vL oD oO oS       VAD     Vector Add Double
E155    vL oD oO oS       VSD     Vector Subtract Double
E156    vL oD oO oS       VMD     Vector Multiply Double
E157    vL oD oO oS       VDD     Vector Divide Double

E15C    vL oD oO oS       VAQ     Vector Add Quad
E15D    vL oD oO oS       VSQ     Vector Subtract Quad
E15E    vL oD oO oS       VMQ     Vector Multiply Quad
E15F    vL oD oO oS       VDQ     Vector Divide Quad

E400    oD oS             SINMT   Sine Medium Two-Address
E401    oD oS             COSMT   Cosine Medium Two-Address
E402    oD oS             TANMT   Tangent Medium Two-Address

E404    oD oS             ASNMT   Arcsine Medium Two-Address
E405    oD oS             ACSMT   Arccosine Medium Two-Address
E406    oD oS             ATNMT   Arctangent Medium Two-Address

E408    oD oS             SINHMT  Hyperbolic Sine Medium Two-Address
E409    oD oS             COSHMT  Hyperbolic Cosine Medium Two-Address
E40A    oD oS             TANHMT  Hyperbolic Tangent Medium Two-Address

E40C    oD oS             ASNHMT  Inverse Hyperbolic Sine Medium Two-Address
E40D    oD oS             ACSHMT  Inverse Hyperbolic Cosine Medium Two-Address
E40E    oD oS             ATNHMT  Inverse Hyperbolic Tangent Medium Two-Address

E410    oD oS             SQRMT   Square Root Medium Two-Address
E411    oD oS             QBRMT   Cube Root Medium Two-Address
E412    oD oS             LOGMT   Logarithm Medium Two-Address
E413    oD oS             EXPMT   Exponential Medium Two-Address

E415    oD oS             ABSMT   Absolute Value Medium Two-Address
E416    oD oS             SGNMT   Signum Medium Two-Address
E417    oD oS             NEGMT   Negate Medium Two-Address

E420    oD oS             SINFT   Sine Floating Two-Address
E421    oD oS             COSFT   Cosine Floating Two-Address
E422    oD oS             TANFT   Tangent Floating Two-Address

E424    oD oS             ASNFT   Arcsine Floating Two-Address
E425    oD oS             ACSFT   Arccosine Floating Two-Address
E426    oD oS             ATNFT   Arctangent Floating Two-Address

E428    oD oS             SINHFT  Hyperbolic Sine Floating Two-Address
E429    oD oS             COSHFT  Hyperbolic Cosine Floating Two-Address
E42A    oD oS             TANHFT  Hyperbolic Tangent Floating Two-Address

E42C    oD oS             ASNHFT  Inverse Hyperbolic Sine Floating Two-Address
E42D    oD oS             ACSHFT  Inverse Hyperbolic Cosine Floating Two-Address
E42E    oD oS             ATNHFT  Inverse Hyperbolic Tangent Floating Two-Address

E430    oD oS             SQRFT   Square Root Floating Two-Address
E431    oD oS             QBRFT   Cube Root Floating Two-Address
E432    oD oS             LOGFT   Logarithm Floating Two-Address
E433    oD oS             EXPFT   Exponential Floating Two-Address

E435    oD oS             ABSFT   Absolute Value Floating Two-Address
E436    oD oS             SGNFT   Signum Floating Two-Address
E437    oD oS             NEGFT   Negate Floating Two-Address

E440    oD oS             SINDT   Sine Double Two-Address
E441    oD oS             COSDT   Cosine Double Two-Address
E442    oD oS             TANDT   Tangent Double Two-Address

E444    oD oS             ASNDT   Arcsine Double Two-Address
E445    oD oS             ACSDT   Arccosine Double Two-Address
E446    oD oS             ATNDT   Arctangent Double Two-Address

E448    oD oS             SINHDT  Hyperbolic Sine Double Two-Address
E449    oD oS             COSHDT  Hyperbolic Cosine Double Two-Address
E44A    oD oS             TANHDT  Hyperbolic Tangent Double Two-Address

E44C    oD oS             ASNHDT  Inverse Hyperbolic Sine Double Two-Address
E44DT   oD oS             ACSHDT  Inverse Hyperbolic Cosine Double Two-Address
E44E    oD oS             ATNHDT  Inverse Hyperbolic Tangent Double Two-Address

E450    oD oS             SQRDT   Square Root Double Two-Address
E451    oD oS             QBRDT   Cube Root Double Two-Address
E452    oD oS             LOGDT   Logarithm Double Two-Address
E453    oD oS             EXPDT   Exponential Double Two-Address

E455    oD oS             ABSDT   Absolute Value Double Two-Address
E456    oD oS             SGNDT   Signum Double Two-Address
E457    oD oS             NEGDT   Negate Double Two-Address

E460    oD oS             SINQ    Sine Quad Two-Address
E461    oD oS             COSQ    Cosine Quad Two-Address
E462    oD oS             TANQ    Tangent Quad Two-Address

E4E4    oD oS             ASNQ    Arcsine Quad Two-Address
E465    oD oS             ACSQ    Arccosine Quad Two-Address
E466    oD oS             ATNQ    Arctangent Quad Two-Address

E468    oD oS             SINHQ   Hyperbolic Sine Quad Two-Address
E469    oD oS             COSHQ   Hyperbolic Cosine Quad Two-Address
E46A    oD oS             TANHQ   Hyperbolic Tangent Quad Two-Address

E46C    oD oS             ASNHQ   Inverse Hyperbolic Sine Quad Two-Address
E46DT   oD oS             ACSHQT  Inverse Hyperbolic Cosine Quad Two-Address
E46E    oD oS             ATNHQT  Inverse Hyperbolic Tangent Quad Two-Address

E470    oD oS             SQRQT   Square Root Quad Two-Address
E471    oD oS             QBRQT   Cube Root Quad Two-Address
E472    oD oS             LOGQT   Logarithm Quad Two-Address
E473    oD oS             EXPQT   Exponential Quad Two-Address

E475    oD oS             ABSQT   Absolute Value Quad Two-Address
E476    oD oS             SGNQT   Signum Quad Two-Address
E477    oD oS             NEGQT   Negate Quad Two-Address

6484    oD oO oS          AMBT    Add Byte to Medium Three-Address
6485    oD oO oS          SMBT    Subtract Byte from Medium Three-Address
6486    oD oO oS          MMBT    Multiply Medium by Byte Three-Address
6487    oD oO oS          DMBT    Divide Medium by Byte Three-Address

648C    oD oO oS          AMHT    Add Halfword to Medium Three-Address
648D    oD oO oS          SMHT    Subtract Halfword from Medium Three-Address
648E    oD oO oS          MMHT    Multiply Medium by Halfword Three-Address
648F    oD oO oS          DMHT    Divide Medium by Halfword Three-Address

6494    oD oO oS          AMIT    Add Integer to Medium Three-Address
6495    oD oO oS          SMIT    Subtract Integer from Medium Three-Address
6496    oD oO oS          MMIT    Multiply Medium by Integer Three-Address
6497    oD oO oS          DMIT    Divide Medium by Integer Three-Address

649C    oD oO oS          AMLT    Add Long to Medium Three-Address
649D    oD oO oS          SMLT    Subtract Long from Medium Three-Address
649E    oD oO oS          MMLT    Multiply Medium by Long Three-Address
649F    oD oO oS          DMLT    Divide Medium by Long Three-Address

64A4    oD oO oS          AFBT    Add Byte to Floating Three-Address
64A5    oD oO oS          SFBT    Subtract Byte from Floating Three-Address
64A6    oD oO oS          MFBT    Multiply Floating by Byte Three-Address
64A7    oD oO oS          DFBT    Divide Floating by Byte Three-Address

64AC    oD oO oS          AFHT    Add Halfword to Floating Three-Address
64AD    oD oO oS          SFHT    Subtract Halfword from Floating Three-Address
64AE    oD oO oS          MFHT    Multiply Floating by Halfword Three-Address
64AF    oD oO oS          DFHT    Divide Floating by Halfword Three-Address

64B4    oD oO oS          AFIT    Add Integer to Floating Three-Address
64B5    oD oO oS          SFIT    Subtract Integer from Floating Three-Address
64B6    oD oO oS          MFIT    Multiply Floating by Integer Three-Address
64B7    oD oO oS          DFIT    Divide Floating by Integer Three-Address

64BC    oD oO oS          AFLT    Add Long to Floating Three-Address
64BD    oD oO oS          SFLT    Subtract Long from Floating Three-Address
64BE    oD oO oS          MFLT    Multiply Floating by Long Three-Address
64BF    oD oO oS          DFLT    Divide Floating by Long Three-Address

64C4    oD oO oS          ADBT    Add Byte to Double Three-Address
64C5    oD oO oS          SDBT    Subtract Byte from Double Three-Address
64C6    oD oO oS          MDBT    Multiply Double by Byte Three-Address
64C7    oD oO oS          DDBT    Divide Double by Byte Three-Address

64CC    oD oO oS          ADHT    Add Halfword to Double Three-Address
64CD    oD oO oS          SDHT    Subtract Halfword from Double Three-Address
64CE    oD oO oS          MDHT    Multiply Double by Halfword Three-Address
64CF    oD oO oS          DDHT    Divide Double by Halfword Three-Address

64D4    oD oO oS          ADIT    Add Integer to Double Three-Address
64D5    oD oO oS          SDIT    Subtract Integer from Double Three-Address
64D6    oD oO oS          MDIT    Multiply Double by Integer Three-Address
64D7    oD oO oS          DDIT    Divide Double by Integer Three-Address

64DC    oD oO oS          ADLT    Add Long to Double Three-Address
64DD    oD oO oS          SDLT    Subtract Long from Double Three-Address
64DE    oD oO oS          MDLT    Multiply Double by Long Three-Address
64DF    oD oO oS          DDLT    Divide Double by Long Three-Address

64E4    oD oO oS          AQBT    Add Byte to Quad Three-Address
64E5    oD oO oS          SQBT    Subtract Byte from Quad Three-Address
64E6    oD oO oS          MQBT    Multiply Quad by Byte Three-Address
64E7    oD oO oS          DQBT    Divide Quad by Byte Three-Address

64EC    oD oO oS          AQHT    Add Halfword to Quad Three-Address
64ED    oD oO oS          SQHT    Subtract Halfword from Quad Three-Address
64EE    oD oO oS          MQHT    Multiply Quad by Halfword Three-Address
64EF    oD oO oS          DQHT    Divide Quad by Halfword Three-Address

64F4    oD oO oS          AQIT    Add Integer to Quad Three-Address
64F5    oD oO oS          SQIT    Subtract Integer from Quad Three-Address
64F6    oD oO oS          MQIT    Multiply Quad by Integer Three-Address
64F7    oD oO oS          DQIT    Divide Quad by Integer Three-Address

64FC    oD oO oS          AQLT    Add Long to Quad Three-Address
64FD    oD oO oS          SQLT    Subtract Long from Quad Three-Address
64FE    oD oO oS          MQLT    Multiply Quad by Long Three-Address
64FF    oD oO oS          DQLT    Divide Quad by Long Three-Address

E604    oM oD oO oS       ABSVT   Add Byte Short Vector Three-Address
E605    oM oD oO oS       SBSVT   Subtract Byte Short Vector Three-Address

E60D    oM oD oO oS       XBSVT   XOR Byte Short Vector Three-Address
E60E    oM oD oO oS       NBSVT   AND Byte Short Vector Three-Address
E60F    oM oD oO oS       OBSVT   OR Byte Short Vector Three-Address

E614    oM oD oO oS       AHSVT   Add Halfword Short Vector Three-Address
E615    oM oD oO oS       SHSVT   Subtract Halfword Short Vector Three-Address
E616    oM oD oO oS       MHSVT   Multiply Halfword Short Vector Three-Address
E617    oM oD oO oS       DHSVT   Divide Halfword Short Vector Three-Address

E61D    oM oD oO oS       XHSVT   XOR Halfword Short Vector Three-Address
E61E    oM oD oO oS       NHSVT   AND Halfword Short Vector Three-Address
E61F    oM oD oO oS       OHSVT   OR Halfword Short Vector Three-Address

E624    oM oD oO oS       ASVT    Add Short Vector Three-Address
E625    oM oD oO oS       SSVT    Subtract Short Vector Three-Address
E626    oM oD oO oS       MSVT    Multiply Short Vector Three-Address
E627    oM oD oO oS       DSVT    Divide Short Vector Three-Address

E62D    oM oD oO oS       XSVT    XOR Short Vector Three-Address
E62E    oM oD oO oS       NSVT    AND Short Vector Three-Address
E62F    oM oD oO oS       OSVT    OR Short Vector Three-Address

E634    oM oD oO oS       ALSVT   Add Long Short Vector Three-Address
E635    oM oD oO oS       SLSVT   Subtract Long Short Vector Three-Address
E636    oM oD oO oS       MLSVT   Multiply Long Short Vector Three-Address
E637    oM oD oO oS       DLSVT   Divide Long Short Vector Three-Address

E63D    oM oD oO oS       XLSVT   XOR Long Short Vector Three-Address
E63E    oM oD oO oS       NLSVT   AND Long Short Vector Three-Address
E63F    oM oD oO oS       OLSVT   OR Long Short Vector Three-Address

E644    oM oD oO oS       ASMSVT  Add Small Short Vector Three-Address
E645    oM oD oO oS       SSMSVT  Subtract Small Short Vector Three-Address
E646    oM oD oO oS       MSMSVT  Multiply Small Short Vector Three-Address
E647    oM oD oO oS       DSMSVT  Divide Small Short Vector Three-Address

E654    oM oD oO oS       AFSVT   Add Floating Short Vector Three-Address
E655    oM oD oO oS       SFSVT   Subtract Floating Short Vector Three-Address
E656    oM oD oO oS       MFSVT   Multiply Floating Short Vector Three-Address
E657    oM oD oO oS       DFSVT   Divide Floating Short Vector Three-Address

E664    oM oD oO oS       ADSVT   Add Double Short Vector Three-Address
E665    oM oD oO oS       SDSVT   Subtract Double Short Vector Three-Address
E666    oM oD oO oS       MDSVT   Multiply Double Short Vector Three-Address
E667    oM oD oO oS       DDSVT   Divide Double Short Vector Three-Address

E674    oM oD oO oS       AQSVT   Add Quad Short Vector Three-Address
E675    oM oD oO oS       SQSVT   Subtract Quad Short Vector Three-Address
E676    oM oD oO oS       MQSVT   Multiply Quad Short Vector Three-Address
E677    oM oD oO oS       DQSVT   Divide Quad Short Vector Three-Address

In the column after the opcode, the optional fields used by the instruction are indicated. Thus, oD oS means that the instruction will have two operands, the first the destination operand, the second the source operand. oO stands for the extra operand in a three-address instruction; oT for a translate table, and oE for an integer containing the decimal exponent value for the instructions that convert between an integer power-of-ten exponent and a packed decimal mantissa on the one hand and a floating-point number on the other. sL indicates a one-byte string length field, vL indicates the two-byte vector length field, pL indicates a one-byte field indicating the length of each of two packed decimal operands, and pT indicates the two-byte field using five bits each to indicate the lengths of each of three packed decimal operands.

In the convert instructions, sL corresponds to the size field, and vL to the length field.

In the three-address normalize instructions, the normalized version of the source argument is stored in the operand argument, and the number of shifts is stored in the destination argument. For all the normalize instructions, regardless of the type of the instruction, the number of shifts, which is the destination argument, is a 32-bit word integer when stored in memory.

In the vector instructions, a register argument instead of a memory argument can be used for the source or operand operands; when this is done, the contents of the one register specified is used as a constant value applied to the calculation for the entire vector.

For the instructions for loading or storing from a base register, the destination argument must be a register argument, and can have only the values from 0 to 31. For the short vector instructions, where a register argument is specified, it must have a value from 0 to 15, as it would refer to one of the sixteen short vector registers.

For packed decimal instructions, in the three-address case, the convention in other address modes is followed that each length field contains one less than the length of the operand in digits. In the two-address case, the four-bit length fields instead contain one less than the length of the operand in bytes. In the SEBI instruction, the sL field contains the three bits that indicate the operation to perform, followed by the five bits that indicate the round to perform it in. In general, note that string lengths and shift counts are treated as suffixes of the opcode, not as orthogonal operands; this is partly a consequence of the fact that immediate operands have a one-byte prefix followed by a full-length immediate operand, instead of being a single byte with six bits of data as on the Digital Equipment Corporation's VAX series of computers.

To avoid the list of instructions taking up too much space, the less important instructions available in this mode are simply shown in the compact tablular form below:

620      621      622      623      624      625      626

         SFSW              SWMDE    MESTCD   CVCDB            0         
         SFC      RPC      CMDE     CCD      CVCDH    RCDC    1
         SFMV     RPME     MVMDE    MVCD     CVCDW    RCDME   2
                  RPDE              DSTRCD   CVCDL    RCDDE   3
         SFA      RPA      AMDE     ACD      CVCDM    RCDA    4
         SFS      RPS      SMDE     SCD      CVCDF    RCDS    5
         SFM      RPM      MMDE     MCD      CVCDD    RCDM    6
         SFD      RPD      DMDE     DCD      CVCDQ    RCDD    7

SFSWH    SFSWL             SWDDE             CVBCD            8
SFCH     SFCL     RPCL     CDDE              CVHCD    RCDCL   9
SFMVH    SFMVL    RPMEL    MVDDE    PCD      CVWCD    RCDMEL  A
                  RPDEL             UCD      CVLCD    RCDDEL  B
SFAH     SFAL     RPAL     ADDE              CVMCD    RCDAL   C
SFSH     SFSL     RPSL     SDDE              CVFCD    RCDSL   D
SFMH     SFML     RPML     MDDE     PHCD     CVDCD    RCDML   E
SFDH     SFDL     RPDL     DDDE     UHCD     CVQCD    RCDDL   F



E20      E21      E22      E23      E24               E26

                                    MESTCDT                   0
                                                              1
                  RPMET                               RCDMET  2
                  RPDET             DSTRCDT           RCDDET  3
         SFAT     RPAT     AMDET    ACDT              RCDAT   4
         SFST     RPST     SMDET    SCDT              RCDST   5
         SFMT     RPMT     MMDET    MCDT              RCDMT   6
         SFDT     RPDT     DMDET    DCDT              RCDDT   7

                                                              8
                                                              9
                  RPMELT                              RCDMELT A
                  RPDELT                              RCDDELT B
SFAHT    SFALT    RPALT    ADDET                      RCDALT  C
SFSHT    SFSLT    RPSLT    SDDET                      RCDSLT  D
SFMHT    SFMLT    RPMLT    MDDET                      RCDMLT  E
SFDHT    DFDLT    RPDLT    DDDET                      RCDDLT  F



628      629      62A      62B      62C

         SFMEU    MEUM     MEUL             0
         SFDEU    DEUM     DEUL             1
         SFMVU    MVUM     MVUL     MVMDE   2
                                            3
         SFAU     AUM      AUL      AUMDE   4
         SFSU     SUM      SUL      SUMDE   5
         SFMU     MUM      MUL      MUMDE   6
         SFDU     DUM      DUL      DUMDE   7

SFMEUH   SFMEUL   MEU      MEUQ             8
SFDEUH   SFDEUL   DEU      DEUQ             9
SFMVUH   SFMVUL   MVU      MVUQ     MVDDE   A
                                            B
SFAUH    SFAUL    AU       AUQ      AUDDE   C
SFSUH    SFSUL    SU       SUQ      SUDDE   D
SFMUH    SFMUL    MU       MUQ      MUDDE   E
SFDUH    SFDUL    DU       DUQ      DUDDE   F


E28      E29      E2A      E2B      E2C

         SFMEUT   MEUMT    MEULT            0
         SFDEUT   DEUMT    DEULT            1
                                            2
                                            3
         SFAUT    AUMT     AULT     AUMDET  4
         SFSUT    SUMT     SULT     SUMDET  5
         SFMUT    MUMT     MULT     MUMDET  6
         SFDUT    DUMT     DULT     DUMDET  7

SFMEUHT  SFMEULT  MEUT     MEUQT            8
SFDEUHT  SFDEULT  DEUT     DEUQT            9
                                            A
                                            B
SFAUHT   SFAULT   AUT      AUQT     AUDDET  C
SFSUHT   SFSULT   SUT      SUQT     SUDDET  D
SFMUHT   SFMULT   MUT      MUQT     MUDDET  E
SFDUHT   SFDULT   DUT      DUQT     DUDDET  F

These include the instructions for the use of the simple floating type, register packed decimal, decimal exponent floating-point, and compressed decimal, as well as unnormalized floating-point operation.

In addition, vectorial versions of the single-operand floating-point functions have opcodes of the form E5xx and vectorial versions of the short vector operations have opcodes of the form E7xx, except in the case of such operations as move, swap, or set mask bit, which do not change to three-address form when vectorized; these will have the form 67xx. The shuffle operation does not vectorize. These may involve the initiation of one operation per cycle in a pipelined fashion at best, since even in the highest-end implementations of this architecture envisaged, only one copy of the applicable ALUs is present. The same implies to vectorized packed decimal instructions: E3xx is used for the vectorized versions of the instructions shown above, except where no operand argument can be added, in which case 63xx is used.


[Next] [Up] [Previous]