preserve return regs manually when freeing