600 lines
		
	
	
	
		
			12 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			600 lines
		
	
	
	
		
			12 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
You may want to change mach.c in this directory.
 | 
						|
 | 
						|
Archives MUST have a table of contents. Arch in subdirectory arch
 | 
						|
automatically makes one when you change an archive.
 | 
						|
 | 
						|
Several changes in the assembler were needed to have it generate the 
 | 
						|
necessary output.
 | 
						|
A contextual diff follows. You can apply them as follows:
 | 
						|
patch -d /usr/em/philips/mach/68000/as < READ_ME
 | 
						|
 | 
						|
*** comm0.h.old	Thu Dec  6 16:18:39 1984
 | 
						|
--- comm0.h	Thu Dec  6 17:49:51 1984
 | 
						|
***************
 | 
						|
*** 213,218
 | 
						|
  
 | 
						|
  /*
 | 
						|
   * extra type bits out of S_ETC, internal use only
 | 
						|
   * S_COM:
 | 
						|
   *  - symbols declared by .comm
 | 
						|
   * S_VAR:
 | 
						|
 | 
						|
--- 213,219 -----
 | 
						|
  
 | 
						|
  /*
 | 
						|
   * extra type bits out of S_ETC, internal use only
 | 
						|
+ #ifndef DUK
 | 
						|
   * S_COM:
 | 
						|
   *  - symbols declared by .comm
 | 
						|
  #endif DUK
 | 
						|
***************
 | 
						|
*** 215,220
 | 
						|
   * extra type bits out of S_ETC, internal use only
 | 
						|
   * S_COM:
 | 
						|
   *  - symbols declared by .comm
 | 
						|
   * S_VAR:
 | 
						|
   *  - type not known at end of PASS_1 (S_VAR|S_UND)
 | 
						|
   *  - value not known at end of PASS_2 (S_VAR|S_ABS)
 | 
						|
 | 
						|
--- 216,222 -----
 | 
						|
  #ifndef DUK
 | 
						|
   * S_COM:
 | 
						|
   *  - symbols declared by .comm
 | 
						|
+ #endif DUK
 | 
						|
   * S_VAR:
 | 
						|
   *  - type not known at end of PASS_1 (S_VAR|S_UND)
 | 
						|
   *  - value not known at end of PASS_2 (S_VAR|S_ABS)
 | 
						|
***************
 | 
						|
*** 221,226
 | 
						|
   * S_DOT:
 | 
						|
   *  - dot expression
 | 
						|
   */
 | 
						|
  #define	S_COM		0x0100
 | 
						|
  #define	S_VAR		0x0200
 | 
						|
  #define	S_DOT		0x0400
 | 
						|
 | 
						|
--- 223,229 -----
 | 
						|
   * S_DOT:
 | 
						|
   *  - dot expression
 | 
						|
   */
 | 
						|
+ #ifndef DUK
 | 
						|
  #define	S_COM		0x0100
 | 
						|
  #endif DUK
 | 
						|
  #define	S_VAR		0x0200
 | 
						|
***************
 | 
						|
*** 222,227
 | 
						|
   *  - dot expression
 | 
						|
   */
 | 
						|
  #define	S_COM		0x0100
 | 
						|
  #define	S_VAR		0x0200
 | 
						|
  #define	S_DOT		0x0400
 | 
						|
  /* should be tested by preprocessor
 | 
						|
 | 
						|
--- 225,231 -----
 | 
						|
   */
 | 
						|
  #ifndef DUK
 | 
						|
  #define	S_COM		0x0100
 | 
						|
