167 lines
		
	
	
	
		
			5.8 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			167 lines
		
	
	
	
		
			5.8 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
| 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			==> @text2( 0x6400 | %dist( dst->lbl)).
 | |
| ... dst:GLOB_LBL		==> @text2( 0x64ff);
 | |
| 				    code_dist4( dst).
 | |
| bcs dst:LOC_LBL			==> @text2( 0x6500 | %dist( dst->lbl)).
 | |
| ... dst:GLOB_LBL		==> @text2( 0x65ff);
 | |
| 				    code_dist4( dst).
 | |
| beq dst:LOC_LBL			==> @text2( 0x6700 | %dist( dst->lbl)).
 | |
| ... dst:GLOB_LBL		==> @text2( 0x67ff);
 | |
| 				    code_dist4( dst).
 | |
| bge dst:LOC_LBL			==> @text2( 0x6c00 | %dist( dst->lbl)).
 | |
| ... dst:GLOB_LBL		==> @text2( 0x6cff);
 | |
| 				    code_dist4( dst).
 | |
| bgt dst:LOC_LBL			==> @text2( 0x6e00 | %dist( dst->lbl)).
 | |
| ... dst:GLOB_LBL		==> @text2( 0x6eff);
 | |
| 				    code_dist4( dst).
 | |
| ble dst:LOC_LBL			==> @text2( 0x6f00 | %dist( dst->lbl)).
 | |
| ... dst:GLOB_LBL		==> @text2( 0x6fff);
 | |
| 				    code_dist4( dst).
 | |
| bls dst:LOC_LBL			==> @text2( 0x6300 | %dist( dst->lbl)).
 | |
| ... dst:GLOB_LBL		==> @text2( 0x63ff);
 | |
| 				    code_dist4( dst).
 | |
| blt dst:LOC_LBL			==> @text2( 0x6d00 | %dist( dst->lbl)).
 | |
| ... dst:GLOB_LBL		==> @text2( 0x6dff);
 | |
| 				    code_dist4( dst).
 | |
| bmi dst:LOC_LBL			==> @text2( 0x6b00 | %dist( dst->lbl)).
 | |
| ... dst:GLOB_LBL		==> @text2( 0x6bff);
 | |
| 				    code_dist4( dst).
 | |
| bne dst:LOC_LBL			==> @text2( 0x6600 | %dist( dst->lbl)).
 | |
| ... dst:GLOB_LBL		==> @text2( 0x66ff);
 | |
| 				    code_dist4( dst).
 | |
| bra dst:LOC_LBL			==> @text2( 0x6000 | %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( 0x4e50 | %d(reg->reg));
 | |
| 				    @text2( %$(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)).
 |