plan9fox/sys/src/cmd/2l/optab.c
2011-03-30 19:35:09 +03:00

445 lines
17 KiB
C

#include "l.h"
#define X1 0
#define X2 0
#define X3 0
#define C 0xf200
Optab optab[] =
/* as, fas, srcsp, dstsp, optype, opcode */
{
{ AXXX },
{ AABCD, AXXX, X1, X2, X3, 0x4e71 },
{ AADDB, AXXX, 2, 0, 3, 0xd000, 0x5000, 0, 0x0600 },
{ AADDL, AXXX, 4, 0, 3, 0xd080, 0x5080, 0xd1c0, 0x0680 },
{ AADDW, AXXX, 2, 0, 3, 0xd040, 0x5040, 0xd0c0, 0x0640 },
{ AADDXB },
{ AADDXL },
{ AADDXW },
{ AADJSP },
{ AANDB, AXXX, 2, 0, 9, 0xc000, 0xc100, 0x0200 },
{ AANDL, AXXX, 4, 0, 9, 0xc080, 0xc180, 0x0280 },
{ AANDW, AXXX, 2, 0, 9, 0xc040, 0xc140, 0x0240 },
{ AASLB, AXXX, 0, 2, 12, 0xe100 },
{ AASLL, AXXX, 0, 4, 12, 0xe180 },
{ AASLW, AXXX, 0, 2, 12, 0xe140 },
{ AASRB, AXXX, 0, 2, 12, 0xe000 },
{ AASRL, AXXX, 0, 4, 12, 0xe080 },
{ AASRW, AXXX, 0, 2, 12, 0xe040 },
{ ABCASE, AXXX, 0, 0, 33 },
{ ABCC, AXXX, 0, 0, 1, 0x6400 },
{ ABCHG, AXXX, 2, 2, 27, 0x0140, 0x0840 },
{ ABCLR, AXXX, 2, 2, 27, 0x0180, 0x0880 },
{ ABCS, AXXX, 0, 0, 1, 0x6500 },
{ ABEQ, AXXX, 0, 0, 1, 0x6700 },
{ ABFCHG, AXXX, 0, 0, 24, 0xeac0 },
{ ABFCLR, AXXX, 0, 0, 24, 0xecc0 },
{ ABFEXTS, AXXX, 0, 0, 24, 0xebc0 },
{ ABFEXTU, AXXX, 0, 0, 24, 0xe9c0 },
{ ABFFFO, AXXX, 0, 0, 24, 0xedc0 },
{ ABFINS, AXXX, 0, 0, 24, 0xefc0 },
{ ABFSET, AXXX, 0, 0, 24, 0xeec0 },
{ ABFTST, AXXX, 0, 0, 24, 0xe8c0 },
{ ABGE, AXXX, 0, 0, 1, 0x6c00 },
{ ABGT, AXXX, 0, 0, 1, 0x6e00 },
{ ABHI, AXXX, 0, 0, 1, 0x6200 },
{ ABKPT },
{ ABLE, AXXX, 0, 0, 1, 0x6f00 },
{ ABLS, AXXX, 0, 0, 1, 0x6300 },
{ ABLT, AXXX, 0, 0, 1, 0x6d00 },
{ ABMI, AXXX, 0, 0, 1, 0x6b00 },
{ ABNE, AXXX, 0, 0, 1, 0x6600 },
{ ABPL, AXXX, 0, 0, 1, 0x6a00 },
{ ABRA, AXXX, 0, 0, 1, 0x6000 },
{ ABSET, AXXX, 2, 2, 27, 0x01c0, 0x08c0 },
{ ABSR, AXXX, 0, 0, 1, 0x6100, 0x4eb8 },
{ ABTST, AXXX, 2, 2, 27, 0x0100, 0x0800 },
{ ABVC, AXXX, 0, 0, 1, 0x6800 },
{ ABVS, AXXX, 0, 0, 1, 0x6900 },
{ ACALLM },
{ ACAS2B },
{ ACAS2L },
{ ACAS2W },
{ ACASB },
{ ACASEW, AXXX, 0, 0, 32, 0x4efb, 0 },
{ ACASL },
{ ACASW },
{ ACHK2B, AXXX, 2, 0, 31, 0x00c0, 0x0800 },
{ ACHK2L, AXXX, 4, 0, 31, 0x04c0, 0x0800 },
{ ACHK2W, AXXX, 2, 0, 31, 0x02c0, 0x0800 },
{ ACHKL, AXXX, 4, 4, 26, 0x4100 },
{ ACHKW, AXXX, 2, 2, 26, 0x4180 },
{ ACLRB, AXXX, 0, -2, 5, 0x4200 },
{ ACLRL, AXXX, 0, -4, 5, 0x4280 },
{ ACLRW, AXXX, 0, -2, 5, 0x4240 },
{ ACMP2B, AXXX, 2, 0, 31, 0x00c0, 0x0000 },
{ ACMP2L, AXXX, 4, 0, 31, 0x04c0, 0x0000 },
{ ACMP2W, AXXX, 2, 0, 31, 0x02c0, 0x0000 },
{ ACMPB, AXXX, 2, 2, 7, 0xb000, 0, 0x0c00, 0xb108 },
{ ACMPL, AXXX, 4, 4, 7, 0xb080, 0xb100, 0x0c80, 0xb188 },
{ ACMPW, AXXX, 2, 2, 7, 0xb040, 0xb080, 0x0c40, 0xb148 },
{ ADATA },
{ ADBCC, AXXX, 0, 0, 15, 0x54c8 },
{ ADBCS, AXXX, 0, 0, 15, 0x55c8 },
{ ADBEQ, AXXX, 0, 0, 15, 0x57c8 },
{ ADBF, AXXX, 0, 0, 15, 0x51c8 },
{ ADBGE, AXXX, 0, 0, 15, 0x5cc8 },
{ ADBGT, AXXX, 0, 0, 15, 0x5ec8 },
{ ADBHI, AXXX, 0, 0, 15, 0x52c8 },
{ ADBLE, AXXX, 0, 0, 15, 0x5fc8 },
{ ADBLS, AXXX, 0, 0, 15, 0x53c8 },
{ ADBLT, AXXX, 0, 0, 15, 0x5dc8 },
{ ADBMI, AXXX, 0, 0, 15, 0x5bc8 },
{ ADBNE, AXXX, 0, 0, 15, 0x56c8 },
{ ADBPL, AXXX, 0, 0, 15, 0x5ac8 },
{ ADBT, AXXX, 0, 0, 15, 0x50c8 },
{ ADBVC, AXXX, 0, 0, 15, 0x58c8 },
{ ADBVS, AXXX, 0, 0, 15, 0x59c8 },
{ ADIVSL, AXXX, 4, 0, 14, 0x4c40, 0x0800 },
{ ADIVSW, AXXX, 2, 0, 13, 0x81c0 },
{ ADIVUL, AXXX, 4, 0, 14, 0x4c40, 0x0000 },
{ ADIVUW, AXXX, 2, 0, 13, 0x80c0 },
{ AEND },
{ AEORB, AXXX, 2, 0, 10, 0xb100, 0x0a00 },
{ AEORL, AXXX, 4, 0, 10, 0xb180, 0x0a80 },
{ AEORW, AXXX, 2, 0, 10, 0xb140, 0x0a40 },
{ AEXG },
{ AEXTBL, AXXX, 0, 0, 11, 0x49c0 },
{ AEXTBW, AXXX, 0, 0, 11, 0x4880 },
{ AEXTWL, AXXX, 0, 0, 11, 0x48c0 },
{ AFABSB, AXXX, 2, 0, 17, C, 0x0018, 0x5818 },
{ AFABSD, AFABSL, 8, 0, 17, C, 0x0018, 0x5418 },
{ AFABSF, AFABSL, 4, 0, 17, C, 0x0018, 0x4418 },
{ AFABSL, AXXX, 4, 0, 17, C, 0x0018, 0x4018 },
{ AFABSW, AXXX, 2, 0, 17, C, 0x0018, 0x5018 },
{ AFACOSB, AXXX, 2, 0, 17, C, 0x001c, 0x581c },
{ AFACOSD, AFACOSL, 8, 0, 17, C, 0x001c, 0x541c },
{ AFACOSF, AFACOSL, 4, 0, 17, C, 0x001c, 0x441c },
{ AFACOSL, AXXX, 4, 0, 17, C, 0x001c, 0x401c },
{ AFACOSW, AXXX, 2, 0, 17, C, 0x001c, 0x501c },
{ AFADDB, AXXX, 2, 0, 17, C, 0x0022, 0x5822 },
{ AFADDD, AFADDL, 8, 0, 17, C, 0x0022, 0x5422 },
{ AFADDF, AFADDL, 4, 0, 17, C, 0x0022, 0x4422 },
{ AFADDL, AXXX, 4, 0, 17, C, 0x0022, 0x4022 },
{ AFADDW, AXXX, 2, 0, 17, C, 0x0022, 0x5022 },
{ AFASINB, AXXX, 2, 0, 17, C, 0x000c, 0x580c },
{ AFASIND, AFASINL, 8, 0, 17, C, 0x000c, 0x540c },
{ AFASINF, AFASINL, 4, 0, 17, C, 0x000c, 0x440c },
{ AFASINL, AXXX, 4, 0, 17, C, 0x000c, 0x400c },
{ AFASINW, AXXX, 2, 0, 17, C, 0x000c, 0x500c },
{ AFATANB, AXXX, 2, 0, 17, C, 0x000a, 0x580a },
{ AFATAND, AFATANL, 8, 0, 17, C, 0x000a, 0x540a },
{ AFATANF, AFATANL, 4, 0, 17, C, 0x000a, 0x440a },
{ AFATANHB, AXXX, 2, 0, 17, C, 0x000d, 0x580d },
{ AFATANHD, AFATANHL, 8, 0, 17, C, 0x000d, 0x540d },
{ AFATANHF, AFATANHL, 4, 0, 17, C, 0x000d, 0x440d },
{ AFATANHL, AXXX, 4, 0, 17, C, 0x000d, 0x400d },
{ AFATANHW, AXXX, 2, 0, 17, C, 0x000d, 0x500d },
{ AFATANL, AXXX, 4, 0, 17, C, 0x000a, 0x400a },
{ AFATANW, AXXX, 2, 0, 17, C, 0x000a, 0x500a },
{ AFBEQ, AXXX, 0, 0, 18, C+0x81 },
{ AFBF, AXXX, 0, 0, 18, C+0x8f },
{ AFBGE, AXXX, 0, 0, 18, C+0x93 },
{ AFBGT, AXXX, 0, 0, 18, C+0x92 },
{ AFBLE, AXXX, 0, 0, 18, C+0x95 },
{ AFBLT, AXXX, 0, 0, 18, C+0x94 },
{ AFBNE, AXXX, 0, 0, 18, C+0x8e },
{ AFBT, AXXX, 0, 0, 18, C+0x80 },
{ AFCMPB, AXXX, 0, 2, 22, C, 0x0038, 0x5838 },
{ AFCMPD, AFCMPL, 0, 8, 22, C, 0x0038, 0x5438 },
{ AFCMPF, AFCMPL, 0, 4, 22, C, 0x0038, 0x4438 },
{ AFCMPL, AXXX, 0, 4, 22, C, 0x0038, 0x4038 },
{ AFCMPW, AXXX, 0, 2, 22, C, 0x0038, 0x5038 },
{ AFCOSB, AXXX, 2, 0, 17, C, 0x001d, 0x581d },
{ AFCOSD, AFCOSL, 8, 0, 17, C, 0x001d, 0x541d },
{ AFCOSF, AFCOSL, 4, 0, 17, C, 0x001d, 0x441d },
{ AFCOSHB, AXXX, 2, 0, 17, C, 0x0019, 0x5819 },
{ AFCOSHD, AFCOSHL, 8, 0, 17, C, 0x0019, 0x5419 },
{ AFCOSHF, AFCOSHL, 4, 0, 17, C, 0x0019, 0x4419 },
{ AFCOSHL, AXXX, 4, 0, 17, C, 0x0019, 0x4019 },
{ AFCOSHW, AXXX, 2, 0, 17, C, 0x0019, 0x5019 },
{ AFCOSL, AXXX, 4, 0, 17, C, 0x001d, 0x401d },
{ AFCOSW, AXXX, 2, 0, 17, C, 0x001d, 0x501d },
{ AFDBEQ, AXXX, 0, 0, 19, C+0x48, 0x01 },
{ AFDBF, AXXX, 0, 0, 19, C+0x48, 0x0f },
{ AFDBGE, AXXX, 0, 0, 19, C+0x48, 0x13 },
{ AFDBGT, AXXX, 0, 0, 19, C+0x48, 0x12 },
{ AFDBLE, AXXX, 0, 0, 19, C+0x48, 0x15 },
{ AFDBLT, AXXX, 0, 0, 19, C+0x48, 0x14 },
{ AFDBNE, AXXX, 0, 0, 19, C+0x48, 0x0e },
{ AFDBT, AXXX, 0, 0, 19, C+0x48, 0x00 },
{ AFDIVB, AXXX, 2, 0, 17, C, 0x0020, 0x5820 },
{ AFDIVD, AFDIVL, 8, 0, 17, C, 0x0020, 0x5420 },
{ AFDIVF, AFDIVL, 4, 0, 17, C, 0x0020, 0x4420 },
{ AFDIVL, AXXX, 4, 0, 17, C, 0x0020, 0x4020 },
{ AFDIVW, AXXX, 2, 0, 17, C, 0x0020, 0x5020 },
{ AFETOXB, AXXX, 2, 0, 17, C, 0x0010, 0x5810 },
{ AFETOXD, AFETOXL, 8, 0, 17, C, 0x0010, 0x5410 },
{ AFETOXF, AFETOXL, 4, 0, 17, C, 0x0010, 0x4410 },
{ AFETOXL, AXXX, 4, 0, 17, C, 0x0010, 0x4010 },
{ AFETOXM1B, AXXX, 2, 0, 17, C, 0x0008, 0x5808 },
{ AFETOXM1D, AFETOXM1L, 8, 0, 17, C, 0x0008, 0x5408 },
{ AFETOXM1F, AFETOXM1L, 4, 0, 17, C, 0x0008, 0x4408 },
{ AFETOXM1L, AXXX, 4, 0, 17, C, 0x0008, 0x4008 },
{ AFETOXM1W, AXXX, 2, 0, 17, C, 0x0008, 0x5008 },
{ AFETOXW, AXXX, 2, 0, 17, C, 0x0010, 0x5010 },
{ AFGETEXPB, AXXX, 2, 0, 17, C, 0x001e, 0x581e },
{ AFGETEXPD, AFGETEXPL, 8, 0, 17, C, 0x001e, 0x541e },
{ AFGETEXPF, AFGETEXPL, 4, 0, 17, C, 0x001e, 0x441e },
{ AFGETEXPL, AXXX, 4, 0, 17, C, 0x001e, 0x401e },
{ AFGETEXPW, AXXX, 2, 0, 17, C, 0x001e, 0x501e },
{ AFGETMANB, AXXX, 2, 0, 17, C, 0x001f, 0x581f },
{ AFGETMAND, AFGETMANL, 8, 0, 17, C, 0x001f, 0x541f },
{ AFGETMANF, AFGETMANL, 4, 0, 17, C, 0x001f, 0x441f },
{ AFGETMANL, AXXX, 4, 0, 17, C, 0x001f, 0x401f },
{ AFGETMANW, AXXX, 2, 0, 17, C, 0x001f, 0x501f },
{ AFINTB, AXXX, 2, 0, 17, C, 0x0001, 0x5801 },
{ AFINTD, AFINTL, 8, 0, 17, C, 0x0001, 0x5401 },
{ AFINTF, AFINTL, 4, 0, 17, C, 0x0001, 0x4401 },
{ AFINTL, AXXX, 4, 0, 17, C, 0x0001, 0x4001 },
{ AFINTRZB, AXXX, 2, 0, 17, C, 0x0003, 0x5803 },
{ AFINTRZD, AFINTRZL, 8, 0, 17, C, 0x0003, 0x5403 },
{ AFINTRZF, AFINTRZL, 4, 0, 17, C, 0x0003, 0x4403 },
{ AFINTRZL, AXXX, 4, 0, 17, C, 0x0003, 0x4003 },
{ AFINTRZW, AXXX, 2, 0, 17, C, 0x0003, 0x5003 },
{ AFINTW, AXXX, 2, 0, 17, C, 0x0001, 0x5001 },
{ AFLOG10B, AXXX, 2, 0, 17, C, 0x0015, 0x5815 },
{ AFLOG10D, AFLOG10L, 8, 0, 17, C, 0x0015, 0x5415 },
{ AFLOG10F, AFLOG10L, 4, 0, 17, C, 0x0015, 0x4415 },
{ AFLOG10L, AXXX, 4, 0, 17, C, 0x0015, 0x4015 },
{ AFLOG10W, AXXX, 2, 0, 17, C, 0x0015, 0x5015 },
{ AFLOG2B, AXXX, 2, 0, 17, C, 0x0016, 0x5816 },
{ AFLOG2D, AFLOG2L, 8, 0, 17, C, 0x0016, 0x5416 },
{ AFLOG2F, AFLOG2L, 4, 0, 17, C, 0x0016, 0x4416 },
{ AFLOG2L, AXXX, 4, 0, 17, C, 0x0016, 0x4016 },
{ AFLOG2W, AXXX, 2, 0, 17, C, 0x0016, 0x5016 },
{ AFLOGNB, AXXX, 2, 0, 17, C, 0x0014, 0x5814 },
{ AFLOGND, AFLOGNL, 8, 0, 17, C, 0x0014, 0x5414 },
{ AFLOGNF, AFLOGNL, 4, 0, 17, C, 0x0014, 0x4414 },
{ AFLOGNL, AXXX, 4, 0, 17, C, 0x0014, 0x4014 },
{ AFLOGNP1B, AXXX, 2, 0, 17, C, 0x0006, 0x5806 },
{ AFLOGNP1D, AFLOGNP1L, 8, 0, 17, C, 0x0006, 0x5406 },
{ AFLOGNP1F, AFLOGNP1L, 4, 0, 17, C, 0x0006, 0x4406 },
{ AFLOGNP1L, AXXX, 4, 0, 17, C, 0x0006, 0x4006 },
{ AFLOGNP1W, AXXX, 2, 0, 17, C, 0x0006, 0x5006 },
{ AFLOGNW, AXXX, 2, 0, 17, C, 0x0014, 0x5014 },
{ AFMODB, AXXX, 2, 0, 17, C, 0x0021, 0x5821 },
{ AFMODD, AFMODL, 8, 0, 17, C, 0x0021, 0x5421 },
{ AFMODF, AFMODL, 4, 0, 17, C, 0x0021, 0x4421 },
{ AFMODL, AXXX, 4, 0, 17, C, 0x0021, 0x4021 },
{ AFMODW, AXXX, 2, 0, 17, C, 0x0021, 0x5021 },
{ AFMOVEB, AXXX, 2, -2, 16, C, 0x0000, 0x7800, 0x5800 },
{ AFMOVED, AFMOVEL, 8, -8, 16, C, 0x0000, 0x7400, 0x5400 },
{ AFMOVEF, AFMOVEL, 4, -4, 16, C, 0x0000, 0x6400, 0x4400 },
{ AFMOVEL, AXXX, 4, -4, 16, C, 0x0000, 0x6000, 0x4000 },
{ AFMOVEM, AXXX, 2, 2, 28, C },
{ AFMOVEMC, AXXX, 2, 2, 29, C },
{ AFMOVEW, AXXX, 2, -2, 16, C, 0x0000, 0x7000, 0x5000 },
{ AFMULB, AXXX, 2, 0, 17, C, 0x0023, 0x5823 },
{ AFMULD, AFMULL, 8, 0, 17, C, 0x0023, 0x5423 },
{ AFMULF, AFMULL, 4, 0, 17, C, 0x0023, 0x4423 },
{ AFMULL, AXXX, 4, 0, 17, C, 0x0023, 0x4023 },
{ AFMULW, AXXX, 2, 0, 17, C, 0x0023, 0x5023 },
{ AFNEGB, AXXX, 2, 0, 21, C, 0x001a, 0x581a },
{ AFNEGD, AFNEGL, 8, 0, 21, C, 0x001a, 0x541a },
{ AFNEGF, AFNEGL, 4, 0, 21, C, 0x001a, 0x441a },
{ AFNEGL, AXXX, 4, 0, 21, C, 0x001a, 0x401a },
{ AFNEGW, AXXX, 2, 0, 21, C, 0x001a, 0x501a },
{ AFREMB, AXXX, 2, 0, 17, C, 0x0025, 0x5825 },
{ AFREMD, AFREML, 8, 0, 17, C, 0x0025, 0x5425 },
{ AFREMF, AFREML, 4, 0, 17, C, 0x0025, 0x4425 },
{ AFREML, AXXX, 4, 0, 17, C, 0x0025, 0x4025 },
{ AFREMW, AXXX, 2, 0, 17, C, 0x0025, 0x5025 },
{ AFRESTORE, AXXX, 0, 2, 5, C+0x0140 },
{ AFSAVE, AXXX, 0, 2, 5, C+0x0100 },
{ AFSCALEB, AXXX, 2, 0, 17, C, 0x0026, 0x5826 },
{ AFSCALED, AFSCALEL, 8, 0, 17, C, 0x0026, 0x5426 },
{ AFSCALEF, AFSCALEL, 4, 0, 17, C, 0x0026, 0x4426 },
{ AFSCALEL, AXXX, 4, 0, 17, C, 0x0026, 0x4026 },
{ AFSCALEW, AXXX, 2, 0, 17, C, 0x0026, 0x5026 },
{ AFSEQ, AXXX, X1, X2, X3, 0xffff },
{ AFSF, AXXX, 4, X2, X3, 0xffff },
{ AFSGE, AXXX, X1, X2, X3, 0xffff },
{ AFSGT, AXXX, X1, X2, X3, 0xffff },
{ AFSINB, AXXX, 2, 0, 17, C, 0x000e, 0x580e },
{ AFSIND, AFSINL, 8, 0, 17, C, 0x000e, 0x540e },
{ AFSINF, AFSINL, 4, 0, 17, C, 0x000e, 0x440e },
{ AFSINHB, AXXX, 2, 0, 17, C, 0x0002, 0x5802 },
{ AFSINHD, AFSINHL, 8, 0, 17, C, 0x0002, 0x5402 },
{ AFSINHF, AFSINHL, 4, 0, 17, C, 0x0002, 0x4402 },
{ AFSINHL, AXXX, 4, 0, 17, C, 0x0002, 0x4002 },
{ AFSINHW, AXXX, 2, 0, 17, C, 0x0002, 0x5002 },
{ AFSINL, AXXX, 4, 0, 17, C, 0x000e, 0x400e },
{ AFSINW, AXXX, 2, 0, 17, C, 0x000e, 0x500e },
{ AFSLE, AXXX, X1, X2, X3, 0xffff },
{ AFSLT, AXXX, X1, X2, X3, 0xffff },
{ AFSNE, AXXX, X1, X2, X3, 0xffff },
{ AFSQRTB, AXXX, 2, 0, 17, C, 0x0004, 0x5804 },
{ AFSQRTD, AFSQRTL, 8, 0, 17, C, 0x0004, 0x5404 },
{ AFSQRTF, AFSQRTL, 4, 0, 17, C, 0x0004, 0x4404 },
{ AFSQRTL, AXXX, 4, 0, 17, C, 0x0004, 0x4004 },
{ AFSQRTW, AXXX, 2, 0, 17, C, 0x0004, 0x5004 },
{ AFST, AXXX, X1, X2, X3, 0xffff },
{ AFSUBB, AXXX, 2, 0, 17, C, 0x0028, 0x5828 },
{ AFSUBD, AFSUBL, 8, 0, 17, C, 0x0028, 0x5428 },
{ AFSUBF, AFSUBL, 4, 0, 17, C, 0x0028, 0x4428 },
{ AFSUBL, AXXX, 4, 0, 17, C, 0x0028, 0x4028 },
{ AFSUBW, AXXX, 2, 0, 17, C, 0x0028, 0x5028 },
{ AFTANB, AXXX, 2, 0, 17, C, 0x000f, 0x580f },
{ AFTAND, AFTANL, 8, 0, 17, C, 0x000f, 0x540f },
{ AFTANF, AFTANL, 4, 0, 17, C, 0x000f, 0x440f },
{ AFTANHB, AXXX, 2, 0, 17, C, 0x0009, 0x5809 },
{ AFTANHD, AFTANHL, 8, 0, 17, C, 0x0009, 0x5409 },
{ AFTANHF, AFTANHL, 4, 0, 17, C, 0x0009, 0x4409 },
{ AFTANHL, AXXX, 4, 0, 17, C, 0x0009, 0x4009 },
{ AFTANHW, AXXX, 2, 0, 17, C, 0x0009, 0x5009 },
{ AFTANL, AXXX, 4, 0, 17, C, 0x000f, 0x400f },
{ AFTANW, AXXX, 2, 0, 17, C, 0x000f, 0x500f },
{ AFTENTOXB, AXXX, 2, 0, 17, C, 0x0012, 0x5812 },
{ AFTENTOXD, AFTENTOXL, 8, 0, 17, C, 0x0012, 0x5412 },
{ AFTENTOXF, AFTENTOXL, 4, 0, 17, C, 0x0012, 0x4412 },
{ AFTENTOXL, AXXX, 4, 0, 17, C, 0x0012, 0x4012 },
{ AFTENTOXW, AXXX, 2, 0, 17, C, 0x0012, 0x5012 },
{ AFTSTB, AXXX, 0, 2, 20, C, 0x003a, 0x583a },
{ AFTSTD, AFTSTL, 0, 8, 20, C, 0x003a, 0x543a },
{ AFTSTF, AFTSTL, 0, 4, 20, C, 0x003a, 0x443a },
{ AFTSTL, AXXX, 0, 4, 20, C, 0x003a, 0x403a },
{ AFTSTW, AXXX, 0, 2, 20, C, 0x003a, 0x503a },
{ AFTWOTOXB, AXXX, 2, 0, 17, C, 0x0011, 0x5811 },
{ AFTWOTOXD, AFTWOTOXL, 8, 0, 17, C, 0x0011, 0x5411 },
{ AFTWOTOXF, AFTWOTOXL, 4, 0, 17, C, 0x0011, 0x4411 },
{ AFTWOTOXL, AXXX, 4, 0, 17, C, 0x0011, 0x4011 },
{ AFTWOTOXW, AXXX, 2, 0, 17, C, 0x0011, 0x5011 },
{ AGLOBL },
{ AGOK },
{ AHISTORY },
{ AILLEG, AXXX, 0, 0, 4, 0x4efc },
{ AINSTR },
{ AJMP, AXXX, 0, 0, 5, 0x4ec0 },
{ AJSR, AXXX, 0, 0, 5, 0x4e80 },
{ ALEA, AXXX, 0, 0, 6, 0x41c0 },
{ ALINKL },
{ ALINKW },
{ ALOCATE },
{ ALONG, AXXX, 0, 4, 23 },
{ ALSLB, AXXX, 0, 2, 12, 0xe108 },
{ ALSLL, AXXX, 0, 4, 12, 0xe188 },
{ ALSLW, AXXX, 0, 2, 12, 0xe148 },
{ ALSRB, AXXX, 0, 2, 12, 0xe008 },
{ ALSRL, AXXX, 0, 4, 12, 0xe088 },
{ ALSRW, AXXX, 0, 2, 12, 0xe048 },
{ AMOVB, AXXX, 2, -2, 2, 0x1000, 0x7000 },
{ AMOVEM, AXXX, 2, 2, 25, 0x48c0 },
{ AMOVEPL },
{ AMOVEPW },
{ AMOVESB, AXXX, 2, -2, 34, 0xe00 },
{ AMOVESL, AXXX, 4, -4, 34, 0xe80 },
{ AMOVESW, AXXX, 2, -2, 34, 0xe40 },
{ AMOVL, AXXX, 4, -4, 2, 0x2000, 0x7000 },
{ AMOVW, AXXX, 2, -2, 2, 0x3000, 0x7000 },
{ AMULSL, AXXX, 4, 0, 14, 0x4c00, 0x0800 },
{ AMULSW, AXXX, 2, 0, 13, 0xc1c0 },
{ AMULUL, AXXX, 4, 0, 14, 0x4c00, 0x0000 },
{ AMULUW, AXXX, 2, 0, 13, 0xc0c0 },
{ ANAME },
{ ANBCD },
{ ANEGB, AXXX, 0, 0, 5, 0x4400 },
{ ANEGL, AXXX, 0, 0, 5, 0x4480 },
{ ANEGW, AXXX, 0, 0, 5, 0x4440 },
{ ANEGXB },
{ ANEGXL },
{ ANEGXW },
{ ANOP },
{ ANOTB, AXXX, 0, 0, 5, 0x4600 },
{ ANOTL, AXXX, 0, 0, 5, 0x4680 },
{ ANOTW, AXXX, 0, 0, 5, 0x4640 },
{ AORB, AXXX, 2, 0, 9, 0x8000, 0x8100, 0x0000 },
{ AORL, AXXX, 4, 0, 9, 0x8080, 0x8180, 0x0080 },
{ AORW, AXXX, 2, 0, 9, 0x8040, 0x8140, 0x0040 },
{ APACK },
{ APEA, AXXX, 0, 0, 5, 0x4840 },
{ ARESET },
{ AROTLB, AXXX, 0, 2, 12, 0xe118 },
{ AROTLL, AXXX, 0, 4, 12, 0xe198 },
{ AROTLW, AXXX, 0, 2, 12, 0xe158 },
{ AROTRB, AXXX, 0, 2, 12, 0xe018 },
{ AROTRL, AXXX, 0, 4, 12, 0xe098 },
{ AROTRW, AXXX, 0, 2, 12, 0xe058 },
{ AROXLB },
{ AROXLL },
{ AROXLW },
{ AROXRB },
{ AROXRL },
{ AROXRW },
{ ARTD },
{ ARTE, AXXX, 0, 0, 4, 0x4e73 },
{ ARTM },
{ ARTR },
{ ARTS, AXXX, 0, 0, 4, 0x4e75 },
{ ASBCD },
{ ASCC },
{ ASCS },
{ ASEQ },
{ ASF },
{ ASGE },
{ ASGT },
{ ASHI },
{ ASLE },
{ ASLS },
{ ASLT },
{ ASMI },
{ ASNE },
{ ASPL },
{ AST },
{ ASTOP },
{ ASUBB, AXXX, 2, 0, 3, 0x9000, 0x5100, 0, 0x0400 },
{ ASUBL, AXXX, 4, 0, 3, 0x9080, 0x5180, 0x91c0, 0x0480 },
{ ASUBW, AXXX, 2, 0, 3, 0x9040, 0x5140, 0x90c0, 0x0440 },
{ ASUBXB },
{ ASUBXL },
{ ASUBXW },
{ ASVC },
{ ASVS },
{ ASWAP, AXXX, 0, 0, 35, 0x4840 },
{ ASYS, AXXX, 0, 2, 8, 0x4e40 },
{ ATAS, AXXX, 0, 2, 5, 0x4ac0 },
{ ATEXT },
{ ATRAP, AXXX, 0, 0, 30, 0x4e40 },
{ ATRAPCC, AXXX, 0, 0, 4, 0x54fc },
{ ATRAPCS, AXXX, 0, 0, 4, 0x55fc },
{ ATRAPEQ, AXXX, 0, 0, 4, 0x57fc },
{ ATRAPF, AXXX, 0, 0, 4, 0x51fc },
{ ATRAPGE, AXXX, 0, 0, 4, 0x5cfc },
{ ATRAPGT, AXXX, 0, 0, 4, 0x5efc },
{ ATRAPHI, AXXX, 0, 0, 4, 0x52fc },
{ ATRAPLE, AXXX, 0, 0, 4, 0x5ffc },
{ ATRAPLS, AXXX, 0, 0, 4, 0x53fc },
{ ATRAPLT, AXXX, 0, 0, 4, 0x5dfc },
{ ATRAPMI, AXXX, 0, 0, 4, 0x5bfc },
{ ATRAPNE, AXXX, 0, 0, 4, 0x56fc },
{ ATRAPPL, AXXX, 0, 0, 4, 0x5afc },
{ ATRAPT, AXXX, 0, 0, 4, 0x50fc },
{ ATRAPV, AXXX, 0, 0, 4, 0x4e76 },
{ ATRAPVC, AXXX, 0, 0, 4, 0x58fc },
{ ATRAPVS, AXXX, 0, 0, 4, 0x59fc },
{ ATSTB, AXXX, 0, 2, 5, 0x4a00 },
{ ATSTL, AXXX, 0, 4, 5, 0x4a80 },
{ ATSTW, AXXX, 0, 2, 5, 0x4a40 },
{ AUNLK },
{ AUNPK },
{ AWORD, AXXX, 0, 2, 23 },
{ AXXX }
};
char mmsize[] =
{
/* 0 */ 0, 2, 2, 2, 2,
/* 5 */ 2, 2, 2, 4, 2,
/* 10 */ 2, 2, 2, 2, 4,
/* 15 */ 4, 4, 4, 4, 6,
/* 20 */ 4, 4, 4, 0, 4,
/* 25 */ 2, 2, 2, 2, 2,
/* 30 */ 2, 4, 4, 0, 4,
/* 35 */ 2, 0, 0, 0, 0,
};