added m68k2 stuff, added patterns
This commit is contained in:
		
							parent
							
								
									0f2f6da38f
								
							
						
					
					
						commit
						b4a2b975a0
					
				
					 18 changed files with 12888 additions and 5470 deletions
				
			
		|  | @ -4,5 +4,6 @@ mach.c | |||
| mach.h | ||||
| table | ||||
| whichone.h | ||||
| instrmacs.h | ||||
| tables1.c | ||||
| tables1.h | ||||
|  |  | |||
							
								
								
									
										144
									
								
								mach/m68020/ncg/instrmacs.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										144
									
								
								mach/m68020/ncg/instrmacs.h
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,144 @@ | |||
| #if WORD_SIZE==2 | ||||
| #define LLP ldl | ||||
| #define LEP lde | ||||
| #define LFP ldf		/* load offsetted pointer */ | ||||
| #define SLP sdl | ||||
| #define SEP sde | ||||
| #define SFP sdf		/* store offsetted pointer */ | ||||
| 
 | ||||
| #define ABS_off_int	ABS_off2 | ||||
| #define ABS_indoff_int	ABS_indoff2 | ||||
| #define ABSIND_off_int	ABSIND_off2 | ||||
| #define INDOFF_off_int	INDOFF_off2 | ||||
| #define OFF_off_int	OFF_off2 | ||||
| #define OFF_indoff_int	OFF_indoff2 | ||||
| #define abs_index_int	abs_index2 | ||||
| #define absolute_int	absolute2 | ||||
| #define any_int		any2 | ||||
| #define conreg_int	conreg2 | ||||
| #define data_int	data2 | ||||
| #define datalt_int	datalt2 | ||||
| #define dreg_int	dreg2 | ||||
| #define imm_cmp_int	imm_cmp2 | ||||
| #define immediate_int	immediate2 | ||||
| #define indirect_int	indirect2 | ||||
| #define index_off_int	index_off2 | ||||
| #define offsetted_int	offsetted2 | ||||
| #define post_inc_int	post_inc2 | ||||
| #define pre_dec_int	pre_dec2 | ||||
| #define store_int	any2 | ||||
| #define test_set_int	test_set2 | ||||
| 
 | ||||
| #define add_i	add_w | ||||
| #define ADD_I	"add.w" | ||||
| #define and_i	and_w | ||||
| #define AND_I	"and.w" | ||||
| #define asl_i	asl_w | ||||
| #define ASL_I	"asl.w" | ||||
| #define asr_i	asr_w | ||||
| #define ASR_I	"asr.w" | ||||
| #define clr_i	clr_w | ||||
| #define CLR_I	"clr.w" | ||||
| #define cmp_i	cmp_w | ||||
| #define cmp2_i	cmp2_w | ||||
| #define DEC	"sub.w #1," | ||||
| #define DIVS_I	"divs.w" | ||||
| #define DIVU_I	"divu.w" | ||||
| #define eor_i	eor_w | ||||
| #define EOR_I	"eor.w" | ||||
| #define INC	"add.w #1," | ||||
| #define lsr_i	lsr_w | ||||
| #define LSR_I	"lsr.w" | ||||
| #define move_i	move_w | ||||
| #define MOVE_I	"move.w" | ||||
| #define muls_i	muls_w | ||||
| #define MULS_I	"muls.w" | ||||
| #define mulu_i	mulu_w | ||||
| #define MULU_I	"mulu.w" | ||||
| #define neg_i	neg_w | ||||
| #define NEG_I	"neg.w" | ||||
| #define not_i	not_w | ||||
| #define NOT_I	"not.w" | ||||
| #define or_i	or_w | ||||
| #define OR_I	"or.w" | ||||
| #define rol_i	rol_w | ||||
| #define ROL_I	"rol.w" | ||||
| #define ror_i	ror_w | ||||
| #define ROR_I	"ror.w" | ||||
| #define sub_i	sub_w | ||||
| #define SUB_I	"sub.w" | ||||
| #define tst_i	tst_w | ||||
| 
 | ||||
| #else | ||||
| 
 | ||||
| #define LLP lol | ||||
| #define LEP loe | ||||
| #define LFP lof		/* load offsetted pointer */ | ||||
| #define SLP stl | ||||
| #define SEP ste | ||||
| #define SFP stf		/* store offsetted pointer */ | ||||
| 
 | ||||
| #define ABS_off_int	ABS_off4 | ||||
| #define ABS_indoff_int	ABS_indoff4 | ||||
| #define ABSIND_off_int	ABSIND_off4 | ||||
| #define INDOFF_off_int	INDOFF_off4 | ||||
| #define OFF_off_int	OFF_off4 | ||||
| #define OFF_indoff_int	OFF_indoff4 | ||||
| #define abs_index_int	abs_index4 | ||||
| #define absolute_int	absolute4 | ||||
| #define any_int		any4 | ||||
| #define conreg_int	conreg4 | ||||
| #define data_int	data4 | ||||
| #define datalt_int	datalt4 | ||||
| #define dreg_int	dreg4 | ||||
| #define imm_cmp_int	imm_cmp4 | ||||
| #define immediate_int	immediate4 | ||||
| #define indirect_int	indirect4 | ||||
| #define index_off_int	index_off4 | ||||
| #define offsetted_int	offsetted4 | ||||
| #define post_inc_int	post_inc4 | ||||
| #define pre_dec_int	pre_dec4 | ||||
| #define store_int	store4 | ||||
| #define test_set_int	test_set4 | ||||
| 
 | ||||
| #define add_i	add_l | ||||
| #define ADD_I	"add.l" | ||||
| #define and_i	and_l | ||||
| #define AND_I	"and.l" | ||||
| #define asl_i	asl_l | ||||
| #define ASL_I	"asl.l" | ||||
| #define asr_i	asr_l | ||||
| #define ASR_I	"asr.l" | ||||
| #define clr_i	clr_l | ||||
| #define CLR_I	"clr.l" | ||||
| #define cmp_i	cmp_l | ||||
| #define cmp2_i	cmp2_l | ||||
| #define DEC	"sub.l #1," | ||||
| #define DIVS_I	"divs.l" | ||||
| #define DIVU_I	"divu.l" | ||||
| #define eor_i	eor_l | ||||
| #define EOR_I	"eor.l" | ||||
| #define INC	"add.l #1," | ||||
| #define lsr_i	lsr_l | ||||
| #define LSR_I	"lsr.l" | ||||
| #define move_i	move_l | ||||
| #define MOVE_I	"move.l" | ||||
| #define muls_i	muls_l | ||||
| #define MULS_I	"muls.l" | ||||
| #define mulu_i	mulu_l | ||||
| #define MULU_I	"mulu.l" | ||||
| #define neg_i	neg_l | ||||
| #define NEG_I	"neg.l" | ||||
| #define not_i	not_l | ||||
| #define NOT_I	"not.l" | ||||
| #define or_i	or_l | ||||
| #define OR_I	"or.l" | ||||
| #define rol_i	rol_l | ||||
| #define ROL_I	"rol.l" | ||||
| #define ror_i	ror_l | ||||
| #define ROR_I	"ror.l" | ||||
| #define sub_i	sub_l | ||||
| #define SUB_I	"sub.l" | ||||
| #define tst_i	tst_l | ||||
| 
 | ||||
