S&P 500 logs best month since 2020 despite Iran oil shock