> 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 <b...@smart-cactus.org>, 27 Nis 2019 Cmt, 16:51 tarihinde şunu yazdı:
>
> Ömer Sinan Ağacan <omeraga...@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
_______________________________________________
ghc-devs mailing list
ghc-devs@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs

Reply via email to