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