1*29648Ssam /* table.c 1.1 86/07/20 */ 2*29648Ssam 3*29648Ssam #include "../tahoealign/align.h" 4*29648Ssam /* WARNING !!! Do not use register 6 and register 7 in any of the emulation 5*29648Ssam * code. The macro Set_psl has use these two registers to set the 6*29648Ssam * user psl to the current kernel psl. 7*29648Ssam * 8*29648Ssam */ 9*29648Ssam 10*29648Ssam #define insque cannot_do /* Can't emulate un-interruptable opcode ! */ 11*29648Ssam #define remque cannot_do /* Can't emulate un-interruptable opcode ! */ 12*29648Ssam #define addb2 add2 13*29648Ssam #define addb3 add3 14*29648Ssam #define addl2 add2 15*29648Ssam #define addl3 add3 16*29648Ssam #define addw2 add2 17*29648Ssam #define addw3 add3 18*29648Ssam #define andb2 and2 19*29648Ssam #define andb3 and3 20*29648Ssam #define andl2 and2 21*29648Ssam #define andl3 and3 22*29648Ssam #define andw2 and2 23*29648Ssam #define andw3 and3 24*29648Ssam #define atanf not_needed 25*29648Ssam #define kcall cannot_do /* Too complicated to emulate completely */ 26*29648Ssam #define bbssi cannot_do /* Interlock memory during emulation ??? */ 27*29648Ssam #define bcc not_needed 28*29648Ssam #define bcs not_needed 29*29648Ssam #define beql not_needed 30*29648Ssam #define bgeq not_needed 31*29648Ssam #define bgtr not_needed 32*29648Ssam #define bgtru not_needed 33*29648Ssam #define bitb bit 34*29648Ssam #define bitl bit 35*29648Ssam #define bitw bit 36*29648Ssam #define bleq not_needed 37*29648Ssam #define blequ not_needed 38*29648Ssam #define blss not_needed 39*29648Ssam #define bnequ not_needed 40*29648Ssam #define bpt not_needed 41*29648Ssam #define brb not_needed 42*29648Ssam #define brw not_needed 43*29648Ssam #define bvc not_needed 44*29648Ssam #define bvs not_needed 45*29648Ssam #define callf not_needed 46*29648Ssam #define calls not_needed 47*29648Ssam #define clrb clr 48*29648Ssam #define clrl clr 49*29648Ssam #define clrw clr 50*29648Ssam #define cmpb cmp 51*29648Ssam #define cmpl cmp 52*29648Ssam #define cmps2 not_needed 53*29648Ssam #define cmps3 not_needed 54*29648Ssam #define cmpw cmp 55*29648Ssam #define cosf not_needed 56*29648Ssam #define cvdf not_needed 57*29648Ssam #define cvtbl cvt 58*29648Ssam #define cvtbw cvt 59*29648Ssam #define cvtwl cvt 60*29648Ssam #define cvtwb cvtlb 61*29648Ssam #define decb dec 62*29648Ssam #define decl dec 63*29648Ssam #define decw dec 64*29648Ssam #define expf not_needed 65*29648Ssam #define ffs ffs_op 66*29648Ssam #define incb inc 67*29648Ssam #define incl inc 68*29648Ssam #define incw inc 69*29648Ssam #define ldpctx not_needed 70*29648Ssam #define logf not_needed 71*29648Ssam #define mcomb mcom 72*29648Ssam #define mcoml mcom 73*29648Ssam #define mcomw mcom 74*29648Ssam #define mnegb mneg 75*29648Ssam #define mnegl mneg 76*29648Ssam #define mnegw mneg 77*29648Ssam #define movab mova 78*29648Ssam #define moval mova 79*29648Ssam #define movaw mova 80*29648Ssam #define movow cannot_do /* 2 X movob != movow !! See any HW spec ! */ 81*29648Ssam #define movob movob_op 82*29648Ssam #define movb mov 83*29648Ssam #define movblk not_needed 84*29648Ssam #define movl mov 85*29648Ssam #define movs2 not_needed 86*29648Ssam #define movs3 not_needed 87*29648Ssam #define movw mov 88*29648Ssam #define negd not_needed 89*29648Ssam #define negf not_needed 90*29648Ssam #define nop not_needed 91*29648Ssam #define orb2 or2 92*29648Ssam #define orb3 or3 93*29648Ssam #define orl2 or2 94*29648Ssam #define orl3 or3 95*29648Ssam #define orw2 or2 96*29648Ssam #define orw3 or3 97*29648Ssam #define pushab pusha 98*29648Ssam #define pushal pusha 99*29648Ssam #define pushaw pusha 100*29648Ssam #define pushb pushx 101*29648Ssam #define pushd not_needed 102*29648Ssam #define pushl pushx 103*29648Ssam #define pushw pushx 104*29648Ssam #define rei not_needed 105*29648Ssam #define ret not_needed 106*29648Ssam #define sinf not_needed 107*29648Ssam #define sqrtf not_needed 108*29648Ssam #define subb2 sub2 109*29648Ssam #define subb3 sub3 110*29648Ssam #define subl2 sub2 111*29648Ssam #define subl3 sub3 112*29648Ssam #define subw2 sub2 113*29648Ssam #define subw3 sub3 114*29648Ssam #define svpctx not_needed 115*29648Ssam #define tstb tst 116*29648Ssam #define tstd not_needed 117*29648Ssam #define tstf not_needed 118*29648Ssam #define tstl tst 119*29648Ssam #define tstw tst 120*29648Ssam #define xorb2 xor2 121*29648Ssam #define xorb3 xor3 122*29648Ssam #define xorl2 xor2 123*29648Ssam #define xorl3 xor3 124*29648Ssam #define xorw2 xor2 125*29648Ssam #define xorw3 xor3 126*29648Ssam #define movzbl movzb 127*29648Ssam #define movzbw movzb 128*29648Ssam #define halt not_needed /* Privileged to user */ 129*29648Ssam #define illegal not_needed /* Should be trapped by HW */ 130*29648Ssam #define mtpr not_needed /* Privileged to user */ 131*29648Ssam #define mfpr not_needed /* Privileged to user */ 132*29648Ssam #define btcs not_needed /* Privileged to user */ 133*29648Ssam 134*29648Ssam int add2(); 135*29648Ssam int add3(); 136*29648Ssam int adda(); 137*29648Ssam int addd(); 138*29648Ssam int addf(); 139*29648Ssam int adwc(); 140*29648Ssam int and2(); 141*29648Ssam int and3(); 142*29648Ssam int aobleq(); 143*29648Ssam int aoblss(); 144*29648Ssam int bbc(); 145*29648Ssam int bbs(); 146*29648Ssam int bbssi(); 147*29648Ssam int bcc(); 148*29648Ssam int bcs(); 149*29648Ssam int beql(); 150*29648Ssam int bgeq(); 151*29648Ssam int bgtr(); 152*29648Ssam int bgtru(); 153*29648Ssam int bicpsw(); 154*29648Ssam int bispsw(); 155*29648Ssam int bit(); 156*29648Ssam int bleq(); 157*29648Ssam int blequ(); 158*29648Ssam int blss(); 159*29648Ssam int bnequ(); 160*29648Ssam int btcs(); 161*29648Ssam int bvc(); 162*29648Ssam int bvs(); 163*29648Ssam int call(); 164*29648Ssam int casel(); 165*29648Ssam int clr(); 166*29648Ssam int cmp(); 167*29648Ssam int cmpd(); 168*29648Ssam int cmpd2(); 169*29648Ssam int cmpf(); 170*29648Ssam int cmpf2(); 171*29648Ssam int cvdl(); 172*29648Ssam int cvfl(); 173*29648Ssam int cvld(); 174*29648Ssam int cvlf(); 175*29648Ssam int cvt(); 176*29648Ssam int cvt(); 177*29648Ssam int cvtlb(); 178*29648Ssam int cvtlw(); 179*29648Ssam int dec(); 180*29648Ssam int divd(); 181*29648Ssam int divf(); 182*29648Ssam int divl2(); 183*29648Ssam int divl3(); 184*29648Ssam int ediv(); 185*29648Ssam int emul(); 186*29648Ssam int ffc(); 187*29648Ssam int ffs_op(); 188*29648Ssam int halt(); 189*29648Ssam int illegal(); 190*29648Ssam int inc(); 191*29648Ssam int insque(); 192*29648Ssam int jmp(); 193*29648Ssam int kcall(); 194*29648Ssam int ldd(); 195*29648Ssam int ldf(); 196*29648Ssam int ldfd(); 197*29648Ssam int lnd(); 198*29648Ssam int lnf(); 199*29648Ssam int loadr(); 200*29648Ssam int mcom(); 201*29648Ssam int mfpr(); 202*29648Ssam int mneg(); 203*29648Ssam int mov(); 204*29648Ssam int mova(); 205*29648Ssam int movob_op(); 206*29648Ssam int movow(); 207*29648Ssam int movpsl(); 208*29648Ssam int movzb(); 209*29648Ssam int movzwl(); 210*29648Ssam int mtpr(); 211*29648Ssam int muld(); 212*29648Ssam int mulf(); 213*29648Ssam int mull2(); 214*29648Ssam int mull3(); 215*29648Ssam int or2(); 216*29648Ssam int or3(); 217*29648Ssam int prober(); 218*29648Ssam int probew(); 219*29648Ssam int pusha(); 220*29648Ssam int pushx(); 221*29648Ssam int remque(); 222*29648Ssam int sbwc(); 223*29648Ssam int shal(); 224*29648Ssam int shar(); 225*29648Ssam int shll(); 226*29648Ssam int shlq(); 227*29648Ssam int shrl(); 228*29648Ssam int shrq(); 229*29648Ssam int std(); 230*29648Ssam int stf(); 231*29648Ssam int storer(); 232*29648Ssam int sub2(); 233*29648Ssam int sub3(); 234*29648Ssam int suba(); 235*29648Ssam int subd(); 236*29648Ssam int subf(); 237*29648Ssam int tst(); 238*29648Ssam int xor2(); 239*29648Ssam int xor3(); 240*29648Ssam int not_needed(); 241*29648Ssam 242*29648Ssam 243*29648Ssam /**************************************************/ 244*29648Ssam /* The great opcodes table, it drives everything */ 245*29648Ssam /**************************************************/ 246*29648Ssam 247*29648Ssam struct opcode_des Table[]= { 248*29648Ssam 249*29648Ssam /* 00 */ halt , 0, 0, 0, 0, 0, 0, 0, 0, 250*29648Ssam /* 01 */ halt , 0, 0, 0, 0, 0, 0, 0, 0, 251*29648Ssam /* 02 */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 252*29648Ssam /* 03 */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 253*29648Ssam /* 04 */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 254*29648Ssam /* 05 */ sinf , 0, 0, 0, 0, 0, 0, 0, 0, 255*29648Ssam /* 06 */ ldf ,RADF, 4, 0, 0, 0, 0, 0, 0, 256*29648Ssam /* 07 */ ldd ,RADF, 8, 0, 0, 0, 0, 0, 0, 257*29648Ssam /* 08 */ addb2 ,RADI, 1, MAD, 1, 0, 0, 0, 0, 258*29648Ssam /* 09 */ movb ,RADI, 1,NWAD, 1, 0, 0, 0, 0, 259*29648Ssam /* 0A */ addw2 ,RADI, 2, MAD, 2, 0, 0, 0, 0, 260*29648Ssam /* 0B */ movw ,RADI, 2,NWAD, 2, 0, 0, 0, 0, 261*29648Ssam /* 0C */ addl2 ,RADI, 4, MAD, 4, 0, 0, 0, 0, 262*29648Ssam /* 0D */ movl ,RADI, 4,NWAD, 4, 0, 0, 0, 0, 263*29648Ssam /* 0E */ bbs ,RADI, 4, RAD, 4, Brd, 2, 0, 0, 264*29648Ssam /* 0F */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 265*29648Ssam /* 10 */ nop , 0, 0, 0, 0, 0, 0, 0, 0, 266*29648Ssam /* 11 */ brb , Brd, 1, 0, 0, 0, 0, 0, 0, 267*29648Ssam /* 12 */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 268*29648Ssam /* 13 */ brw , Brd, 2, 0, 0, 0, 0, 0, 0, 269*29648Ssam /* 14 */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 270*29648Ssam /* 15 */ cosf , 0, 0, 0, 0, 0, 0, 0, 0, 271*29648Ssam /* 16 */ lnf ,RADF, 4, 0, 0, 0, 0, 0, 0, 272*29648Ssam /* 17 */ lnd ,RADF, 8, 0, 0, 0, 0, 0, 0, 273*29648Ssam /* 18 */ addb3 ,RADI, 1,RADI, 1, WAD, 1, 0, 0, 274*29648Ssam /* 19 */ cmpb ,RADI, 1,RADI, 1, 0, 0, 0, 0, 275*29648Ssam /* 1A */ addw3 ,RADI, 2,RADI, 2, WAD, 2, 0, 0, 276*29648Ssam /* 1B */ cmpw ,RADI, 2,RADI, 2, 0, 0, 0, 0, 277*29648Ssam /* 1C */ addl3 ,RADI, 4,RADI, 4, WAD, 4, 0, 0, 278*29648Ssam /* 1D */ cmpl ,RADI, 4,RADI, 4, 0, 0, 0, 0, 279*29648Ssam /* 1E */ bbc ,RADI, 4, RAD, 4, Brd, 2, 0, 0, 280*29648Ssam /* 1F */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 281*29648Ssam /* 20 */ rei , 0, 0, 0, 0, 0, 0, 0, 0, 282*29648Ssam /* 21 */ bnequ , Brd, 1, 0, 0, 0, 0, 0, 0, 283*29648Ssam /* 22 */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 284*29648Ssam /* 23 */ cvtwl ,RADI, 2, WAD, 4, 0, 0, 0, 0, 285*29648Ssam /* 24 */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 286*29648Ssam /* 25 */ atanf , 0, 0, 0, 0, 0, 0, 0, 0, 287*29648Ssam /* 26 */ stf , WAD, 4, 0, 0, 0, 0, 0, 0, 288*29648Ssam /* 27 */ std , WAD, 8, 0, 0, 0, 0, 0, 0, 289*29648Ssam /* 28 */ subb2 ,RADI, 1, MAD, 1, 0, 0, 0, 0, 290*29648Ssam /* 29 */ mcomb ,RADI, 1,NWAD, 1, 0, 0, 0, 0, 291*29648Ssam /* 2A */ subw2 ,RADI, 2, MAD, 2, 0, 0, 0, 0, 292*29648Ssam /* 2B */ mcomw ,RADI, 2,NWAD, 2, 0, 0, 0, 0, 293*29648Ssam /* 2C */ subl2 ,RADI, 4, MAD, 4, 0, 0, 0, 0, 294*29648Ssam /* 2D */ mcoml ,RADI, 4, WAD, 4, 0, 0, 0, 0, 295*29648Ssam /* 2E */ emul ,RADI, 4,RADI, 4,RADI, 4, WAD, 8, 296*29648Ssam /* 2F */ aoblss ,RADI, 4, MAD, 4, Brd, 2, 0, 0, 297*29648Ssam /* 30 */ bpt , 0, 0, 0, 0, 0, 0, 0, 0, 298*29648Ssam /* 31 */ beql , Brd, 1, 0, 0, 0, 0, 0, 0, 299*29648Ssam /* 32 */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 300*29648Ssam /* 33 */ cvtwb ,RADI, 2, WAD, 1, 0, 0, 0, 0, 301*29648Ssam /* 34 */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 302*29648Ssam /* 35 */ logf , 0, 0, 0, 0, 0, 0, 0, 0, 303*29648Ssam /* 36 */ cmpf ,RADF, 4, 0, 0, 0, 0, 0, 0, 304*29648Ssam /* 37 */ cmpd ,RADF, 8, 0, 0, 0, 0, 0, 0, 305*29648Ssam /* 38 */ subb3 ,RADI, 1,RADI, 1, WAD, 1, 0, 0, 306*29648Ssam /* 39 */ bitb ,RADI, 1,RADI, 1, 0, 0, 0, 0, 307*29648Ssam /* 3A */ subw3 ,RADI, 2,RADI, 2, WAD, 2, 0, 0, 308*29648Ssam /* 3B */ bitw ,RADI, 2,RADI, 2, 0, 0, 0, 0, 309*29648Ssam /* 3C */ subl3 ,RADI, 4,RADI, 4, WAD, 4, 0, 0, 310*29648Ssam /* 3D */ bitl ,RADI, 4,RADI, 4, 0, 0, 0, 0, 311*29648Ssam /* 3E */ ediv ,RADI, 4,RADI, 8, WAD, 4, WD, 4, 312*29648Ssam /* 3F */ aobleq ,RADI, 4, MAD, 4, Brd, 2, 0, 0, 313*29648Ssam /* 40 */ ret , 0, 0, 0, 0, 0, 0, 0, 0, 314*29648Ssam /* 41 */ bgtr , Brd, 1, 0, 0, 0, 0, 0, 0, 315*29648Ssam /* 42 */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 316*29648Ssam /* 43 */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 317*29648Ssam /* 44 */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 318*29648Ssam /* 45 */ sqrtf , 0, 0, 0, 0, 0, 0, 0, 0, 319*29648Ssam /* 46 */ cmpf2 ,RADF, 4,RADF, 4, 0, 0, 0, 0, 320*29648Ssam /* 47 */ cmpd2 ,RADF, 8,RADF, 8, 0, 0, 0, 0, 321*29648Ssam /* 48 */ shll ,RADI, 1,RADI, 4, WAD, 4, 0, 0, 322*29648Ssam /* 49 */ clrb , WAD, 1, 0, 0, 0, 0, 0, 0, 323*29648Ssam /* 4A */ shlq ,RADI, 1,RADI, 8, WAD, 8, 0, 0, 324*29648Ssam /* 4B */ clrw , WAD, 2, 0, 0, 0, 0, 0, 0, 325*29648Ssam /* 4C */ mull2 ,RADI, 4, MAD, 4, 0, 0, 0, 0, 326*29648Ssam /* 4D */ clrl , WAD, 4, 0, 0, 0, 0, 0, 0, 327*29648Ssam /* 4E */ shal ,RADI, 1,RADI, 4, WAD, 4, 0, 0, 328*29648Ssam /* 4F */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 329*29648Ssam /* 50 */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 330*29648Ssam /* 51 */ bleq , Brd, 1, 0, 0, 0, 0, 0, 0, 331*29648Ssam /* 52 */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 332*29648Ssam /* 53 */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 333*29648Ssam /* 54 */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 334*29648Ssam /* 55 */ expf , 0, 0, 0, 0, 0, 0, 0, 0, 335*29648Ssam /* 56 */ tstf , 0, 0, 0, 0, 0, 0, 0, 0, 336*29648Ssam /* 57 */ tstd , 0, 0, 0, 0, 0, 0, 0, 0, 337*29648Ssam /* 58 */ shrl ,RADI, 1,RADI, 4, WAD, 4, 0, 0, 338*29648Ssam /* 59 */ tstb ,RADI, 1, 0, 0, 0, 0, 0, 0, 339*29648Ssam /* 5A */ shrq ,RADI, 1,RADI, 8, WAD, 8, 0, 0, 340*29648Ssam /* 5B */ tstw ,RADI, 2, 0, 0, 0, 0, 0, 0, 341*29648Ssam /* 5C */ mull3 ,RADI, 4,RADI, 4, WAD, 4, 0, 0, 342*29648Ssam /* 5D */ tstl ,RADI, 4, 0, 0, 0, 0, 0, 0, 343*29648Ssam /* 5E */ shar ,RADI, 1,RADI, 4, WAD, 4, 0, 0, 344*29648Ssam /* 5F */ bbssi ,RADI, 4, MAD, 4, Brd, 2, 0, 0, 345*29648Ssam /* 60 */ ldpctx , 0, 0, 0, 0, 0, 0, 0, 0, 346*29648Ssam /* 61 */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 347*29648Ssam /* 62 */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 348*29648Ssam /* 63 */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 349*29648Ssam /* 64 */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 350*29648Ssam /* 65 */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 351*29648Ssam /* 66 */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 352*29648Ssam /* 67 */ pushd , 0, 0, 0, 0, 0, 0, 0, 0, 353*29648Ssam /* 68 */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 354*29648Ssam /* 69 */ incb , MAD, 1, 0, 0, 0, 0, 0, 0, 355*29648Ssam /* 6A */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 356*29648Ssam /* 6B */ incw , MAD, 2, 0, 0, 0, 0, 0, 0, 357*29648Ssam /* 6C */ divl2 ,RADI, 4, MAD, 4, 0, 0, 0, 0, 358*29648Ssam /* 6D */ incl , MAD, 4, 0, 0, 0, 0, 0, 0, 359*29648Ssam /* 6E */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 360*29648Ssam /* 6F */ cvtlb ,RADI, 4, WAD, 1, 0, 0, 0, 0, 361*29648Ssam /* 70 */ svpctx , 0, 0, 0, 0, 0, 0, 0, 0, 362*29648Ssam /* 71 */ jmp ,ADDR, 1, 0, 0, 0, 0, 0, 0, 363*29648Ssam /* 72 */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 364*29648Ssam /* 73 */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 365*29648Ssam /* 74 */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 366*29648Ssam /* 75 */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 367*29648Ssam /* 76 */ cvlf , RAD, 4, 0, 0, 0, 0, 0, 0, 368*29648Ssam /* 77 */ cvld , RAD, 4, 0, 0, 0, 0, 0, 0, 369*29648Ssam /* 78 */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 370*29648Ssam /* 79 */ decb , MAD, 1, 0, 0, 0, 0, 0, 0, 371*29648Ssam /* 7A */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 372*29648Ssam /* 7B */ decw , MAD, 2, 0, 0, 0, 0, 0, 0, 373*29648Ssam /* 7C */ divl3 ,RADI, 4,RADI, 4, WAD, 4, 0, 0, 374*29648Ssam /* 7D */ decl , MAD, 4, 0, 0, 0, 0, 0, 0, 375*29648Ssam /* 7E */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 376*29648Ssam /* 7F */ cvtlw ,RADI, 4, WAD, 2, 0, 0, 0, 0, 377*29648Ssam /* 80 */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 378*29648Ssam /* 81 */ bgeq , Brd, 1, 0, 0, 0, 0, 0, 0, 379*29648Ssam /* 82 */ movs2 , 0, 0, 0, 0, 0, 0, 0, 0, 380*29648Ssam /* 83 */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 381*29648Ssam /* 84 */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 382*29648Ssam /* 85 */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 383*29648Ssam /* 86 */ cvfl , WAD, 4, 0, 0, 0, 0, 0, 0, 384*29648Ssam /* 87 */ cvdl , WAD, 4, 0, 0, 0, 0, 0, 0, 385*29648Ssam /* 88 */ orb2 ,RADI, 1,NMAD, 1, 0, 0, 0, 0, 386*29648Ssam /* 89 */ cvtbl ,RADI, 1, WAD, 4, 0, 0, 0, 0, 387*29648Ssam /* 8A */ orw2 ,RADI, 2,NMAD, 2, 0, 0, 0, 0, 388*29648Ssam /* 8B */ bispsw ,RADI, 2, 0, 0, 0, 0, 0, 0, 389*29648Ssam /* 8C */ orl2 ,RADI, 4, MAD, 4, 0, 0, 0, 0, 390*29648Ssam /* 8D */ adwc ,RADI, 4, MAD, 4, 0, 0, 0, 0, 391*29648Ssam /* 8E */ adda ,RADI, 4, MAD, 4, 0, 0, 0, 0, 392*29648Ssam /* 8F */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 393*29648Ssam /* 90 */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 394*29648Ssam /* 91 */ blss , Brd, 1, 0, 0, 0, 0, 0, 0, 395*29648Ssam /* 92 */ cmps2 , 0, 0, 0, 0, 0, 0, 0, 0, 396*29648Ssam /* 93 */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 397*29648Ssam /* 94 */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 398*29648Ssam /* 95 */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 399*29648Ssam /* 96 */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 400*29648Ssam /* 97 */ ldfd ,RADF, 4, 0, 0, 0, 0, 0, 0, 401*29648Ssam /* 98 */ orb3 ,RADI, 1,RADI, 1,NWAD, 1, 0, 0, 402*29648Ssam /* 99 */ cvtbw ,RADI, 1, WAD, 2, 0, 0, 0, 0, 403*29648Ssam /* 9A */ orw3 ,RADI, 2,RADI, 2,NWAD, 2, 0, 0, 404*29648Ssam /* 9B */ bicpsw ,RADI, 2, 0, 0, 0, 0, 0, 0, 405*29648Ssam /* 9C */ orl3 ,RADI, 4,RADI, 4, WAD, 4, 0, 0, 406*29648Ssam /* 9D */ sbwc ,RADI, 4, MAD, 4, 0, 0, 0, 0, 407*29648Ssam /* 9E */ suba ,RADI, 4, MAD, 4, 0, 0, 0, 0, 408*29648Ssam /* 9F */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 409*29648Ssam /* A0 */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 410*29648Ssam /* A1 */ bgtru , Brd, 1, 0, 0, 0, 0, 0, 0, 411*29648Ssam /* A2 */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 412*29648Ssam /* A3 */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 413*29648Ssam /* A4 */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 414*29648Ssam /* A5 */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 415*29648Ssam /* A6 */ cvdf , 0, 0, 0, 0, 0, 0, 0, 0, 416*29648Ssam /* A7 */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 417*29648Ssam /* A8 */ andb2 ,RADI, 1,NMAD, 1, 0, 0, 0, 0, 418*29648Ssam /* A9 */ movzbl ,RADI, 1, WAD, 4, 0, 0, 0, 0, 419*29648Ssam /* AA */ andw2 ,RADI, 2,NMAD, 2, 0, 0, 0, 0, 420*29648Ssam /* AB */ loadr ,RADI, 2,ADDR, 4, 0, 0, 0, 0, 421*29648Ssam /* AC */ andl2 ,RADI, 4, MAD, 4, 0, 0, 0, 0, 422*29648Ssam /* AD */ mtpr ,RADI, 4,RADI, 4, 0, 0, 0, 0, 423*29648Ssam /* AE */ ffs ,RADI, 4, WAD, 4, 0, 0, 0, 0, 424*29648Ssam /* AF */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 425*29648Ssam /* B0 */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 426*29648Ssam /* B1 */ blequ , Brd, 1, 0, 0, 0, 0, 0, 0, 427*29648Ssam /* B2 */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 428*29648Ssam /* B3 */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 429*29648Ssam /* B4 */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 430*29648Ssam /* B5 */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 431*29648Ssam /* B6 */ negf , 0, 0, 0, 0, 0, 0, 0, 0, 432*29648Ssam /* B7 */ negd , 0, 0, 0, 0, 0, 0, 0, 0, 433*29648Ssam /* B8 */ andb3 ,RADI, 1,RADI, 1,NWAD, 1, 0, 0, 434*29648Ssam /* B9 */ movzbw ,RADI, 1, WAD, 2, 0, 0, 0, 0, 435*29648Ssam /* BA */ andw3 ,RADI, 2,RADI, 2,NWAD, 2, 0, 0, 436*29648Ssam /* BB */ storer ,RADI, 2,W|ADDR, 4, 0, 0, 0, 0, 437*29648Ssam /* BC */ andl3 ,RADI, 4,RADI, 4, WAD, 4, 0, 0, 438*29648Ssam /* BD */ mfpr ,RADI, 4, WAD, 4, 0, 0, 0, 0, 439*29648Ssam /* BE */ ffc ,RADI, 4, WAD, 4, 0, 0, 0, 0, 440*29648Ssam /* BF */ calls ,RADI, 1,ADDR, 1, 0, 0, 0, 0, 441*29648Ssam /* C0 */ prober ,RADI, 1,ADDR, 1,RADI, 4, 0, 0, 442*29648Ssam /* C1 */ bvc , Brd, 1, 0, 0, 0, 0, 0, 0, 443*29648Ssam /* C2 */ movs3 , 0, 0, 0, 0, 0, 0, 0, 0, 444*29648Ssam /* C3 */ movzwl ,RADI, 2, WAD, 4, 0, 0, 0, 0, 445*29648Ssam /* C4 */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 446*29648Ssam /* C5 */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 447*29648Ssam /* C6 */ addf ,RADF, 4, 0, 0, 0, 0, 0, 0, 448*29648Ssam /* C7 */ addd ,RADF, 8, 0, 0, 0, 0, 0, 0, 449*29648Ssam /* C8 */ xorb2 ,RADI, 1,NMAD, 1, 0, 0, 0, 0, 450*29648Ssam /* C9 */ movob ,RADI, 1,NWAD, 1, 0, 0, 0, 0, 451*29648Ssam /* CA */ xorw2 ,RADI, 2,NMAD, 2, 0, 0, 0, 0, 452*29648Ssam /* CB */ movow ,RADI, 2,NWAD, 2, 0, 0, 0, 0, 453*29648Ssam /* CC */ xorl2 ,RADI, 4, MAD, 4, 0, 0, 0, 0, 454*29648Ssam /* CD */ movpsl , WAD, 4, 0, 0, 0, 0, 0, 0, 455*29648Ssam /* CE */ btcs ,RADI, 1, 0, 0, 0, 0, 0, 0, 456*29648Ssam /* CF */ kcall ,RADI, 2, 0, 0, 0, 0, 0, 0, 457*29648Ssam /* D0 */ probew ,RADI, 1,ADDR, 1,RADI, 4, 0, 0, 458*29648Ssam /* D1 */ bvs , Brd, 1, 0, 0, 0, 0, 0, 0, 459*29648Ssam /* D2 */ cmps3 , 0, 0, 0, 0, 0, 0, 0, 0, 460*29648Ssam /* D3 */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 461*29648Ssam /* D4 */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 462*29648Ssam /* D5 */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 463*29648Ssam /* D6 */ subf ,RADF, 4, 0, 0, 0, 0, 0, 0, 464*29648Ssam /* D7 */ subd ,RADF, 8, 0, 0, 0, 0, 0, 0, 465*29648Ssam /* D8 */ xorb3 ,RADI, 1,RADI, 1,NWAD, 1, 0, 0, 466*29648Ssam /* D9 */ pushb ,RADI, 1, 0, 0, 0, 0, 0, 0, 467*29648Ssam /* DA */ xorw3 ,RADI, 2,RADI, 2,NWAD, 2, 0, 0, 468*29648Ssam /* DB */ pushw ,RADI, 2, 0, 0, 0, 0, 0, 0, 469*29648Ssam /* DC */ xorl3 ,RADI, 4,RADI, 4, WAD, 4, 0, 0, 470*29648Ssam /* DD */ pushl ,RADI, 4, 0, 0, 0, 0, 0, 0, 471*29648Ssam /* DE */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 472*29648Ssam /* DF */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 473*29648Ssam /* E0 */ insque ,ADDR, 4,ADDR, 4, 0, 0, 0, 0, 474*29648Ssam /* E1 */ bcs , Brd, 1, 0, 0, 0, 0, 0, 0, 475*29648Ssam /* E2 */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 476*29648Ssam /* E3 */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 477*29648Ssam /* E4 */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 478*29648Ssam /* E5 */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 479*29648Ssam /* E6 */ mulf ,RADF, 4, 0, 0, 0, 0, 0, 0, 480*29648Ssam /* E7 */ muld ,RADF, 8, 0, 0, 0, 0, 0, 0, 481*29648Ssam /* E8 */ mnegb ,RADI, 1, WAD, 1, 0, 0, 0, 0, 482*29648Ssam /* E9 */ movab ,ADDR, 1, WAD, 4, 0, 0, 0, 0, 483*29648Ssam /* EA */ mnegw ,RADI, 2, WAD, 2, 0, 0, 0, 0, 484*29648Ssam /* EB */ movaw ,ADDR, 2, WAD, 4, 0, 0, 0, 0, 485*29648Ssam /* EC */ mnegl ,RADI, 4, WAD, 4, 0, 0, 0, 0, 486*29648Ssam /* ED */ moval ,ADDR, 4, WAD, 4, 0, 0, 0, 0, 487*29648Ssam /* EE */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 488*29648Ssam /* EF */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 489*29648Ssam /* F0 */ remque ,ADDR, 4, 0, 0, 0, 0, 0, 0, 490*29648Ssam /* F1 */ bcc , Brd, 1, 0, 0, 0, 0, 0, 0, 491*29648Ssam /* F2 */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 492*29648Ssam /* F3 */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 493*29648Ssam /* F4 */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 494*29648Ssam /* F5 */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 495*29648Ssam /* F6 */ divf ,RADF, 4, 0, 0, 0, 0, 0, 0, 496*29648Ssam /* F7 */ divd ,RADF, 8, 0, 0, 0, 0, 0, 0, 497*29648Ssam /* F8 */ movblk , 0, 0, 0, 0, 0, 0, 0, 0, 498*29648Ssam /* F9 */ pushab ,ADDR, 1, 0, 0, 0, 0, 0, 0, 499*29648Ssam /* FA */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 500*29648Ssam /* FB */ pushaw ,ADDR, 2, 0, 0, 0, 0, 0, 0, 501*29648Ssam /* FC */ casel ,RADI, 4,RADI, 4,RADI, 4, 0, 0, 502*29648Ssam /* FD */ pushal ,ADDR, 4, 0, 0, 0, 0, 0, 0, 503*29648Ssam /* FE */ callf ,Imm|Lit, 1, PR, 1, 0, 0, 0, 0, 504*29648Ssam /* FF */ illegal , 0, 0, 0, 0, 0, 0, 0, 0 505*29648Ssam }; 506