|
@@ -0,0 +1,600 @@
|
|
|
+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));
|
|
|
+ }
|