Most machines had undefined valu_t and redefined it to a different type. Edit mach/*/as/mach0.c to remove such redefinitions, so the next change to valu_t will affect all machines. Edit mach/proto/as/comm0.h to change valu_t to int64_t, and add uvalu_t and uint64_t. Remove int64_t y_valu8 from the yacc %union, now that valu_t y_valu can hold 64 bits. Replace y_valu8 with y_valu. The .data8 pseudo becomes less special; it now accepts absolute expressions. This change simplifies the assembler and seems to have no effect on the assembled output. Among the files in share/ack/examples, the only changes are in hilo_bas.* and startrek_c.linuxppc, but those files seem to change whenever I rebuild them.
		
			
				
	
	
		
			29 lines
		
	
	
	
		
			636 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			29 lines
		
	
	
	
		
			636 B
		
	
	
	
		
			C
		
	
	
	
	
	
/*
 | 
						|
 * VideoCore IV assembler for the ACK
 | 
						|
 * © 2013 David Given
 | 
						|
 * This file is redistributable under the terms of the 3-clause BSD license.
 | 
						|
 * See the file 'Copying' in the root of the distribution for the full text.
 | 
						|
 */
 | 
						|
 | 
						|
#define	THREE_PASS          /* branch and offset optimization */
 | 
						|
#define LISTING             /* enable listing facilities */
 | 
						|
#define RELOCATION          /* generate relocatable code */
 | 
						|
#define DEBUG 0
 | 
						|
 | 
						|
#undef ADDR_T
 | 
						|
#define ADDR_T long
 | 
						|
 | 
						|
#undef word_t
 | 
						|
#define word_t long
 | 
						|
 | 
						|
typedef unsigned long quad;
 | 
						|
 | 
						|
#undef ALIGNWORD
 | 
						|
#define ALIGNWORD	4
 | 
						|
 | 
						|
#undef ALIGNSECT
 | 
						|
#define ALIGNSECT	4
 | 
						|
 | 
						|
#undef VALWIDTH
 | 
						|
#define VALWIDTH	8
 | 
						|
 |