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