Thanks for your replies!
So from what it sounds like, you shouldn't use loops inside process statements? How would i go about correcting my code then? I've just tried to use the while loop outside of the process, but i can't get that to work either (complains about the while keyword and expecting "end" somewhere).
Basically what i'm trying to do is a serial output stream of a register. I thought to use a loop statement because using a variable is the only way to select individual bits from a register. I'd rather not shift the reg values because they could be reused and i'm sure there must be a simpler solution than adding a "temp register" to bit shift in.