<> <> <> DIRECTORY DragOpsCross, HandCoding, HandCodingSupport; HandCodingImpl: CEDAR PROGRAM IMPORTS HandCodingSupport EXPORTS HandCoding = BEGIN OPEN DragOpsCross, HandCoding, HandCodingSupport; <> IllegalDst: PUBLIC ERROR = CODE; IllegalReg: PUBLIC ERROR = CODE; IllegalSrc: PUBLIC ERROR = CODE; IllegalMix: PUBLIC ERROR = CODE; <> <> drDFC: PUBLIC OQBformInst = {OQBcommon[dDFC, rest];}; drLIQB: PUBLIC OQBformInst = {OQBcommon[dLIQB, rest];}; drADDQB: PUBLIC OQBformInst = {OQBcommon[dADDQB, rest];}; drSUBQB: PUBLIC OQBformInst = {OQBcommon[dSUBQB, rest];}; drJQB: PUBLIC OQBformInst = {OQBcommon[dJQB, rest];}; <> <<>> drOR: PUBLIC OIformInst = {OIcommon[dOR]}; drAND: PUBLIC OIformInst = {OIcommon[dAND]}; drRX: PUBLIC OIformInst = {OIcommon[dRX]}; drBC: PUBLIC OIformInst = {OIcommon[dBC]}; drADD: PUBLIC OIformInst = {OIcommon[dADD]}; drSUB: PUBLIC OIformInst = {OIcommon[dSUB]}; drLADD: PUBLIC OIformInst = {OIcommon[dLADD]}; drLSUB: PUBLIC OIformInst = {OIcommon[dLSUB]}; drDUP: PUBLIC OIformInst = {OIcommon[dDUP]}; drDIS: PUBLIC OIformInst = {OIcommon[dDIS]}; drEXDIS: PUBLIC OIformInst = {OIcommon[dEXDIS]}; drSFC: PUBLIC OIformInst = {OIcommon[dSFC]}; drSFCI: PUBLIC OIformInst = {OIcommon[dSFCI]}; drRETN: PUBLIC OIformInst = {OIcommon[dRETN]}; drKFC: PUBLIC OIformInst = {OIcommon[dKFC]}; drJ1: PUBLIC OIformInst = {OIcommon[dJ1]}; drJSD: PUBLIC OIformInst = {OIcommon[dJSD]}; drJSR: PUBLIC OIformInst = {OIcommon[dJSR]}; drLC0: PUBLIC OIformInst = {OIcommon[dLC0]}; drLC1: PUBLIC OIformInst = {OIcommon[dLC1]}; drLC2: PUBLIC OIformInst = {OIcommon[dLC2]}; drLC3: PUBLIC OIformInst = {OIcommon[dLC3]}; drLC4: PUBLIC OIformInst = {OIcommon[dLC4]}; drLC5: PUBLIC OIformInst = {OIcommon[dLC5]}; drLC6: PUBLIC OIformInst = {OIcommon[dLC6]}; drLC7: PUBLIC OIformInst = {OIcommon[dLC7]}; drLC8: PUBLIC OIformInst = {OIcommon[dLC8]}; drLC9: PUBLIC OIformInst = {OIcommon[dLC9]}; drLC10: PUBLIC OIformInst = {OIcommon[dLC10]}; drLC11: PUBLIC OIformInst = {OIcommon[dLC11]}; drJ5: PUBLIC OIformInst = {OIcommon[dJ5]}; drJ2: PUBLIC OIformInst = {OIcommon[dJ2]}; drJ3: PUBLIC OIformInst = {OIcommon[dJ3]}; <> drLRn: PUBLIC LRformInst = { IF reg.kind # reg THEN ERROR IllegalReg; LRcommon[dLR0, reg]; }; drSRn: PUBLIC LRformInst = { IF reg.kind # reg THEN ERROR IllegalReg; LRcommon[dSR0, reg]; }; <> drQOR: PUBLIC QRformInst = {QRcommon[dQOR, left, right]}; drQAND: PUBLIC QRformInst = {QRcommon[dQAND, left, right]}; drQRX: PUBLIC QRformInst = {QRcommon[dQRX, left, right]}; drQBC: PUBLIC QRformInst = {QRcommon[dQBC, left, right]}; drQADD: PUBLIC QRformInst = {QRcommon[dQADD, left, right]}; drQSUB: PUBLIC QRformInst = {QRcommon[dQSUB, left, right]}; drQLADD: PUBLIC QRformInst = {QRcommon[dQLADD, left, right]}; drQLSUB: PUBLIC QRformInst = {QRcommon[dQLSUB, left, right]}; <> drALS: PUBLIC OBformInst = {OBcommon[dALS, lit]}; drAL: PUBLIC OBformInst = {OBcommon[dAL, lit]}; drASL: PUBLIC OBformInst = {OBcommon[dASL, lit]}; drAS: PUBLIC OBformInst = {OBcommon[dAS, lit]}; drCST: PUBLIC OBformInst = {OBcommon[dCST, lit]}; drRET: PUBLIC OBformInst = {OBcommon[dRET, lit]}; drLIP: PUBLIC OBformInst = {OBcommon[dLIP, lit]}; drSIP: PUBLIC OBformInst = {OBcommon[dSIP, lit]}; drLIB: PUBLIC OBformInst = {OBcommon[dLIB, lit]}; drADDB: PUBLIC OBformInst = {OBcommon[dADDB, lit]}; drSUBB: PUBLIC OBformInst = {OBcommon[dSUBB, lit]}; drJB: PUBLIC OBformInst = {OBcommon[dJB, lit]}; drRB: PUBLIC OBformInst = {OBcommon[dRB, lit]}; drWB: PUBLIC OBformInst = {OBcommon[dWB, lit]}; drRSB: PUBLIC OBformInst = {OBcommon[dRSB, lit]}; drWSB: PUBLIC OBformInst = {OBcommon[dWSB, lit]}; drPSB: PUBLIC OBformInst = {OBcommon[dPSB, lit]}; <> drLRIn: PUBLIC LRBformInst = { IF reg.kind # reg THEN ERROR IllegalReg; LRBcommon[op: dLRI0, reg: reg, lit: lit]; }; drSRIn: PUBLIC LRBformInst = { IF reg.kind # reg THEN ERROR IllegalReg; LRBcommon[op: dSRI0, reg: reg, lit: lit]; }; <> drROR: PUBLIC RRformInst = {RRcommon[dROR, c,a,b]}; drRAND: PUBLIC RRformInst = {RRcommon[dRAND, c,a,b]}; drRRX: PUBLIC RRformInst = {RRcommon[dRRX, c,a,b]}; drRBC: PUBLIC RRformInst = {RRcommon[dRBC, c,a,b]}; drRADD: PUBLIC RRformInst = {RRcommon[dRADD, c,a,b]}; drRSUB: PUBLIC RRformInst = {RRcommon[dRSUB, c,a,b]}; drRLADD: PUBLIC RRformInst = {RRcommon[dRLADD, c,a,b]}; drRLSUB: PUBLIC RRformInst = {RRcommon[dRLSUB, c,a,b]}; drRXOR: PUBLIC RRformInst = {RRcommon[dRXOR, c,a,b]}; drRFU: PUBLIC RRformInst = {RRcommon[dRFU, c,a,b]}; drRVADD: PUBLIC RRformInst = {RRcommon[dRVADD, c,a,b]}; drRVSUB: PUBLIC RRformInst = {RRcommon[dRVSUB, c,a,b]}; drRUADD: PUBLIC RRformInst = {RRcommon[dRUADD, c,a,b]}; drRUSUB: PUBLIC RRformInst = {RRcommon[dRUSUB, c,a,b]}; <> drLGF: PUBLIC ODBformInst = {ODBcommon[dLGF, lit]}; drLFC: PUBLIC ODBformInst = {ODBcommon[dLFC, lit]}; drLIDB: PUBLIC ODBformInst = {ODBcommon[dLIDB, lit]}; drADDDB: PUBLIC ODBformInst = {ODBcommon[dADDDB, lit]}; drSUBDB: PUBLIC ODBformInst = {ODBcommon[dSUBDB, lit]}; drJDB: PUBLIC ODBformInst = {ODBcommon[dJDB, lit]}; drIODA: PUBLIC ODBformInst = {ODBcommon[dIODA, lit]}; drIOD: PUBLIC ODBformInst = {ODBcommon[dIOD, lit]}; drION: PUBLIC ODBformInst = {ODBcommon[dION, lit]}; drSHL: PUBLIC ODBformInst = {ODBcommon[dSHL, lit]}; drSHR: PUBLIC ODBformInst = {ODBcommon[dSHR, lit]}; drSHDL: PUBLIC ODBformInst = {ODBcommon[dSHDL, lit]}; drSHDR: PUBLIC ODBformInst = {ODBcommon[dSHDR, lit]}; drFSDB: PUBLIC ODBformInst = {ODBcommon[dFSDB, lit]}; <> drRAI: PUBLIC LRRBformInst = { IF reg1.kind # reg THEN ERROR IllegalReg; IF reg2.kind # aux THEN ERROR IllegalReg; LRRBcommon[op: dRAI, reg1: reg1, reg2: reg2, disp: disp]; }; drRRI: PUBLIC LRRBformInst = { IF reg1.kind # reg THEN ERROR IllegalReg; IF reg2.kind # reg THEN ERROR IllegalReg; LRRBcommon[op: dRRI, reg1: reg1, reg2: reg2, disp: disp]; }; drWAI: PUBLIC LRRBformInst = { IF reg1.kind # reg THEN ERROR IllegalReg; IF reg2.kind # aux THEN ERROR IllegalReg; LRRBcommon[op: dWAI, reg1: reg1, reg2: reg2, disp: disp]; }; drWRI: PUBLIC LRRBformInst = { IF reg1.kind # reg THEN ERROR IllegalReg; IF reg2.kind # reg THEN ERROR IllegalReg; LRRBcommon[op: dWRI, reg1: reg1, reg2: reg2, disp: disp]; }; <> drRJEB: PUBLIC RJBformInst = {RJBcommon[dRJEB, left, right, dist]}; drRJEBJ: PUBLIC RJBformInst = {RJBcommon[dRJEBJ, left, right, dist]}; drRJGB: PUBLIC RJBformInst = {RJBcommon[dRJGB, left, right, dist]}; drRJGBJ: PUBLIC RJBformInst = {RJBcommon[dRJGBJ, left, right, dist]}; drRJGEB: PUBLIC RJBformInst = {RJBcommon[dRJGEB, left, right, dist]}; drRJGEBJ: PUBLIC RJBformInst = {RJBcommon[dRJGEBJ, left, right, dist]}; drRJLB: PUBLIC RJBformInst = {RJBcommon[dRJLB, left, right, dist]}; drRJLBJ: PUBLIC RJBformInst = {RJBcommon[dRJLBJ, left, right, dist]}; drRJLEB: PUBLIC RJBformInst = {RJBcommon[dRJLEB, left, right, dist]}; drRJLEBJ: PUBLIC RJBformInst = {RJBcommon[dRJLEBJ, left, right, dist]}; drRJNEB: PUBLIC RJBformInst = {RJBcommon[dRJNEB, left, right, dist]}; drRJNEBJ: PUBLIC RJBformInst = {RJBcommon[dRJNEBJ, left, right, dist]}; <> drJEBB: PUBLIC JBBformInst = {JBBcommon[dJEBB, dist, lit]}; drJEBBJ: PUBLIC JBBformInst = {JBBcommon[dJEBBJ, dist, lit]}; drJNEBB: PUBLIC JBBformInst = {JBBcommon[dJNEBB, dist, lit]}; drJNEBBJ: PUBLIC JBBformInst = {JBBcommon[dJNEBBJ, dist, lit]}; END.