fix miscompilation of 64-bit volatile field reads and writes on x86_32
fix miscompilation of 64-bit volatile field reads and writes on x86_32

We were generating code which clobbered the data we were putting into
64-bit volatile fields (and potentially also clobbering the target or
source object in the case of non-static fields) due to misplaced
synchronization code.  Reordering this code ensures that both the data
and the target or source survive across calls to synchronization
helper functions.

MaartenR/avian,getlantern/avian,bgould/avian,joshuawarner32/avian,joshuawarner32/avian,minor-jason/avian,badlogic/avian,ucdseniordesign/avian,joshuawarner32/avian,bigfatbrowncat/avian-pack.avian,bigfatbrowncat/avian-pack.avian,lwahlmeier/avian,bgould/avian,lostdj/avian,bigfatbrowncat/avian-pack.avian,badlogic/avian,getlantern/avian,MaartenR/avian,minor-jason/avian,lwahlmeier/avian,lostdj/avian,marcinolawski/avian,marcinolawski/avian,lwahlmeier/avian,joshuawarner32/avian,MaartenR/avian,badlogic/avian,ucdseniordesign/avian,ucdseniordesign/avian,bigfatbrowncat/avian-pack.avian,dicej/avian,getlantern/avian,lostdj/avian,bgould/avian,bgould/avian,dicej/avian,minor-jason/avian,getlantern/avian,lwahlmeier/avian,MaartenR/avian,marcinolawski/avian,minor-jason/avian,lostdj/avian,badlogic/avian,ucdseniordesign/avian,dicej/avian,dicej/avian,marcinolawski/avian