+ #endif DUK
 | 
						|
  #define	S_VAR		0x0200
 | 
						|
  #define	S_DOT		0x0400
 | 
						|
  /* should be tested by preprocessor
 | 
						|
*** comm2.y.old	Thu Dec  6 16:19:07 1984
 | 
						|
--- comm2.y	Thu Dec  6 16:02:19 1984
 | 
						|
***************
 | 
						|
*** 229,234
 | 
						|
  			{
 | 
						|
  #ifdef RELOCATION
 | 
						|
  				if (rflag != 0 && PASS_RELO)
 | 
						|
  					newrelo($1.typ, (int)$<y_word>0);
 | 
						|
  #endif
 | 
						|
  				emitx($1.val, (int)$<y_word>0);
 | 
						|
 | 
						|
--- 229,239 -----
 | 
						|
  			{
 | 
						|
  #ifdef RELOCATION
 | 
						|
  				if (rflag != 0 && PASS_RELO)
 | 
						|
+ #ifdef DUK
 | 
						|
+ 					newrelo($1.typ,
 | 
						|
+ 						(int)$<y_word>0 | RELBR | RELWR
 | 
						|
+ 					);
 | 
						|
+ #else DUK
 | 
						|
  					newrelo($1.typ, (int)$<y_word>0);
 | 
						|
  #endif DUK
 | 
						|
  #endif
 | 
						|
***************
 | 
						|
*** 230,235
 | 
						|
  #ifdef RELOCATION
 | 
						|
  				if (rflag != 0 && PASS_RELO)
 | 
						|
  					newrelo($1.typ, (int)$<y_word>0);
 | 
						|
  #endif
 | 
						|
  				emitx($1.val, (int)$<y_word>0);
 | 
						|
  			}
 | 
						|
 | 
						|
--- 235,241 -----
 | 
						|
  					);
 | 
						|
  #else DUK
 | 
						|
  					newrelo($1.typ, (int)$<y_word>0);
 | 
						|
+ #endif DUK
 | 
						|
  #endif
 | 
						|
  				emitx($1.val, (int)$<y_word>0);
 | 
						|
  			}
 | 
						|
***************
 | 
						|
*** 237,242
 | 
						|
  			{
 | 
						|
  #ifdef RELOCATION
 | 
						|
  				if (rflag != 0 && PASS_RELO)
 | 
						|
  					newrelo($3.typ, (int)$<y_word>0);
 | 
						|
  #endif
 | 
						|
  				emitx($3.val, (int)$<y_word>0);
 | 
						|
 | 
						|
--- 243,253 -----
 | 
						|
  			{
 | 
						|
  #ifdef RELOCATION
 | 
						|
  				if (rflag != 0 && PASS_RELO)
 | 
						|
+ #ifdef DUK
 | 
						|
+ 					newrelo($3.typ,
 | 
						|
+ 						(int)$<y_word>0 | RELBR | RELWR
 | 
						|
+ 					);
 | 
						|
+ #else DUK
 | 
						|
  					newrelo($3.typ, (int)$<y_word>0);
 | 
						|
  #endif DUK
 | 
						|
  #endif
 | 
						|
***************
 | 
						|
*** 238,243
 | 
						|
  #ifdef RELOCATION
 | 
						|
  				if (rflag != 0 && PASS_RELO)
 | 
						|
  					newrelo($3.typ, (int)$<y_word>0);
 | 
						|
  #endif
 | 
						|
  				emitx($3.val, (int)$<y_word>0);
 | 
						|
  			}
 | 
						|
 | 
						|
--- 249,255 -----
 | 
						|
  					);
 | 
						|
  #else DUK
 | 
						|
  					newrelo($3.typ, (int)$<y_word>0);
 | 
						|
+ #endif DUK
 | 
						|
  #endif
 | 
						|
  				emitx($3.val, (int)$<y_word>0);
 | 
						|
  			}
 | 
						|
*** comm3.c.old	Wed Jul 11 09:22:24 1984
 | 
						|
--- comm3.c	Fri Dec  7 13:06:26 1984
 | 
						|
***************
 | 
						|
*** 11,16
 | 
						|
  
 | 
						|
  struct outhead	outhead = {
 | 
						|
  	O_MAGIC, O_STAMP, 0
 | 
						|
  #ifdef BYTES_REVERSED
 | 
						|
  	| HF_BREV
 | 
						|
  #endif
 | 
						|
 | 
						|
--- 11,17 -----
 | 
						|
  
 | 
						|
  struct outhead	outhead = {
 | 
						|
  	O_MAGIC, O_STAMP, 0
 | 
						|
+ #ifndef DUK
 | 
						|
  #ifdef BYTES_REVERSED
 | 
						|
  	| HF_BREV
 | 
						|
  #endif
 | 
						|
***************
 | 
						|
*** 17,22
 | 
						|
  #ifdef WORDS_REVERSED
 | 
						|
  	| HF_WREV
 | 
						|
  #endif
 | 
						|
  };
 | 
						|
  
 | 
						|
  #include	"y.tab.h"
 | 
						|
 | 
						|
--- 18,24 -----
 | 
						|
  #ifdef WORDS_REVERSED
 | 
						|
  	| HF_WREV
 | 
						|
  #endif
 | 
						|
+ #endif DUK
 | 
						|
  };
 | 
						|
  
 | 
						|
  #include	"y.tab.h"
 | 
						|
*** comm5.c.old	Thu Dec  6 16:19:40 1984
 | 
						|
--- comm5.c	Thu Oct 11 14:03:27 1984
 | 
						|
***************
 | 
						|
*** 162,167
 | 
						|
  #endif
 | 
						|
  	case STRING:
 | 
						|
  		p = stringbuf;
 | 
						|
  		*p++ = n = getc(tempfile); break;
 | 
						|
  	case OP_EQ:
 | 
						|
  	case OP_NE:
 | 
						|
 | 
						|
--- 162,172 -----
 | 
						|
  #endif
 | 
						|
  	case STRING:
 | 
						|
  		p = stringbuf;
 | 
						|
+ #ifdef DUK
 | 
						|
+ 		*p++ = n = getc(tempfile);
 | 
						|
+ 		p[n] = '\0';
 | 
						|
+ 		break;
 | 
						|
+ #else DUK
 | 
						|
  		*p++ = n = getc(tempfile); break;
 | 
						|
  #endif DUK
 | 
						|
  	case OP_EQ:
 | 
						|
***************
 | 
						|
*** 163,168
 | 
						|
  	case STRING:
 | 
						|
  		p = stringbuf;
 | 
						|
  		*p++ = n = getc(tempfile); break;
 | 
						|
  	case OP_EQ:
 | 
						|
  	case OP_NE:
 | 
						|
  	case OP_LE:
 | 
						|
 | 
						|
--- 168,174 -----
 | 
						|
  		break;
 | 
						|
  #else DUK
 | 
						|
  		*p++ = n = getc(tempfile); break;
 | 
						|
+ #endif DUK
 | 
						|
  	case OP_EQ:
 | 
						|
  	case OP_NE:
 | 
						|
  	case OP_LE:
 | 
						|
***************
 | 
						|
*** 354,359
 | 
						|
  			break;
 | 
						|
  		if (c == '\\')
 | 
						|
  			c = inescape();
 | 
						|
  		if (p >= &stringbuf[STRINGMAX])
 | 
						|
  			fatal("string buffer overflow");
 | 
						|
  		*p++ = c;
 | 
						|
 | 
						|
--- 360,368 -----
 | 
						|
  			break;
 | 
						|
  		if (c == '\\')
 | 
						|
  			c = inescape();
 | 
						|
+ #ifdef DUK
 | 
						|
+ 		if (p >= &stringbuf[STRINGMAX - 1])
 | 
						|
+ #else DUK
 | 
						|
  		if (p >= &stringbuf[STRINGMAX])
 | 
						|
  #endif DUK
 | 
						|
  			fatal("string buffer overflow");
 | 
						|
***************
 | 
						|
*** 355,360
 | 
						|
  		if (c == '\\')
 | 
						|
  			c = inescape();
 | 
						|
  		if (p >= &stringbuf[STRINGMAX])
 | 
						|
  			fatal("string buffer overflow");
 | 
						|
  		*p++ = c;
 | 
						|
  	}
 | 
						|
 | 
						|
--- 364,370 -----
 | 
						|
  		if (p >= &stringbuf[STRINGMAX - 1])
 | 
						|
  #else DUK
 | 
						|
  		if (p >= &stringbuf[STRINGMAX])
 | 
						|
+ #endif DUK
 | 
						|
  			fatal("string buffer overflow");
 | 
						|
  		*p++ = c;
 | 
						|
  	}
 | 
						|
***************
 | 
						|
*** 359,364
 | 
						|
  		*p++ = c;
 | 
						|
  	}
 | 
						|
  	stringbuf[0] = p - stringbuf - 1;
 | 
						|
  	return(STRING);
 | 
						|
  }
 | 
						|
  
 | 
						|
 | 
						|
--- 369,377 -----
 | 
						|
  		*p++ = c;
 | 
						|
  	}
 | 
						|
  	stringbuf[0] = p - stringbuf - 1;
 | 
						|
+ #ifdef DUK
 | 
						|
+ 	*p = '\0';
 | 
						|
+ #endif DUK
 | 
						|
  	return(STRING);
 | 
						|
  }
 | 
						|
  
 | 
						|
*** comm6.c.old	Thu Dec  6 16:20:22 1984
 | 
						|
--- comm6.c	Wed Oct  3 15:59:31 1984
 | 
						|
***************
 | 
						|
*** 106,111
 | 
						|
  		sp = §[typ - S_MIN];
 | 
						|
  		sp->s_item = ip;
 | 
						|
  		sp->s_lign = ALIGNSECT;
 | 
						|
  		ip->i_type = typ | S_EXT;
 | 
						|
  		ip->i_valu = 0;
 | 
						|
  	} else if (typ >= S_MIN) {
 | 
						|
 | 
						|
--- 106,114 -----
 | 
						|
  		sp = §[typ - S_MIN];
 | 
						|
  		sp->s_item = ip;
 | 
						|
  		sp->s_lign = ALIGNSECT;
 | 
						|
+ #ifdef DUK
 | 
						|
+ 		ip->i_type = typ;
 | 
						|
+ #else DUK
 | 
						|
  		ip->i_type = typ | S_EXT;
 | 
						|
  #endif DUK
 | 
						|
  		ip->i_valu = 0;
 | 
						|
***************
 | 
						|
*** 107,112
 | 
						|
  		sp->s_item = ip;
 | 
						|
  		sp->s_lign = ALIGNSECT;
 | 
						|
  		ip->i_type = typ | S_EXT;
 | 
						|
  		ip->i_valu = 0;
 | 
						|
  	} else if (typ >= S_MIN) {
 | 
						|
  		sp = §[typ - S_MIN];
 | 
						|
 | 
						|
--- 110,116 -----
 | 
						|
  		ip->i_type = typ;
 | 
						|
  #else DUK
 | 
						|
  		ip->i_type = typ | S_EXT;
 | 
						|
+ #endif DUK
 | 
						|
  		ip->i_valu = 0;
 | 
						|
  	} else if (typ >= S_MIN) {
 | 
						|
  		sp = §[typ - S_MIN];
 | 
						|
***************
 | 
						|
*** 180,185
 | 
						|
  		 * for possible relocation
 | 
						|
  		 */
 | 
						|
  		ip->i_valu = outhead.oh_nname;
 | 
						|
  	newsymb(ip->i_name, S_EXT|DOTTYP, (short)0, val);
 | 
						|
  #endif
 | 
						|
  }
 | 
						|
 | 
						|