| #endif | ||||
|  | @ -10,24 +10,29 @@ | |||
|  */ | ||||
| 
 | ||||
| #include "whichone.h" | ||||
| #include <stb.h> | ||||
| 
 | ||||
| con_part(sz,w) register sz; word w; { | ||||
| 
 | ||||
| 	while (part_size % sz) | ||||
| 		part_size++; | ||||
| 	if (part_size == 4) | ||||
| 	if (part_size == TEM_WSIZE) | ||||
| 		part_flush(); | ||||
| 	if (sz == 1) { | ||||
| 		w &= 0xFF; | ||||
| #if WORD_SIZE==4 | ||||
| 		w <<= 8*(3-part_size); | ||||
| 		part_word |= w; | ||||
| 	} else if (sz == 2) { | ||||
| 		w &= 0xFFFF; | ||||
| 		if (part_size == 0) | ||||
| 			w <<= 16; | ||||
| #endif | ||||
| 		if (part_size == 0) { | ||||
| 			/* Shift 8 for m68k2, 16 otherwise */ | ||||
| 			w <<= 4 * TEM_WSIZE; | ||||
| 		} | ||||
| 		part_word |= w; | ||||
| 	} else { | ||||
| 		assert(sz == 4); | ||||
| 		assert(sz == TEM_WSIZE); | ||||
| 		part_word = w; | ||||
| 	} | ||||
| 	part_size += sz; | ||||
|  | @ -62,7 +67,7 @@ regscore(off,size,typ,score,totyp) | |||
| 			score += 5; | ||||
| 			/* fall through .. */ | ||||
| 		case reg_any: | ||||
| 			if (size != 4 || totyp == reg_pointer) return -1; | ||||
| 			if (size != TEM_WSIZE || totyp == reg_pointer) return -1; | ||||
| 			break; | ||||
| 	} | ||||
| 	if (off >= 0) { | ||||
|  | @ -176,7 +181,7 @@ prolog(n) full n; { | |||
| 
 | ||||
| 
 | ||||
| mes(type) word type ; { | ||||
| 	int argt ; | ||||
| 	int argt, a1, a2 ; | ||||
| 
 | ||||
| 	switch ( (int)type ) { | ||||
| 	case ms_ext : | ||||
|  | @ -191,6 +196,41 @@ mes(type) word type ; { | |||
| 				break ; | ||||
| 			} | ||||
| 		} | ||||
| 	case ms_stb: | ||||
| 		argt = getarg(str_ptyp | cst_ptyp); | ||||
| 		if (argt == sp_cstx) | ||||
| 			fputs(".symb \"\", ", codefile); | ||||
| 		else { | ||||
| 			fprintf(codefile, ".symb \"%s\", ", str); | ||||
| 			argt = getarg(cst_ptyp); | ||||
| 		} | ||||
| 		a1 = argval; | ||||
| 		argt = getarg(cst_ptyp); | ||||
| 		a2 = argval; | ||||
| 		argt = getarg(cst_ptyp|nof_ptyp|sof_ptyp|ilb_ptyp|pro_ptyp); | ||||
| 		fprintf(codefile, "%s, 0x%x, %d\n", strarg(argt), a1, a2); | ||||
| 		argt = getarg(end_ptyp); | ||||
| 		break; | ||||
| 	case ms_std: | ||||
| 		argt = getarg(str_ptyp | cst_ptyp); | ||||
| 		if (argt == sp_cstx) | ||||
| 			str[0] = '\0'; | ||||
| 		else { | ||||
| 			argt = getarg(cst_ptyp); | ||||
| 		} | ||||
| 		swtxt(); | ||||
| 		if (argval == N_SLINE) { | ||||
| #ifdef TBL68020 | ||||
| 			fputs("jsr (___u_LiB)\n", codefile); | ||||
| #else | ||||
| 			fputs("jsr ___u_LiB\n", codefile); | ||||
| #endif | ||||
| 		} | ||||
| 		fprintf(codefile, ".symd \"%s\", 0x%x,", str, (int) argval); | ||||
| 		argt = getarg(cst_ptyp); | ||||
| 		fprintf(codefile, "%d\n", (int) argval); | ||||
| 		argt = getarg(end_ptyp); | ||||
| 		break; | ||||
| 	default : | ||||
| 		while ( getarg(any_ptyp) != sp_cend ) ; | ||||
| 		break ; | ||||
|  |  | |||
|  | @ -12,6 +12,9 @@ TBL68000 or TBL68020, in the file whichone.h, then REMOVE tables.c | |||
| and then run "make" again | ||||
| #endif | ||||
| #endif | ||||
| #if WORD_SIZE!=2 && WORD_SIZE!=4 | ||||
| You must specify the appropriate word size, then REMOVE tables.c | ||||
| #endif | ||||
| 
 | ||||
| #define ex_ap(y)	fprintf(codefile,".extern %s\n",y) | ||||
| #define in_ap(y)	/* nothing */ | ||||
|  | @ -37,7 +40,11 @@ and then run "make" again | |||
| #endif | ||||
| #define hol_off		"%ld+hol%d" | ||||
| 
 | ||||
| #if WORD_SIZE==2 | ||||
| #define con_cst(x)	fprintf(codefile,".data2\t%d\n",x) | ||||
| #else | ||||
| #define con_cst(x)	fprintf(codefile,".data4\t%ld\n",x) | ||||
| #endif | ||||
| #define con_ilb(x)	fprintf(codefile,".data4\t%s\n",x) | ||||
| #define con_dlb(x)	fprintf(codefile,".data4\t%s\n",x) | ||||
| 
 | ||||
|  |  | |||
										
											
												File diff suppressed because it is too large
												Load diff
											
										
									
								
							|  | @ -4,5 +4,6 @@ | |||
|  * See the copyright notice in the ACK home directory, in the file "Copyright". | ||||
|  */ | ||||
| 
 | ||||
| #define TBL68020	1 | ||||
| /*#define TBL68881	1 	/* use floating point processor */ | ||||
| #define	WORD_SIZE	4	/* should be 2 or 4 */ | ||||
| #define TBL68020	1	/* should be TBL68020 or TBL68000 */ | ||||
| /* #define TBL68881	1 	/* use floating point processor */ | ||||
|  |  | |||
							
								
								
									
										144
									
								
								mach/m68k2/ncg/instrmacs.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										144
									
								
								mach/m68k2/ncg/instrmacs.h
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,144 @@ | |||
| #if WORD_SIZE==2 | ||||
| #define LLP ldl | ||||
| #define LEP lde | ||||
| #define LFP ldf		/* load offsetted pointer */ | ||||
| #define SLP sdl | ||||
| #define SEP sde | ||||
| #define SFP sdf		/* store offsetted pointer */ | ||||
| 
 | ||||
| #define ABS_off_int	ABS_off2 | ||||
| #define ABS_indoff_int	ABS_indoff2 | ||||
| #define ABSIND_off_int	ABSIND_off2 | ||||
| #define INDOFF_off_int	INDOFF_off2 | ||||
| #define OFF_off_int	OFF_off2 | ||||
| #define OFF_indoff_int	OFF_indoff2 | ||||
| #define abs_index_int	abs_index2 | ||||
| #define absolute_int	absolute2 | ||||
| #define any_int		any2 | ||||
| #define conreg_int	conreg2 | ||||
| #define data_int	data2 | ||||
| #define datalt_int	datalt2 | ||||
| #define dreg_int	dreg2 | ||||
| #define imm_cmp_int	imm_cmp2 | ||||
| #define immediate_int	immediate2 | ||||
| #define indirect_int	indirect2 | ||||
| #define index_off_int	index_off2 | ||||
| #define offsetted_int	offsetted2 | ||||
| #define post_inc_int	post_inc2 | ||||
| #define pre_dec_int	pre_dec2 | ||||
| #define store_int	any2 | ||||
| #define test_set_int	test_set2 | ||||
| 
 | ||||
| #define add_i	add_w | ||||
| #define ADD_I	"add.w" | ||||
| #define and_i	and_w | ||||
| #define AND_I	"and.w" | ||||
| #define asl_i	asl_w | ||||
| #define ASL_I	"asl.w" | ||||
| #define asr_i	asr_w | ||||
| #define ASR_I	"asr.w" | ||||
| #define clr_i	clr_w | ||||
| #define CLR_I	"clr.w" | ||||
| #define cmp_i	cmp_w | ||||
| #define cmp2_i	cmp2_w | ||||
| #define DEC	"sub.w #1," | ||||
| #define DIVS_I	"divs.w" | ||||
| #define DIVU_I	"divu.w" | ||||
| #define eor_i	eor_w | ||||
| #define EOR_I	"eor.w" | ||||
| #define INC	"add.w #1," | ||||
| #define lsr_i	lsr_w | ||||
| #define LSR_I	"lsr.w" | ||||
| #define move_i	move_w | ||||
| #define MOVE_I	"move.w" | ||||
| #define muls_i	muls_w | ||||
| #define MULS_I	"muls.w" | ||||
| #define mulu_i	mulu_w | ||||
| #define MULU_I	"mulu.w" | ||||
| #define neg_i	neg_w | ||||
| #define NEG_I	"neg.w" | ||||
| #define not_i	not_w | ||||
| #define NOT_I	"not.w" | ||||
| #define or_i	or_w | ||||
| #define OR_I	"or.w" | ||||
| #define rol_i	rol_w | ||||
| #define ROL_I	"rol.w" | ||||
| #define ror_i	ror_w | ||||
| #define ROR_I	"ror.w" | ||||
| #define sub_i	sub_w | ||||
| #define SUB_I	"sub.w" | ||||
| #define tst_i	tst_w | ||||
| 
 | ||||
| #else | ||||
| 
 | ||||
| #define LLP lol | ||||
| #define LEP loe | ||||
| #define LFP lof		/* load offsetted pointer */ | ||||
| #define SLP stl | ||||
| #define SEP ste | ||||
| #define SFP stf		/* store offsetted pointer */ | ||||
| 
 | ||||
| #define ABS_off_int	ABS_off4 | ||||
| #define ABS_indoff_int	ABS_indoff4 | ||||
| #define ABSIND_off_int	ABSIND_off4 | ||||
| #define INDOFF_off_int	INDOFF_off4 | ||||
| #define OFF_off_int	OFF_off4 | ||||
| #define OFF_indoff_int	OFF_indoff4 | ||||
| #define abs_index_int	abs_index4 | ||||
| #define absolute_int	absolute4 | ||||
| #define any_int		any4 | ||||
| #define conreg_int	conreg4 | ||||
| #define data_int	data4 | ||||
| #define datalt_int	datalt4 | ||||
| #define dreg_int	dreg4 | ||||
| #define imm_cmp_int	imm_cmp4 | ||||
| #define immediate_int	immediate4 | ||||
| #define indirect_int	indirect4 | ||||
| #define index_off_int	index_off4 | ||||
| #define offsetted_int	offsetted4 | ||||
| #define post_inc_int	post_inc4 | ||||
| #define pre_dec_int	pre_dec4 | ||||
| #define store_int	store4 | ||||
| #define test_set_int	test_set4 | ||||
| 
 | ||||
| #define add_i	add_l | ||||
| #define ADD_I	"add.l" | ||||
| #define and_i	and_l | ||||
| #define AND_I	"and.l" | ||||
| #define asl_i	asl_l | ||||
| #define ASL_I	"asl.l" | ||||
| #define asr_i	asr_l | ||||
| #define ASR_I	"asr.l" | ||||
| #define clr_i	clr_l | ||||
| #define CLR_I	"clr.l" | ||||
| #define cmp_i	cmp_l | ||||
| #define cmp2_i	cmp2_l | ||||
| #define DEC	"sub.l #1," | ||||
| #define DIVS_I	"divs.l" | ||||
| #define DIVU_I	"divu.l" | ||||
| #define eor_i	eor_l | ||||
| #define EOR_I	"eor.l" | ||||
| #define INC	"add.l #1," | ||||
| #define lsr_i	lsr_l | ||||
| #define LSR_I	"lsr.l" | ||||
| #define move_i	move_l | ||||
| #define MOVE_I	"move.l" | ||||
| #define muls_i	muls_l | ||||
| #define MULS_I	"muls.l" | ||||
| #define mulu_i	mulu_l | ||||
| #define MULU_I	"mulu.l" | ||||
| #define neg_i	neg_l | ||||
| #define NEG_I	"neg.l" | ||||
| #define not_i	not_l | ||||
| #define NOT_I	"not.l" | ||||
| #define or_i	or_l | ||||
| #define OR_I	"or.l" | ||||
| #define rol_i	rol_l | ||||
| #define ROL_I	"rol.l" | ||||
| #define ror_i	ror_l | ||||
| #define ROR_I	"ror.l" | ||||
| #define sub_i	sub_l | ||||
| #define SUB_I	"sub.l" | ||||
| #define tst_i	tst_l | ||||
| 
 | ||||
| #endif | ||||
|  | @ -10,24 +10,29 @@ | |||
|  */ | ||||
| 
 | ||||
| #include "whichone.h" | ||||
| #include <stb.h> | ||||
| 
 | ||||
| con_part(sz,w) register sz; word w; { | ||||
| 
 | ||||
| 	while (part_size % sz) | ||||
| 		part_size++; | ||||
| 	if (part_size == 4) | ||||
| 	if (part_size == TEM_WSIZE) | ||||
| 		part_flush(); | ||||
| 	if (sz == 1) { | ||||
| 		w &= 0xFF; | ||||
| #if WORD_SIZE==4 | ||||
| 		w <<= 8*(3-part_size); | ||||
| 		part_word |= w; | ||||
| 	} else if (sz == 2) { | ||||
| 		w &= 0xFFFF; | ||||
| 		if (part_size == 0) | ||||
| 			w <<= 16; | ||||
| #endif | ||||
| 		if (part_size == 0) { | ||||
| 			/* Shift 8 for m68k2, 16 otherwise */ | ||||
| 			w <<= 4 * TEM_WSIZE; | ||||
| 		} | ||||
| 		part_word |= w; | ||||
| 	} else { | ||||
| 		assert(sz == 4); | ||||
| 		assert(sz == TEM_WSIZE); | ||||
| 		part_word = w; | ||||
| 	} | ||||
| 	part_size += sz; | ||||
|  | @ -62,7 +67,7 @@ regscore(off,size,typ,score,totyp) | |||
| 			score += 5; | ||||
| 			/* fall through .. */ | ||||
| 		case reg_any: | ||||
| 			if (size != 4 || totyp == reg_pointer) return -1; | ||||
| 			if (size != TEM_WSIZE || totyp == reg_pointer) return -1; | ||||
| 			break; | ||||
| 	} | ||||
| 	if (off >= 0) { | ||||
|  | @ -176,7 +181,7 @@ prolog(n) full n; { | |||
| 
 | ||||
| 
 | ||||
| mes(type) word type ; { | ||||
| 	int argt ; | ||||
| 	int argt, a1, a2 ; | ||||
| 
 | ||||
| 	switch ( (int)type ) { | ||||
| 	case ms_ext : | ||||
|  | @ -191,6 +196,41 @@ mes(type) word type ; { | |||
| 				break ; | ||||
| 			} | ||||
| 		} | ||||
| 	case ms_stb: | ||||
| 		argt = getarg(str_ptyp | cst_ptyp); | ||||
| 		if (argt == sp_cstx) | ||||
| 			fputs(".symb \"\", ", codefile); | ||||
| 		else { | ||||
| 			fprintf(codefile, ".symb \"%s\", ", str); | ||||
| 			argt = getarg(cst_ptyp); | ||||
| 		} | ||||
| 		a1 = argval; | ||||
| 		argt = getarg(cst_ptyp); | ||||
| 		a2 = argval; | ||||
| 		argt = getarg(cst_ptyp|nof_ptyp|sof_ptyp|ilb_ptyp|pro_ptyp); | ||||
| 		fprintf(codefile, "%s, 0x%x, %d\n", strarg(argt), a1, a2); | ||||
| 		argt = getarg(end_ptyp); | ||||
| 		break; | ||||
| 	case ms_std: | ||||
| 		argt = getarg(str_ptyp | cst_ptyp); | ||||
| 		if (argt == sp_cstx) | ||||
| 			str[0] = '\0'; | ||||
| 		else { | ||||
| 			argt = getarg(cst_ptyp); | ||||
| 		} | ||||
| 		swtxt(); | ||||
| 		if (argval == N_SLINE) { | ||||
| #ifdef TBL68020 | ||||
| 			fputs("jsr (___u_LiB)\n", codefile); | ||||
| #else | ||||
| 			fputs("jsr ___u_LiB\n", codefile); | ||||
| #endif | ||||
| 		} | ||||
| 		fprintf(codefile, ".symd \"%s\", 0x%x,", str, (int) argval); | ||||
| 		argt = getarg(cst_ptyp); | ||||
| 		fprintf(codefile, "%d\n", (int) argval); | ||||
| 		argt = getarg(end_ptyp); | ||||
| 		break; | ||||
| 	default : | ||||
| 		while ( getarg(any_ptyp) != sp_cend ) ; | ||||
| 		break ; | ||||
|  |  | |||
|  | @ -12,6 +12,9 @@ TBL68000 or TBL68020, in the file whichone.h, then REMOVE tables.c | |||
| and then run "make" again | ||||
| #endif | ||||
| #endif | ||||
| #if WORD_SIZE!=2 && WORD_SIZE!=4 | ||||
| You must specify the appropriate word size, then REMOVE tables.c | ||||
| #endif | ||||
| 
 | ||||
| #define ex_ap(y)	fprintf(codefile,".extern %s\n",y) | ||||
| #define in_ap(y)	/* nothing */ | ||||
|  | @ -37,7 +40,11 @@ and then run "make" again | |||
| #endif | ||||
| #define hol_off		"%ld+hol%d" | ||||
| 
 | ||||
| #if WORD_SIZE==2 | ||||
| #define con_cst(x)	fprintf(codefile,".data2\t%d\n",x) | ||||
| #else | ||||
| #define con_cst(x)	fprintf(codefile,".data4\t%ld\n",x) | ||||
| #endif | ||||
| #define con_ilb(x)	fprintf(codefile,".data4\t%s\n",x) | ||||
| #define con_dlb(x)	fprintf(codefile,".data4\t%s\n",x) | ||||
| 
 | ||||
|  |  | |||
							
								
								
									
										4367
									
								
								mach/m68k2/ncg/table
									
										
									
									
									
								
							
							
						
						
									
										4367
									
								
								mach/m68k2/ncg/table
									
										
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load diff
											
										
									
								
							
							
								
								
									
										144
									
								
								mach/m68k4/ncg/instrmacs.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										144
									
								
								mach/m68k4/ncg/instrmacs.h
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,144 @@ | |||
| #if WORD_SIZE==2 | ||||
| #define LLP ldl | ||||
| #define LEP lde | ||||
| #define LFP ldf		/* load offsetted pointer */ | ||||
| #define SLP sdl | ||||
| #define SEP sde | ||||
| #define SFP sdf		/* store offsetted pointer */ | ||||
| 
 | ||||
| #define ABS_off_int	ABS_off2 | ||||
| #define ABS_indoff_int	ABS_indoff2 | ||||
| #define ABSIND_off_int	ABSIND_off2 | ||||
| #define INDOFF_off_int	INDOFF_off2 | ||||
| #define OFF_off_int	OFF_off2 | ||||
| #define OFF_indoff_int	OFF_indoff2 | ||||
| #define abs_index_int	abs_index2 | ||||
| #define absolute_int	absolute2 | ||||
| #define any_int		any2 | ||||
| #define conreg_int	conreg2 | ||||
| #define data_int	data2 | ||||
| #define datalt_int	datalt2 | ||||
| #define dreg_int	dreg2 | ||||
| #define imm_cmp_int	imm_cmp2 | ||||
| #define immediate_int	immediate2 | ||||
| #define indirect_int	indirect2 | ||||
| #define index_off_int	index_off2 | ||||
| #define offsetted_int	offsetted2 | ||||
| #define post_inc_int	post_inc2 | ||||
| #define pre_dec_int	pre_dec2 | ||||
| #define store_int	any2 | ||||
| #define test_set_int	test_set2 | ||||
| 
 | ||||
| #define add_i	add_w | ||||
| #define ADD_I	"add.w" | ||||
| #define and_i	and_w | ||||
| #define AND_I	"and.w" | ||||
| #define asl_i	asl_w | ||||
| #define ASL_I	"asl.w" | ||||
| #define asr_i	asr_w | ||||
| #define ASR_I	"asr.w" | ||||
| #define clr_i	clr_w | ||||
| #define CLR_I	"clr.w" | ||||
| #define cmp_i	cmp_w | ||||
| #define cmp2_i	cmp2_w | ||||
| #define DEC	"sub.w #1," | ||||
| #define DIVS_I	"divs.w" | ||||
| #define DIVU_I	"divu.w" | ||||
| #define eor_i	eor_w | ||||
| #define EOR_I	"eor.w" | ||||
| #define INC	"add.w #1," | ||||
| #define lsr_i	lsr_w | ||||
| #define LSR_I	"lsr.w" | ||||
| #define move_i	move_w | ||||
| #define MOVE_I	"move.w" | ||||
| #define muls_i	muls_w | ||||
| #define MULS_I	"muls.w" | ||||
| #define mulu_i	mulu_w | ||||
| #define MULU_I	"mulu.w" | ||||
| #define neg_i	neg_w | ||||
| #define NEG_I	"neg.w" | ||||
| #define not_i	not_w | ||||
| #define NOT_I	"not.w" | ||||
| #define or_i	or_w | ||||
| #define OR_I	"or.w" | ||||
| #define rol_i	rol_w | ||||
| #define ROL_I	"rol.w" | ||||
| #define ror_i	ror_w | ||||
| #define ROR_I	"ror.w" | ||||
| #define sub_i	sub_w | ||||
| #define SUB_I	"sub.w" | ||||
| #define tst_i	tst_w | ||||
| 
 | ||||
| #else | ||||
| 
 | ||||
| #define LLP lol | ||||
| #define LEP loe | ||||
| #define LFP lof		/* load offsetted pointer */ | ||||
| #define SLP stl | ||||
| #define SEP ste | ||||
| #define SFP stf		/* store offsetted pointer */ | ||||
| 
 | ||||
| #define ABS_off_int	ABS_off4 | ||||
| #define ABS_indoff_int	ABS_indoff4 | ||||
| #define ABSIND_off_int	ABSIND_off4 | ||||
| #define INDOFF_off_int	INDOFF_off4 | ||||
| #define OFF_off_int	OFF_off4 | ||||
| #define OFF_indoff_int	OFF_indoff4 | ||||
| #define abs_index_int	abs_index4 | ||||
| #define absolute_int	absolute4 | ||||
| #define any_int		any4 | ||||
| #define conreg_int	conreg4 | ||||
| #define data_int	data4 | ||||
| #define datalt_int	datalt4 | ||||
| #define dreg_int	dreg4 | ||||
| #define imm_cmp_int	imm_cmp4 | ||||
| #define immediate_int	immediate4 | ||||
| #define indirect_int	indirect4 | ||||
| #define index_off_int	index_off4 | ||||
| #define offsetted_int	offsetted4 | ||||
| #define post_inc_int	post_inc4 | ||||
| #define pre_dec_int	pre_dec4 | ||||
| #define store_int	store4 | ||||
| #define test_set_int	test_set4 | ||||
| 
 | ||||
| #define add_i	add_l | ||||
| #define ADD_I	"add.l" | ||||
| #define and_i	and_l | ||||
| #define AND_I	"and.l" | ||||
| #define asl_i	asl_l | ||||
| #define ASL_I	"asl.l" | ||||
| #define asr_i	asr_l | ||||
| #define ASR_I	"asr.l" | ||||
| #define clr_i	clr_l | ||||
| #define CLR_I	"clr.l" | ||||
| #define cmp_i	cmp_l | ||||
| #define cmp2_i	cmp2_l | ||||
| #define DEC	"sub.l #1," | ||||
| #define DIVS_I	"divs.l" | ||||
| #define DIVU_I	"divu.l" | ||||
| #define eor_i	eor_l | ||||
| #define EOR_I	"eor.l" | ||||
| #define INC	"add.l #1," | ||||
| #define lsr_i	lsr_l | ||||
| #define LSR_I	"lsr.l" | ||||
| #define move_i	move_l | ||||
| #define MOVE_I	"move.l" | ||||
| #define muls_i	muls_l | ||||
| #define MULS_I	"muls.l" | ||||
| #define mulu_i	mulu_l | ||||
| #define MULU_I	"mulu.l" | ||||
| #define neg_i	neg_l | ||||
| #define NEG_I	"neg.l" | ||||
| #define not_i	not_l | ||||
| #define NOT_I	"not.l" | ||||
| #define or_i	or_l | ||||
| #define OR_I	"or.l" | ||||
| #define rol_i	rol_l | ||||
| #define ROL_I	"rol.l" | ||||
| #define ror_i	ror_l | ||||
| #define ROR_I	"ror.l" | ||||
| #define sub_i	sub_l | ||||
| #define SUB_I	"sub.l" | ||||
| #define tst_i	tst_l | ||||
| 
 | ||||
| #endif | ||||
|  | @ -10,24 +10,29 @@ | |||
|  */ | ||||
| 
 | ||||
| #include "whichone.h" | ||||
| #include <stb.h> | ||||
| 
 | ||||
| con_part(sz,w) register sz; word w; { | ||||
| 
 | ||||
| 	while (part_size % sz) | ||||
| 		part_size++; | ||||
| 	if (part_size == 4) | ||||
| 	if (part_size == TEM_WSIZE) | ||||
| 		part_flush(); | ||||
| 	if (sz == 1) { | ||||
| 		w &= 0xFF; | ||||
| #if WORD_SIZE==4 | ||||
| 		w <<= 8*(3-part_size); | ||||
| 		part_word |= w; | ||||
| 	} else if (sz == 2) { | ||||
| 		w &= 0xFFFF; | ||||
| 		if (part_size == 0) | ||||
| 			w <<= 16; | ||||
| #endif | ||||
| 		if (part_size == 0) { | ||||
| 			/* Shift 8 for m68k2, 16 otherwise */ | ||||
| 			w <<= 4 * TEM_WSIZE; | ||||
| 		} | ||||
| 		part_word |= w; | ||||
| 	} else { | ||||
| 		assert(sz == 4); | ||||
| 		assert(sz == TEM_WSIZE); | ||||
| 		part_word = w; | ||||
| 	} | ||||
| 	part_size += sz; | ||||
|  | @ -62,7 +67,7 @@ regscore(off,size,typ,score,totyp) | |||
| 			score += 5; | ||||
| 			/* fall through .. */ | ||||
| 		case reg_any: | ||||
| 			if (size != 4 || totyp == reg_pointer) return -1; | ||||
| 			if (size != TEM_WSIZE || totyp == reg_pointer) return -1; | ||||
| 			break; | ||||
| 	} | ||||
| 	if (off >= 0) { | ||||
|  | @ -176,7 +181,7 @@ prolog(n) full n; { | |||
| 
 | ||||
| 
 | ||||
| mes(type) word type ; { | ||||
| 	int argt ; | ||||
| 	int argt, a1, a2 ; | ||||
| 
 | ||||
| 	switch ( (int)type ) { | ||||
| 	case ms_ext : | ||||
|  | @ -191,6 +196,41 @@ mes(type) word type ; { | |||
| 				break ; | ||||
| 			} | ||||
| 		} | ||||
| 	case ms_stb: | ||||
| 		argt = getarg(str_ptyp | cst_ptyp); | ||||
| 		if (argt == sp_cstx) | ||||
| 			fputs(".symb \"\", ", codefile); | ||||
| 		else { | ||||
| 			fprintf(codefile, ".symb \"%s\", ", str); | ||||
| 			argt = getarg(cst_ptyp); | ||||
| 		} | ||||
| 		a1 = argval; | ||||
| 		argt = getarg(cst_ptyp); | ||||
| 		a2 = argval; | ||||
| 		argt = getarg(cst_ptyp|nof_ptyp|sof_ptyp|ilb_ptyp|pro_ptyp); | ||||
| 		fprintf(codefile, "%s, 0x%x, %d\n", strarg(argt), a1, a2); | ||||
| 		argt = getarg(end_ptyp); | ||||
| 		break; | ||||
| 	case ms_std: | ||||
| 		argt = getarg(str_ptyp | cst_ptyp); | ||||
| 		if (argt == sp_cstx) | ||||
| 			str[0] = '\0'; | ||||
| 		else { | ||||
| 			argt = getarg(cst_ptyp); | ||||
| 		} | ||||
| 		swtxt(); | ||||
| 		if (argval == N_SLINE) { | ||||
| #ifdef TBL68020 | ||||
| 			fputs("jsr (___u_LiB)\n", codefile); | ||||
| #else | ||||
| 			fputs("jsr ___u_LiB\n", codefile); | ||||
| #endif | ||||
| 		} | ||||
| 		fprintf(codefile, ".symd \"%s\", 0x%x,", str, (int) argval); | ||||
| 		argt = getarg(cst_ptyp); | ||||
| 		fprintf(codefile, "%d\n", (int) argval); | ||||
| 		argt = getarg(end_ptyp); | ||||
| 		break; | ||||
| 	default : | ||||
| 		while ( getarg(any_ptyp) != sp_cend ) ; | ||||
| 		break ; | ||||
|  |  | |||
|  | @ -12,6 +12,9 @@ TBL68000 or TBL68020, in the file whichone.h, then REMOVE tables.c | |||
| and then run "make" again | ||||
| #endif | ||||
| #endif | ||||
| #if WORD_SIZE!=2 && WORD_SIZE!=4 | ||||
| You must specify the appropriate word size, then REMOVE tables.c | ||||
| #endif | ||||
| 
 | ||||
| #define ex_ap(y)	fprintf(codefile,".extern %s\n",y) | ||||
| #define in_ap(y)	/* nothing */ | ||||
|  | @ -37,7 +40,11 @@ and then run "make" again | |||
| #endif | ||||
| #define hol_off		"%ld+hol%d" | ||||
| 
 | ||||
| #if WORD_SIZE==2 | ||||
| #define con_cst(x)	fprintf(codefile,".data2\t%d\n",x) | ||||
| #else | ||||
| #define con_cst(x)	fprintf(codefile,".data4\t%ld\n",x) | ||||
| #endif | ||||
| #define con_ilb(x)	fprintf(codefile,".data4\t%s\n",x) | ||||
| #define con_dlb(x)	fprintf(codefile,".data4\t%s\n",x) | ||||
| 
 | ||||
|  |  | |||
							
								
								
									
										4367
									
								
								mach/m68k4/ncg/table
									
										
									
									
									
								
							
							
						
						
									
										4367
									
								
								mach/m68k4/ncg/table
									
										
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load diff
											
										
									
								
							
							
								
								
									
										144
									
								
								mach/moon3/ncg/instrmacs.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										144
									
								
								mach/moon3/ncg/instrmacs.h
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,144 @@ | |||
| #if WORD_SIZE==2 | ||||
| #define LLP ldl | ||||
| #define LEP lde | ||||
| #define LFP ldf		/* load offsetted pointer */ | ||||
| #define SLP sdl | ||||
| #define SEP sde | ||||
| #define SFP sdf		/* store offsetted pointer */ | ||||
| 
 | ||||
| #define ABS_off_int	ABS_off2 | ||||
| #define ABS_indoff_int	ABS_indoff2 | ||||
| #define ABSIND_off_int	ABSIND_off2 | ||||
| #define INDOFF_off_int	INDOFF_off2 | ||||
| #define OFF_off_int	OFF_off2 | ||||
| #define OFF_indoff_int	OFF_indoff2 | ||||
| #define abs_index_int	abs_index2 | ||||
| #define absolute_int	absolute2 | ||||
| #define any_int		any2 | ||||
| #define conreg_int	conreg2 | ||||
| #define data_int	data2 | ||||
| #define datalt_int	datalt2 | ||||
| #define dreg_int	dreg2 | ||||
| #define imm_cmp_int	imm_cmp2 | ||||
| #define immediate_int	immediate2 | ||||
| #define indirect_int	indirect2 | ||||
| #define index_off_int	index_off2 | ||||
| #define offsetted_int	offsetted2 | ||||
| #define post_inc_int	post_inc2 | ||||
| #define pre_dec_int	pre_dec2 | ||||
| #define store_int	any2 | ||||
| #define test_set_int	test_set2 | ||||
| 
 | ||||
| #define add_i	add_w | ||||
| #define ADD_I	"add.w" | ||||
| #define and_i	and_w | ||||
| #define AND_I	"and.w" | ||||
| #define asl_i	asl_w | ||||
| #define ASL_I	"asl.w" | ||||
| #define asr_i	asr_w | ||||
| #define ASR_I	"asr.w" | ||||
| #define clr_i	clr_w | ||||
| #define CLR_I	"clr.w" | ||||
| #define cmp_i	cmp_w | ||||
| #define cmp2_i	cmp2_w | ||||
| #define DEC	"sub.w #1," | ||||
| #define DIVS_I	"divs.w" | ||||
| #define DIVU_I	"divu.w" | ||||
| #define eor_i	eor_w | ||||
| #define EOR_I	"eor.w" | ||||
| #define INC	"add.w #1," | ||||
| #define lsr_i	lsr_w | ||||
| #define LSR_I	"lsr.w" | ||||
| #define move_i	move_w | ||||
| #define MOVE_I	"move.w" | ||||
| #define muls_i	muls_w | ||||
| #define MULS_I	"muls.w" | ||||
| #define mulu_i	mulu_w | ||||
| #define MULU_I	"mulu.w" | ||||
| #define neg_i	neg_w | ||||
| #define NEG_I	"neg.w" | ||||
| #define not_i	not_w | ||||
| #define NOT_I	"not.w" | ||||
| #define or_i	or_w | ||||
| #define OR_I	"or.w" | ||||
| #define rol_i	rol_w | ||||
| #define ROL_I	"rol.w" | ||||
| #define ror_i	ror_w | ||||
| #define ROR_I	"ror.w" | ||||
| #define sub_i	sub_w | ||||
| #define SUB_I	"sub.w" | ||||
| #define tst_i	tst_w | ||||
| 
 | ||||
| #else | ||||
| 
 | ||||
| #define LLP lol | ||||
| #define LEP loe | ||||
| #define LFP lof		/* load offsetted pointer */ | ||||
| #define SLP stl | ||||
| #define SEP ste | ||||
| #define SFP stf		/* store offsetted pointer */ | ||||
| 
 | ||||
| #define ABS_off_int	ABS_off4 | ||||
| #define ABS_indoff_int	ABS_indoff4 | ||||
| #define ABSIND_off_int	ABSIND_off4 | ||||
| #define INDOFF_off_int	INDOFF_off4 | ||||
| #define OFF_off_int	OFF_off4 | ||||
| #define OFF_indoff_int	OFF_indoff4 | ||||
| #define abs_index_int	abs_index4 | ||||
| #define absolute_int	absolute4 | ||||
| #define any_int		any4 | ||||
| #define conreg_int	conreg4 | ||||
| #define data_int	data4 | ||||
| #define datalt_int	datalt4 | ||||
| #define dreg_int	dreg4 | ||||
| #define imm_cmp_int	imm_cmp4 | ||||
| #define immediate_int	immediate4 | ||||
| #define indirect_int	indirect4 | ||||
| #define index_off_int	index_off4 | ||||
| #define offsetted_int	offsetted4 | ||||
| #define post_inc_int	post_inc4 | ||||
| #define pre_dec_int	pre_dec4 | ||||
| #define store_int	store4 | ||||
| #define test_set_int	test_set4 | ||||
| 
 | ||||
| #define add_i	add_l | ||||
| #define ADD_I	"add.l" | ||||
| #define and_i	and_l | ||||
| #define AND_I	"and.l" | ||||
| #define asl_i	asl_l | ||||
| #define ASL_I	"asl.l" | ||||
| #define asr_i	asr_l | ||||
| #define ASR_I	"asr.l" | ||||
| #define clr_i	clr_l | ||||
| #define CLR_I	"clr.l" | ||||
| #define cmp_i	cmp_l | ||||
| #define cmp2_i	cmp2_l | ||||
| #define DEC	"sub.l #1," | ||||
| #define DIVS_I	"divs.l" | ||||
| #define DIVU_I	"divu.l" | ||||
| #define eor_i	eor_l | ||||
| #define EOR_I	"eor.l" | ||||
| #define INC	"add.l #1," | ||||
| #define lsr_i	lsr_l | ||||
| #define LSR_I	"lsr.l" | ||||
| #define move_i	move_l | ||||
| #define MOVE_I	"move.l" | ||||
| #define muls_i	muls_l | ||||
| #define MULS_I	"muls.l" | ||||
| #define mulu_i	mulu_l | ||||
| #define MULU_I	"mulu.l" | ||||
| #define neg_i	neg_l | ||||
| #define NEG_I	"neg.l" | ||||
| #define not_i	not_l | ||||
| #define NOT_I	"not.l" | ||||
| #define or_i	or_l | ||||
| #define OR_I	"or.l" | ||||
| #define rol_i	rol_l | ||||
| #define ROL_I	"rol.l" | ||||
| #define ror_i	ror_l | ||||
| #define ROR_I	"ror.l" | ||||
| #define sub_i	sub_l | ||||
| #define SUB_I	"sub.l" | ||||
| #define tst_i	tst_l | ||||
| 
 | ||||
| #endif | ||||
|  | @ -10,24 +10,29 @@ | |||
|  */ | ||||
| 
 | ||||
| #include "whichone.h" | ||||
| #include <stb.h> | ||||
| 
 | ||||
| con_part(sz,w) register sz; word w; { | ||||
| 
 | ||||
| 	while (part_size % sz) | ||||
| 		part_size++; | ||||
| 	if (part_size == 4) | ||||
| 	if (part_size == TEM_WSIZE) | ||||
| 		part_flush(); | ||||
| 	if (sz == 1) { | ||||
| 		w &= 0xFF; | ||||
| #if WORD_SIZE==4 | ||||
| 		w <<= 8*(3-part_size); | ||||
| 		part_word |= w; | ||||
| 	} else if (sz == 2) { | ||||
| 		w &= 0xFFFF; | ||||
| 		if (part_size == 0) | ||||
| 			w <<= 16; | ||||
| #endif | ||||
| 		if (part_size == 0) { | ||||
| 			/* Shift 8 for m68k2, 16 otherwise */ | ||||
| 			w <<= 4 * TEM_WSIZE; | ||||
| 		} | ||||
| 		part_word |= w; | ||||
| 	} else { | ||||
| 		assert(sz == 4); | ||||
| 		assert(sz == TEM_WSIZE); | ||||
| 		part_word = w; | ||||
| 	} | ||||
| 	part_size += sz; | ||||
|  | @ -62,7 +67,7 @@ regscore(off,size,typ,score,totyp) | |||
| 			score += 5; | ||||
| 			/* fall through .. */ | ||||
| 		case reg_any: | ||||
| 			if (size != 4 || totyp == reg_pointer) return -1; | ||||
| 			if (size != TEM_WSIZE || totyp == reg_pointer) return -1; | ||||
| 			break; | ||||
| 	} | ||||
| 	if (off >= 0) { | ||||
|  | @ -176,7 +181,7 @@ prolog(n) full n; { | |||
| 
 | ||||
| 
 | ||||
| mes(type) word type ; { | ||||
| 	int argt ; | ||||
| 	int argt, a1, a2 ; | ||||
| 
 | ||||
| 	switch ( (int)type ) { | ||||
| 	case ms_ext : | ||||
|  | @ -191,6 +196,41 @@ mes(type) word type ; { | |||
| 				break ; | ||||
| 			} | ||||
| 		} | ||||
| 	case ms_stb: | ||||
| 		argt = getarg(str_ptyp | cst_ptyp); | ||||
| 		if (argt == sp_cstx) | ||||
| 			fputs(".symb \"\", ", codefile); | ||||
| 		else { | ||||
| 			fprintf(codefile, ".symb \"%s\", ", str); | ||||
| 			argt = getarg(cst_ptyp); | ||||
| 		} | ||||
| 		a1 = argval; | ||||
| 		argt = getarg(cst_ptyp); | ||||
| 		a2 = argval; | ||||
| 		argt = getarg(cst_ptyp|nof_ptyp|sof_ptyp|ilb_ptyp|pro_ptyp); | ||||
| 		fprintf(codefile, "%s, 0x%x, %d\n", strarg(argt), a1, a2); | ||||
| 		argt = getarg(end_ptyp); | ||||
| 		break; | ||||
| 	case ms_std: | ||||
| 		argt = getarg(str_ptyp | cst_ptyp); | ||||
| 		if (argt == sp_cstx) | ||||
| 			str[0] = '\0'; | ||||
| 		else { | ||||
| 			argt = getarg(cst_ptyp); | ||||
| 		} | ||||
| 		swtxt(); | ||||
| 		if (argval == N_SLINE) { | ||||
| #ifdef TBL68020 | ||||
| 			fputs("jsr (___u_LiB)\n", codefile); | ||||
| #else | ||||
| 			fputs("jsr ___u_LiB\n", codefile); | ||||
| #endif | ||||
| 		} | ||||
| 		fprintf(codefile, ".symd \"%s\", 0x%x,", str, (int) argval); | ||||
| 		argt = getarg(cst_ptyp); | ||||
| 		fprintf(codefile, "%d\n", (int) argval); | ||||
| 		argt = getarg(end_ptyp); | ||||
| 		break; | ||||
| 	default : | ||||
| 		while ( getarg(any_ptyp) != sp_cend ) ; | ||||
| 		break ; | ||||
|  |  | |||
|  | @ -12,6 +12,9 @@ TBL68000 or TBL68020, in the file whichone.h, then REMOVE tables.c | |||
| and then run "make" again | ||||
| #endif | ||||
| #endif | ||||
| #if WORD_SIZE!=2 && WORD_SIZE!=4 | ||||
| You must specify the appropriate word size, then REMOVE tables.c | ||||
| #endif | ||||
| 
 | ||||
| #define ex_ap(y)	fprintf(codefile,".extern %s\n",y) | ||||
| #define in_ap(y)	/* nothing */ | ||||
|  | @ -37,7 +40,11 @@ and then run "make" again | |||
| #endif | ||||
| #define hol_off		"%ld+hol%d" | ||||
| 
 | ||||
| #if WORD_SIZE==2 | ||||
| #define con_cst(x)	fprintf(codefile,".data2\t%d\n",x) | ||||
| #else | ||||
| #define con_cst(x)	fprintf(codefile,".data4\t%ld\n",x) | ||||
| #endif | ||||
| #define con_ilb(x)	fprintf(codefile,".data4\t%s\n",x) | ||||
| #define con_dlb(x)	fprintf(codefile,".data4\t%s\n",x) | ||||
| 
 | ||||
|  |  | |||
							
								
								
									
										4367
									
								
								mach/moon3/ncg/table
									
										
									
									
									
								
							
							
						
						
									
										4367
									
								
								mach/moon3/ncg/table
									
										
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load diff
											
										
									
								
							
		Loading…
	
	Add table
		
		Reference in a new issue