Inst:
TYPE =
MACHINE
DEPENDENT {
Leftmost bits of opcode determine length of instruction.
000 => 1 byte [000B..037B]
001 => 5 bytes [040B..077B]
01- => 1 byte [100B..177B]
10- => 2 bytes [200B..277B]
11- => 3 bytes [300B..377B]
Leftmost bits of opcode determine possible PC displacement selection.
0------- PC + stack JSR
10------ PC + alphaS JB
110----- PC + alphaBetaS JDB and LFC
111----- PC + betaS RJB's and JBB's
OIformat (1 byte)
x000b (000B), x001b, x002b, x003b, x004b, x005b, x006b, x007b,
x010b (010B), x011b, x012b, x013b, x014b, x015b, x016b, x017b,
dLC0 (020B), dLC1, dLC2, dLC3, dLC4, dLC5, dLC6, dLC7,
dLC8 (030B), dLC9, dLC10, dLC11, x034b, x035b, x036b, x037b,
OQBformat (5 bytes)
x040b (040B), x041b, x042b, x043b, x044b, x045b, x046b, x047b,
x050b (050B), x051b, x052b, x053b, x054b, x055b, x056b, x057b,
x060b (060B), dDFC, dLIQB, x063b, dADDQB, dSUBQB, dJ5, dJQB,
x070b (070B), x071b, x072b, x073b, x074b, x075b, x076b, x077b,
OIformat (1 byte)
dOR (100B), dAND, dRX, dBC, dADD, dSUB, dLADD, dLSUB,
dDUP (110B), dDIS, x112b, dEXDIS, dSFC, dSFCI, dRETN, dJSD,
x120b (120B), x121b, x122b, x123b, dKFC, x125b, dJ1, dJSR,
x130b (130B), x131b, x132b, x133b, x134b, x135b, x136b, x137b,
LRformat (1 byte)
dLR0 (140B), dLR1, dLR2, dLR3, dLR4, dLR5, dLR6, dLR7,
dLR8 (150B), dLR9, dLR10, dLR11, dLR12, dLR13, dLR14, dLR15,
dSR0 (160B), dSR1, dSR2, dSR3, dSR4, dSR5, dSR6, dSR7,
dSR8 (170B), dSR9, dSR10, dSR11, dSR12, dSR13, dSR14, dSR15,
QRformat (2 bytes)
dQOR (200B), dQAND, dQRX, dQBC, dQADD, dQSUB, dQLADD, dQLSUB,
OBformat (2 bytes)
dALS (210B), dAL, dASL, dAS, dCST, x215b, dRET, x217b,
dLIP (220B), dSIP, dLIB, x223b, dADDB, dSUBB, dJ2, dJB,
dRB (230B), dWB, dRSB, dWSB, x234b, x235b, x236b, dPSB,
LRBformat (2 bytes)
dLRI0 (240B), dLRI1, dLRI2, dLRI3, dLRI4, dLRI5, dLRI6, dLRI7,
dLRI8 (250B), dLRI9, dLRI10, dLRI11, dLRI12, dLRI13, dLRI14, dLRI15,
dSRI0 (260B), dSRI1, dSRI2, dSRI3, dSRI4, dSRI5, dSRI6, dSRI7,
dSRI8 (270B), dSRI9, dSRI10, dSRI11, dSRI12, dSRI13, dSRI14, dSRI15,
RRformat (3 bytes)
dROR (300B), dRAND, dRRX, dRBC, dRADD, dRSUB, dRLADD, dRLSUB,
dRXOR (310B), x311b, dRFU, x313b, dRVADD, dRVSUB, dRUADD, dRUSUB,
ODBformat and LRRBformat (3 bytes)
dLGF (320B), dLFC, dLIDB, dFSDB, dADDDB, dSUBDB, dJ3, dJDB,
dRAI (330B), dWAI, dRRI, dWRI, dIODA, dIOD, dION, x337b,
RJBformat (3 bytes)
x340b (340B), dRJEB, dRJLB, dRJLEB, x344b, dRJNEB, dRJGEB, dRJGB,
x350b (350B), dRJNEBJ, dRJGEBJ, dRJGBJ, x354b, dRJEBJ, dRJLBJ, dRJLEBJ,
JBBformat (3 bytes)
dJEBB (360B), dJNEBB, dJEBBJ, dJNEBBJ, x364b, x365b, x366b, x367b,
ODBformat (3 bytes)
dSHL (370B), dSHR, dSHDL, dSHDR, x374b, x375b, x376b, x377b};
dFirst: Inst = FIRST[Inst];
dLast: Inst = LAST[Inst];