add_l src:QUICK, dst		==> code_instr( 0x5, src->val, 0x2, dst).
...   src:IMMEDIATE, dst:A_REG	==> @if ( small( %$(src->expr)))
					@text2( 0x5088 | (%d(dst->reg) & 0x7) |
						((%$(src->expr) & 0x7) << 9)).
				    @else
					code_instr( 0xd, dst->reg, 0x7, src).
				    @fi.
...   src:IMMEDIATE, dst	==> code_opcode( 0x0, 0x3, 0x2, dst);
				    code_extension( src);
				    code_extension( dst).
...   src, dst:D_REG		==> code_instr( 0xd, dst->reg, 0x6, src).
...   src, dst:A_REG		==> code_instr( 0xd, dst->reg, 0x7, src).
...   src:D_REG, dst		==> code_instr( 0xd, src->reg, 0x6, dst).

and_l src:QUICK, dst		==> code_opcode( 0x0, 0x1, 0x2, dst);
				    code_extension( src);
				    code_extension( dst).
...   src:IMMEDIATE, dst	==> code_opcode( 0x0, 0x1, 0x2, dst);
				    code_extension( src);
				    code_extension( dst).
...   src:D_REG, dst		==> code_instr( 0xc, src->reg, 0x6, dst).

asl_l cnt:D_REG, dst:D_REG	==> @text2( %d( 0xe1a0 | (cnt->reg << 9) |
						dst->reg)).

asr_l cnt:QUICK, dst:D_REG	==> @text2( %d( 0xe080 | (cnt->val << 9) |
						dst->reg)).
...   cnt:D_REG, dst:D_REG	==> @text2( %d( 0xe0a0 | (cnt->reg << 9) |
						dst->reg)).

bcc dst:LOC_LBL			==> @text1(0x64); 
				    @text1(%dist( dst->lbl)).
... dst:GLOB_LBL		==> @text2( 0x64ff);
				    code_dist4( dst).
bcs dst:LOC_LBL			==> @text1( 0x65);
				    @text1(%dist( dst->lbl)).
... dst:GLOB_LBL		==> @text2( 0x65ff);
				    code_dist4( dst).
beq dst:LOC_LBL			==> @text1( 0x67);
				    @text1(%dist( dst->lbl)).
... dst:GLOB_LBL		==> @text2( 0x67ff);
				    code_dist4( dst).
bge dst:LOC_LBL			==> @text1( 0x6c);
				    @text1(%dist( dst->lbl)).
... dst:GLOB_LBL		==> @text2( 0x6cff);
				    code_dist4( dst).
bgt dst:LOC_LBL			==> @text1( 0x6e);
				    @text1(%dist( dst->lbl)).
... dst:GLOB_LBL		==> @text2( 0x6eff);
				    code_dist4( dst).
ble dst:LOC_LBL			==> @text1( 0x6f);
				    @text1(%dist( dst->lbl)).
... dst:GLOB_LBL		==> @text2( 0x6fff);
				    code_dist4( dst).
bls dst:LOC_LBL			==> @text1( 0x63);
				    @text1(%dist( dst->lbl)).
... dst:GLOB_LBL		==> @text2( 0x63ff);
				    code_dist4( dst).
blt dst:LOC_LBL			==> @text1( 0x6d);
				    @text1(%dist( dst->lbl)).
... dst:GLOB_LBL		==> @text2( 0x6dff);
				    code_dist4( dst).
bmi dst:LOC_LBL			==> @text1( 0x6b);
				    @text1(%dist( dst->lbl)).
... dst:GLOB_LBL		==> @text2( 0x6bff);
				    code_dist4( dst).
bne dst:LOC_LBL			==> @text1( 0x66);
				    @text1(%dist( dst->lbl)).
... dst:GLOB_LBL		==> @text2( 0x66ff);
				    code_dist4( dst).
bra dst:LOC_LBL			==> @text1( 0x60);
				    @text1(%dist( dst->lbl)).
... dst:GLOB_LBL		==> @text2( 0x60ff);
				    code_dist4( dst).

bset nr:D_REG, dst		==> code_instr( 0x0, nr->reg, 0x7, dst).

btst nr:D_REG, dst		==> code_instr( 0x0, nr->reg, 0x4, dst).

bchg nr:D_REG, dst		==> code_instr( 0x0, nr->reg, 0x5, dst).

clr_l dst			==> code_instr( 0x4, 0x1, 0x2, dst).
 
cmp_l src:INCR, dst:INCR	==> @text2( 0xb188 | %d( src->reg << 9) |
					    %d( dst->reg)).
...   src, dst:D_REG		==> code_instr( 0xb, dst->reg, 0x2, src).

