Since version 1.4 the pixel shader is fully programmable. The older versions are not, so they are limited to a certain number of instructions per pass (about 8).