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
I believe this misalignment actually intended: all the misaligned addresses I've seen so far have 2 in the bottom 3 bits. In GOAL, a pair is different from other objects. Instead of having a type pointer in front of the object, a pair is stored as the pointer to the pair + 2. There's a similar trick done on some integers.
If you check load-boundary-h.go, load-boundary.go, and load-boundary-data.go, it looks like there's a lot of data stored in a linked list/tree made of pairs. Linking the part that has this data structure causes lots of misaligned addresses when linking.
The text was updated successfully, but these errors were encountered:
I noticed the same thing you did - the game's linker seems to write out misaligned addresses sometimes!
(
goaldis/goaldis/link.cpp
Line 535 in a3a8987
I believe this misalignment actually intended: all the misaligned addresses I've seen so far have 2 in the bottom 3 bits. In GOAL, a pair is different from other objects. Instead of having a type pointer in front of the object, a pair is stored as the pointer to the pair + 2. There's a similar trick done on some integers.
If you check load-boundary-h.go, load-boundary.go, and load-boundary-data.go, it looks like there's a lot of data stored in a linked list/tree made of pairs. Linking the part that has this data structure causes lots of misaligned addresses when linking.
The text was updated successfully, but these errors were encountered: