I am an instructor at a large university, teaching a variety of computer architecture-related courses, including the standard Patterson-Hennessey MIPS text. For several semesters, I have been dancing around the question of exactly how, and by whom, the frame pointer ($fp, GPR 30) is managed. I understand its function, but I am at a loss to explain to inquisitive students exactly how its value gets set. Does the JAL instruction set it to $SP-4 automatically? Is it the responsibility of the author of a procedure to establish its value on entry?
If anyone can point me to an authoritative source on this question I would be very grateful.
Thanks
Justin Harlow