When in doubt, rewrite
Reworked store buffer to use generate and create each entry independently, which should be clearer than the previous implementation.