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