S&P 500 tops 7,000, erasing Iran war losses