1*45699Sbostic /* table.c 1.2 90/12/04 */ 229648Ssam 3*45699Sbostic #include "align.h" 429648Ssam /* WARNING !!! Do not use register 6 and register 7 in any of the emulation 529648Ssam * code. The macro Set_psl has use these two registers to set the 629648Ssam * user psl to the current kernel psl. 729648Ssam * 829648Ssam */ 929648Ssam 1029648Ssam #define insque cannot_do /* Can't emulate un-interruptable opcode ! */ 1129648Ssam #define remque cannot_do /* Can't emulate un-interruptable opcode ! */ 1229648Ssam #define addb2 add2 1329648Ssam #define addb3 add3 1429648Ssam #define addl2 add2 1529648Ssam #define addl3 add3 1629648Ssam #define addw2 add2 1729648Ssam #define addw3 add3 1829648Ssam #define andb2 and2 1929648Ssam #define andb3 and3 2029648Ssam #define andl2 and2 2129648Ssam #define andl3 and3 2229648Ssam #define andw2 and2 2329648Ssam #define andw3 and3 2429648Ssam #define atanf not_needed 2529648Ssam #define kcall cannot_do /* Too complicated to emulate completely */ 2629648Ssam #define bbssi cannot_do /* Interlock memory during emulation ??? */ 2729648Ssam #define bcc not_needed 2829648Ssam #define bcs not_needed 2929648Ssam #define beql not_needed 3029648Ssam #define bgeq not_needed 3129648Ssam #define bgtr not_needed 3229648Ssam #define bgtru not_needed 3329648Ssam #define bitb bit 3429648Ssam #define bitl bit 3529648Ssam #define bitw bit 3629648Ssam #define bleq not_needed 3729648Ssam #define blequ not_needed 3829648Ssam #define blss not_needed 3929648Ssam #define bnequ not_needed 4029648Ssam #define bpt not_needed 4129648Ssam #define brb not_needed 4229648Ssam #define brw not_needed 4329648Ssam #define bvc not_needed 4429648Ssam #define bvs not_needed 4529648Ssam #define callf not_needed 4629648Ssam #define calls not_needed 4729648Ssam #define clrb clr 4829648Ssam #define clrl clr 4929648Ssam #define clrw clr 5029648Ssam #define cmpb cmp 5129648Ssam #define cmpl cmp 5229648Ssam #define cmps2 not_needed 5329648Ssam #define cmps3 not_needed 5429648Ssam #define cmpw cmp 5529648Ssam #define cosf not_needed 5629648Ssam #define cvdf not_needed 5729648Ssam #define cvtbl cvt 5829648Ssam #define cvtbw cvt 5929648Ssam #define cvtwl cvt 6029648Ssam #define cvtwb cvtlb 6129648Ssam #define decb dec 6229648Ssam #define decl dec 6329648Ssam #define decw dec 6429648Ssam #define expf not_needed 6529648Ssam #define ffs ffs_op 6629648Ssam #define incb inc 6729648Ssam #define incl inc 6829648Ssam #define incw inc 6929648Ssam #define ldpctx not_needed 7029648Ssam #define logf not_needed 7129648Ssam #define mcomb mcom 7229648Ssam #define mcoml mcom 7329648Ssam #define mcomw mcom 7429648Ssam #define mnegb mneg 7529648Ssam #define mnegl mneg 7629648Ssam #define mnegw mneg 7729648Ssam #define movab mova 7829648Ssam #define moval mova 7929648Ssam #define movaw mova 8029648Ssam #define movow cannot_do /* 2 X movob != movow !! See any HW spec ! */ 8129648Ssam #define movob movob_op 8229648Ssam #define movb mov 8329648Ssam #define movblk not_needed 8429648Ssam #define movl mov 8529648Ssam #define movs2 not_needed 8629648Ssam #define movs3 not_needed 8729648Ssam #define movw mov 8829648Ssam #define negd not_needed 8929648Ssam #define negf not_needed 9029648Ssam #define nop not_needed 9129648Ssam #define orb2 or2 9229648Ssam #define orb3 or3 9329648Ssam #define orl2 or2 9429648Ssam #define orl3 or3 9529648Ssam #define orw2 or2 9629648Ssam #define orw3 or3 9729648Ssam #define pushab pusha 9829648Ssam #define pushal pusha 9929648Ssam #define pushaw pusha 10029648Ssam #define pushb pushx 10129648Ssam #define pushd not_needed 10229648Ssam #define pushl pushx 10329648Ssam #define pushw pushx 10429648Ssam #define rei not_needed 10529648Ssam #define ret not_needed 10629648Ssam #define sinf not_needed 10729648Ssam #define sqrtf not_needed 10829648Ssam #define subb2 sub2 10929648Ssam #define subb3 sub3 11029648Ssam #define subl2 sub2 11129648Ssam #define subl3 sub3 11229648Ssam #define subw2 sub2 11329648Ssam #define subw3 sub3 11429648Ssam #define svpctx not_needed 11529648Ssam #define tstb tst 11629648Ssam #define tstd not_needed 11729648Ssam #define tstf not_needed 11829648Ssam #define tstl tst 11929648Ssam #define tstw tst 12029648Ssam #define xorb2 xor2 12129648Ssam #define xorb3 xor3 12229648Ssam #define xorl2 xor2 12329648Ssam #define xorl3 xor3 12429648Ssam #define xorw2 xor2 12529648Ssam #define xorw3 xor3 12629648Ssam #define movzbl movzb 12729648Ssam #define movzbw movzb 12829648Ssam #define halt not_needed /* Privileged to user */ 12929648Ssam #define illegal not_needed /* Should be trapped by HW */ 13029648Ssam #define mtpr not_needed /* Privileged to user */ 13129648Ssam #define mfpr not_needed /* Privileged to user */ 13229648Ssam #define btcs not_needed /* Privileged to user */ 13329648Ssam 13429648Ssam int add2(); 13529648Ssam int add3(); 13629648Ssam int adda(); 13729648Ssam int addd(); 13829648Ssam int addf(); 13929648Ssam int adwc(); 14029648Ssam int and2(); 14129648Ssam int and3(); 14229648Ssam int aobleq(); 14329648Ssam int aoblss(); 14429648Ssam int bbc(); 14529648Ssam int bbs(); 14629648Ssam int bbssi(); 14729648Ssam int bcc(); 14829648Ssam int bcs(); 14929648Ssam int beql(); 15029648Ssam int bgeq(); 15129648Ssam int bgtr(); 15229648Ssam int bgtru(); 15329648Ssam int bicpsw(); 15429648Ssam int bispsw(); 15529648Ssam int bit(); 15629648Ssam int bleq(); 15729648Ssam int blequ(); 15829648Ssam int blss(); 15929648Ssam int bnequ(); 16029648Ssam int btcs(); 16129648Ssam int bvc(); 16229648Ssam int bvs(); 16329648Ssam int call(); 16429648Ssam int casel(); 16529648Ssam int clr(); 16629648Ssam int cmp(); 16729648Ssam int cmpd(); 16829648Ssam int cmpd2(); 16929648Ssam int cmpf(); 17029648Ssam int cmpf2(); 17129648Ssam int cvdl(); 17229648Ssam int cvfl(); 17329648Ssam int cvld(); 17429648Ssam int cvlf(); 17529648Ssam int cvt(); 17629648Ssam int cvt(); 17729648Ssam int cvtlb(); 17829648Ssam int cvtlw(); 17929648Ssam int dec(); 18029648Ssam int divd(); 18129648Ssam int divf(); 18229648Ssam int divl2(); 18329648Ssam int divl3(); 18429648Ssam int ediv(); 18529648Ssam int emul(); 18629648Ssam int ffc(); 18729648Ssam int ffs_op(); 18829648Ssam int halt(); 18929648Ssam int illegal(); 19029648Ssam int inc(); 19129648Ssam int insque(); 19229648Ssam int jmp(); 19329648Ssam int kcall(); 19429648Ssam int ldd(); 19529648Ssam int ldf(); 19629648Ssam int ldfd(); 19729648Ssam int lnd(); 19829648Ssam int lnf(); 19929648Ssam int loadr(); 20029648Ssam int mcom(); 20129648Ssam int mfpr(); 20229648Ssam int mneg(); 20329648Ssam int mov(); 20429648Ssam int mova(); 20529648Ssam int movob_op(); 20629648Ssam int movow(); 20729648Ssam int movpsl(); 20829648Ssam int movzb(); 20929648Ssam int movzwl(); 21029648Ssam int mtpr(); 21129648Ssam int muld(); 21229648Ssam int mulf(); 21329648Ssam int mull2(); 21429648Ssam int mull3(); 21529648Ssam int or2(); 21629648Ssam int or3(); 21729648Ssam int prober(); 21829648Ssam int probew(); 21929648Ssam int pusha(); 22029648Ssam int pushx(); 22129648Ssam int remque(); 22229648Ssam int sbwc(); 22329648Ssam int shal(); 22429648Ssam int shar(); 22529648Ssam int shll(); 22629648Ssam int shlq(); 22729648Ssam int shrl(); 22829648Ssam int shrq(); 22929648Ssam int std(); 23029648Ssam int stf(); 23129648Ssam int storer(); 23229648Ssam int sub2(); 23329648Ssam int sub3(); 23429648Ssam int suba(); 23529648Ssam int subd(); 23629648Ssam int subf(); 23729648Ssam int tst(); 23829648Ssam int xor2(); 23929648Ssam int xor3(); 24029648Ssam int not_needed(); 24129648Ssam 24229648Ssam 24329648Ssam /**************************************************/ 24429648Ssam /* The great opcodes table, it drives everything */ 24529648Ssam /**************************************************/ 24629648Ssam 24729648Ssam struct opcode_des Table[]= { 24829648Ssam 24929648Ssam /* 00 */ halt , 0, 0, 0, 0, 0, 0, 0, 0, 25029648Ssam /* 01 */ halt , 0, 0, 0, 0, 0, 0, 0, 0, 25129648Ssam /* 02 */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 25229648Ssam /* 03 */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 25329648Ssam /* 04 */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 25429648Ssam /* 05 */ sinf , 0, 0, 0, 0, 0, 0, 0, 0, 25529648Ssam /* 06 */ ldf ,RADF, 4, 0, 0, 0, 0, 0, 0, 25629648Ssam /* 07 */ ldd ,RADF, 8, 0, 0, 0, 0, 0, 0, 25729648Ssam /* 08 */ addb2 ,RADI, 1, MAD, 1, 0, 0, 0, 0, 25829648Ssam /* 09 */ movb ,RADI, 1,NWAD, 1, 0, 0, 0, 0, 25929648Ssam /* 0A */ addw2 ,RADI, 2, MAD, 2, 0, 0, 0, 0, 26029648Ssam /* 0B */ movw ,RADI, 2,NWAD, 2, 0, 0, 0, 0, 26129648Ssam /* 0C */ addl2 ,RADI, 4, MAD, 4, 0, 0, 0, 0, 26229648Ssam /* 0D */ movl ,RADI, 4,NWAD, 4, 0, 0, 0, 0, 26329648Ssam /* 0E */ bbs ,RADI, 4, RAD, 4, Brd, 2, 0, 0, 26429648Ssam /* 0F */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 26529648Ssam /* 10 */ nop , 0, 0, 0, 0, 0, 0, 0, 0, 26629648Ssam /* 11 */ brb , Brd, 1, 0, 0, 0, 0, 0, 0, 26729648Ssam /* 12 */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 26829648Ssam /* 13 */ brw , Brd, 2, 0, 0, 0, 0, 0, 0, 26929648Ssam /* 14 */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 27029648Ssam /* 15 */ cosf , 0, 0, 0, 0, 0, 0, 0, 0, 27129648Ssam /* 16 */ lnf ,RADF, 4, 0, 0, 0, 0, 0, 0, 27229648Ssam /* 17 */ lnd ,RADF, 8, 0, 0, 0, 0, 0, 0, 27329648Ssam /* 18 */ addb3 ,RADI, 1,RADI, 1, WAD, 1, 0, 0, 27429648Ssam /* 19 */ cmpb ,RADI, 1,RADI, 1, 0, 0, 0, 0, 27529648Ssam /* 1A */ addw3 ,RADI, 2,RADI, 2, WAD, 2, 0, 0, 27629648Ssam /* 1B */ cmpw ,RADI, 2,RADI, 2, 0, 0, 0, 0, 27729648Ssam /* 1C */ addl3 ,RADI, 4,RADI, 4, WAD, 4, 0, 0, 27829648Ssam /* 1D */ cmpl ,RADI, 4,RADI, 4, 0, 0, 0, 0, 27929648Ssam /* 1E */ bbc ,RADI, 4, RAD, 4, Brd, 2, 0, 0, 28029648Ssam /* 1F */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 28129648Ssam /* 20 */ rei , 0, 0, 0, 0, 0, 0, 0, 0, 28229648Ssam /* 21 */ bnequ , Brd, 1, 0, 0, 0, 0, 0, 0, 28329648Ssam /* 22 */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 28429648Ssam /* 23 */ cvtwl ,RADI, 2, WAD, 4, 0, 0, 0, 0, 28529648Ssam /* 24 */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 28629648Ssam /* 25 */ atanf , 0, 0, 0, 0, 0, 0, 0, 0, 28729648Ssam /* 26 */ stf , WAD, 4, 0, 0, 0, 0, 0, 0, 28829648Ssam /* 27 */ std , WAD, 8, 0, 0, 0, 0, 0, 0, 28929648Ssam /* 28 */ subb2 ,RADI, 1, MAD, 1, 0, 0, 0, 0, 29029648Ssam /* 29 */ mcomb ,RADI, 1,NWAD, 1, 0, 0, 0, 0, 29129648Ssam /* 2A */ subw2 ,RADI, 2, MAD, 2, 0, 0, 0, 0, 29229648Ssam /* 2B */ mcomw ,RADI, 2,NWAD, 2, 0, 0, 0, 0, 29329648Ssam /* 2C */ subl2 ,RADI, 4, MAD, 4, 0, 0, 0, 0, 29429648Ssam /* 2D */ mcoml ,RADI, 4, WAD, 4, 0, 0, 0, 0, 29529648Ssam /* 2E */ emul ,RADI, 4,RADI, 4,RADI, 4, WAD, 8, 29629648Ssam /* 2F */ aoblss ,RADI, 4, MAD, 4, Brd, 2, 0, 0, 29729648Ssam /* 30 */ bpt , 0, 0, 0, 0, 0, 0, 0, 0, 29829648Ssam /* 31 */ beql , Brd, 1, 0, 0, 0, 0, 0, 0, 29929648Ssam /* 32 */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 30029648Ssam /* 33 */ cvtwb ,RADI, 2, WAD, 1, 0, 0, 0, 0, 30129648Ssam /* 34 */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 30229648Ssam /* 35 */ logf , 0, 0, 0, 0, 0, 0, 0, 0, 30329648Ssam /* 36 */ cmpf ,RADF, 4, 0, 0, 0, 0, 0, 0, 30429648Ssam /* 37 */ cmpd ,RADF, 8, 0, 0, 0, 0, 0, 0, 30529648Ssam /* 38 */ subb3 ,RADI, 1,RADI, 1, WAD, 1, 0, 0, 30629648Ssam /* 39 */ bitb ,RADI, 1,RADI, 1, 0, 0, 0, 0, 30729648Ssam /* 3A */ subw3 ,RADI, 2,RADI, 2, WAD, 2, 0, 0, 30829648Ssam /* 3B */ bitw ,RADI, 2,RADI, 2, 0, 0, 0, 0, 30929648Ssam /* 3C */ subl3 ,RADI, 4,RADI, 4, WAD, 4, 0, 0, 31029648Ssam /* 3D */ bitl ,RADI, 4,RADI, 4, 0, 0, 0, 0, 31129648Ssam /* 3E */ ediv ,RADI, 4,RADI, 8, WAD, 4, WD, 4, 31229648Ssam /* 3F */ aobleq ,RADI, 4, MAD, 4, Brd, 2, 0, 0, 31329648Ssam /* 40 */ ret , 0, 0, 0, 0, 0, 0, 0, 0, 31429648Ssam /* 41 */ bgtr , Brd, 1, 0, 0, 0, 0, 0, 0, 31529648Ssam /* 42 */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 31629648Ssam /* 43 */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 31729648Ssam /* 44 */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 31829648Ssam /* 45 */ sqrtf , 0, 0, 0, 0, 0, 0, 0, 0, 31929648Ssam /* 46 */ cmpf2 ,RADF, 4,RADF, 4, 0, 0, 0, 0, 32029648Ssam /* 47 */ cmpd2 ,RADF, 8,RADF, 8, 0, 0, 0, 0, 32129648Ssam /* 48 */ shll ,RADI, 1,RADI, 4, WAD, 4, 0, 0, 32229648Ssam /* 49 */ clrb , WAD, 1, 0, 0, 0, 0, 0, 0, 32329648Ssam /* 4A */ shlq ,RADI, 1,RADI, 8, WAD, 8, 0, 0, 32429648Ssam /* 4B */ clrw , WAD, 2, 0, 0, 0, 0, 0, 0, 32529648Ssam /* 4C */ mull2 ,RADI, 4, MAD, 4, 0, 0, 0, 0, 32629648Ssam /* 4D */ clrl , WAD, 4, 0, 0, 0, 0, 0, 0, 32729648Ssam /* 4E */ shal ,RADI, 1,RADI, 4, WAD, 4, 0, 0, 32829648Ssam /* 4F */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 32929648Ssam /* 50 */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 33029648Ssam /* 51 */ bleq , Brd, 1, 0, 0, 0, 0, 0, 0, 33129648Ssam /* 52 */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 33229648Ssam /* 53 */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 33329648Ssam /* 54 */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 33429648Ssam /* 55 */ expf , 0, 0, 0, 0, 0, 0, 0, 0, 33529648Ssam /* 56 */ tstf , 0, 0, 0, 0, 0, 0, 0, 0, 33629648Ssam /* 57 */ tstd , 0, 0, 0, 0, 0, 0, 0, 0, 33729648Ssam /* 58 */ shrl ,RADI, 1,RADI, 4, WAD, 4, 0, 0, 33829648Ssam /* 59 */ tstb ,RADI, 1, 0, 0, 0, 0, 0, 0, 33929648Ssam /* 5A */ shrq ,RADI, 1,RADI, 8, WAD, 8, 0, 0, 34029648Ssam /* 5B */ tstw ,RADI, 2, 0, 0, 0, 0, 0, 0, 34129648Ssam /* 5C */ mull3 ,RADI, 4,RADI, 4, WAD, 4, 0, 0, 34229648Ssam /* 5D */ tstl ,RADI, 4, 0, 0, 0, 0, 0, 0, 34329648Ssam /* 5E */ shar ,RADI, 1,RADI, 4, WAD, 4, 0, 0, 34429648Ssam /* 5F */ bbssi ,RADI, 4, MAD, 4, Brd, 2, 0, 0, 34529648Ssam /* 60 */ ldpctx , 0, 0, 0, 0, 0, 0, 0, 0, 34629648Ssam /* 61 */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 34729648Ssam /* 62 */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 34829648Ssam /* 63 */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 34929648Ssam /* 64 */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 35029648Ssam /* 65 */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 35129648Ssam /* 66 */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 35229648Ssam /* 67 */ pushd , 0, 0, 0, 0, 0, 0, 0, 0, 35329648Ssam /* 68 */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 35429648Ssam /* 69 */ incb , MAD, 1, 0, 0, 0, 0, 0, 0, 35529648Ssam /* 6A */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 35629648Ssam /* 6B */ incw , MAD, 2, 0, 0, 0, 0, 0, 0, 35729648Ssam /* 6C */ divl2 ,RADI, 4, MAD, 4, 0, 0, 0, 0, 35829648Ssam /* 6D */ incl , MAD, 4, 0, 0, 0, 0, 0, 0, 35929648Ssam /* 6E */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 36029648Ssam /* 6F */ cvtlb ,RADI, 4, WAD, 1, 0, 0, 0, 0, 36129648Ssam /* 70 */ svpctx , 0, 0, 0, 0, 0, 0, 0, 0, 36229648Ssam /* 71 */ jmp ,ADDR, 1, 0, 0, 0, 0, 0, 0, 36329648Ssam /* 72 */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 36429648Ssam /* 73 */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 36529648Ssam /* 74 */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 36629648Ssam /* 75 */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 36729648Ssam /* 76 */ cvlf , RAD, 4, 0, 0, 0, 0, 0, 0, 36829648Ssam /* 77 */ cvld , RAD, 4, 0, 0, 0, 0, 0, 0, 36929648Ssam /* 78 */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 37029648Ssam /* 79 */ decb , MAD, 1, 0, 0, 0, 0, 0, 0, 37129648Ssam /* 7A */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 37229648Ssam /* 7B */ decw , MAD, 2, 0, 0, 0, 0, 0, 0, 37329648Ssam /* 7C */ divl3 ,RADI, 4,RADI, 4, WAD, 4, 0, 0, 37429648Ssam /* 7D */ decl , MAD, 4, 0, 0, 0, 0, 0, 0, 37529648Ssam /* 7E */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 37629648Ssam /* 7F */ cvtlw ,RADI, 4, WAD, 2, 0, 0, 0, 0, 37729648Ssam /* 80 */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 37829648Ssam /* 81 */ bgeq , Brd, 1, 0, 0, 0, 0, 0, 0, 37929648Ssam /* 82 */ movs2 , 0, 0, 0, 0, 0, 0, 0, 0, 38029648Ssam /* 83 */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 38129648Ssam /* 84 */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 38229648Ssam /* 85 */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 38329648Ssam /* 86 */ cvfl , WAD, 4, 0, 0, 0, 0, 0, 0, 38429648Ssam /* 87 */ cvdl , WAD, 4, 0, 0, 0, 0, 0, 0, 38529648Ssam /* 88 */ orb2 ,RADI, 1,NMAD, 1, 0, 0, 0, 0, 38629648Ssam /* 89 */ cvtbl ,RADI, 1, WAD, 4, 0, 0, 0, 0, 38729648Ssam /* 8A */ orw2 ,RADI, 2,NMAD, 2, 0, 0, 0, 0, 38829648Ssam /* 8B */ bispsw ,RADI, 2, 0, 0, 0, 0, 0, 0, 38929648Ssam /* 8C */ orl2 ,RADI, 4, MAD, 4, 0, 0, 0, 0, 39029648Ssam /* 8D */ adwc ,RADI, 4, MAD, 4, 0, 0, 0, 0, 39129648Ssam /* 8E */ adda ,RADI, 4, MAD, 4, 0, 0, 0, 0, 39229648Ssam /* 8F */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 39329648Ssam /* 90 */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 39429648Ssam /* 91 */ blss , Brd, 1, 0, 0, 0, 0, 0, 0, 39529648Ssam /* 92 */ cmps2 , 0, 0, 0, 0, 0, 0, 0, 0, 39629648Ssam /* 93 */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 39729648Ssam /* 94 */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 39829648Ssam /* 95 */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 39929648Ssam /* 96 */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 40029648Ssam /* 97 */ ldfd ,RADF, 4, 0, 0, 0, 0, 0, 0, 40129648Ssam /* 98 */ orb3 ,RADI, 1,RADI, 1,NWAD, 1, 0, 0, 40229648Ssam /* 99 */ cvtbw ,RADI, 1, WAD, 2, 0, 0, 0, 0, 40329648Ssam /* 9A */ orw3 ,RADI, 2,RADI, 2,NWAD, 2, 0, 0, 40429648Ssam /* 9B */ bicpsw ,RADI, 2, 0, 0, 0, 0, 0, 0, 40529648Ssam /* 9C */ orl3 ,RADI, 4,RADI, 4, WAD, 4, 0, 0, 40629648Ssam /* 9D */ sbwc ,RADI, 4, MAD, 4, 0, 0, 0, 0, 40729648Ssam /* 9E */ suba ,RADI, 4, MAD, 4, 0, 0, 0, 0, 40829648Ssam /* 9F */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 40929648Ssam /* A0 */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 41029648Ssam /* A1 */ bgtru , Brd, 1, 0, 0, 0, 0, 0, 0, 41129648Ssam /* A2 */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 41229648Ssam /* A3 */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 41329648Ssam /* A4 */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 41429648Ssam /* A5 */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 41529648Ssam /* A6 */ cvdf , 0, 0, 0, 0, 0, 0, 0, 0, 41629648Ssam /* A7 */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 41729648Ssam /* A8 */ andb2 ,RADI, 1,NMAD, 1, 0, 0, 0, 0, 41829648Ssam /* A9 */ movzbl ,RADI, 1, WAD, 4, 0, 0, 0, 0, 41929648Ssam /* AA */ andw2 ,RADI, 2,NMAD, 2, 0, 0, 0, 0, 42029648Ssam /* AB */ loadr ,RADI, 2,ADDR, 4, 0, 0, 0, 0, 42129648Ssam /* AC */ andl2 ,RADI, 4, MAD, 4, 0, 0, 0, 0, 42229648Ssam /* AD */ mtpr ,RADI, 4,RADI, 4, 0, 0, 0, 0, 42329648Ssam /* AE */ ffs ,RADI, 4, WAD, 4, 0, 0, 0, 0, 42429648Ssam /* AF */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 42529648Ssam /* B0 */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 42629648Ssam /* B1 */ blequ , Brd, 1, 0, 0, 0, 0, 0, 0, 42729648Ssam /* B2 */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 42829648Ssam /* B3 */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 42929648Ssam /* B4 */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 43029648Ssam /* B5 */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 43129648Ssam /* B6 */ negf , 0, 0, 0, 0, 0, 0, 0, 0, 43229648Ssam /* B7 */ negd , 0, 0, 0, 0, 0, 0, 0, 0, 43329648Ssam /* B8 */ andb3 ,RADI, 1,RADI, 1,NWAD, 1, 0, 0, 43429648Ssam /* B9 */ movzbw ,RADI, 1, WAD, 2, 0, 0, 0, 0, 43529648Ssam /* BA */ andw3 ,RADI, 2,RADI, 2,NWAD, 2, 0, 0, 43629648Ssam /* BB */ storer ,RADI, 2,W|ADDR, 4, 0, 0, 0, 0, 43729648Ssam /* BC */ andl3 ,RADI, 4,RADI, 4, WAD, 4, 0, 0, 43829648Ssam /* BD */ mfpr ,RADI, 4, WAD, 4, 0, 0, 0, 0, 43929648Ssam /* BE */ ffc ,RADI, 4, WAD, 4, 0, 0, 0, 0, 44029648Ssam /* BF */ calls ,RADI, 1,ADDR, 1, 0, 0, 0, 0, 44129648Ssam /* C0 */ prober ,RADI, 1,ADDR, 1,RADI, 4, 0, 0, 44229648Ssam /* C1 */ bvc , Brd, 1, 0, 0, 0, 0, 0, 0, 44329648Ssam /* C2 */ movs3 , 0, 0, 0, 0, 0, 0, 0, 0, 44429648Ssam /* C3 */ movzwl ,RADI, 2, WAD, 4, 0, 0, 0, 0, 44529648Ssam /* C4 */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 44629648Ssam /* C5 */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 44729648Ssam /* C6 */ addf ,RADF, 4, 0, 0, 0, 0, 0, 0, 44829648Ssam /* C7 */ addd ,RADF, 8, 0, 0, 0, 0, 0, 0, 44929648Ssam /* C8 */ xorb2 ,RADI, 1,NMAD, 1, 0, 0, 0, 0, 45029648Ssam /* C9 */ movob ,RADI, 1,NWAD, 1, 0, 0, 0, 0, 45129648Ssam /* CA */ xorw2 ,RADI, 2,NMAD, 2, 0, 0, 0, 0, 45229648Ssam /* CB */ movow ,RADI, 2,NWAD, 2, 0, 0, 0, 0, 45329648Ssam /* CC */ xorl2 ,RADI, 4, MAD, 4, 0, 0, 0, 0, 45429648Ssam /* CD */ movpsl , WAD, 4, 0, 0, 0, 0, 0, 0, 45529648Ssam /* CE */ btcs ,RADI, 1, 0, 0, 0, 0, 0, 0, 45629648Ssam /* CF */ kcall ,RADI, 2, 0, 0, 0, 0, 0, 0, 45729648Ssam /* D0 */ probew ,RADI, 1,ADDR, 1,RADI, 4, 0, 0, 45829648Ssam /* D1 */ bvs , Brd, 1, 0, 0, 0, 0, 0, 0, 45929648Ssam /* D2 */ cmps3 , 0, 0, 0, 0, 0, 0, 0, 0, 46029648Ssam /* D3 */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 46129648Ssam /* D4 */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 46229648Ssam /* D5 */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 46329648Ssam /* D6 */ subf ,RADF, 4, 0, 0, 0, 0, 0, 0, 46429648Ssam /* D7 */ subd ,RADF, 8, 0, 0, 0, 0, 0, 0, 46529648Ssam /* D8 */ xorb3 ,RADI, 1,RADI, 1,NWAD, 1, 0, 0, 46629648Ssam /* D9 */ pushb ,RADI, 1, 0, 0, 0, 0, 0, 0, 46729648Ssam /* DA */ xorw3 ,RADI, 2,RADI, 2,NWAD, 2, 0, 0, 46829648Ssam /* DB */ pushw ,RADI, 2, 0, 0, 0, 0, 0, 0, 46929648Ssam /* DC */ xorl3 ,RADI, 4,RADI, 4, WAD, 4, 0, 0, 47029648Ssam /* DD */ pushl ,RADI, 4, 0, 0, 0, 0, 0, 0, 47129648Ssam /* DE */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 47229648Ssam /* DF */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 47329648Ssam /* E0 */ insque ,ADDR, 4,ADDR, 4, 0, 0, 0, 0, 47429648Ssam /* E1 */ bcs , Brd, 1, 0, 0, 0, 0, 0, 0, 47529648Ssam /* E2 */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 47629648Ssam /* E3 */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 47729648Ssam /* E4 */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 47829648Ssam /* E5 */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 47929648Ssam /* E6 */ mulf ,RADF, 4, 0, 0, 0, 0, 0, 0, 48029648Ssam /* E7 */ muld ,RADF, 8, 0, 0, 0, 0, 0, 0, 48129648Ssam /* E8 */ mnegb ,RADI, 1, WAD, 1, 0, 0, 0, 0, 48229648Ssam /* E9 */ movab ,ADDR, 1, WAD, 4, 0, 0, 0, 0, 48329648Ssam /* EA */ mnegw ,RADI, 2, WAD, 2, 0, 0, 0, 0, 48429648Ssam /* EB */ movaw ,ADDR, 2, WAD, 4, 0, 0, 0, 0, 48529648Ssam /* EC */ mnegl ,RADI, 4, WAD, 4, 0, 0, 0, 0, 48629648Ssam /* ED */ moval ,ADDR, 4, WAD, 4, 0, 0, 0, 0, 48729648Ssam /* EE */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 48829648Ssam /* EF */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 48929648Ssam /* F0 */ remque ,ADDR, 4, 0, 0, 0, 0, 0, 0, 49029648Ssam /* F1 */ bcc , Brd, 1, 0, 0, 0, 0, 0, 0, 49129648Ssam /* F2 */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 49229648Ssam /* F3 */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 49329648Ssam /* F4 */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 49429648Ssam /* F5 */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 49529648Ssam /* F6 */ divf ,RADF, 4, 0, 0, 0, 0, 0, 0, 49629648Ssam /* F7 */ divd ,RADF, 8, 0, 0, 0, 0, 0, 0, 49729648Ssam /* F8 */ movblk , 0, 0, 0, 0, 0, 0, 0, 0, 49829648Ssam /* F9 */ pushab ,ADDR, 1, 0, 0, 0, 0, 0, 0, 49929648Ssam /* FA */ illegal , 0, 0, 0, 0, 0, 0, 0, 0, 50029648Ssam /* FB */ pushaw ,ADDR, 2, 0, 0, 0, 0, 0, 0, 50129648Ssam /* FC */ casel ,RADI, 4,RADI, 4,RADI, 4, 0, 0, 50229648Ssam /* FD */ pushal ,ADDR, 4, 0, 0, 0, 0, 0, 0, 50329648Ssam /* FE */ callf ,Imm|Lit, 1, PR, 1, 0, 0, 0, 0, 50429648Ssam /* FF */ illegal , 0, 0, 0, 0, 0, 0, 0, 0 50529648Ssam }; 506