--- 184,192 -----
 | 
						|
  		 * for possible relocation
 | 
						|
  		 */
 | 
						|
  		ip->i_valu = outhead.oh_nname;
 | 
						|
+ #ifdef DUK
 | 
						|
+ 	newsymb(ip->i_name, S_COM|S_EXT|DOTTYP, (short)0, val);
 | 
						|
+ #else DUK
 | 
						|
  	newsymb(ip->i_name, S_EXT|DOTTYP, (short)0, val);
 | 
						|
  #endif DUK
 | 
						|
  #endif
 | 
						|
***************
 | 
						|
*** 181,186
 | 
						|
  		 */
 | 
						|
  		ip->i_valu = outhead.oh_nname;
 | 
						|
  	newsymb(ip->i_name, S_EXT|DOTTYP, (short)0, val);
 | 
						|
  #endif
 | 
						|
  }
 | 
						|
  
 | 
						|
 | 
						|
--- 188,194 -----
 | 
						|
  	newsymb(ip->i_name, S_COM|S_EXT|DOTTYP, (short)0, val);
 | 
						|
  #else DUK
 | 
						|
  	newsymb(ip->i_name, S_EXT|DOTTYP, (short)0, val);
 | 
						|
+ #endif DUK
 | 
						|
  #endif
 | 
						|
  }
 | 
						|
  
 | 
						|
