The idea is that the singular value decomposition,
$$\mathbf A=\mathbf U\mathbf \Sigma\mathbf V^\top$$
and the eigendecomposition
$$\mathbf A=\mathbf Q\mathbf D\mathbf Q^\top$$
of a symmetric matrix are one and the same.
Thus, if one wants the Moore-Penrose pseudoinverse of $\mathbf A$, either decomposition could be used. (However, an SVD routine generally wouldn't exploit the nice structure of a symmetric matrix, so a bit more computational effort than what is actually needed will be used in that case; thus, use the eigendecomposition.)
The idea is that, letting $\mathbf A^\dagger$ be the Moore-Penrose pseudoinverse, we have the property
$$\mathbf A^\dagger=\mathbf Q\mathbf D^\dagger\mathbf Q^\top$$
where $\mathbf D^\dagger$ is (usually) computed via the following procedure: take $d_1$ to be the largest eigenvalue, and let $\varepsilon$ be machine epsilon. Reciprocate any entry of $\mathbf D$ that is greater than $\varepsilon\cdot d_1$, and set all other entries to zero.