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.