- register int n;
-
- if (pass == 2) {
- if (esp->e_flag==0 && esp->e_base.e_ap==NULL) {
- /* This is a constant; simply write the
- * const byte to the T line and don't
- * generate any relocation info.
- */
- out_lb(lobyte(esp->e_addr),0);
- if (oflag) {
- outchk(1, 0);
- *txtp++ = lobyte(esp->e_addr);
- }
- } else {
- /* We are generating a single byte of relocatable
- * info.
- *
- * In 8051 mode, we generate a 16 bit address. The
- * linker will later select a single byte based on
- * whether R_MSB is set.
- *
- * In flat24 mode, we generate a 24 bit address. The
- * linker will select a single byte based on
- * whether R_MSB or R_HIB is set.
- */
- if (!flat24Mode)
- {
- r |= R_BYTE | R_BYT2 | esp->e_rlcf;
- if (r & R_MSB) {
- out_lb(hibyte(esp->e_addr),r|R_RELOC|R_HIGH);
- } else {
- out_lb(lobyte(esp->e_addr),r|R_RELOC);
- }
- if (oflag) {
- outchk(2, 5);
- out_tw(esp->e_addr);
- if (esp->e_flag) {
- n = esp->e_base.e_sp->s_ref;
- r |= R_SYM;
- } else {
- n = esp->e_base.e_ap->a_ref;
- }
- write_rmode(r);
- *relp++ = txtp - txt - 2;
- out_rw(n);
- }
- }
- else
- {
- /* 24 bit mode. */
- r |= R_BYTE | R_BYT3 | esp->e_rlcf;
- if (r & R_HIB)
- {
- /* Probably should mark this differently in the
- * listing file.
- */
- out_lb(byte3(esp->e_addr),r|R_RELOC|R_HIGH);
- }
- else if (r & R_MSB) {
- out_lb(hibyte(esp->e_addr),r|R_RELOC|R_HIGH);
- } else {
- out_lb(lobyte(esp->e_addr),r|R_RELOC);
- }
- if (oflag) {
- outchk(3, 5);
- out_t24(esp->e_addr);
- if (esp->e_flag) {
- n = esp->e_base.e_sp->s_ref;
- r |= R_SYM;
- } else {
- n = esp->e_base.e_ap->a_ref;
- }
- write_rmode(r);
- *relp++ = txtp - txt - 3;
- out_rw(n);
- }
- }
- }
- }
- ++dot.s_addr;
+ register int n;
+
+ if (pass == 2) {
+ if (esp->e_flag==0 && esp->e_base.e_ap==NULL) {
+ /* This is a constant; simply write the
+ * const byte to the T line and don't
+ * generate any relocation info.
+ */
+ out_lb(lobyte(esp->e_addr),0);
+ if (oflag) {
+ outchk(1, 0);
+ *txtp++ = lobyte(esp->e_addr);
+ }
+ } else {
+ /* We are generating a single byte of relocatable
+ * info.
+ *
+ * We generate a 24 bit address. The linker will
+ * select a single byte based on whether R_MSB or
+ * R_HIB is set.
+ */
+ {
+ /* 24 bit mode. */
+ r |= R_BYTE | R_BYT3 | esp->e_rlcf;
+ if (r & R_HIB)
+ {
+ /* Probably should mark this differently in the
+ * listing file.
+ */
+ out_lb(byte3(esp->e_addr),r|R_RELOC|R_HIGH);
+ }
+ else if (r & R_MSB) {
+ out_lb(hibyte(esp->e_addr),r|R_RELOC|R_HIGH);
+ } else {
+ out_lb(lobyte(esp->e_addr),r|R_RELOC);
+ }
+ if (oflag) {
+ outchk(3, 5);
+ out_t24(esp->e_addr);
+ if (esp->e_flag) {
+ n = esp->e_base.e_sp->s_ref;
+ r |= R_SYM;
+ } else {
+ n = esp->e_base.e_ap->a_ref;
+ }
+ write_rmode(r);
+ *relp++ = txtp - txt - 3;
+ out_rw(n);
+ }
+ }
+ }
+ }
+ ++dot.s_addr;