You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
How well tested is BC_USETS in the ARM64 interpreter? I'm getting assertion failures on gc_mark() when setting an upvalue to "". The new value has a .marked value of 0x20 (that is, LJ_GC_FIXED but not LJ_GC_WHITES).
I think the USETS instruction tests if the upvalue is black and the value is white before calling lj_gc_barrieruv(), but if i'm reading it correctly (and i'm nowhere near fluent in ARM assembly), the CARG2 register gets the equivalent of *uv->v, and not &uv->tv.
which i think means it's closed, but ->v looks invalid. is it because of the str TMP0, [CARG2] operation? again, this looks to me like would be appropriate if CARG2 had &uv->tv.
The text was updated successfully, but these errors were encountered:
How well tested is BC_USETS in the ARM64 interpreter? I'm getting assertion failures on
gc_mark()
when setting an upvalue to""
. The new value has a.marked
value of 0x20 (that is,LJ_GC_FIXED
but notLJ_GC_WHITES
).I think the USETS instruction tests if the upvalue is black and the value is white before calling
lj_gc_barrieruv()
, but if i'm reading it correctly (and i'm nowhere near fluent in ARM assembly), theCARG2
register gets the equivalent of*uv->v
, and not&uv->tv
.The
GCupval
object captured in GDB:which i think means it's closed, but
->v
looks invalid. is it because of thestr TMP0, [CARG2]
operation? again, this looks to me like would be appropriate if CARG2 had&uv->tv
.The text was updated successfully, but these errors were encountered: