want to now more detail about GPU register number

I was profilering our game using Arm Graphics analyzer and noticed that in the profiler there is a column in the shader window called spilling uses.It said that when the number required for work registers it too great,it will store variable to RAM istead. And saidly most of our game shader program causes the register spilling. But something strange is that some shader program uses 8 uniform registers and 16 work registers and dosn not cause spilling while other shader programs with 16 uniform registers and only 8 work registers cause spilling. I wander if the maximun number of the uniform registers and work registers is fixed?  Or the maximun allowed work registers have nothing to do with uniform registers number?