Locations in the codegen where we assume pointers tagged with certain values?
Ömer Sinan Ağacan
omeragacan at gmail.com
Sat Apr 27 14:51:59 UTC 2019
> Also, did you check that the tag we apply to the closure pointer matches the
> tag that the info table defines?
Yep, see my update in the Gitlab issue.
Ömer
Ben Gamari <ben at smart-cactus.org>, 27 Nis 2019 Cmt, 16:51 tarihinde şunu yazdı:
>
> Ömer Sinan Ağacan <omeragacan at gmail.com> writes:
>
> > Hi all,
> >
> > I'm trying to find all places in the code generator where we assume that a
> > pointer is tagged with a certain value. A generated code for this looks like
> > this:
> >
> > mov 0x6(%rbx),%rax
> >
> > This moves payload[0] of the closure in %rbx to %rax, but it assumes that %rbx
> > is tagged with 2 so it does 0x6(%rbx) instead of 0x8(%rbx).
> >
> > Anyone know where I should be looking at?
> >
> I would start by looking at uses of tagForCon, lfDynTag and mkTaggedObjectLoad.
>
> Also, did you check that the tag we apply to the closure pointer matches
> the tag that the info table defines?
>
> Cheers,
>
> - Ben
More information about the ghc-devs
mailing list