codegen: mark write barrier field load as volatile (#59559)
This is as an alternative to changing all allocation functions to
mutating all memory and returning an aliasing pointer. This operates
usually late in the pipeline, so either should not make much difference,
but I think it should suffice to mark this volatile to prevent any
de-duplication of this load, and this should also be most conservative
for GC but more liberal for other optimizations.
Fixes #59547
Produced with dubious help by Claude.
(cherry picked from commit 218f691d16edbda33647d2b938b882a7ac08f057)