***************
 | 
						|
*** 255,260
 | 
						|
  short s;
 | 
						|
  {
 | 
						|
  	struct outrelo outrelo;
 | 
						|
  
 | 
						|
  	if (rflag == 0)
 | 
						|
  		return;
 | 
						|
 | 
						|
--- 263,271 -----
 | 
						|
  short s;
 | 
						|
  {
 | 
						|
  	struct outrelo outrelo;
 | 
						|
+ #ifdef DUK
 | 
						|
+ 	int	iscomm;
 | 
						|
+ #endif DUK
 | 
						|
  
 | 
						|
  	if (rflag == 0)
 | 
						|
  		return;
 | 
						|
***************
 | 
						|
*** 272,277
 | 
						|
  	 *	b=a
 | 
						|
  	 *  a:	.data2	0
 | 
						|
  	 */
 | 
						|
  	s &= ~S_COM;
 | 
						|
  	if ((n & RELPC) == 0 && s == S_ABS)
 | 
						|
  		return;
 | 
						|
 | 
						|
--- 283,291 -----
 | 
						|
  	 *	b=a
 | 
						|
  	 *  a:	.data2	0
 | 
						|
  	 */
 | 
						|
+ #ifdef DUK
 | 
						|
+ 	iscomm = s & S_COM;
 | 
						|
+ #endif DUK
 | 
						|
  	s &= ~S_COM;
 | 
						|
  	if ((n & RELPC) == 0 && s == S_ABS)
 | 
						|
  		return;
 | 
						|
***************
 | 
						|
*** 285,290
 | 
						|
  	outrelo.or_type = (char)n;
 | 
						|
  	outrelo.or_sect = (char)DOTTYP;
 | 
						|
  #ifndef ASLD
 | 
						|
  	if (s == S_UND) {
 | 
						|
  		assert(relonami != 0);
 | 
						|
  		outrelo.or_nami = relonami-1;
 | 
						|
 | 
						|
--- 299,307 -----
 | 
						|
  	outrelo.or_type = (char)n;
 | 
						|
  	outrelo.or_sect = (char)DOTTYP;
 | 
						|
  #ifndef ASLD
 | 
						|
+ #ifdef DUK
 | 
						|
+ 	if (s == S_UND || iscomm) {
 | 
						|
+ #else DUK
 | 
						|
  	if (s == S_UND) {
 | 
						|
  #endif DUK
 | 
						|
  		assert(relonami != 0);
 | 
						|
***************
 | 
						|
*** 286,291
 | 
						|
  	outrelo.or_sect = (char)DOTTYP;
 | 
						|
  #ifndef ASLD
 | 
						|
  	if (s == S_UND) {
 | 
						|
  		assert(relonami != 0);
 | 
						|
  		outrelo.or_nami = relonami-1;
 | 
						|
  		relonami = 0;
 | 
						|
 | 
						|
--- 303,309 -----
 | 
						|
  	if (s == S_UND || iscomm) {
 | 
						|
  #else DUK
 | 
						|
  	if (s == S_UND) {
 | 
						|
+ #endif DUK
 | 
						|
  		assert(relonami != 0);
 | 
						|
  		outrelo.or_nami = relonami-1;
 | 
						|
  		relonami = 0;
 | 
						|
*** comm7.c.old	Thu Dec  6 16:20:50 1984
 | 
						|
--- comm7.c	Wed Oct  3 16:35:31 1984
 | 
						|
***************
 | 
						|
*** 19,24
 | 
						|
  		return(ip->i_valu);
 | 
						|
  	return(ip->i_valu + sect[typ].s_base);
 | 
						|
  #else
 | 
						|
  	if ((ip->i_type & S_TYP) == S_UND) {
 | 
						|
  		if (pass == PASS_3) {
 | 
						|
  			if (relonami != 0)
 | 
						|
 | 
						|
--- 19,27 -----
 | 
						|
  		return(ip->i_valu);
 | 
						|
  	return(ip->i_valu + sect[typ].s_base);
 | 
						|
  #else
 | 
						|
+ #ifdef DUK
 | 
						|
+ 	if ((ip->i_type & S_TYP) == S_UND || (ip->i_type & S_COM)) {
 | 
						|
+ #else DUK
 | 
						|
  	if ((ip->i_type & S_TYP) == S_UND) {
 | 
						|
  #endif DUK
 | 
						|
  		if (pass == PASS_3) {
 | 
						|
***************
 | 
						|
*** 20,25
 | 
						|
  	return(ip->i_valu + sect[typ].s_base);
 | 
						|
  #else
 | 
						|
  	if ((ip->i_type & S_TYP) == S_UND) {
 | 
						|
  		if (pass == PASS_3) {
 | 
						|
  			if (relonami != 0)
 | 
						|
  				serror("relocation error");
 | 
						|
 | 
						|
--- 23,29 -----
 | 
						|
  	if ((ip->i_type & S_TYP) == S_UND || (ip->i_type & S_COM)) {
 | 
						|
  #else DUK
 | 
						|
  	if ((ip->i_type & S_TYP) == S_UND) {
 | 
						|
+ #endif DUK
 | 
						|
  		if (pass == PASS_3) {
 | 
						|
  			if (relonami != 0)
 | 
						|
  				serror("relocation error");
 | 
						|
*** mach0.c.old	Thu Dec  6 16:21:11 1984
 | 
						|
--- mach0.c	Fri Sep 14 14:15:54 1984
 | 
						|
***************
 | 
						|
*** 1,3
 | 
						|
  /* @(#)mach0.c	1.5 */
 | 
						|
  /*
 | 
						|
   * Motorola 68000/68010 options
 | 
						|
 | 
						|
--- 1,4 -----
 | 
						|
+ #define DUK
 | 
						|
  /* @(#)mach0.c	1.5 */
 | 
						|
  /*
 | 
						|
   * Motorola 68000/68010 options
 | 
						|
*** mach4.c.old	Thu Dec  6 16:21:30 1984
 | 
						|
--- mach4.c	Thu Dec  6 16:05:00 1984
 | 
						|
***************
 | 
						|
*** 21,26
 | 
						|
  				fit(fitw($4.val));
 | 
						|
  				emit2($1 | $2);
 | 
						|
  #ifdef RELOCATION
 | 
						|
  				newrelo($4.typ, RELPC|RELO2);
 | 
						|
  #endif
 | 
						|
  				emit2(loww($4.val));
 | 
						|
 | 
						|
--- 21,29 -----
 | 
						|
  				fit(fitw($4.val));
 | 
						|
  				emit2($1 | $2);
 | 
						|
  #ifdef RELOCATION
 | 
						|
+ #ifdef DUK
 | 
						|
+ 				newrelo($4.typ, RELPC|RELO2|RELBR|RELWR);
 | 
						|
+ #else DUK
 | 
						|
  				newrelo($4.typ, RELPC|RELO2);
 | 
						|
  #endif DUK
 | 
						|
  #endif
 | 
						|
***************
 | 
						|
*** 22,27
 | 
						|
  				emit2($1 | $2);
 | 
						|
  #ifdef RELOCATION
 | 
						|
  				newrelo($4.typ, RELPC|RELO2);
 | 
						|
  #endif
 | 
						|
  				emit2(loww($4.val));
 | 
						|
  			}
 | 
						|
 | 
						|
--- 25,31 -----
 | 
						|
  				newrelo($4.typ, RELPC|RELO2|RELBR|RELWR);
 | 
						|
  #else DUK
 | 
						|
  				newrelo($4.typ, RELPC|RELO2);
 | 
						|
+ #endif DUK
 | 
						|
  #endif
 | 
						|
  				emit2(loww($4.val));
 | 
						|
  			}
 | 
						|
*** mach5.c.old	Thu Dec  6 16:21:54 1984
 | 
						|
--- mach5.c	Thu Dec  6 16:07:05 1984
 | 
						|
***************
 | 
						|
*** 37,42
 | 
						|
  #ifdef RELOCATION
 | 
						|
  	RELOMOVE(relonami, rel_1);
 | 
						|
  	if (flag & ~0xFF)
 | 
						|
  		newrelo(exp_1.typ, flag>>8);
 | 
						|
  #endif
 | 
						|
  	if (flag & PUTL)
 | 
						|
 | 
						|
--- 37,45 -----
 | 
						|
  #ifdef RELOCATION
 | 
						|
  	RELOMOVE(relonami, rel_1);
 | 
						|
  	if (flag & ~0xFF)
 | 
						|
+ #ifdef DUK
 | 
						|
+ 		newrelo(exp_1.typ, (flag>>8) | RELBR | RELWR);
 | 
						|
+ #else DUK
 | 
						|
  		newrelo(exp_1.typ, flag>>8);
 | 
						|
  #endif DUK
 | 
						|
  #endif
 | 
						|
***************
 | 
						|
*** 38,43
 | 
						|
  	RELOMOVE(relonami, rel_1);
 | 
						|
  	if (flag & ~0xFF)
 | 
						|
  		newrelo(exp_1.typ, flag>>8);
 | 
						|
  #endif
 | 
						|
  	if (flag & PUTL)
 | 
						|
  		emit4(exp_1.val);
 | 
						|
 | 
						|
--- 41,47 -----
 | 
						|
  		newrelo(exp_1.typ, (flag>>8) | RELBR | RELWR);
 | 
						|
  #else DUK
 | 
						|
  		newrelo(exp_1.typ, flag>>8);
 | 
						|
+ #endif DUK
 | 
						|
  #endif
 | 
						|
  	if (flag & PUTL)
 | 
						|
  		emit4(exp_1.val);
 | 
						|
***************
 | 
						|
*** 357,362
 | 
						|
  		fit(fitw(exp.val));
 | 
						|
  		emit2(opc);
 | 
						|
  #ifdef RELOCATION
 | 
						|
  		newrelo(exp.typ, RELPC|RELO2);
 | 
						|
  #endif
 | 
						|
  		emit2(loww(exp.val));
 | 
						|
 | 
						|
--- 361,369 -----
 | 
						|
  		fit(fitw(exp.val));
 | 
						|
  		emit2(opc);
 | 
						|
  #ifdef RELOCATION
 | 
						|
+ #ifdef DUK
 | 
						|
+ 		newrelo(exp.typ, RELPC|RELO2|RELBR|RELWR);
 | 
						|
+ #else DUK
 | 
						|
  		newrelo(exp.typ, RELPC|RELO2);
 | 
						|
  #endif DUK
 | 
						|
  #endif
 | 
						|
***************
 | 
						|
*** 358,363
 | 
						|
  		emit2(opc);
 | 
						|
  #ifdef RELOCATION
 | 
						|
  		newrelo(exp.typ, RELPC|RELO2);
 | 
						|
  #endif
 | 
						|
  		emit2(loww(exp.val));
 | 
						|
  	}
 | 
						|
 | 
						|
--- 365,371 -----
 | 
						|
  		newrelo(exp.typ, RELPC|RELO2|RELBR|RELWR);
 | 
						|
  #else DUK
 | 
						|
  		newrelo(exp.typ, RELPC|RELO2);
 | 
						|
+ #endif DUK
 | 
						|
  #endif
 | 
						|
  		emit2(loww(exp.val));
 | 
						|
  	}
 |