Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!tut.cis.ohio-state.edu!THINK.COM!taylor From: taylor@THINK.COM Newsgroups: gnu.utils.bug Subject: gas (ns32k) doesn't recognize label(pc) Message-ID: <8905080548.AA06054@odin.think.com> Date: 8 May 89 05:48:29 GMT Sender: daemon@tut.cis.ohio-state.edu Distribution: gnu Organization: GNUs Not Usenet Lines: 21 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