There was a bug where we used a working register to load an immediate but then used a different register to store to memory. Updated working registers to only be used for virtual registers which makes more sense. Updated x86 add and sub support for new calctree. Also added multiply support for x86.