[gnu.utils.bug] gas

taylor@THINK.COM (05/08/89)

When compiled for the ns32k, gas doesn't recognize an operand of
`some_label(pc)' as meaning that it should access the label via
pc-relative memory space addressing.  Instead it ignores the `(pc)' and
assembles the operand using absolute addressing.

The fix is easy.  In ns32k.c, in the function `addr_mode', add the lines:

        if (!strncmp(&str[strl-4],"(pc",3)) {
	  mode=27;
	}

right after the lines that read:

        if (!strncmp(&str[strl-4],"(sb",3)) {
	  mode=26;
	}

David
--
David Taylor
taylor@think.com, ...!think!taylor

taylor@THINK.COM (05/11/89)

[I mailed this on Sunday, but it doesn't seem to have made it out.  My
apologies if this is a repeat. -- David]

When compiled for the ns32k, gas doesn't recognize an operand of
`some_label(pc)' as meaning that it should access the label via
pc-relative memory space addressing.  Instead it ignores the `(pc)' and
assembles the operand using absolute addressing.

The fix is easy.  In ns32k.c, in the function `addr_mode', add the lines:

        if (!strncmp(&str[strl-4],"(pc",3)) {
	  mode=27;
	}

right after the lines that read:

        if (!strncmp(&str[strl-4],"(sb",3)) {
	  mode=26;
	}

David
--
David Taylor
taylor@think.com, ...!think!taylor