cmp2_l src, reg:D_REG		==> code_opcode( 0x0, 0x2, 0x3, src);
				    @text2( (%d(reg->reg) & 0x7) << 12);
				    code_extension( src).

dbf reg:D_REG, dst:LOC_LBL	==> @text2( 0x51c8 | (%d(reg->reg) & 0x7));
				    @text2( %dist(dst->lbl) + 2).

divs_l src, dst:D_REG		==> code_opcode( 0x4, 0x6, 0x1, src);
				    @text2( 0x800 | (%d(dst->reg) & 0x7) |
					    ((%d(dst->reg) & 0x7) << 12));
				    code_extension( src).

divsl_l src, dst:REG_PAIR	==> code_opcode( 0x4, 0x6, 0x1, src);
				    @text2( 0x800 | (%d(dst->reg) & 0x7) |
					    ((%d(dst->reg2) & 0x7) << 12));
				    code_extension( src).

divu_l src, dst:D_REG		==> code_opcode( 0x4, 0x6, 0x1, src);
				    @text2( (%d(dst->reg) & 0x7) |
					    ((%d(dst->reg) & 0x7) << 12));
				    code_extension( src).

divul_l src, dst:REG_PAIR	==> code_opcode( 0x4, 0x6, 0x1, src);
				    @text2( (%d(dst->reg) & 0x7) |
					    ((%d(dst->reg2) & 0x7) << 12));
				    code_extension( src).

eor_l src:D_REG, dst		==> code_instr( 0xb, src->reg, 0x6, dst).

ext_w dst:D_REG			==> @text2( 0x4880 | (%d(dst->reg) & 0x7)).

ext_l dst:D_REG			==> @text2( 0x48c0 | (%d(dst->reg) & 0x7)).

extl_l dst:D_REG		==> @text2( 0x49c0 | (%d(dst->reg) & 0x7)).

jmp dst				==> code_instr( 0x4, 0x7, 0x3, dst).

jsr dst				==> code_instr( 0x4, 0x7, 0x2, dst).

lea src, dst:A_REG		==> code_instr( 0x4, dst->reg, 0x7, src).

link reg:A_REG, displ:IMMEDIATE	==> @text2( 0x4808 | %d(reg->reg));
				    @text4( %$(displ->expr)).

lsr_l cnt:D_REG, dst:D_REG	==> @text2( 0xe0a8 | (%d(dst->reg) & 0x7) |
					    ((%d(cnt->reg) & 0x7) << 9)).

move_b src, dst			==> code_move( 0x1, src, dst).

move_l src, dst:A_REG		==> code_instr( 0x2, dst->reg, 0x1, src).
...    src, dst			==> code_move( 0x2, src, dst).

move_w src, dst			==> code_move( 0x3, src, dst).

muls_l src, dst:D_REG		==> code_opcode( 0x4, 0x6, 0x0, src);
				    @text2( 0x800 | (%d(dst->reg) & 0x7) |
					    ((%d(dst->reg) & 0x7) << 12));
				    code_extension( src).

mulu_l src, dst:D_REG		==> code_opcode( 0x4, 0x6, 0x0, src);
				    @text2( (%d(dst->reg) & 0x7) |
					    ((%d(dst->reg) & 0x7) << 12));
				    code_extension( src).

neg_l dst			==> code_instr( 0x4, 0x2, 0x2, dst).

not_l dst			==> code_instr( 0x4, 0x3, 0x2, dst).

or_l src:D_REG, dst		==> code_instr( 0x8, src->reg, 0x6, dst).

pea src				==> code_instr( 0x4, 0x4, 0x1, src).

rol_l cnt:D_REG, dst:D_REG	==> @text2( 0xe1b8 | (%d(dst->reg) & 0x7) |
						((%d(cnt->reg) & 0x7) << 9)).

ror_l cnt:D_REG, dst:D_REG	==> @text2( 0xe0b8 | (%d(dst->reg) & 0x7) |
						((%d(cnt->reg) & 0x7) << 9)).

rts 				==> @text2( 0x4e75).

sne dst				==> code_instr( 0x5, 0x3, 0x3, dst).

sub_l src:IMMEDIATE, dst	==> code_opcode( 0x0, 0x2, 0x2, dst);
				    code_extension( src);
				    code_extension( dst).
...   src:QUICK, dst		==> code_instr( 0x5, src->val, 0x6, dst).
...   src:D_REG, dst		==> code_instr( 0x9, src->reg, 0x6, dst).

tst_l dst			==> code_instr( 0x4, 0x5, 0x2, dst).

unlk reg:A_REG			==> @text2( 0x4e58 | %d(reg->reg)).
