shithub: riscv

ref: 0a7d581eec1319c643337d302176b3f9ba565ea5
dir: /sys/src/cmd/2l/optab.c/

View raw version
#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,
};