According to this post, it disables/enables warning when $at register is used by the user.
.set noat # required since we push r1
.macro PUSHMOST
PUSH at # push assembler-temporary register r1
PUSH r2
PUSH r3
PUSH r4
See the comment to the right of PUSH at
And according to this document, it:
prevents SPIM from complaining if subsequent instructions use $at