[gccsdk] Patching as/objasm to allow expressions with record

John Tytgat John.Tytgat at aaug.net
Mon Oct 5 17:35:27 PDT 2009


In message <1254752078.23233.29.camel at duiker>
          John-Mark Bell <jmb at netsurf-browser.org> wrote:

> On Mon, 2009-09-28 at 23:34 +0100, John Tytgat wrote:
> > In message <bc19e7a150.belles at ivy.at.home>
> >           Christopher Martin <belles at internode.on.net> wrote:
> > 
> > > There appears to have been a longstanding issue with the as/objasm
> > > assembler included in GCC 3 and 4 for RISC OS. In short, many
> > > expressions that included symbols defined in record layouts could not be
> > > evaluated.
> > 
> > Much appreciated, thanks.  I've applied your patch and a test case:
> > <URL:http://www.riscos.info/websvn/revision.php?repname=gccsdk&path=%2Ftrunk%2Fgcc4%2Friscos%2Fasasm%2F&rev=4144>.
> 
> Hm. There's something wrong here.
> 
> Firstly, tests_pass/record_basic.s fails.
> The reference data for LDR r5, #|lbl1| + |lbl2| should be LDR r5,#9
> Similarly for the preincrement in the subsequent test.

Indeed, I don't understand why I didn't see that.

> Secondly, tests_pass/register_based_map.s fails. All accesses to symbols
> defined in the map become PC-relative, which is completely incorrect.

Yes :-( And this one I failed as well to see.

Christopher, this means that your change is not correct.  I tried to
find if there isn't a better one but failed to see the obvious fix.  I've
reverted the r4144 change in storage.c in the meanwhile.

Thanks for this feedback,
John.
-- 
John Tytgat, in his comfy chair at home                                 BASS
John.Tytgat at aaug.net                             ARM powered, RISC OS driven



More information about the gcc mailing list