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!taylortaylor@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