They are indeed connected to GC. They seem to have been added in order to support Brooks pointers. I found some information on Brooks pointers here:
The idea is that each object on the heap has one additional reference field. This field either points to the object itself, or, as soon as the object gets copied to a new location, to that new location. This will enable us to evacuate objects concurrently with mutator threads
See especially these two commits: